Как шифровать сообщения в любом мессенджере и соцсети

от автора

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

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

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


Способ использования всех утилит примерно одинаковый:

  1. Договариваемся с собеседником о секретном пароле или парольной фразе. Это может быть предложение из нескольких слов. Такое предложение легко запомнить и оно обеспечивает высокую энтропию.

  2. Копируем текст сообщения в форму.

  3. Нажимаем кнопку «Зашифровать» с указанием пароля.

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

  5. Адресат расшифровывает текст с помощью того же инструмента и пароля.

Веб-формы для шифрования

Есть программы для шифрования текста в браузере. Важно проверить, чтобы шифрование выполнялось строго на клиентской стороне. В этом случае пароль (ключ шифрования) не передаётся на сервер, так что вероятность утечки минимизируется. Проверка на локальность выполняется через мониторинг сетевых пакетов в DevTools («Инструменты разработчика» в браузере) или межсетевой экран вроде Little Snitch.

Encrypt Online

Encrypt Online

Расшифровать сообщение можно через браузерную форму Decrypt или локально в офлайне с помощью утилиты OpenSSL.

  • Paranoia Text Encryption, AES-256 в режиме EAX, ключ из пароля через Argon2

  • LOCK.PUB: создаёт в онлайне секретные зашифрованные заметки, прочитать которые можно по паролю, руководство

  • GCHQ CyberChef, опенсорcный инструмент от британской разведки GCHQ, множество режимов, подходит для более продвинутых пользователей.

  • AES Utils: AES-256-GCM с PBKDF2, простой интерфейс

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

Форма MagicTool для фиктивного шифрования

Форма MagicTool для фиктивного шифрования

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

Офлайновые программы для шифрования

Кроме браузерных форм, есть и классические нативные утилиты для Linux, Windows и macOS, которые тоже выполняют надёжное шифрование текстовых сообщений:

Многие из этих программ подходят и для шифрования файлов.

Шифрование файлов в Cryptomator

Шифрование файлов в Cryptomator

Стилистическое шифрование

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

Внизу указаны словари для шифрования

Внизу указаны словари для шифрования

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

Так выглядит обмен зашифрованными сообщениями

Так выглядит обмен зашифрованными сообщениями

В остальном инструмент работает стандартным способом, с применением стойких шифров. Используется сквозное шифрование X25519+AES-GCM, секретная часть ключа хранится только в браузере (для бэкапа ключа есть специальная кнопка в настройках), публичные ключи интегрированы в первые сообщения, затем обмен станет лаконичнее. Страница не обменивается никакими данными с сервером, она целиком статическая, только один index.html. Поэтому можно скачать и сохранить её локально у себя. Подробнее см. в репозитории проекта на Github.

ссылка на оригинал статьи https://habr.com/ru/articles/1030886/