End-to-End шифрование в месседжере WhatsApp. Шифрование медиа и звонков.

Доброго дня, пикабушники!

В продолжении темы со сквозным шифрованием WhatsApp: http://pikabu.ru/story/endtoend_shifrovanie_v_messedzhere_wh...


В прошлый раз я остановился на шифровании прикрепляемых файлов.


Медиа и другие прикрепляемые файлы шифруются алгоритмом AES256 в режиме сцепления блоков (Cipher block chaining mode). Особенностью данного режима является то, что шифрование следующего блока зависит от предыдущего результата шифрования (иллюстрация ниже).

End-to-End шифрование в месседжере WhatsApp. Шифрование медиа и звонков. WhatsApp, Мессенджер, Шифрование, Длиннопост

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


Групповые сообщения


Эта часть является наиболее интересной, как мне кажется. Типовые мессенджеры для групповых общений без шифрования передают одно и то же сообщение N - 1 раз (N — количество участников). Это решение является простым и лаконичным. Многие мессенджеры с шифрованием для группы шифруют сообщение для каждого из участников, что повышает нагрузку на Ваше устройство (100 участников — 99 раз шифруем).


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


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


Голосовые звонки


Для передачи голосовых звонков используется стандарт sRTP, который применяется для потоковой передачи медиаданных. Сам стандарт внутри себя содержит шифрование SIP/TLS. Метод шифрования очень схож с тем, что применяется в HTTPS.


Проверка ключей


Последней интересной особенностью WhatsApp является возможность проверки открытых ключей, которые были получены с сервера. Это можно сделать либо с помощью сканирования QR-кода с экрана проверяемого устройства, либо вводом 60-значного ключа.

End-to-End шифрование в месседжере WhatsApp. Шифрование медиа и звонков. WhatsApp, Мессенджер, Шифрование, Длиннопост

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


На этом тему с WhatsApp можно закрыть. Спасибо за Ваши отзывы!


sRTP: https://www.rfc-editor.org/rfc/rfc3711.txt

WhatsApp Encryption Overview: https://www.whatsapp.com/security/WhatsApp-Security-Whitepap...

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий
А вот я думаю немой вопрос остался висеть. В чем все-таки разница между вайбером, ватсаппом, телеграмом? Почему нынче все говорят что ватсапп продалсо, и ломается на раз, а телега стоит костью в горле у ркн. Ведь по сути и там end to end и там end to end. И чем лучше пользоваться для тайны переписки и анонимности?
раскрыть ветку (7)
Автор поста оценил этот комментарий
Исходный код вотсаппа закрыт, end-to-end там есть, но теоретически может взламываться в любой момент. У Телеграма код открыт, шифрование надежно
Автор поста оценил этот комментарий

Одни люди делают видимость работы, другие рекламу. Для тайны переписки лучше пользоваться блокнотом с невидимыми чернилами и не выходить в Интернет :)

раскрыть ветку (1)
Автор поста оценил этот комментарий
А лучше вообще не общаться, но частенько вынуждает расстояние и необходимость обмена информацией
Автор поста оценил этот комментарий
Для тайны переписки xmpp, там то точно понятно что происходит, плюс все оборачивается в то же e2e шифрование, otr/omemo/rsa. Это не отменяет факта что в общем случае - звучит круто, может много крутых штук, но работает - крайне отстойно. Я думаю ты и предложить не можешь что в меседжере можно не получить отправленное тебе сообщение? Так вот, jabber это умеет-практикует, но вообще если бы в своё время он взлетел - скорее всего его бы привели в пристойный вид, но увы.
раскрыть ветку (3)
1
Автор поста оценил этот комментарий
И кому я там буду писать) ща про асю ток вкурсе каждый 20, а про джабер вообще днем с огнем не сыскать
раскрыть ветку (1)
Автор поста оценил этот комментарий
И в этом ты абсолютно прав, безопаснее - да, удобнее - ни разу, даже те два с половиной анонимуса-криптоанархиста, зашифрованных по полной, потихоньку оттуда уходят. Да и все крутые плюшки которые он вроде как может должен ещё и сервер поддерживать - что может и не быть
1
Автор поста оценил этот комментарий

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

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку