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)
3
Автор поста оценил этот комментарий
То что он действительно шикарен как меседжер - не отменяет того факта что идёт привязка к номеру телефона, а значит клал он на секурность большой болт даже без просмотра того что внутри.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку