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

Всем нам иногда приходится пересылать в переписке ту или иную секретную информацию. Ну, возможно, не секретную, но такую, которая определенно не предназначена для чужих глаз. Самый надежный способ ее защиты - это шифрование. А самый простой способ зашифровать сообщения в вашей переписке в Skype, Viber, «ВКонтакте» и в любом другом месте - это кроссплатформенное приложение PGPTools.

Зачем это нужно?

Самый простой пример использования шифрования - это отправка защищенных сообщений, которые содержат важную информацию. Скажем, вы хотите переслать свои платежные реквизиты, общаясь с приятелем «ВКонтакте». Зашифрованное сообщение представляет собой беспорядочный набор символов, который можно смело пересылать через социальные сети, Skype, Viber, Telegram и любые другие мессенджеры. Даже если его перехватят злоумышленники, без специального ключа они увидят просто абракадабру.

Как это работает?

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

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

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

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

Плюсы и минусы

Пользоваться PGPTools удобно еще и потому, что приложение доступно на всех популярных платформах, включая не только iOS и Mac, но и Android, Windows Phone и Windows. Независимо от устройств, которые используют ваши друзья или коллеги, вы сможете совершенно безопасно отправлять им важную личную информацию любым удобным для вас путем, будь то email, sms, социальные сети, мессенджеры и так далее.

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

Итоги

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

Решите, что за секретное послание вы собираетесь отправить. Оно должно быть значительно меньше, чем само письмо. Длинное секретное сообщение в коротком письме вызовет подозрения из-за своей внешней недостоверности. Это крайне деликатный вопрос баланса. Чем длиннее ваш основной текст по сравнению с секретным сообщением, тем легче будет писать и сложнее вычислить, как друзьям, так и врагам.

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

  • Акростих, возможно, самый известный пример. В акростихе секретное послание читается в каждой первой букве каждой строки (или предложения и т.д.). Акростих очень легко составить, но также легко и вычислить.
  • Используйте числа, чтобы зашифровать письмо. Существует несколько способов, включая: A=1 Я=33, ASCII, Атомные числа, или любые другие известные числовые списки. Преимущество этого метода в том, что вы можете использовать числа в чистом виде, не вызывая сомнения, например, чтобы указать дату или время. В противном случае, существует много других способов преобразования слов в числа, используя более хитрые добавления. Это должно быть хорошо известно как отправителю, так и адресату - профессор искусствоведения должен знать, что От реализма до постимпрессионизма относится к его учебному курсу 441, но большинство людей этого не могут знать, или историк, специализирующийся на Греции, узнает даты, связанные с падением Афин.
  • Берите каждую энную букву. Естественно, что наиболее сложные предложения могут быть использованы вместо арифметической последовательности. Одна проблема этого метода в том, что слишком недолговечен. Даже единственная буква, добавленная или убранная из письма, может изменить смысл всего сообщения. С некоторыми другими методами сообщение можно восстановить, даже если большая часть письма утеряна, исправлена или трудна для чтения.
  • Используйте слова с необычными параметрами. Учитывая стандартное расположение клавиш на клавиатуре, можно написать слова, используя какой-то один ряд, например, рабы , метис , дорога и книгу . Если выписать все буквы, выпадающие из общего ряда, то получится слово БЕГИ. Все слова, которые не подходят под этот параметр, отсеиваются.
  • Используйте неестественную частоту повторения букв. В повседневном языке не так уж и много слов, в которых может повториться каждая буква алфавита, но их можно с легкостью использовать, чтобы добавить лишнюю букву.
  • Вставляйте ошибки. Если в письме обычно грамотным отправителем будут допущены ошибки в правописании, значит они были сделаны намеренно. Ошибки в правописании можно легко вставить в текст, так что можете вставлять какое угодно секретное послание в ваше письмо.
  • Чтобы получить более сложный метод, используйте несколько техник сразу. Существует риск, что тщательно скрытое секретное послание может быть не расшифровано адресатом. Или если его даже обнаружат, оно может быть настолько натянутым, что это можно посчитать чистым совпадением, а не намеренным знаком. В качестве примера, взгляните на критику в адрес исследования кодов в Библии. Хотя запутанное сообщение и может быть обнаружено, не может быть полной уверенности в том, что оно было вставлено в письмо намеренно. Какие бы ни были методы, когда они используются в достаточно длинном тексте, их довольно сложно вычислить. Секретное послание через выделение каждой первой буквы каждого слова может оказаться слишком слабым сигналом, но может стать более явным при выполнении некоторых дополнительных шагов. Использование акростиха, чтобы сказать Только буквы, пропускать пробелы и пунктуацию , поможет с легкостью вычислить его и громко заявить Здесь есть послание. Продолжай искать! Беря в расчет слишком часто встречающиеся числа в основном тексте, все они простые, получатель письма может понять, на какое предложение указывает отправитель. Слово простой может часто использоваться в нечисловом контексте в основном тексте и/или указывать на другой метод.

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

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

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

    Шифрование данных - непременный хакерский ритуал, в котором каждый применяет свой набор утилит. Если для десктопных ОС выбор предлагается большой, то в мобильных операционках пока доступны единичные приложения. Мы обратили внимание на новое творение разработчика SJ Software - PGPTools. Первая версия этой программы вышла в апреле. За полгода список поддерживаемых платформ существенно расширился. Теперь он включает Windows 10, Windows Phone, iOS (8.0 и выше), OS X (начиная с 10.9) и Android (4.0 и новее). Для тестирования была выбрана последняя версия PGPTools v.1.10 под ОС Android. Стоит программа почти восемьдесят рублей, так что мы скинулись всей редакцией и приступили к ее изучению.

    WARNING

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

    Встречают по интерфейсу

    Еще до установки программы становится очевидно, что ее авторы придерживаются минималистических взглядов. В инсталляционном пакете PGPTools занимает полтора мегабайта, а после установки - всего пять с половиной. Радует и то, что список запрашиваемых разрешений состоит ровно из одного пункта - записи на карту памяти. Никакой отправки СМС, доступа в интернет и к личным сведениям ей не требуется.


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

    Использование PGPTools

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


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

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

    INFO

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

    Основная панель в PGPTools носит такое же название. Она переключается между двумя режимами: шифрованием и дешифрованием. Ее вид зависит от того, какой ключ был ранее выбран на панели key list - публичный или секретный.

    Зашифровать любой текст с помощью PGPTools можно в пару кликов. Для этого достаточно вставить его в поле с подсказкой Enter source из любого источника и нажать кнопку Encrypt. Шифрование будет выполнено с использованием выбранного ранее публичного ключа.


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


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

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

    Пара (тысяч) слов об алгоритме

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

    Выбор алгоритмов сейчас доступен очень широкий. Именно он в большой степени влияет на качество конкретной реализации PGP. Обычно используют AES и RSA, а из хеш-функций выбирают ту, что, по современным представлениям, наименее подвержена коллизиям (RIPEMD-160, SHA-256). В PGPTools для шифрования данных используется алгоритм IDEA, для управления ключами и цифровой подписи - RSA. Хеширование происходит с помощью функции MD5.

    Сам многостадийный процесс (де)шифрования данных у любой программы реализован в одном из наборов общедоступных криптографических библиотек. Все создаваемые PGPTools ключи содержат в названии версии BCPG, что косвенно указывает на использование Bouncy Castle OpenPGP API. При проверке этого предположения в файле com.safetyjabber.pgptools.apk было обнаружено прямое указание на библиотеки Bouncy Castle.

    Они реализуют схему OpenPGP согласно RFC 4880, но имеют свои особенности. Одна из них состоит в том, что (в зависимости от выбранной версии) в них может не применяться подключ шифрования. Также в этих библиотеках замечены ограничения эффективной длины ключа. Это означает, что выше некоего предела (обычно 1024 бита) попытка создать ключ большей длины не будет иметь практического смысла. Алгоритм не сможет обеспечить высокое качество ключей, поскольку в парах появится слишком много совпадающих блоков.

    Для проверки мы экспортировали публичный и секретный PGP-ключ каждой пары в текстовый файл и сравнили их. У пары ключей с длиной 1024 бита повторяющихся фрагментов нет, как и должно быть в качественной реализации.


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


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


    Утешительный вывод

    Выявленные в ходе тестирования недостатки носят общий характер. Они типичны для многих программ, поскольку касаются кода не самого приложения, а используемых в нем популярных библиотек. Криптографическое сообщество рекомендует разработчикам избегать Bouncy Castle OpenPGP. Мы надеемся, что в следующих версиях авторы PGPTools возьмут за основу более продвинутые реализации.

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

    Спецпроект с компанией SJ

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

    В несанкционированном сборе и анализе данных замечены поисковые системы и некоторые из известных социальных сетей. Если у вас есть информация которую вы хотите максимально скрыть от любопытных глаз в интернете, социальных сетях, от близких или коллег, самое время воспользоваться сервисом Encipher.it. Благодаря использованию этого сайта, вы сможете , находясь в Интернете. Кстати, если вы хотите быть анонимным при использовании Facebook — вас можете заинтересовать .

    Этот сервис очень прост в работе, однако качественно скрыть вашу сообщения, посты и другую информацию от посторонних глаз ему под силу. Encipher.it шифрует сообщение при помощи алгоритма AES, который был разработан заказу правительства США. Инструмент работает с самыми разными объемами и типами текстов, поэтому может применяться в самых разных ситуациях. Простота и легкость шифрования и дешифровки дают возможность использования Encipher.it даже тем, кто первый раз столкнулся с подобной необходимостью.

    Результатом работы букмарклета будет информация которую смогут прочитать только тем кому она предназначена. Encipher.it зашифровывает любой текст введенный в текстовом окне таким образом, что на первый взгляд это беспорядочный набор букв, цифр и других символов. Установка и последующая работа с программой не представляют никакой сложности: для того что бы начать работу с этим инструментом необходимо зайти на сайт Encipher.it, скачать и установить букмарклет в свой браузер. После этого можно приступать к шифрованию сообщений. После того как отправляемый текст готов, нужно перед отправкой сообщения или письма нажать на значок букмарклета для запуска инструмента. На экране появится окно с просьбой ввести придуманный пароль-ключ («Enter encryption key»).

    Пароль-ключ к зашифрованному сообщению вы сообщаете адресату отдельно, любым удобным для вас путем. Когда адресат получить письмо или сообщение, то для того что бы прочитать его, он так же должен будет нажать на значок Encipher.it и ввести в появившемся окне пароль-ключ. Приложение проанализирует весь текст и найдя зашифрованные строчки сразу же покажет их в расшифрованном виде. Получатель может не устанавливать букмарклет на свой компьютер, а воспользоваться для расшифровки фрагмента текста точно такой же формой на сайте Encipher.it. Открыв страницу сайта необходимо просто скопировать зашифрованные строчки в специальную форму (TRY IT)и ввести пароль-ключ.

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

    Видео.
    Полезное видео, о том как можно зашифровать свою информацию.

    Криптографические сервисы для электронной почты разработаны давно, но и спустя 25 лет после появления PGP они не особенно востребованы. Причина в том, что они базируются на устаревшей инфраструктуре передачи сообщений, вынуждены использовать недоверенную среду (в том числе произвольный набор почтовых серверов), имеют ограниченную совместимость, растущую массу известных недостатков, да и просто сложны для рядового пользователя. Ты-то легко разберешься в премудростях криптографии, а вот твой вечно занятой начальник однажды запутается в двух ключах и выложит секретный на сервер, разом спалив всю вашу переписку. Виноватым, конечно, назначат тебя.

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

    Иными словами, в криптографической защите почты сочетаются методы противодействия НСД и атаке посредника, имеющие принципиально разные решения. К сожалению, их часто путают и пытаются использовать не самые подходящие методы. Я предлагаю тебе небольшой рассказ о двух известных криптографических персонажах, который должен расставить все по своим местам и наглядно продемонстрировать проблемы с шифрованием почты. Как говорится, нет повести секретнее до гроба, чем повесть про Алису и про Боба!

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

    Алиса получает странное письмо, видит в нем знакомое начало S3CRYPT и понимает, что надо использовать CryptoData с тем ключом, которым они когда-то обменялись с Бобом. Вот только с тех пор много всего произошло, и каким был этот ключ - она может не вспомнить.

    Попытка расшифровать письмо

    Если Алиса проявит чудеса мнемотехники и все-таки введет верный ключ, сообщение от Боба примет читаемый вид.

    Письмо расшифровано

    Однако девичья память далеко не EEPROM, поэтому Боб получает неожиданный ответ.

    Конечно, Боб знает, как пользоваться PGP. Вот только последний раз он это делал в почтовом клиенте The Bat, который был установлен на взорванном ноутбуке. Как проверить присланный ключ? Вдруг прямо сейчас Алису пытают, а ему отвечают с ее адреса и пытаются выведать секреты? Поэтому Боб просит дополнительных гарантий подлинности ключа. Например, можно попросить Джека проверить и подписать его.

    Сеть доверия PGP

    Алиса реагирует немного странно. Она сообщает новость о внезапном исчезновении Джека и предлагает альтернативный способ верификации. Впрочем, не слишком надежный. Простейшая цифровая подпись S/MIME подтвердит лишь адрес отправителя, но не его личность. Поэтому Боб прибегает к хитрости: он просит подтвердить ключ по другому каналу связи, заодно проверяя общий с Алисой секрет, который знали только они.

    Использование отпечатка ключа и общего секрета

    Спустя некоторое время ему приходит СМС с верным отпечатком ключа и новое письмо от Алисы.

    Отпечаток ключа и ответ на секретный вопрос

    Письмо выглядит убедительно, отпечаток ключа совпадает, но Боб - тертый калач. Прочитав ответ на секретный вопрос, он понимает, что беседует не с Алисой.

    Последнее сообщение Боба псевдо Алисе

    ГЕОМЕТРИЯ ШИФРОВАНИЯ

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

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

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

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

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

    CryptoData доступен для браузера Firefox в качестве аддона. Также он поддерживает почтовые клиенты Thunderbird и SeaMonkey. Текст шифруется по алгоритму AES. Несмотря на его блочную природу, в режиме счетчика (CTR) с его помощью реализуется потоковое шифрование.

    К плюсам CryptoData можно отнести известную реализацию AES-CTR через JavaScript. Главный же недостаток CryptoData (как и любой симметричной системы) - безопасно обмениваться ключами невозможно.

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

    Менее значимый минус - узнаваемое начало всех зашифрованных текстов. После стандартного начала «S3CRYPT:BEGIN» открытым текстом указывается используемый алгоритм и режим шифрования (AESCTR или RC4). Это упрощает выборочный перехват зашифрованных сообщений (обычно в них пишут все самое важное) и их взлом.

    Подобно CryptoData работали CryptFire, Encrypted Communication и многие другие расширения.

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

    ОТ АЛГОРИТМОВ К СТАНДАРТАМ ШИФРОВАНИЯ ПОЧТЫ

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

    В свою очередь, PGP и любая другая криптосистема базируется на нескольких алгоритмах шифрования, которые используются на разных этапах работы. Самым распространенным среди алгоритмов асимметричного шифрования остается RSA. Он же используется в оригинальной криптосистеме PGP Филиппа Циммерманна. В ней RSA применяется для шифрования 128-битного хеша MD5 и 128-битного ключа IDEA.

    У различных форков PGP (например, у того же GnuPG) есть свои алгоритмические отличия. Но если криптосистемы удовлетворяют требованиям общего стандарта OpenPGP, то они остаются совместимыми друг с другом. Собеседники могут вести защищенную переписку с помощью разных версий криптографических программ, в том числе и предназначенных для разных платформ. Поэтому составленное в Thunderbird для Linux письмо, зашифрованное PGP, может быть прочитано в The Bat для Windows и даже через браузер с поддержкой OpenPGP на уровне дополнений.

    ШИФРОВАНИЕ ПОЧТЫ С ПОМОЩЬЮ OPENPGP

    OpenPGP был предложен в 1997 году, но развитие стандарта было сложным из-за судьбы самого алгоритма PGP. Права на него последовательно переходили от Циммерманна и PGP Inc. к Network Associates (McAfee), PGP Corporation и Symantec. Каждый из новых правообладателей менял конечную реализацию алгоритма. Не исключено, что в McAfee и Symantec ослабляли его криптографическую стойкость по требованию властей. Например, снижая качество генератора псевдослучайных чисел, эффективную длину ключа или даже внедряя программные закладки.

    Поэтому в 1999 году появилась открытая реализация GnuPG. Считается, что за ней стоит фонд FSF, но на деле GnuPG разработал всего один человек - немецкий программист Вернер Кох, который когда-то впечатлился речью Столлмана и решил сделать «правильный, открытый PGP». Позже он неоднократно намеревался забросить поддержку GnuPG, но в решающий момент находил новые стимулы продолжать ее.

    Сейчас Коху 53 года, он безработный и много раз находился на пороге нищеты до того момента, как сумел собрать более 300 тысяч долларов с помощью разных краудфандинговых кампаний. Ему перечисляли деньги из Linux Foundation и от простых пользователей, давали гранты Facebook и Stripe - просто потому, что судьба GPGTools, Enigmail, Gpg4win и многих других популярных проектов в мире СПО целиком зависит от его желания продолжать развитие GnuPG.

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

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

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

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

    S/MIME

    Если у OpenPGP столько принципиальных недостатков, то есть ли ему альтернатива? И да и нет. Параллельно развиваются другие стандарты шифрования почты, в том числе и с использованием открытого ключа. Вот только пока что они устраняют одни недостатки ценой появления других. Яркий пример тому - S/MIME (Secure/Multipurpose Internet Mail Extensions). Начиная со второй версии, появившейся еще в 1998 году, S/MIME стал общепринятым стандартом. Настоящая популярность пришла к нему годом позже, когда третью версию S/ MIME стали поддерживать такие почтовые программы, как Microsoft Outlook (Express) и Exchange.

    S/MIME упрощает задачу распространения публичных ключей в недоверенной среде, поскольку контейнером для открытого ключа служит цифровой сертификат, который обычно имеет одну или несколько цифровых подписей. С тяжелой руки Microsoft современная концепция криптографии с открытым ключом часто реализуется именно посредством цифровых сертификатов и цепочек доверия. Сертификаты выдаются конкретному субъекту и содержат его открытый ключ. Подлинность самого сертификата гарантируется (обычно за деньги) его эмитентом - то есть выпустившей организацией, которой изначально доверяют все участники переписки. Например, это может быть Thawte, VeriSign, Comodo или другая крупная компания. Простейший сертификат, подтверждающий только адрес электронной почты, можно получить бесплатно.

    Теоретически цифровой сертификат решает сразу две проблемы: он позволяет легко найти открытый ключ нужного пользователя и убедиться в его подлинности. Однако на практике в механизме доверенных сертификатов и стандарте S/MIME до сих пор есть серьезные уязвимости, делающие возможными дополнительные векторы атак помимо тех, что актуальны для OpenPGP. Так, в 2011 году была произведена атака на сертификационные центры DigiNotar и Comodo, в результате чего были выпущены сотни поддельных сертификатов от имени самых популярных сетевых узлов: addons.mozilla.com, login.skype.com, login.yahoo.com, mail.google.com и других. В дальнейшем они использовались в разных сценариях атак, включая MITM, рассылку фишинговых писем и распространение зловредов, подписанных сертификатами известных фирм.

    ШИФРОВАНИЕ ВЕБ-ПОЧТЫ И МОБИЛЬНЫЕ КЛИЕНТЫ

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

    Многие помнят Hushmail - первый веб-сервис электронной почты с шифрованием по стандарту OpenPGP на стороне сервера. Уверен, кто-то пользуется им до сих пор, считая надежным. Ведь все письма, как утверждается, в нем хранятся на собственном защищенном сервере и передаются на внешние адреса через другой сервер с поддержкой SSL. Почти десять лет компания уверяла, что расшифровать письма ее клиентов невозможно. Однако в 2007 году Hushmail была вынуждена признать, что имеет такую техническую возможность и предоставляет ее по требованию властей, а также протоколирует IP-адреса своих клиентов и собирает о них «другую статистику» - вдруг компетентные органы ее запросят.

    Впрочем, черт бы с Hushmail. Большинство людей сегодня пользуется Gmail, который активно развивается. «Очень активно, - подсказывает Мэттью Грин, профессор криптографии из Университета Джонса Хопкинса. - Скоро исполнится два года, как Google обещала внедрить сквозное шифрование почты. Ну и где оно?»

    Любопытно, что, помимо Google, в разное время это обещали сделать Yahoo, Microsoft и другие. Есть очевидное объяснение тому, почему компании с ежегодной прибылью на уровне миллиардов долларов до сих пор не смогли внедрить сквозное шифрование. Оно подразумевает выполнение криптографических операций в доверенной среде и передачу сообщений через недоверенные узлы только в зашифрованном виде. Реализовать это без контроля над устройствами практически невозможно.

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

    Именно так взломали итальянскую Hacking Team: атакующий получил удаленный доступ к одному из компьютеров в локальной сети компании, а затем просто дождался, когда кто-то из сотрудников сам откроет контейнер TrueCrypt со всей секретной перепиской и документацией. Без доверенной среды хоть шифруй, хоть не шифруй - все равно получишь лишь иллюзию защиты.

    Приложения для шифрования почтовой переписки.

    Mailvelope - одно из самых продвинутых расширений для шифрования почты в Google Chrome. Мы уже ранее о нем, и уже тогда это была качественная разработка.

    Управление ключами в Mailvelope

    Базовую функциональность PGP в браузере обещают и другие расширения, но у них полно своих недостатков. У аддона Pandor логика работы вообще странная. По замыслу, пользователи регистрируются на сайте pandor.me и генерируют ключи PGP. Все они хранятся на сервере и автоматически используются для шифрования и дешифрования. При этом обмениваться ключами не надо. Удобно? Может быть. Однако те, кто жертвуют удобством ради безопасности, в итоге лишаются и того и другого. Секретный ключ неспроста называется так, а безопасно сгенерировать пару ключей можно только локально.

    Шифрование почты с помощью Keybase.io

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

    Keybase.io подтверждает не только валидность открытого ключа собеседника и адрес его электронной почты, но и URL личного сайта, а также аккаунты пользователя в Twitter и GitHub, если они есть. Одним словом, если твои собеседники загружают свои открытые ключи на Keybase.io, то ты всегда сможешь отыскать их там вместе с актуальными контактными данными.