Криптостойкие андроиды. Почему шифрование в Signal, WhatsApp, Telegram и Viber не защитит твою переписку от взлома

16.07.2019

Сквозное (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 и других мессенджерах эта настройка по умолчанию отключена, так как она не несет большинству пользователей значимой информации. Также ключ меняется при долгом отсутствии собеседника онлайн - это и баг, и фича одновременно.


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

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

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

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

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

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

По схожему с разработчиками WhatsApp пути и интегрировали в свой мессенджер полноценное end-to-end шифрование, которое подразумевает под собой хранение приватных ключей шифрования на устройствах пользователей. В отличие от WhatsApp, который использует в качестве протокола end-to-end шифрования реализацию алгоритма Double Ratchet от Open Whisper Systems (Signal), авторы Viber написали его реализацию с нуля. При этом шифрованию подвергаются пересылаемые между пользователями текстовые сообщения, звонки, а также пересылаемые файлы. Функция доступна пользователям начиная с Viber 6.0.

Starting with Viber 6.0, all of Viber"s core features are secured with end-to-end encryption: calls, one-on-one messages, group messages, media sharing and secondary devices. This means that the encryption keys are stored only on the clients themselves and no one, not even Viber itself, has access to them. Viber"s protocol uses the same concepts of the «double ratchet» protocol used in Open Whisper Systems Signal application, however, Viber"s implementation was developed from scratch and does not share Signal"s source code.

Для организации end-to-end шифрования каждый из клиентов использует пару ключей: открытый и закрытый. Эта пара ключей алгоритма шифрования 256-bit Curve-25519 (ID ключа) для клиента Viber генерируется при установке мессенджера на основное устройство. Публичная часть ключа отправляется на сервер Viber, а приватная хранится на устройстве клиента для расшифровки приходящих сообщений. Прочие устройства, которые работают с этим аккаунтом Viber, также получают копию закрытого ключа от основного устройства с использованием специального криптографического алгоритма.

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

To send a secure message, secure sessions must exist between the sending device and all the recipient"s devices, as well as between the sending device and all the sender"s other devices. So for example, if user A that has a mobile phone and a PC registered to Viber under the same account wishes to communicate with user B that has a mobile phone and a PC, secure sessions must be established between each pair of devices.

Для использования данной функции шифрования пользователям следует обновить свое приложение Viber до новейшей версии.

Более подробную информации о шифровании Viber см.

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

Назначение скрытых чатов

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

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

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

Как можно открыть сообщения в скрытом чате

Как только на экране появится оповещение о новом полученном сообщении, его можно будет прочитать. Для того, чтобы открыть скрытый чат, потребуется:

  1. Открыть приложение Вибер;
  2. Перейти в раздел Чаты;
  3. Нажать на экранную кнопку в виде лупы (правый верхний угол);
  4. После чего система предложит ввести придуманный ранее ПИН;
  5. Если код совпадает – то будут отображены все скрытые чаты, которые имеются на устройстве;
  6. Можно начинать ими пользоваться, как самыми обычными чатами.


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

Практически все разработчики популярных мессенджеров позаботились о безопасности и анонимности своих пользователей. Именно эти два критерия для большинства людей становятся основополагающими при выборе подходящей программы. Основатели Viber не стали исключением, и в 2016 году объявили о введении в приложение новой функции – end-to-end encryption, что переводится как «сквозное шифрование».

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

Принцип работы сквозной защиты

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

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

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

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

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

Безопасность чатов

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

  1. Своевременное обновление приложения с каждым выходом новой версии. Сквозная защита чатов возможна только на актуальной версии программы.
  2. Верификация контактов, с которыми происходит регулярное общение.
  3. Блокировка сообщений от неизвестных отправителей. В случае необходимости всегда есть возможность их последующей разблокировки.
  4. Не стоит открывать сообщения, которые кажутся подозрительными.

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

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

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

Как именно функционирует секретный чат

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

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

Создание секретного чата

Можно перейти прямо из обычного диалога

Как видите, такой способ значительно быстрее первого.

Настройка автоудаления

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