Пишем правильно! Готовые рецепты действительно защищённых персональных коммуникаций Евгений Золотов

Пишем правильно! Готовые рецепты действительно защищённых персональных коммуникаций

Евгений Золотов

Опубликовано 08 октября 2013

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

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

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

Пейджер со встроенным прозрачным шифрованием/дешифрованием (Pidgin, Audium — из тех, что open source) вроде бы сгодится, однако и здесь уже есть «но»: метаинформацию такой способ общения не скрывает — а значит, враг будет знать, с кем, где и когда вы общались, и эти сведения, возможно, станут ниточкой, потянув за которую он извлечёт всё ваше интернет-досье (см. «какой-либоКак АНБ строило свою соцсеть»). Кроме того, обмен мгновенными сообщениями, как правило, централизован, то есть ведётся через серверы компании — а её, естественно, могут принудить к сотрудничеству (почти так, как принуждают немногих провайдеров защищённой веб-почты: вспомните Lavabit).

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

Существует несколько клиентов TorChat, но все они предельно минималистичны. Здесь: TorChat из комплекта Debian GNU / Linux.

Вариант номер один представлен приложением TorChat. Если вы знакомы с TOR (поверх которой TorChat и работает), объяснить принцип действия этого инструмента будет просто. Вспомните о «подпространстве TOR», в котором невозможно определить IP-адрес узла: обмен информацией между TOR-клиентами ведётся посредством виртуальных криптоадресов (их принято писать с окончанием «.onion»), спрятать в это пространство можно любой интернет-сервис, и, кстати, именно здесь долгих два с половиной года прятался от преследователей магазин Silk Road.

Так же работает и TorChat. После запуска он генерирует уникальный 16-символьный .onion-адрес, который становится вашим идентификатором: на него вам могут присылать текстовые сообщения и файлы, с него пишете и посылаете файлы вы. TorChat пользуется всеми преимуществами TOR (ваш IP-адрес и метаинформация скрыты), но для пользователя криптографическая механика невидима — так что в обращении программа похожа на обычный интернет-пейджер или чат-клиент. Теоретически TorChat столь же надёжен, сколь и TOR. Недостатки в другом: сообщения доставляются только пока собеседник онлайн (ведь компании-посредника, которая хранила бы их, нет), адрес при переходе с устройства на устройство придётся поменять (знатоки, поправьте: вероятно, есть способ перенести конфигурационные файлы и сохранить адрес?), и ваши адресаты тоже должны пользоваться TOR.

Работает BitMessage.

Если перечисленные факторы для вас критичны, выручит второй вариант — экспериментальный протокол и одноимённое приложение-коммуникатор вообще-тоBitMessage. BitMessage похож на электронную почту: отправить письмо можно адресату, который отсутствует в Сети (правда, храниться оно будет максимум двое суток). Но технически имеет больше общего не с e-mail, а с криптовалютой Bitcoin. Напомню, идея Bitcoin сводится к ведению общего, видимого всем списка, в котором фиксируется, кто кому и сколько должен (подробнее см. «Bitcoin для чайников: три друга, монета и конфета»). И даже Bitcoin можно использовать для передачи сообщений открытым текстом: для этого вы отправляете на кошелёк адресата некую очень маленькую сумму, а в примечании к переводу размещаете собственно текст (вот пример того, что пишут сетяне в Федеральное бюро расследований — на кошелёк, где хранятся изъятые у Silk Road деньги).

BitMessage действует схожим образом: здесь все видят всё. Несколько упрощая, процесс выглядит так. Отправляемое сообщение шифруется открытым ключом получателя и — децентрализованное P2P в действии! — рассылается всем пользователям системы. В свою очередь, каждый пользователь пытается расшифровать своим ключом все проходящие через него сообщения: те, что адресованы ему, расшифровать удастся, остальные — нет. Наконец, отправка требует решения компьютером отправителя некоторой математической задачи (сложность которой определяет получатель), что просто и элегантно устраняет проблему спама. 

Посуточная статистика BitMessage.

Метаинформация в BitMessage размывается за счёт перемешивания сообщений от разных пользователей. Однако принцип «все видят всё», реализованный в чистом виде, сделал бы масштабирование системы вверх невозможным: представьте, каким будет трафик, проходящий через каждый узел BitMessage, когда количество отправляемых ежесуточно писем станет измеряться миллионами! Чтобы избежать паралича, в архитектуре BitMessage предусмотрено древовидное дробление адресов: грубо говоря, вышестоящий узел 1-го порядка («потока») обрабатывает трафик всех нижестоящих узлов (2-го, 3-го и следующих порядков), но нижестоящие вышестоящим не помогают.

Теоретически схема должна работать, но практически её ещё предстоит проверить: если TorChat существует уже шесть лет, то BitMessage не отпраздновал ещё и первого дня рождения. И если успешных атак не было (в августе один умник сумел извлечь IP-адреса пятисот клиентов BitMessage, но сделал он это не атакой на протокол, а благодаря невнимательности самих пользователей — прислав им ссылку на веб-страничку и попросив туда перейти), то масштабируемость вызывает опасения (идея иерархического дробления адресов малопонятна даже для айтишников).

Так или иначе, спрос есть. Я не нашёл статистики по TorChat, но в BitMessage каждые сутки доставляется полторы тысячи сообщений. О степени готовности к практическому употреблению судите сами. И просто ради интереса — мои адреса: zbz7hxstflme4brb и BM-NBfErHWGTgiGWKeXWCwqLBxfVAjPmprY.

В статье использована иллюстрация Timothi Brown.

К оглавлению