Twoja aplikacja
Przechowuje Twoje klucze, szyfruje wszystko, co wysyłasz, i odszyfrowuje to, co odbierasz. Historia wiadomości jest tutaj i nigdzie indziej.
Wie: Wszystko, co wysyłasz i odbierasz: to Twoje.
Jak to działa
Przegląd architektury i protokołu prostymi słowami. Każdy rozdział zaczyna się od idei; otwórz „Pod maską”, żeby zobaczyć szczegóły techniczne.
Rozdział 1
Crocodile dzieli pracę tak, by Twoje słowa widzieli tylko ci, z którymi rozmawiasz, a części prowadzone przez obcych nigdy ich nie widziały.
Przechowuje Twoje klucze, szyfruje wszystko, co wysyłasz, i odszyfrowuje to, co odbierasz. Historia wiadomości jest tutaj i nigdzie indziej.
Wie: Wszystko, co wysyłasz i odbierasz: to Twoje.
W każdym pokoju głosowym i przestrzeni aplikacja jednej osoby zostaje wybrana do przekazywania szyfrowanego ruchu pozostałym. To uczestnik jak każdy inny.
Wie: Adresy IP uczestników i to, kto mówi, nigdy treść.
Centrale prowadzone przez wolontariuszy: przechowują profile i przestrzenie, mówią, kto jest online, i wybierają gospodarzy. Łączą się w jedną sieć.
Wie: Profile, członkostwa i to, kto jest online, nigdy treść.
Książka telefoniczna serwerów koordynujących, dzięki której nowe aplikacje wiedzą, od czego zacząć. Nie wie nic o ludziach.
Wie: Tylko listę serwerów.
Rozdział 2
Gdy instalujesz Crocodile, aplikacja tworzy na Twoim komputerze losowy sekret o długości 32 bajtów. Powstają z niego dwa klucze: jeden do podpisywania tego, co publikujesz, i jeden do odbierania szyfrowanych wiadomości. Twój identyfikator to odcisk klucza do podpisywania.
Ponieważ identyfikator jest wyliczany z klucza, serwer nie może podmienić klucza i podszyć się pod Ciebie. Nie ma hasła do ukradzenia ani resetu, do którego dałoby się nakłonić pracownika pomocy. Sekret jest pokazywany raz jako klucz odzyskiwania i zostaje na Twoich urządzeniach, zaszyfrowany pękiem kluczy systemu.
K7QF-M2XA-…-9PD4Ed25519X25519 + ML-KEM-768hash(🔑) → 4gq7…xk2mRozdział 3
Aplikacja pobiera z katalogu listę serwerów koordynujących, mierzy, jak szybko każdy odpowiada, i łączy się z najszybszym. Drugi czeka w gotowości, więc gdy Twój serwer zniknie, aplikacja od razu się przełącza.
Zanim cokolwiek się wydarzy, serwer udowadnia, kim jest, a aplikacja i serwer uzgadniają klucze dla tego połączenia. Od tej chwili nawet metadane, którymi się wymieniają, są szyfrowane, niezależnie od HTTPS, więc działa to bezpiecznie także na domowym serwerze.
Rozdział 4
Twój profil, utworzone przez Ciebie przestrzenie, ich zaproszenia i lista członków to małe rekordy podpisane przez autora. Serwery je przechowują i udostępniają, a każdy serwer i każda aplikacja sprawdza podpisy. Serwer może odmówić przekazania rekordu, ale nie może go zmienić ani zmyślić.
Serwery koordynujące znajdują się nawzajem i tworzą sieć. Każdy rekord przechowuje kilka serwerów wybranych na podstawie skrótu i kopiują sobie zmiany, więc sieć działa dalej, gdy któryś serwer padnie.
profile:4gq7…xk2mRozdział 5
Gdy ludzie dołączają do pokoju głosowego albo otwierają przestrzeń, serwer koordynujący patrzy na łącza wszystkich (jak otwarta jest ich sieć, jaka jest prędkość wysyłania, jaki komputer, czy działa na baterii) i wybiera na gospodarza najlepiej przygotowaną osobę. Druga w kolejności jest zapasowa.
Wszyscy łączą się z aplikacją gospodarza, która przekazuje szyfrowany dźwięk. Żeby nie obciążać łącza, każdemu słuchaczowi przesyła kilku najgłośniejszych mówców. Nigdy nie ma dźwięku w postaci jawnej: po prostu przesyła zapieczętowane pakiety.
Jeśli gospodarz wyjdzie albo przestanie być osiągalny, zastępuje go osoba zapasowa i wszyscy łączą się z nią, zwykle zanim ktokolwiek to zauważy.
Wszyscy łączą się z gospodarzem.Gospodarza nie ma: przejmuje zapasowy.
Rozdział 6
Wszystko jest szyfrowane na Twoim urządzeniu, zanim je opuści, a klucze mają tylko uczestnicy rozmowy. Oto, co dzieje się z wiadomością po drodze.
Aplikacja podpisuje wiadomość, żeby inni mogli udowodnić, że pochodzi od Ciebie, dopełnia ją, żeby długość nic nie zdradzała, szyfruje kluczem, który mają tylko uczestnicy rozmowy, i wysyła połączeniem, które samo jest szyfrowane. Każdy po drodze widzi tylko pomieszane bajty standardowego rozmiaru.
Klucze są wymieniane hybrydowo: X25519, sprawdzoną klasyczną metodą, i ML-KEM-768, nowym standardem postkwantowym. Napastnik musiałby złamać oba. To ważne, bo ktoś może dziś nagrać szyfrowany ruch i poczekać, aż komputer kwantowy go odszyfruje.
UsunięteTa wiadomośćKolejne
Klucz każdego uczestnika obraca się jak zapadka: po każdej wiadomości zastępuje go następny w łańcuchu, który idzie tylko do przodu, a stary jest usuwany. Ktoś, kto ukradnie klucz dziś, nie przeczyta wczorajszych wiadomości. Co 30 minut i za każdym razem, gdy ktoś wychodzi, wszyscy zaczynają nowy łańcuch od nowych losowych kluczy, więc skradziony klucz szybko przestaje działać.
Twój głos jest szyfrowany w małych ramkach, około pięćdziesięciu na sekundę, zaraz za mikrofonem, zanim trafi do sieci. Ramka, której nie da się zaszyfrować, jest odrzucana, nigdy nie wychodzi jawnie. Głos ma stały bitrate, więc rozmiar pakietów nie zdradza, co mówisz.
Rozdział 7
Niektóre sieci, na przykład restrykcyjne zapory w biurach czy na uczelniach, blokują bezpośrednie połączenia między komputerami. Crocodile informuje, gdy tak się dzieje, a Ty możesz pozwolić serwerowi koordynującemu przekazywać Twój ruch.
Przekaźnik przesyła pakiety, które już są zaszyfrowane end-to-end: widzi ich rozmiar i czas, ale nie zawartość. Zgoda obowiązuje godzinę i jest odnawiana tylko wtedy, gdy wciąż jest potrzebna.
Rozdział 8
Żaden serwer nie przechowuje Twojej historii, więc aplikacje Crocodile przekazują sobie wiadomości nawzajem. Oto, co się dzieje, gdy piszesz do kogoś, kto jest offline.
Wiadomość trafia do skrzynki nadawczej aplikacji i pokazuje mały zegar.
Gdy tylko oboje jesteście online, aplikacja przekazuje ją, zapieczętowaną dla jego urządzenia.
Jego aplikacja potwierdza odbiór, a zegar znika. Uczestnicy, którzy przegapili wiadomości w przestrzeni, nadrabiają je od gospodarza i zapasowego.
Opcjonalnie serwer przechowuje wiadomości prywatne do 7 dni, zapieczętowane dla każdego urządzenia, więc nie może ich przeczytać, i usuwa je po dostarczeniu.
Rozdział 9
Nowy komputer pokazuje krótki kod. Wpisz go na komputerze, na którym jesteś zalogowany, a potem sprawdź, czy oba ekrany pokazują ten sam sześciocyfrowy kod bezpieczeństwa. Jeśli tak, konto zostaje przesłane w postaci zaszyfrowanej, a nowe urządzenie jest gotowe.
Kod bezpieczeństwa obejmuje klucze obu urządzeń, więc gdyby ktoś próbował podmienić któryś po drodze, kody by się różniły i od razu byś to zauważył.
Kody się zgadzają: można połączyć
Pojęcia, które spotkasz w tekstach o bezpieczeństwie, każde w zdaniu lub dwóch.