Przeczytają to tylko uczestnicy rozmowy
Cryptico to anonimowy komunikator na przeglądarkę, Androida i iPhone'a: bez numeru telefonu, bez e-maila, bez prawdziwego imienia. Każda wiadomość jest szyfrowana end-to-end, a kod serwera nie potrafi rozszyfrować żadnej, nawet gdybyśmy tego chcieli.
Bez rejestracji i bez numeru telefonu — otwiera się wprost w przeglądarce.


Konto to fraza, a nie osoba
Do rejestracji nie trzeba niczego. Cryptico tworzy losową tożsamość i dwunastowyrazową frazę odzyskiwania, a ta fraza jest kontem — z niej wyprowadzany jest każdy klucz. Nie ma numeru do zweryfikowania, adresu do potwierdzenia ani profilu, który cokolwiek z tego by z kimkolwiek powiązał. Nazwa użytkownika jest opcjonalna: warto ją wziąć, żeby dało się kogoś znaleźć, albo pominąć.
Cztery rzeczy, za którymi naprawdę stoimy
- 01
Serwer nie potrafi odczytać wiadomości
To właściwość kompilacji, nie polityki. Binarium serwera w ogóle nie zawiera definicji treści wiadomości, więc nie ma w nim ścieżki kodu, która mogłaby ją odczytać. Kontrola w naszym potoku przerywa budowanie, gdyby to przestało być prawdą.
check-proto-content-boundary.mjs - 02
Żadnych identyfikatorów ze świata rzeczywistego, nigdy
Żadnych numerów telefonu, adresów e-mail ani prawdziwych imion — ani w aplikacji, ani w bazie, ani w protokole. Automatyczna kontrola odrzuca każdą zmianę, która takie pole dodaje. Pole na numer telefonu raz trafiło do szkicu wizytówki kontaktu; zostało usunięte, a jego miejsce trwale wycofane.
check-forbidden-columns.mjs - 03
Signal Protocol z postkwantowym uzgadnianiem kluczy
PQXDH przy nawiązaniu, Double Ratchet dla wiadomości, Sender Keys dla grup. Każda sesja dokłada postkwantową wymianę Kyber-1024 ponad klasyczną — nie opcjonalnie, lecz w każdym nawiązaniu — więc ruch nagrany dziś nie stanie się czytelny dla przyszłego komputera kwantowego. To, co następuje po nawiązaniu, jest kryptografią klasyczną i dlatego mówimy o postkwantowym uzgadnianiu kluczy, a nie o całej drodze wiadomości.
libsignal · PQXDH · Kyber-1024 - 04
Połączenia, których nasze serwery nie mogą podsłuchać
Połączenia jeden na jeden idą wprost między urządzeniami; żaden serwer nie dotyka mediów. Połączenia grupowe przechodzą przez nasz serwer mediów, ale każda klatka jest szyfrowana, zanim tam trafi, kluczem, którego ten serwer nigdy nie dostaje. Kontrola przy budowaniu trzyma klucze mediów całkowicie poza kodem serwera.
check-call-media-key-boundary.mjs
Co naprawdę da się tu zrobić
Komunikator, a nie pokaz możliwości. Wszystko z tej listy jest w produkcie, na każdej platformie, na której ma to sens.
Czaty, które zachowują się jak czaty
Tekst ze wzmiankami, odpowiedzi, edycje, usuwanie u wszystkich, reakcje, przekazywanie, zaznaczanie wielu wiadomości i prywatne zakładki. Potwierdzenia dostarczenia i przeczytania, wskaźnik pisania, wersje robocze, wyszukiwanie w jednym czacie i we wszystkich naraz. Ankiety, listy zadań, punkt na mapie i wizytówka kontaktu, gdy zwykły tekst nie wystarcza.
Grupy do 128 osób
Utworzenie grupy, dodawanie i usuwanie osób, zaproszenie linkiem z terminem ważności i limitem użyć, wzmianka o jednej osobie albo o wszystkich. Serwer rozsyła wiadomości i nigdy nie poznaje nazwy grupy, jej opisu ani tego, po kim została nazwana.
Pliki, zdjęcia i głos
Osiem rodzajów załączników po 100 MiB każdy — zdjęcie, wideo, wiadomość głosowa, wideonotatka, plik, GIF, naklejka, audio — wraz z albumami i ukrywaniem treści. Każdy plik jest zamykany na urządzeniu własnym jednorazowym kluczem i sprawdzany pod kątem manipulacji przed otwarciem.
Miniaplikacje wewnątrz komunikatora
Katalog, instalacja jednym dotknięciem i izolowane środowisko uruchomieniowe, a do tego konsola dla twórców i przycisk anonimowego zgłoszenia. Aplikacja, której suma kontrolna nie zgadza się z manifestem, w ogóle się nie uruchomi.
Blokada, która naprawdę blokuje
Wiadomość zablokowanego nadawcy nigdy nie dociera w rozmowie prywatnej, a on sam nigdy się nie dowiaduje, że nie dotarła. Blokada trwa 180 dni, a każda próba napisania ją przedłuża.
Do dziesięciu urządzeń na jednym koncie
Podłączenie nowego urządzenia frazą, podgląd całej listy, odłączenie dowolnego z nich — także wtedy, gdy nie została już żadna działająca sesja. Kontakty, foldery, lista czatów, blokady i ustawienia przenoszą się zaszyfrowane. Archiwum wiadomości w większości nie; o tym jest w części „czego nie obiecujemy”.
Połączenia jeden na jeden i grupowe
Dźwięk i obraz, kamera przednia i tylna, do ośmiu kafelków wideo naraz, podniesiona ręka, udostępnianie ekranu, wskaźniki mikrofonu i kamery na każdym kafelku. Media domyślnie idą przez przekaźnik, więc druga strona nie widzi adresu.



Foldery, przypięcia i ciche czaty
Foldery oparte na regułach, przypięte czaty, wyciszone czaty, widok wspólnych mediów i pasek połączenia, który mówi prawdę o stanie łącza. Wzmianka i tak przebije się przez wyciszony czat — to celowe.



Jak to naprawdę działa
Wersja skrócona, dla tych, którzy wolą sprawdzić niż zaufać.



- Nawiązanie sesji
- PQXDH: Curve25519 plus klucz wstępny Kyber-1024, w każdej bez wyjątku sesji, więc uzgodnienie klucza jest odporne na atak kwantowy od pierwszej wiadomości.
- Wiadomości
- Double Ratchet: każda wiadomość przesuwa klucze do przodu, więc klucz zdobyty później nie otwiera tego, co było wcześniej.
- Grupy
- Sender Keys, do 128 uczestników. Serwer zna skład, bo musi rozesłać wiadomości; nazwy grupy nie zna.
- Połączenia grupowe
- Klatki są szyfrowane, zanim dotrą do naszego serwera mediów. Klucz tworzy urządzenie, które rozpoczyna połączenie, rozdaje go sam komunikator, a zmienia się on za każdym razem, gdy ktoś dołącza lub wychodzi.
- Pliki i zdjęcia
- AES-256-GCM ze świeżym kluczem do każdego pliku, niesionym wewnątrz zaszyfrowanej koperty, oraz kontrola SHA-256 przed jakimkolwiek odszyfrowaniem. Magazyn przechowuje bajty, których nie potrafi zinterpretować.
- Na urządzeniu
- Lokalna baza wiadomości jest szyfrowana w spoczynku — SQLCipher na Androidzie i iPhonie, AES-256-GCM w przeglądarce.
- Fraza odzyskiwania
- Dwanaście słów. Z nich wyprowadzany jest każdy klucz konta: BIP39, a potem Argon2id z 64 MiB pamięci i trzema przebiegami na każdą próbę — to właśnie czyni atak siłowy nieopłacalnym. Serwer nie przechowuje niczego, czym dałoby się to odwrócić.
- Weryfikacja osoby
- 60-cyfrowy numer bezpieczeństwa dla każdej rozmowy i sześciocyfrowy kod pokazywany w trakcie połączenia, aby jedna strona odczytała go na głos. Kod połączenia liczony jest wyłącznie z tego jednego połączenia, więc za każdym razem jest inny.
- Blokada aplikacji
- Czterocyfrowy PIN opakowany w Argon2id i AES-256-GCM, pięć prób, biometria tam, gdzie urządzenie ją oferuje, oraz automatyczna blokada po bezczynności. PIN otwiera urządzenie, fraza jest właścicielem konta.
- Ustawienia i kontakty
- Synchronizowane jako szyfrogram pod kluczem wyprowadzonym z frazy odzyskiwania — nawet nazwa każdego rekordu jest skrótem na kluczu, a nie tekstem. Serwer przechowuje nieprzejrzyste bloby, a nie pola.
- Biblioteki
- Android i iPhone korzystają z oficjalnej biblioteki Signala. Signal nie publikuje jej żadnej wersji dla przeglądarek, więc silnik webowy kompilujemy sami ze źródeł Signala, przypiętych do dokładnej wersji — zmieniona jedna linia, żeby dało się to tu zbudować, i nic nietkniętego w samej kryptografii.
Czego nie obiecujemy
Strona główna każdego komunikatora mówi, co chroni. Ta mówi też, czego nie chroni, bo to, czego nie da się naprawić, trzeba wiedzieć najbardziej.

Widzimy, kto z kim rozmawia
Szyfrowanie end-to-end ukrywa treść, a nie sam fakt rozmowy. Żeby dostarczyć wiadomość, serwer musi wiedzieć, kto ją odbiera i kiedy. Przechowuje też skład grup, bo bez tego rozesłanie jest niemożliwe. Nie możemy uczciwie twierdzić, że nie wiemy, kto z kim rozmawia. Możemy twierdzić, że nigdy nie widzimy treści i że kod serwera nie potrafi jej nawet odczytać.
Powiadomienia push ujawniają czas firmom Google i Apple
Powiadomienia na Androidzie idą przez Firebase Cloud Messaging, a na iPhonie przez usługę Apple. Push nie niesie ani tekstu, ani nadawcy — ale przewoźnik widzi, które urządzenie zostało wybudzone i o której godzinie, a to wystarczy, by przez zestawienie czasów odtworzyć, kto z kim rozmawia. Anonimowość konta nie obejmuje faktu i czasu komunikacji, dopóki budzikiem jest cudza usługa.
Historia ledwie podąża za użytkownikiem
Zalogowanie się na nowym urządzeniu przywraca tożsamość, profil, kontakty, foldery, listę czatów, blokady i część ustawień — ale nie archiwum wiadomości. Rozmówcy przysyłają ponownie tylko płytki wycinek, nie głębszy niż trzydzieści dni, i to wszystko. Kopii historii po stronie serwera nie ma — tak to zaprojektowano.
Po utracie frazy nikt nie pomoże
Wsparcie nie wpuści z powrotem, bo po naszej stronie nie ma czym wpuścić: żadnego numeru, adresu ani podpowiedzi do hasła. Dwanaście słów to całe konto. Taka jest cena wszystkiego innego na tej stronie i wolimy, żeby było to wiadome przed rejestracją, a nie po niej.
Prowadzimy dzienniki, tylko nie o użytkownikach
Prowadzimy operacyjne dzienniki usługi, bez treści wiadomości, bez ciał szyfrogramów, bez kluczy i bez fraz odzyskiwania. „Zero dzienników” byłoby nieprawdą; „w dziennikach nie ma treści” jest prawdą i to właśnie obiecujemy.
Gdzie to działa




Przeglądarka
Otwiera się w dowolnej przeglądarce, nic nie trzeba instalować. Wszystkie 24 języki interfejsu są tutaj.
Otwórz aplikację webowąotwiera się w nowej karcieiPhone
Aplikacja natywna: czaty, grupy, połączenia, wiadomości głosowe i miniaplikacje.
Zainstaluj na iPhonieotwiera się w nowej karcieAndroid
Aplikacja natywna z tymi samymi czatami, grupami i połączeniami na telefonie.
Zainstaluj na Androidzieotwiera się w nowej karcie
Pytania, które naprawdę padają

Ile to kosztuje?
Nic. Nie ma płatnego wariantu, reklam ani dosprzedaży — ograniczenia są wyłącznie techniczne, jak 100 MiB na plik i trzydzieści dni jego przechowywania. Jeśli płatny wariant kiedyś się pojawi, powiemy o tym wcześniej, a nie po fakcie.
Czy kod jest jawny?
Jeszcze nie. Zostanie opublikowany, gdy rozwój się ustabilizuje. Do tego dnia nie nazywamy się projektem o otwartym kodzie źródłowym — takiego zapewnienia nie da się zweryfikować, a nie zamierzamy prosić o przyjęcie go na wiarę. Gdy repozytorium stanie się publiczne, jego adres będzie dokładnie tutaj.
Co się stanie, gdy zgubię frazę odzyskiwania?
Konto przepada. Nie ma linku resetującego ani sposobu, by wsparcie wpuściło kogoś z powrotem — droga odzyskiwania pod naszą kontrolą byłaby wejściem także dla kogoś obcego.
Kto może do mnie napisać?
Potrzebna jest nazwa użytkownika, przekazany przez kogoś link z zaproszeniem albo kod QR. Kto woli w ogóle nie być do znalezienia, po prostu nie bierze nazwy użytkownika. Zablokować można każdego, a zablokowany nadawca przestaje docierać.
Czy da się sprawdzić, że rozmawiam z właściwą osobą?
Tak, na dwa sposoby. Każda rozmowa ma 60-cyfrowy numer bezpieczeństwa, który obie strony mogą raz porównać, a w trakcie połączenia oba ekrany pokazują ten sam sześciocyfrowy kod — jedna osoba czyta go na głos, druga sprawdza. Kod połączenia jest nowy przy każdym połączeniu.
Czy można korzystać na więcej niż jednym urządzeniu?
Tak, na maksymalnie dziesięciu. Każde podłącza się frazą odzyskiwania, a dowolne można odłączyć z listy. Kontakty, foldery, lista czatów i ustawienia przenoszą się zaszyfrowane; archiwum wiadomości w większości nie.
Czy profilujecie użytkowników albo cokolwiek sprzedajecie?
Nie ma reklam ani sprzedaży danych. Ta strona nie zawiera żadnej analityki ani skryptów zewnętrznych — ani jedno żądanie nie wychodzi na cudzy serwer.
Powiadomcie mnie, gdy będzie gotowe
Jedna wiadomość, w dniu, w którym pojawi się coś wartego instalacji. Bez newslettera, bez cyklu wiadomości i bez zewnętrznej usługi pocztowej — adres zostaje w naszej własnej bazie i nigdzie dalej nie trafia.
Nie wysyłamy potwierdzenia, więc literówka oznacza ciszę. Warto sprawdzić adres przed wysłaniem.
