Ваш застосунок
Зберігає ваші ключі, шифрує все, що ви надсилаєте, і розшифровує те, що отримуєте. Ваша історія повідомлень живе тут і більше ніде.
Знає: Усе, що ви надсилаєте й отримуєте: це ваше.
Як це працює
Огляд архітектури й протоколу простими словами. Кожен розділ починається з ідеї; відкрийте «Під капотом», щоб побачити технічні подробиці.
Розділ 1
Crocodile розподіляє роботу так, щоб ваші слова бачили лише ті, з ким ви говорите, а частини, якими керують сторонні, не бачили їх ніколи.
Зберігає ваші ключі, шифрує все, що ви надсилаєте, і розшифровує те, що отримуєте. Ваша історія повідомлень живе тут і більше ніде.
Знає: Усе, що ви надсилаєте й отримуєте: це ваше.
У кожній голосовій кімнаті чи просторі обирають застосунок одного учасника, щоб передавати зашифрований трафік іншим. Це такий самий учасник, як усі.
Знає: IP-адреси учасників і хто говорить, але ніколи — що саме.
Комутатори, які підтримують волонтери: зберігають профілі й простори, кажуть, хто онлайн, і обирають хостів. Вони об’єднуються в одну мережу.
Знає: Профілі, членство й хто онлайн, але ніколи — що сказано.
Телефонна книга координаційних серверів, щоб нові застосунки знали, з чого почати. Про людей він не знає нічого.
Знає: Лише список серверів.
Розділ 2
Коли ви встановлюєте Crocodile, застосунок створює на вашому комп’ютері випадковий секрет завдовжки 32 байти. З нього виходять два ключі: один для підпису того, що ви публікуєте, а другий для отримання зашифрованих повідомлень. Ваш ідентифікатор — це відбиток ключа підпису.
Оскільки ідентифікатор обчислюється з ключа, сервер не може підмінити ключ і видати себе за вас. Немає пароля, який можна вкрасти, і немає скидання, до якого можна вмовити службу підтримки. Секрет показують вам один раз як ключ відновлення, і він лишається на ваших пристроях, зашифрований системним сховищем ключів.
K7QF-M2XA-…-9PD4Ed25519X25519 + ML-KEM-768hash(🔑) → 4gq7…xk2mРозділ 3
Ваш застосунок завантажує з каталогу список координаційних серверів, вимірює, як швидко кожен відповідає, і під’єднується до найшвидшого. Другий чекає в резерві, тож якщо ваш сервер зникне, застосунок одразу перемкнеться.
Перш ніж щось відбудеться, сервер доводить, хто він, а застосунок і сервер узгоджують ключі для цього з’єднання. Відтоді навіть метадані, якими вони обмінюються, зашифровані поверх HTTPS, тож це безпечно працює і на домашньому сервері.
Розділ 4
Ваш профіль, простори, які ви створюєте, їхні запрошення та склад учасників — це невеликі записи, підписані тим, хто їх написав. Сервери зберігають їх і діляться ними, а кожен сервер і кожен застосунок перевіряє підписи. Сервер може відмовитися передати запис, але не може його змінити чи вигадати.
Координаційні сервери знаходять один одного й утворюють мережу. Кожен запис зберігають кілька серверів, обраних за хешем, і вони копіюють зміни один одному, тож мережа працює далі, коли будь-який сервер падає.
profile:4gq7…xk2mРозділ 5
Коли люди заходять у голосову кімнату чи відкривають простір, координаційний сервер дивиться на з’єднання кожного (наскільки відкрита мережа, яка швидкість вивантаження, який комп’ютер, чи працює від батареї) і обирає хостом найкраще розташованого учасника. Наступний — резервний.
Усі під’єднуються до застосунку хоста, який передає зашифрований звук. Щоб не перевантажувати з’єднання, він пересилає кожному слухачеві лише кількох найгучніших мовців. Звук у відкритому вигляді в нього ніколи не буває: він просто переносить запечатані пакети.
Якщо хост вийде або стане недоступним, його замінить резервний, і всі перепід’єднаються до нього, зазвичай раніше, ніж хтось помітить.
Усі під’єднуються до хоста.Хоста немає: його заміняє резервний.
Розділ 6
Усе шифрується на вашому пристрої, перш ніж його залишити, і ключі мають лише учасники розмови. Ось що відбувається з повідомленням дорогою.
Ваш застосунок підписує повідомлення, щоб інші могли довести, що воно від вас, доповнює його, щоб довжина нічого не видавала, шифрує ключем, який мають лише учасники розмови, і надсилає з’єднанням, яке саме зашифроване. Будь-хто посередині бачить лише перемішані байти стандартного розміру.
Ключі обмінюються гібридно: X25519, перевіреним класичним методом, і ML-KEM-768, новим постквантовим стандартом. Зловмисникові довелося б зламати обидва. Це важливо, бо хтось може вже сьогодні записати зашифрований трафік і чекати, доки квантовий комп’ютер його розшифрує.
ВидаленіЦе повідомленняНаступні
Ключ кожного учасника обертається, як храповик: після кожного повідомлення його замінює наступний у ланцюжку, що йде лише вперед, а старий видаляється. Той, хто викраде ключ сьогодні, не прочитає вчорашніх повідомлень. Кожні 30 хвилин і щоразу, коли хтось виходить, усі починають новий ланцюжок із нових випадкових ключів, тож викрадений ключ теж швидко стає непотрібним.
Ваш голос шифрується маленькими кадрами, приблизно п’ятдесят на секунду, одразу після мікрофона й до того, як потрапить у мережу. Кадр, який не вдається зашифрувати, відкидається і ніколи не йде відкритим. Голос має сталий бітрейт, тож розмір пакетів не видає, що ви кажете.
Розділ 7
Деякі мережі, як-от суворі брандмауери в офісах чи університетах, блокують прямі з’єднання між комп’ютерами. Crocodile повідомляє, коли так стається, і ви можете дозволити координаційному серверу ретранслювати ваш трафік.
Ретранслятор передає пакети, які вже наскрізно зашифровані: він бачить їхній розмір і час, але не вміст. Дозвіл діє годину й поновлюється лише доти, доки він потрібен.
Розділ 8
Жоден сервер не зберігає вашої історії, тож застосунки Crocodile передають повідомлення одне одному. Ось що відбувається, коли ви пишете комусь, хто офлайн.
Повідомлення потрапляє до вихідних вашого застосунку й показує маленький годинник.
Щойно ви обоє онлайн, ваш застосунок передає його, запечатане для пристрою друга.
Його застосунок підтверджує отримання, і годинник зникає. Учасники, які пропустили повідомлення в просторі, надолужують їх у хоста й резервного.
За бажанням сервер зберігає особисті повідомлення до 7 днів, запечатані для кожного пристрою, щоб він не міг їх прочитати, і видаляє їх після доставки.
Розділ 9
Новий комп’ютер показує короткий код. Введіть його на комп’ютері, де ви вже ввійшли, і перевірте, що обидва екрани показують однаковий шестизначний код безпеки. Якщо коди збігаються, ваш обліковий запис передається в зашифрованому вигляді, і новий пристрій готовий.
Код безпеки охоплює ключі обох пристроїв, тож якби хтось спробував підмінити один дорогою, коди б не збіглися, і ви б це помітили.
Коди збігаються: можна зв’язати
Терміни, які трапляються в текстах про безпеку, кожен в одному-двох реченнях.