Безпека

Збудований так, щоб нікому не треба було довіряти

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, щоб їх можна було виправити до того, як вони стануть публічними.