Сквозное шифрование
Сообщения, файлы и звонки шифруются на устройствах отправителя и получателя. Сервер участвует только в установлении соединения и видит исключительно зашифрованный трафик.
Шифрование на устройствах
Содержимое шифруется и расшифровывается локально, на конечных устройствах. Ключевой материал не покидает устройства в открытом виде, а сервер не обладает ключами для расшифровки. Это и есть сквозное шифрование: данные защищены на всём пути между собеседниками.
Защищённый транспорт
Поверх прикладного шифрования весь трафик идёт через защищённые транспортные слои:
- TLS — для обращений к API сервера и сигнального WebSocket-канала;
- DTLS-SRTP — для медиапотоков звонков и P2P-каналов передачи данных через WebRTC.
Таким образом, даже метаданные установления соединения передаются по зашифрованному каналу, а содержимое звонков и файлов защищено на транспортном уровне дополнительно к прикладному шифрованию.
Идентичность и подписи
У каждого устройства есть пара ключей идентичности на основе X25519 (для согласования ключей) и Ed25519 (для подписей). Сигнальные и P2P-сообщения подписываются и проверяются на стороне получателя, а встроенная защита от повторного воспроизведения (anti-replay) отвергает устаревшие или продублированные сигналы.
Подлинность собеседника можно подтвердить визуально через код безопасности — он вычисляется из ключей обеих сторон и совпадает только при соединении именно с нужным человеком.