Безопасность

Построен так, чтобы никому не нужно было доверять

Crocodile спроектирован так, чтобы ни серверы, ни сети, ни даже друг, который является хостом комнаты, не могли прочитать, что вы говорите. Эта страница объясняет, что защищено, что нет и как.

Что защищено

Ваш голос

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

Ваши сообщения

Читать их могут только участники пространства или личной переписки, сейчас и потом. Они хранятся на устройствах участников, никогда на сервере.

Ваша личность

Она есть только у ваших устройств и у того, у кого ваш ключ восстановления. Она хранится зашифрованной в системном хранилище ключей.

Что видят серверы, а чего нет

Ни одна система, которая соединяет людей, не свободна от метаданных. Вот где именно Crocodile проводит границу.

Серверы никогда не видят

  • Что вы пишете или говорите: содержимое зашифровано сквозным шифрованием, даже когда вы пользуетесь ретранслятором или почтовым ящиком.
  • Ваш номер телефона, почту или пароль: Crocodile их не просит.
  • Ваш список друзей и блокировки: они зашифрованы, поэтому прочитать их могут только ваши устройства.
  • Кто отправил запрос в друзья: запросы путешествуют как запечатанные заметки без имени отправителя.

Серверы видят

  • Публичные профили, названия пространств, списки каналов, членство и названия устройств.
  • Кто в сети и кто в какой голосовой комнате.
  • Пока вы подключены: за чьим присутствием вы следите и с кем начинаете личную переписку или звонок (это не хранится и не передаётся другим серверам).
  • IP-адреса, нужные, чтобы соединить приложения. Хост комнаты тоже видит IP-адреса участников.

Кто мог бы попытаться и что получил бы

Модель угроз перечисляет возможных злоумышленников и то, что каждый может, а чего нет. Вот краткое изложение нашей.

ЗлоумышленникМожетНе может
Тот, кто следит за сетьюВидеть, с какими IP-адресами вы общаетесь и сколько.Прочитать содержимое или метаданные либо понять, что вы говорите, по размеру пакетов.
Записать сейчас, расшифровать потомГодами хранить ваш зашифрованный трафик.Расшифровать его будущим квантовым компьютером: каждый обмен ключами гибридный постквантовый.
Вредоносный серверЛгать, кто в сети, задерживать или обрывать соединения, записывать метаданные.Прочитать содержимое, подделать профили, пространства или приглашения, подменить чьи-то ключи или вклиниться между двумя приложениями.
Оператор ретранслятора или почтового ящикаВидеть размер и время ретранслируемых пакетов или кто сколько сообщений оставил кому.Прочитать, изменить или подделать их.
Друг, который является хостом комнатыВидеть IP-адреса участников и кто когда говорит.Сделать что-то, чего не мог бы другой участник: его ретранслятор лишь пересылает зашифрованные пакеты.
Тот, кто покинул пространствоСохранить то, что уже видел.Прочитать что-либо, сказанное после его ухода: ключи заменяются, когда кто-то выходит.
Тот, кто украдёт ключПрочитать максимум текущий 30-минутный период ключа разговора.Прочитать предыдущие сообщения (ключи удалены) или последующие (новые ключи).
Тот, у кого ваш разблокированный компьютерВсё, что можете вы. Используйте шифрование диска и удалите потерянное устройство с другого.Получать новые сообщения после того, как вы удалите устройство.

Криптография

Хорошо изученные строительные блоки из проверенных библиотек с открытым кодом (@noble), соединённые стандартным способом.

Ed25519Подписи на каждой записи, сообщении и предложении соединения
X25519 + ML-KEM-768Гибридный постквантовый обмен ключами для каждого парного секрета
AES-256-GCMШифрование сообщений, голосовых кадров и соединений с серверами
HKDF-SHA256Вывод ключей и храповики, идущие только вперёд
DTLS-SRTPЗашифрованный транспорт WebRTC в основе
Padmé · CBR OpusСокрытие длины сообщений и ритма речи

Известные ограничения

Лучше узнайте о них от нас.

  • Независимого аудита пока не было. Конструкция и код публичны, но ни одна внешняя компания их ещё не проверяла. Пока этого не случится, не полагайтесь на Crocodile там, где от этого зависит ваша безопасность.
  • Устройства делят один ключ учётной записи. Удаление устройства прекращает доставку на него новых сообщений и ключей, но украденное устройство всё ещё могло бы подписывать от вашего имени. Отдельные ключи подписи для каждого устройства запланированы.
  • Часть метаданных видна. Серверы видят членство, а пока вы подключены — и с кем вы связываетесь. Сократить это запланировано.
  • Очень большие группы. Crocodile использует храповые ключи отправителя вместо MLS, поэтому замена ключей обходится дороже, чем больше группа. MLS запланирован для очень больших пространств.
  • Проверка ключей — вручную. Вы можете сравнить номера безопасности с другом, но приложение этого не предлагает.

Нашли проблему?

Пожалуйста, сообщайте о проблемах безопасности приватно через GitHub, чтобы их можно было исправить до того, как они станут публичными.