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

WARNING

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

Еще в 2004 году наш соотечественник Никита Борисов совместно с Ианом Голдбергом разработал универсальный криптографический протокол для систем мгновенного обмена сообщениями. Протокол получил название OTR (Off-the-Record Messaging) и начал открыто распространяться под лицензией GPL в виде готовой библиотеки. В дальнейшем OTR стал основой других популярных протоколов с дополнительными методами повышения безопасности. В частности, протокола Signal, ранее известного как TextSecure. На базе Signal работает и большинство других современных мессенджеров.

 

Принципы шифрования переписки

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

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

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

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

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

Прямая и обратная секретность реализованы в современных механизмах управления ключами. В протоколе Signal для этого используется алгоритм «Двойной храповик» (Double ratchet, DR). Он был разработан в 2013 году консультантом по криптографии Тревором Перрином (Trevor Perrin) и основателем Open Whisper Systems Мокси Марлинспайком (Moxie Marlinspike).

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

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

В протоколе Signal реализовано и множество других интересных механизмов, описание которых выходит за рамки статьи. С результатами его аудита можно ознакомиться здесь.

 

Signal и его аналоги

Предоставляемое Signal сквозное шифрование сегодня применяется как в одноименном мессенджере от Open Whisper Systems, так и во многих сторонних: WhatsApp, Facebook Messenger, Viber, Google Allo, G Data Secure Chat — все они используют оригинальную или слегка модифицированную версию Signal Protocol, иногда давая им собственные названия. Например, у Viber это протокол Proteus — по сути, тот же Signal с другими криптографическими примитивами.

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

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

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

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

Включение уведомления о смене ключа в WhatsApp
Включение уведомления о смене ключа в WhatsApp

Как писал по этому поводу исследователь из Калифорнийского университета в Беркли Тобиас Бёлтер (Tobias Boelter), при атаке на сервис возможно создать новый ключ и получить сообщения вместо адресата. Более того, то же самое могут сделать и сами операторы серверов WhatsApp — например, по запросу спецслужб.

Разработчики протокола Signal опровергают выводы Бёлтера и встают на защиту WhatsApp. По их словам, подмена ключа дает доступ только к недоставленным сообщениям. Слабое утешение.

Включить уведомление о смене ключа можно в настройках, вот только на практике этот режим параноика вряд ли что-то даст. Мессенджер уведомляет о смене ключа только после повторной отправки сообщений. Считается, что так удобнее самим пользователям.

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


15 комментариев

  1. baragoz

    27.02.2017 at 14:42

    1. Скачал Телеграм
    2. О ДААА МЕНЕДЖЕР ДЛЯ ТЕРРОРИСТОВ КРУТО КРУТО ВСЕ ШИФРОВАНО
    3. При установке спросил твой мобильный телефон
    4. Без авторизации по мобильному телефону работать не будет
    5. Мобильный телефон привязан к паспорту
    6. Эээ…эээ…
    7. FFFUUUUUUUU

    • kremnevip

      27.02.2017 at 17:54

      Можно и на фейковый номер привязать

      • baragoz

        27.02.2017 at 20:08

        Можно, но сам факт. Кроме того, например, на Украине без паспорта можно симку купить.

    • 84ckf1r3

      27.02.2017 at 22:17

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

  2. shane54

    05.03.2017 at 13:11

    Живу в Германии. У нас в любом киоске/магазине/супермаркете продаются симки без контракта, никаких паспортов (20€, ещё и 10€ кредита будет). Какая разница на номер какой страны регистрировать учетку в мессенджере, годится любая. Даже non-RU лучше с учётом предыдущего комментария — вместо месяца на отработку десяти номеров, один такой немецкий попробуй пробей.

  3. friam

    06.03.2017 at 11:14

    я регаю телеге на виртуальные номера, которых полно в инете, и голова не болит 😉

  4. le

    15.03.2017 at 12:34

    Видимо теперь владельцы фейковых/виртуальных номеров читают вашу переписку

    • friam

      15.03.2017 at 12:54

      Видимо ты не особо в теме как это выглядит. За год, ни разу не было случая что бы еще кто то был залогинен с другого устройства на мою телегу с таких номеров.

  5. Foxcool

    30.03.2017 at 19:00

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

    • baragoz

      31.03.2017 at 11:50

      Да ну ясное дело. Слушайте, что за бред, если я хочу поставить Телеграм на ПК, я должен авторизоваться все равно по номеру телефона. Вообще охренеть. Вам какое дело до моего телефона? Логин, пароль, досведос.

  6. beck

    28.04.2018 at 15:58

    Лучший способ избежать компрометации переписки через месенджеры — не вести такую переписку.

    В статье не отражена ещё одна атака — на сам ключ шифрования. А там очень много нюансов…

Оставить мнение

Check Also

Ugears. Новые модели подвижных конструкторов из дерева

Услышав слова «деревянный конструктор», ты, наверное, представляешь себе этакий Lego для с…