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

15.2. Какие бывают шифры

Существует несколько классификаций шифров.

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

В первом случае в шифраторе отправителя и дешифраторе получателя используется
один и тот же ключ.

Во втором случае получатель вначале по открытому каналу передает отправителю
открытый ключ, с помощью которого отправитель шифрует информацию.
При получении информации получатель дешифрует ее с помощью второго секретного ключа.

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

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

Что такое шифрование данных?

Шифрование (encryption) данных напоминает кодирование (encoding), например, когда вы посылаете файл, закодированный в формате MIME в качестве приложения к электронному сообщению. Разница заключается в конечной цели. Кодирование совершается для того, чтобы обеспечить передачу данных, в то время как шифрование кодирует данные так, чтобы их нельзя было узнать. Идея состоит в том, чтобы данные не могли интерпретировать должным образом и использовать те, у кого нет возможности их раскодировать. Другими словами, только те, кому вы предоставили средства для раскодирования сообщения, могут его прочитать.

На практике шифрование — это процесс подстановки. Альтернативное значение, или знак, подставляется на место указанных элементов сообщения или других данных. Обычно это происходит на уровне литер. Например, буква «р» может быть заменена на «м», и точно так же другие буквы могут быть подставлены вместо каждой буквы сообщения. (Подобное происходит, когда шифруется бинарный файл с помощью UUEncode или любого другого протокола: одна группа литер заменяет другую группу. Основная разница, опять-таки, состоит в конечной цели — сделать данные трудными для распутывания, если нет средств для их расшифровки)

Теоретически зашифрованные данные не могут быть прочитаны без руководства или ссылок на все сделанные замены. Тем не менее простой, без вариаций шаблон подстановок довольно легко раскодировать (например, если «м» всегда подставлено вместо «р», «з» — всегда «т» и так далее).

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

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

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

Деление по модулю

Остаток от деления по модулю означает следующее: мы делим одно число на другое с остатком. Целую часть выкидываем, а остаток — это то, что нам нужно. Обозначается такое деление словом mod.

Например, 12 mod 5 = 2, потому что 12 = 2×5 + 2

13 mod 4 = 1, потому что 13 = 4×3 + 1

10 mod 2 = 0, потому что 10 = 2×5 +

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

Если X mod 5 = 1, то X может быть равен 6, 11, 16, 21 и так далее  — остаток от деления каждого из этих чисел по модулю 5 равен одному. Поэтому пересылать остаток от деления по модулю можно, а первое число — нет.

Применяем аппаратное шифрование

Зашифровать современные жесткие диски проще, чем можно подумать, поскольку они предлагают собственную методику кодирования. Для этого в них используется Opal SSC (Opal Security Subsystem Class). Данный стандарт позволяет шифровать диск напрямую на контроллере носителя. Таким образом, операционная система остается незатронутой.

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

На два момента следует обратить особое внимание: не используйте параллельно дополнительное шифрование — например, посредством инструмента Bit­Locker в Windows. Часто это вызывает проблемы: многие пользователи сообщали даже о потере данных

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

С помощью Magician вы можете запустить аппаратное встроенное шифрование от компании Samsung

Как работает сквозное шифрование

Теперь поговорим о приложениях для чата. Например: Facebook Messenger. Когда Вы общаетесь с кем-то в Facebook Messenger, сообщения шифруются при передаче между Вами и Facebook, а также между Facebook и другим человеком. Журнал сообщений хранится в зашифрованном виде в Facebook перед тем, как он будет сохранен на серверах Facebook.

Но у Facebook есть ключ. Facebook сам может видеть содержимое Ваших сообщений.

Решение — сквозное шифрование. При сквозном шифровании провайдер в середине — не сможет видеть содержимое Ваших сообщений. У них нет ключа, который открывает Ваши личные данные. Только Вы и человек, с которым Вы общаетесь, можете получить доступ к этим данным.

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

Методы шифрования или как шифрование работает?

На практике, когда вы отправляете сообщение с помощью службы шифрованных сообщений (например, WhatsApp), служба «обертывает» сообщение в код, скремблирует его и создает ключ шифрования. Затем оно может быть разблокировано получателем сообщения. Цифровое шифрование чрезвычайно сложно, поэтому его сложно взломать. Чтобы усилить эту защиту, каждый раз, когда два смартфона начинают общаться друг с другом, создается новый набор алгоритмов шифрования.

Возможно, вы слышали о сквозном шифровании, возможно, вы получили уведомление о том, что WhatsApp теперь поддерживает этот тип шифрования. Сквозное шифрование относится к процессу кодирования и скремблирования определенной информации, поэтому только наблюдатель и получатель могут ее видеть. Как объяснялось ранее, ключи шифрования могут работать как пара, один в качестве «запирающего» информацию, а другой или несколько (которые могут быть переданы) нужны, чтобы разблокировать зашифрованную информацию. Однако при сквозном шифровании только отправитель и получатель могут разблокировать и прочитать информацию. С WhatsApp сообщения передаются через серверы, но они не могут читать сообщения. На приведенном ниже рисунке показано, как работает сквозное шифрование, при этом один человек отправляет сообщение другому.

Итак, это было сквозное шифрование. Но как насчет других методов? Вообще существует два основных метода шифрования: симметричный и асимметричный. Симметричное шифрование — это процесс использования одного и того же ключа (два ключа, которые идентичны) для шифрования и дешифрования данных. Это будет означать, что две или более стороны будут иметь доступ к одному и тому же ключу, что для некоторых является большим недостатком, хотя математический алгоритм защиты данных практически невозможно взломать. Здесь основным недостатком является человеческий фактор.

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

Шифрование используется многими организациями и отдельными лицами

И в современном мире аспектам шифрования стоит уделять внимание, если вы хотите, чтобы ваша ценная информация не попала в третьи руки

digitrode.ru

Почему важно, кто владеет ключами

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

Если сотрудник из Google захочет отследить Ваши данные — шифрование не остановит его.

Если хакер каким-то образом скомпрометирует системы и закрытые ключи Google (хоть это и трудная задача), он сможет прочитать данные каждого.

Если бы Google потребовалось передать данные правительству, Google смог бы получить доступ к Вашим данным и передать их.

Конечно, другие системы могут защитить Ваши данные. Google заявляет, что реализовал лучшую защиту доступа к данным от злоумышленников. Google явно очень серьезно относится к защите своих систем от хакеров. Например, Google даже отклоняет запросы данных в Гонконге.

Так что да, эти системы могут защитить Ваши данные. Но это не шифрование, защищающее Ваши данные от Google. Это просто политика Google, защищающая Ваши данные.

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

Хеширование

Хеширование используется в системах баз данных как метод защиты конфиденциальных данных, таких как пароли; однако он также используется для повышения эффективности обращения к базе данных. Введенные данные обрабатываются алгоритмом хеширования. Алгоритм хеширования преобразует введенные данные в строку фиксированной длины, которая затем может быть сохранена в базе данных. У систем хеширования есть две критически важные характеристики, которые будут описаны ниже. Во-первых, хэши «уникальны и повторяемы». Например, многократное выполнение слова «кошка» через один и тот же алгоритм хеширования всегда будет давать один и тот же хеш, однако очень сложно найти слово, которое вернет тот же хеш, что и «кошка». Во-вторых, алгоритмы хеширования необратимы. Чтобы связать это с приведенным выше примером, было бы почти невозможно преобразовать вывод алгоритма хеширования обратно в исходный ввод, которым был «кот». В контексте шифрования базы данных хеширование часто используется в системах паролей. Когда пользователь впервые создает свой пароль, он проходит через алгоритм хеширования и сохраняется в виде хеша. Когда пользователь снова входит на веб-сайт, введенный им пароль проходит через алгоритм хеширования и затем сравнивается с сохраненным хешем. Учитывая тот факт, что хеши уникальны, если оба хеша совпадают, считается, что пользователь ввел правильный пароль. Одним из примеров популярной хеш-функции является SHA (Secure Hash Algorithm) 256.

Соление

Одна проблема, которая возникает при использовании хеширования для управления паролями в контексте шифрования базы данных, заключается в том, что злоумышленник потенциально может использовать радужную таблицу Input to Hash table для конкретного алгоритма хеширования, который использует система. Это фактически позволило бы человеку расшифровать хэш и, таким образом, получить доступ к сохраненным паролям. Решение этой проблемы — «посолить» хеш. Соление — это процесс шифрования не только пароля в базе данных. Чем больше информации добавляется к строке, подлежащей хешированию, тем сложнее становится сопоставление радужных таблиц. Например, система может объединить адрес электронной почты и пароль пользователя в один хэш. Это увеличение сложности хэша означает, что создание радужных таблиц намного сложнее и, следовательно, менее вероятно, что они будут созданы. Это, естественно, означает, что угроза потери конфиденциальных данных сводится к минимуму за счет использования хешей.

Перец

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

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

Windows

Есть два популярных способа зашифровать диск в Windows:

  • с помощью VeraCrypt;
  • с помощью стандартного шифрования BitLocker.

Veracrypt

Мы рекомендуем использовать решение VeraCrypt. Это ПО неоднократно подвергалось независимым аудитам и считается достаточно надёжным. 

Инструкцию по шифрованию диска с VeraCrypt вы сможете найти здесь. Настройка займёт около 10 минут вашего времени, а само шифрование продлится до 1-2 часов. Рекомендуем зашифровать весь диск. 

BitLocker

В Windows имеется встроенная система шифрования BitLocker (начиная с Профессиональной версии ОС).

Шифрование в Windows 10

Введите в поиск Windows «Управление BitLocker» и откройте панель настроек. По умолчанию BitLocker использует аппаратный криптопроцессор Trusted Platform Module (TPM), который может отсутствовать в материнской плате. Но последние версии Windows поддерживают использование BitLocker без TPM.

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

Работа с Linux: защита винчестера

Шифрование диска в Linux — процесс схожий. Тут, конечно, существуют несколько способов. Например, можно использовать программу TrueCrypt. Настраивать ее нужно точно так же, как и VeraCrypt. У них даже похожий интерфейс, поскольку TrueCrypt стал основой для создания VeraCrypt.

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

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

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

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

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

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

Придумайте надёжный пароль

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

  • Используйте не одно слово, а несколько — например небольшую фразу.
  • Не используйте для пароля стандартные словарные слова, термины, имена, названия и даты. Можете взять слово и разделить его на части символами, скажем, p@S5w0r&?15D (здесь скрыто слово “password”).
  • Пароль должен содержать не менее 8 символов (лучше больше), а также прописные и строчные буквы, цифры и стандартные символы на клавиатуре.

Теперь можно переходить к настройкам шифрования.

Ключевой менеджмент

В разделе «Симметричное и асимметричное шифрование базы данных» представлена ​​концепция открытых и закрытых ключей с базовыми примерами, в которых пользователи обмениваются ключами. Акт обмена ключами становится непрактичным с точки зрения логистики, когда множеству разных людей необходимо общаться друг с другом. При шифровании базы данных система обрабатывает хранение и обмен ключами. Этот процесс называется управлением ключами. Если ключи шифрования не управляются и не хранятся должным образом, может произойти утечка очень конфиденциальных данных. Кроме того, если система управления ключами удаляет или теряет ключ, информация, которая была зашифрована с помощью указанного ключа, по существу также оказывается «потерянной». Сложность логистики управления ключами также является темой, которую необходимо учитывать. По мере увеличения количества приложений, используемых фирмой, также увеличивается количество ключей, которые необходимо хранить и управлять ими. Таким образом, необходимо установить способ управления ключами от всех приложений через один канал, который также известен как корпоративное управление ключами. Решения для управления корпоративными ключами продаются множеством поставщиков в технологической отрасли. Эти системы по сути представляют собой централизованное решение для управления ключами, которое позволяет администраторам управлять всеми ключами в системе через один концентратор. Таким образом, можно сказать, что внедрение корпоративных решений для управления ключами может снизить риски, связанные с управлением ключами в контексте шифрования базы данных, а также уменьшить логистические проблемы, которые возникают, когда многие люди пытаются вручную поделиться ключами.

И всё вместе Anchor link

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

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

И наоборот, если вы отправляете сообщение с использованием сквозного шифрования (шифруя передающиеся данные) на устройство, не использующее шифрование (не шифрующее хранящиеся на нём данные), эти сообщения будут недоступны для шпионов в сети. Однако если кто-либо получит физический доступ к этому мобильному устройству, то он получит доступ к сообщению и сможет его прочитать.

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

Для получения более подробной информации по использованию шифрования обратитесь к нашему руководству «Ключевые концепции шифрования».

Сквозное шифрование Anchor link

На изображении показан принцип работы сквозного шифрования. В левой части смартфон отправляет зелёное незашифрованное сообщение «Hello». Это сообщение шифруется и передаётся на вышку сотовой связи и на сервера компании. На другом конце смартфон собеседника получает это зашифрованное сообщение, расшифровывает его и позволяет прочитать «Hello». В отличие от шифрования транспортного уровня, в данном случае сервера вашего интернет-провайдера не смогут расшифровать это сообщение. Ключи для расшифровки сообщения имеются только на конечных устройствах (первоначальном устройстве, с которого сообщение было отправлено, и на устройстве получателя).

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

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

Проект «Самозащита от слежки» предлагает изучить инструкцию по использованию средств сквозного шифрования в руководстве по общению в сети.

У кого есть ключи

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

Например, учетная запись Google. Защищены ли Ваши данные Google — электронные письма Gmail, события Календаря Google, файлы Google Диска, история поиска и другие данные с помощью шифрования? В какой-то степени да.

Google использует шифрование для защиты данных «при передаче». Например, когда Вы получаете доступ к своей учетной записи Gmail, Google подключается через защищенный HTTPS. Это гарантирует, что никто другой не сможет отслеживать обмен данными между Вашим устройством и серверами Google. Ваш интернет-провайдер, оператор сети, люди в пределах досягаемости Вашей сети Wi-Fi и любые другие устройства между Вами и серверами Google не могут видеть содержание Ваших писем и перехватывать пароль Вашего аккаунта Google.

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

Конечно, важно и шифрование при передаче, и при хранении. Они хороши для безопасности и конфиденциальности

Это намного лучше, чем отправлять и хранить данные в незашифрованном виде!

Но вот вопрос: у кого есть ключ, который может расшифровать эти данные? В данном случае ключи есть у Google.

Шифрования транспортного уровня или сквозное шифрование? Anchor link

Для того чтобы решить, какой тип шифрования подойдёт вам (шифрование транспортного уровня или сквозное шифрование), необходимо задать себе некоторые вопросы. Доверяете ли вы используемому приложению или сервису? Доверяете ли вы его технической инфраструктуре? Надёжна ли его политика в отношении защиты от запросов правоохранительных органов?

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

Мы создали анимацию, демонстрирующую работу сквозного шифрования и шифрования транспортного уровня при передаче данных. Слева представлен чат, использующий сквозное шифрование (протокол шифрования мгновенный сообщений OTR, или Off-the-Record). Справа – чат, использующий шифрование транспортного уровня (с помощью использования HTTPS сайтом Google Hangouts).

На GIF-анимации первый пользователь печатает сообщение в окне чата Google Hangouts:

«Hi! This is not end-to-end encrypted. Google can see our conversation.» (Привет! Это сообщение не использует сквозное шифрование. Google может читать наши сообщения.)

У этого пользователя также открыто и окно чата Off-the-Record (OTR), и он включает режим «private conversation» (защищённая переписка). В окне чата OTR сопроводительный текст гласит:

«Attempting to start a private conversation with . Private conversation with has started. However, their identity has not been verified.» (Попытка начала защищённого диалога с . Защищённый диалог с начат. Однако идентичность собеседника не подтверждена.)

Одновременно с этим в окне чата Google Hangouts текст шифруется и заменяется на тарабарщину, что означает использование пользователями протокола OTR со сквозным шифрованием. Каждое сообщение, переданное с помощью окна чата OTR, также отображается и в окне чата Google Hangouts, однако в виде, не позволяющем понять содержимое сообщения. Первый пользователь пишет:

«Now conversation is end-to-end encrypted. Google can see that we`re chatting, but is unable to read what we`re actually saying.» (Теперь наша беседа защищена сквозным шифрованием. Google может видеть, что мы общаемся, но не сможет узнать, о чем именно.)

Другой пользователь печатает сообщение в OTR клиенте:

«It looks like gibberish to anyone else.» (Для любого другого пользователя это сообщение выглядит как полный бред.)

Первый пользователь пишет:

«Yup, it looks like nonsense.» (Ага, выглядит бессмысленно.)

Другой пользователь отправляет смайлик.