Что такое криптография?

Что такое криптография?

Это может быть не очевидно, но мы сталкиваемся с криптографией каждый день. Например, когда мы оплачиваем покупки картой, смотрим видео на YouTube или заправляем машину, криптография защищает нашу информацию. Может показаться, что криптография – это удел разработчиков, хакеров и корпораций, а простому пользователю знать о ней вовсе не обязательно. Однако это полезно не только узким специалистам, но и всем, кто заботится о собственной безопасности. Этот гайд поможет разобраться, что такое криптография и какое применение она находит в повседневной жизни.

Как появилась криптография?

С момента зарождения человеческой цивилизации информация была одним из наших самых ценных активов. Уже много тысячелетий назад наши предки столкнулись с необходимостью передавать информацию в пространстве (из точки А в точку Б) или во времени (например, от учителя к ученикам). Письменность помогла решить эту задачу, однако следом возникла следующая: как сохранить передаваемую информацию от глаз тех, к кому она попасть не должна?

Примерно 3500 лет назад гончары в Месопотамии защищали секреты своего мастерства от конкурентов с помощью шифрования на глиняных табличках. Политики шифровали свои послания, чтобы сохранить их в тайне.

Как выглядел этот шифр? Разберем на примере:

Допустим, нам нужно зашифровать сообщение «Привет». Один из путей — сдвигать буквы алфавита на фиксированное число позиций. Такой метод называется шифр сдвига или шифр Цезаря.

На рисунке ниже показан сдвиг на две буквы вперед.

alphabet

Сдвиг на две буквы означает, что:

А ⇒ В Б ⇒ Г В ⇒ Д

Сообщение «Привет» превращается в «Сткджб».

Шифр можно улучшить, применив более продвинутый метод. Представим, что после каждого использования алгоритм шифрования меняется, то есть повторное сообщение с такой же информацией будет выглядеть совершенно по-другому. Проще говоря, если в первом случае мы получили «Сткджб», то следом то же слово будет зашифровано как «Опздбдс»: теперь сдвиг произошел на одну букву назад.

Современные методы криптографии

Современная криптография совсем не похожа на перестановку букв. Для шифрования и безопасной передачи данных используются алгоритмы, которые невозможно «разгадать». Речь идет об алгоритмах, основанных на математических преобразованиях — работать с ними способен только компьютер. Карандашом и листком бумаги уже не обойтись. Чаще всего используются три криптографических метода, каждый из которых имеет преимущества и недостатки. Рассмотрим каждый из них.

Симметричная криптография

Один из самых простых типов шифрования. Симметричная криптография использует секретный ключ, который может быть числом, словом или строкой случайных символов для шифрования и расшифровки данных. Единственный ключ известен как отправителю, так и получателю. Это один из старейших и наиболее распространенных методов шифрования.

Этот метод обычно не используется для передачи сообщений через интернет, так как ключ необходимо передавать отдельно. Если третья сторона каким-то образом получит ключ, она сможет просмотреть зашифрованные данные.

Получается уловка-22: если вы хотите отправить зашифрованное сообщение, чтобы его содержимое было скрыто от посторонних глаз, вам придется сначала отправить незашифрованное сообщение, которое будет полностью видно. Это делает данный метод крайне небезопасным.

Именно поэтому симметричная криптография обычно используется для шифрования локальных баз данных, например, на жестком диске сервера или данных в вашем iPhone.

Асимметричное шифрование

Метод шифрования данных, в котором используются два ключа — открытый и закрытый. Открытый или «публичный» ключ используется для шифрования информации и может передаваться по незащищенным каналам. Закрытый или «приватный» ключ используется для расшифровки данных, зашифрованных с помощью открытого ключа. Открытый и закрытый ключи — это очень большие числа, связанные определенной функцией, но таким образом, что если вы знаете один ключ, то вычислить другой крайне сложно.

Асимметричное шифрование решает основную проблему безопасности симметричного шифрования, когда для шифрования и получения данных используется один и тот же ключ. С другой стороны, асимметричные алгоритмы намного медленнее симметричных, поэтому часто используются оба метода.

Хеширование

Отдельно выделим метод, который преобразовывает информацию в уникальный набор символов, но не шифрует данные. По сути, хеширование — это изменение сообщения в нечитаемую строку не для того, чтобы скрыть сообщение, а для проверки его содержимого. Чаще всего он используется при передаче больших файлов.

Допустим, нам нужно обновить программное обеспечение на компьютере. Хеширование — хороший способ проверки загружаемых файлов, файлов Windows (.ISO) или Mac (.DMG). Когда мы скачиваем обновление, вместе с файлом мы получаем хеш от этого файла. Наш компьютер хеширует скачанный файл еще раз и сравнивает хеши (полученный и скачанный): если они совпадают, значит, мы получили неповрежденный файл. Даже самое незначительное изменение загруженного файла, вызванное повреждением или намеренным вмешательством, резко изменит полученный хеш. Только после проверки целостности компьютер может продолжить работу с файлом.

Принципы криптографии

Задача криптографии — обеспечить защиту информации. Она основана на четырех принципах:

Аутентификация

Проще говоря, — это процесс, обеспечивающий уверенность в том, что стороны на обоих концах соединения действительно являются теми, за кого себя выдают.

По крайней мере один тип аутентификации используется в интернете всякий раз, когда вы пользуетесь защищенным веб-сайтом. Например, внутренним сайтом вашей компании или, например, сайтом Hexlet.

В зависимости от используемого браузера пользователь увидит закрытый замок или зеленый URL (или и то, и другое), указывающий на то, что сайт, к которому он подключен, является тем сайтом, за который себя выдает.

hexlet

Это особенно важно, когда мы совершаем покупки в Интернете, делаем банковские операции или оплачиваем счета через Интернет. Это гарантирует, что мы не передадим хакерам информацию о своих банковских счетах или кредитных картах.

Другим примером использования криптографии для аутентификации является Pretty Good Privacy — пакет бесплатного программного обеспечения. Он используется для шифрования и аутентификации сообщений, цифровых подписей, сжатия данных, а также электронных писем и их вложений.

Неотказуемость (от англ. non-repudiation)

Эта концепция особенно важна для тех, кто использует или разрабатывает финансовые приложения или приложения для электронной коммерции.

На заре развития финансовых операций и электронной коммерции в интернете одной из серьезных проблем была повсеместная распространенность пользователей, которые могли опровергнуть транзакции после того, как совершали ее. Например, клиент банка просит перевести деньги на другой счет. Позже он заявляет, что никогда не делал этого запроса, и требует вернуть всю сумму на его счет.

Однако если банк принял меры по обеспечению безопасности с помощью криптографии, он может доказать, что данная транзакция действительно была инициирована пользователем.

Целостность

Криптография помогает убедиться, что данные не были просмотрены или изменены во время передачи или хранения.

Например, использование криптографической системы для обеспечения целостности данных гарантирует, что конкурирующие компании не смогут подделать внутреннюю переписку и конфиденциальные данные конкурента.

Наиболее распространенным способом обеспечения целостности данных с помощью криптографии является использование криптографических хешей, о которых говорилось выше.

Конфиденциальность

В условиях постоянных утечек информации и бесконечного числа скандалов, связанных с конфиденциальностью, сохранение частной информации является одной из главных задач для криптографии. Именно с целью защиты информации и были изначально разработаны криптографические системы.

С помощью правильных инструментов шифрования пользователи могут защитить конфиденциальные данные компании, личные переписки или просто заблокировать свой компьютер простым паролем.

Однако в современных условиях такие методы не смогут обеспечить безопасность огромных систем электронных коммуникаций или торговли. Теперь приходится работать не только с частными случаями хранения или передачи информации, но и с огромными объемами данных.

Как обычным пользователям использовать криптографию?

Как говорилось в начале статьи, криптография — часть повседневной жизни. Оплата покупки картой или простое подключение к Wi-Fi требуют использования криптографии.

Хотя большинство операций в повседневной жизни уже защищены криптографией, существуют области, в которых можно сравнительно легко докупить еще один уровень безопасности к повседневным действиям.

VPN

Виртуальная частная сеть (VPN) шифрует интернет-соединение, не позволяя посторонним следить за вашей деятельностью в Интернете.

VPN заключает интернет-соединение в «туннель» шифрования, который действует подобно туннелю метро. Хотя мы можем знать, что в туннеле есть поезда, мы не сможем определить, где они находятся, сколько вагонов в составе и куда он направляется.

Виртуальная – означает, что VPN создаётся программным способом в виде отдельной прослойки поверх другой сети. Для передачи данных используется туннелирование — трафик заворачивается в отдельный туннель, который проходит по более низкоуровневому каналу связи. Информация в VPN-туннеле надёжно зашифрована. Частная – VPN – внутренняя сеть, в которой находятся только доверенные устройства. Сеть – соединение происходит между двумя устройствами — клиентом и VPN-сервером, образующими единую сеть.

VPN обеспечивает защиту — никто не сможет узнать, какие сайты посещает пользователь или какие файлы скачивает.

В последнее время VPN стали популярным инструментом для пользователей, которые хотят защитить свои действия в интернете от постороннего наблюдения.

HTTPS

Страницы HTTPS обычно используют протокол SSL (Secure Sockets Layer) или TLS (Transport Layer Security) для повышения безопасности страниц, которые просматривает пользователь, с помощью открытых ключей.

Этот тип соединения шифрует сообщения, отправляемые между вашим компьютером и просматриваемым сайтом, чтобы защитить данные пользователя от хищения. Это очень важно, когда вы передаете важную личную информацию или финансовые данные.

HTTPS — это расширение браузера с открытым исходным кодом, совместимое с Chrome, Firefox и Opera. С помощью этого расширения любой сайт, который вы посещаете, будет вынужден использовать соединение HTTPS вместо менее безопасного соединения HTTP.

BitLocker (for Windows) or FileVault2 (for Mac)

Дополнительный шаг (помимо пароля для входа в систему) для обеспечения безопасности личной информации на компьютере или ноутбуке — это установка BitLocker или FileVault2.

Эти программы шифрования дисков защищают данные с помощью криптографического алгоритма AES, обеспечивая шифрование целых томов. Если выбирать это программное обеспечение, обязательно нужно записать свои учетные данные и хранить их в надежном месте. Если эти учетные данные будут утеряны, то почти наверняка навсегда будет утерян и доступ ко всей зашифрованной информации.

Криптография не совершенна

Мы разобрались, как работает криптология и как она защищает данные. Хотя криптография, безусловно, может обеспечить защиту информации, она не может обеспечить полную безопасность. Даже самые лучшие криптографические алгоритмы несовершенны.

Поэтому стоит осознавать, что «более безопасно» не означает «абсолютно безопасно».

Заключение

Благодаря более глубокому пониманию распространенных методов шифрования и криптографических алгоритмов, используемых сегодня, мы сможем лучше защитить себя от потенциальных кибератак.

Существует множество способов использования криптографии и, возможно, лучшим способом обеспечить надежный уровень шифрования для действий в интернете является использование качественного VPN.

Хотя криптография не совершенна, она необходима для обеспечения безопасности личной информации.

Другие гайды по теме

  1. Что такое API?
Исходный код (github)
Василий Васильев