Коротко
- Без номера телефона и почты. Ваш аккаунт — это набор ключей, который живёт на вашем телефоне.
- Каждое сообщение, файл, группа и звонок зашифрованы сквозным шифрованием. Ключи есть только у участников разговора.
- Постквантовая защита стоит в каждом слое, а не только в сообщениях: файлы, группы, звонки и привязка компьютера.
- Сервер доставляет запечатанные конверты. Он не знает, кто кому пишет.
- Ядро шифрования открыто. Тесты можно запустить самому.
Где стоит защита
Что значит «два ключа сразу»
Обычное шифрование (X25519) годами защищает интернет, но большой квантовый компьютер сможет его взломать. Постквантовое (ML-KEM и ML-DSA, стандарты NIST 2024 года) создано, чтобы выдержать квантовый компьютер, но оно молодое.
Umbera не выбирает между ними. Каждый ключ собирается из обоих, поэтому он стоек, пока держится хотя бы один из них. Так же делают Signal, Apple и Google.
Всё, что шифруется общим ключом — AES-256 и ChaCha20, — к квантовым компьютерам уже стойко: ключей длиной 256 бит для этого достаточно.
Что знает сервер
Сервер хранит и пересылает запечатанные конверты. Вот что он может и чего не может узнать. Полная проверка с тестами и записью Wireshark — на странице «Доказательство».
Он не знает, кому вы пишете.
Отправитель запечатан внутри шифра. Конверты идут на адреса ящиков, которые могут вычислить только двое и которые не связаны с вашим аккаунтом. Когда новая версия у обоих, адрес выводится ещё и из постквантового секрета, а с ближайшего выпуска он меняется каждую неделю.
Он не видит, кто в группе.
Сообщение в группу уходит каждому участнику отдельным запечатанным конвертом обычного размера, в случайном порядке и с небольшой случайной задержкой, поэтому ни время, ни размер не выдают группу так просто.
Он не знает, что вы отправляете.
Текст, имена файлов, фото, голос и звонки шифруются на вашем устройстве. Размеры сообщений и файлов дополняются, поэтому размер не выдаёт содержимое.
Он не может незаметно подменить ключи.
Открытые ключи лежат в журнале, куда можно только дописывать, и приложение проверяет доказательство. А код безопасности можно сверить с собеседником лично.
Он не знает, кто вы, — но без Tor видит ваш IP-адрес.
Ни номера телефона, ни почты, ни загрузки контактов. Без Tor сервер видит IP-адрес, с которого вы подключаетесь, и время. Tor выключен, пока вы его не включите: приложение предлагает его при первом запуске, а позже его можно включить в настройках. С Tor сервер вашего IP-адреса не видит.
Ваш компьютер
Umbera для Windows, macOS и Linux связывается с телефоном по QR-коду. Ключи аккаунта остаются на телефоне и на компьютер не копируются никогда. У компьютера свои ключи, заверенные вашим телефоном.
Поэтому компьютер в чужих руках не уведёт аккаунт: его можно отключить с телефона, а выйдя в сеть, он сам сотрёт переписку и ключи. Смена пароля, фраза восстановления и удаление аккаунта — только на телефоне.
Всё, что отправляет компьютер, идёт тем же шифрованием, что и телефон, с теми же постквантовыми слоями.
Во время привязки сервер передаёт между устройствами зашифрованные данные привязки, прочитать их не может и удаляет сразу, как только компьютер зарегистрирован. Он хранит открытые ключи компьютера с подписью вашего телефона и знает, сколько компьютеров у аккаунта, — без этого отправитель не зашифрует сообщение для каждого. Название компьютера зашифровано.
Честные ограничения
Независимого аудита пока нет.
Код открыт и покрыт тестами, которые сверяют результат байт в байт, но внешняя фирма его ещё не проверяла. Заявки поданы, отчёт опубликуем целиком.
Со старыми версиями — прежние схемы.
Если у собеседника старая версия, звонок с ним идёт без постквантового слоя, а группа, где он есть, остаётся на прежнем наборе. Всё работает и остаётся под сквозным шифрованием. Когда все обновятся, постквантовые слои включатся сами.
Участники групп со старой версией подписывают классически.
Подписи участников MLS — Ed25519, как сегодня определяет стандарт. Umbera добавляет поверх подпись ML-DSA-65, но участник, у которого ещё старая версия, её не ставит, и его изменения принимаются по одной подписи Ed25519.
Со старой версией код безопасности покрывает только классические ключи.
Когда новая версия у обоих, код безопасности покрывает и постквантовые ключи, а на экране написано «Версия 2». Если у собеседника ещё старая версия, это версия 1: она проверяет ключи secp256k1 и X25519, а постквантовые ключи проверяет журнал прозрачности.
Адреса ящиков меняются пока не везде.
С ближайшего выпуска адрес ящика переписки меняется каждую неделю, в один и тот же момент у всех, — но только когда этот выпуск у вас обоих. Со старой версией собеседника адрес остаётся прежним. Адреса связанных компьютеров пока не меняются. А поскольку приложение опрашивает все свои ящики по одному соединению, сервер может увидеть, что несколько адресов принадлежат одному устройству, — но не чьё оно. Без Tor он видит ещё и ваш IP-адрес.
Взломанное устройство шифрование не спасёт.
Шифрование защищает данные в пути и на сервере. Если кто-то управляет вашим телефоном или компьютером, он прочитает то же, что и вы. Проверить телефон помогает Щит Umbera.
Если найдём ошибку
Исправим, выпустим исправление в обновлении и скажем, что было не так. Так уже было: каждый пункт аудита помечен в коде вместе с тем, что он исправил.
Нашли слабое место сами? Напишите нам — правила в SECURITY.md на GitHub.
Для разработчиков и криптографов
Форматы, формулы, метки и эталонные векторы — всё, чтобы проверить нашу работу.