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

We use cookies. Read the Privacy and Cookie Policy

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

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

Опубликовано 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.

К оглавлению