Bezpieczeństwo

Zbudowany tak, by nikomu nie trzeba było ufać

Crocodile jest zaprojektowany tak, by ani serwery, ani sieci, ani nawet znajomy, który jest gospodarzem pokoju, nie mogli przeczytać, co mówisz. Ta strona wymienia, co jest chronione, co nie jest i w jaki sposób.

Co jest chronione

Twój głos

Słyszą go tylko uczestnicy rozmowy. Jest szyfrowany na Twoim komputerze, ramka po ramce, zanim go opuści.

Twoje wiadomości

Czytać je mogą tylko członkowie przestrzeni lub rozmowy prywatnej, teraz i później. Są przechowywane na urządzeniach uczestników, nigdy na serwerze.

Twoja tożsamość

Mają ją tylko Twoje urządzenia i ten, kto ma Twój klucz odzyskiwania. Jest przechowywana zaszyfrowana pękiem kluczy systemu.

Co serwery widzą, a czego nie

Żaden system, który łączy ludzi, nie jest wolny od metadanych. Oto dokładnie, gdzie Crocodile stawia granicę.

Serwery nigdy nie widzą

  • Tego, co piszesz lub mówisz: treść jest zaszyfrowana end-to-end, także gdy korzystasz z przekaźnika lub skrzynki.
  • Twojego numeru telefonu, e-maila ani hasła: Crocodile o nie nie prosi.
  • Twojej listy znajomych i blokad: są zaszyfrowane, więc odczytać je mogą tylko Twoje urządzenia.
  • Kto wysłał zaproszenie do znajomych: zaproszenia podróżują jako zapieczętowane notatki bez nazwy nadawcy.

Serwery widzą

  • Publiczne profile, nazwy przestrzeni, listy kanałów, członkostwa i nazwy urządzeń.
  • Kto jest online i kto jest w którym pokoju głosowym.
  • Gdy jesteś połączony: czyją obecność obserwujesz i z kim zaczynasz rozmowę prywatną lub połączenie (nie jest to zachowywane ani przekazywane innym serwerom).
  • Adresy IP, potrzebne do łączenia aplikacji ze sobą. Gospodarz pokoju też widzi adresy IP uczestników.

Kto mógłby spróbować i co by zyskał

Model zagrożeń wymienia możliwych napastników i to, co każdy z nich może, a czego nie. To podsumowanie naszego.

NapastnikMożeNie może
Ktoś, kto obserwuje siećZobaczyć, z jakimi adresami IP rozmawiasz i ile.Odczytać treści ani metadanych, ani wywnioskować, co mówisz, z rozmiaru pakietów.
Nagraj teraz, odszyfruj późniejPrzechowywać Twój szyfrowany ruch latami.Odszyfrować go przyszłym komputerem kwantowym: każda wymiana kluczy jest hybrydowa postkwantowa.
Złośliwy serwerKłamać, kto jest online, opóźniać lub zrywać połączenia, zapisywać metadane.Odczytać treści, podrobić profili, przestrzeni ani zaproszeń, podmienić czyichś kluczy ani wstawić się między dwie aplikacje.
Operator przekaźnika lub skrzynkiWidzieć rozmiar i czas przekazywanych pakietów albo kto zostawił ile wiadomości komu.Odczytać, zmienić ani podrobić ich.
Znajomy, który jest gospodarzem pokojuWidzieć adresy IP uczestników i to, kto kiedy mówi.Zrobić czegokolwiek, czego nie mógłby inny uczestnik: jego przekaźnik tylko przesyła szyfrowane pakiety.
Ktoś, kto opuścił przestrzeńZachować to, co już widział.Odczytać niczego, co powiedziano po jego wyjściu: klucze są wymieniane, gdy ktoś wychodzi.
Ktoś, kto ukradnie kluczOdczytać najwyżej bieżący 30-minutowy okres klucza rozmowy.Odczytać wcześniejszych wiadomości (klucze usunięte) ani późniejszych (nowe klucze).
Ktoś z Twoim odblokowanym komputeremWszystko, co Ty. Używaj szyfrowania dysku i usuń zgubione urządzenie z innego.Odbierać nowych wiadomości, gdy już usuniesz urządzenie.

Kryptografia

Dobrze zbadane elementy z audytowanych bibliotek o otwartym kodzie (@noble), łączone w standardowy sposób.

Ed25519Podpisy każdego rekordu, wiadomości i oferty połączenia
X25519 + ML-KEM-768Hybrydowa postkwantowa wymiana kluczy dla każdego wspólnego sekretu
AES-256-GCMSzyfrowanie wiadomości, ramek głosu i połączeń z serwerami
HKDF-SHA256Wyprowadzanie kluczy i łańcuchy idące tylko naprzód
DTLS-SRTPSzyfrowany transport WebRTC pod spodem
Padmé · CBR OpusUkrywanie długości wiadomości i rytmu mowy

Znane ograniczenia

Wolimy, żebyś usłyszał o nich od nas.

  • Brak niezależnego audytu. Projekt i kod są publiczne, ale żadna zewnętrzna firma ich jeszcze nie audytowała. Dopóki tak się nie stanie, nie polegaj na Crocodile, jeśli zależy od tego Twoje bezpieczeństwo.
  • Urządzenia dzielą jeden klucz konta. Usunięcie urządzenia zatrzymuje dostarczanie do niego nowych wiadomości i kluczy, ale skradzione urządzenie wciąż mogłoby podpisywać w Twoim imieniu. Klucze podpisu dla każdego urządzenia są w planach.
  • Część metadanych jest widoczna. Serwery widzą członkostwa, a gdy jesteś połączony, także to, z kim się kontaktujesz. Ograniczenie tego jest w planach.
  • Bardzo duże grupy. Crocodile używa zapadkowych kluczy nadawców zamiast MLS, więc wymiana kluczy kosztuje więcej, im większa grupa. MLS jest planowany dla bardzo dużych przestrzeni.
  • Sprawdzanie kluczy jest ręczne. Możesz porównać numery bezpieczeństwa ze znajomym, ale aplikacja Ci tego nie podpowiada.

Znalazłeś problem?

Zgłaszaj problemy z bezpieczeństwem prywatnie przez GitHuba, żeby można je było naprawić, zanim staną się publiczne.