WallyMates

Безпека і шифрування

Приватність у WallyMates — не один перемикач у налаштуваннях, а кілька незалежних рівнів захисту, кожен для своєї загрози: перехоплення на сервері, крадіжка телефону, MITM-атака під час дзвінка, синхронізація з веб-версією.

Наскрізне шифрування один на один — Static X3DH

Особисті чати шифруються власною реалізацією Static X3DH (потрійний Diffie-Hellman обмін на основі ідентифікаційного ключа, підписаного pre-key і ефемерного ключа — спрощена, «SESAME-lite» схема багатопристрійних сесій за мотивами підходу Signal) з AES-256-GCM. Ключ шифрування виводиться окремо для кожної пари пристроїв — без ланцюга Double Ratchet і без одноразових pre-key, простіша модель, ніж класичний Signal-протокол, але сервер так само ніколи не бачить вміст і не отримує жодного з ключів.

Наскрізне шифрування в групах — Sender Key

Групове листування не можна ефективно шифрувати так само, як один-на-один — довелося б окремо шифрувати кожне повідомлення для кожного учасника. Замість цього WallyMates використовує схему Sender Key (v5): кожен учасник генерує власний ключ AES-256 для конкретної групи і поширює його іншим учасникам, зашифрувавши персонально через той самий наскрізно зашифрований канал, що й звичайні особисті повідомлення, — сервер бачить лише зашифровані блоки, не сам ключ. Самі повідомлення в групі після цього шифруються швидким AES-256-GCM цим спільним ключем — без повторного узгодження ключа на кожне повідомлення. Протокол бітово сумісний між Android і Windows — одна й та сама схема поширення й шифрування ключів на обох платформах.

Перевірка дзвінків — захист від MITM

Голос і відео в дзвінку захищені окремо (див. розділ «Дзвінки»), але лишається питання: як пересвідчитись, що дзвоните саме тій людині, а не комусь, хто підмінив з’єднання? Під час дзвінка застосунок показує «відбиток дзвінка» — послідовність з 96 емодзі, обчислену з довгострокових ідентифікаційних ключів обох співрозмовників. Якщо порівняти цю послідовність уголос і вона збігається — підміна виключена: зловмиснику знадобився б приватний ключ співрозмовника, якого немає навіть у сервера. Це та сама ідея, що «код безпеки» в Signal чи WhatsApp, і алгоритм ідентичний на Android і Windows.

Синхронізація з веб-версією

Веб-мессенджер (web.worldmates.club) — окремий випадок: щоб показати історію листування в браузері, повідомлення додатково перешифровуються ключем Web Sync (AES-128) і зберігаються в базі даних у зашифрованому вигляді. Це свідомий компроміс: без нього веб-версія просто не змогла б показувати історію чатів.

Якщо приватність листування критична — користуйтесь мобільним застосунком або секретними чатами, а веб-версію лишайте для разових розмов.

Локальне сховище

Захист акаунта