Šifrovaný chat
Zvolte, jak se zprávy uchovávají, a pak sdílejte odkaz.
Krok 1 ze 3
Jak to funguje
Jak začít
Zvolte, jak se zprávy uchovávají, vyberte název místnosti, nastavte těžko uhodnutelné heslo o délce aspoň 16 znaků a sdílejte odkaz s lidmi, se kterými chcete mluvit. Místnosti se zakládají jen tady, takže každá dostane silné heslo a jasně zvolený režim zpráv; otevření adresy neexistující místnosti vás vrátí na tento formulář. Odkaz klíč nenese: každý musí zadat heslo, které sdílejte jinou cestou, třeba osobně nebo přes jinou aplikaci. Uložená místnost heslo nemá: dostane náhodnou adresu a náhodný 256bitový klíč za # v odkazu, takže klíčem je samotný odkaz a sdílet ho musíte stejně opatrně.
Zprávy
Každá zpráva se šifruje ve vašem prohlížeči algoritmem AES-256-GCM. Při vstupu do místnosti projde heslo jednou funkcí Argon2id s 64 MiB paměti a 3 průchody, takže každý pokus o uhodnutí offline je pomalý a náročný na paměť. HKDF-SHA256 pak z výsledku odvodí klíč pro zprávy, který závisí i na režimu zpráv v místnosti, a druhou, samostatnou hodnotu, která serveru jen dokazuje, že do místnosti patříte. Server se dozví tuto hodnotu, nikdy šifrovací klíč, a místnost na serveru je pojmenovaná podle jejího hashe, ne podle názvu vaší místnosti. Uložená místnost pomalé hashování hesla vynechává: její klíč je už náhodný, a tak se z něj klíč pro zprávy i přístupová hodnota odvozují přímo pomocí HKDF-SHA256. V místnostech bez historie na serveru dostane každá zpráva navíc druhou vrstvu s dopřednou bezpečností (forward secrecy), popsanou níže.
Co server vidí a uchovává
Místnosti běží na Cloudflare Workers. Relay přeposílá šifrované zprávy lidem v místnosti a neukládá je, s výjimkou uložených místností, kde šifrované zprávy, nejvýše 1000 na místnost, uchovává v Evropské unii, dokud některý člen místnost nesmaže nebo ji 90 dní nikdo nenavštíví. Jinak uchovává jen nastavení místnosti a smaže je, když je místnost 7 dní prázdná. Vidí ale, kdy se zprávy posílají, kolik lidí je připojeno a podle načasování nejspíš i to, kdy někdo píše. Každá zpráva se doplní na jednu z omezené řady velikostí, nejméně 512 bajtů, takže krátké zprávy, indikátory psaní a signály přítomnosti vypadají stejně a u delších je vidět jen přibližná velikost. Cloudflare jako každý hosting vidí vaši IP adresu a název místnosti je v adrese stránky, kterou načítáte. V uložených místnostech uchovává i veřejné klíče ML-DSA členů, zašifrované klíčem místnosti, takže vracejícího se člena podle klíče nepozná.
Historie a mizející zprávy
Ve výchozím režimu si každý účastník uchovává historii ve vlastním prohlížeči: podepsané zprávy zapečetěné klíčem odvozeným z tajemství místnosti, takže vydrží i obnovení stránky. Členové, kteří jsou online, předají nově příchozímu nejvýše 200 posledních zpráv, zašifrovaných jen pro něj a stále s podpisem každého autora, takže nikdo nemůže při předávání historie vkládat slova do úst jiným. Dopředná bezpečnost chrání to, co prošlo přes relay; co si prohlížeče členů uchovaly, mohou ukázat každému, kdo se připojí s heslem, a právě k tomu tento režim slouží. V uložené místnosti šifrovaná historie žije místo toho na serveru, takže je k dispozici po obnovení stránky, na novém zařízení i pro toho, kdo se připojí později; váš prohlížeč si drží kopii a od serveru si vyžádá jen to, co mu chybí. Místo toho můžete nastavit, aby všechny zprávy zmizely 5 sekund až 1 den po zobrazení; pak se nic neukládá. V jakékoli místnosti můžete jednu zprávu ukončit !N, třeba !30, a zmizí po N sekundách; do uložené historie se nedostane. Odpočet běží v prohlížeči každého účastníka, takže upravený klient nebo obyčejný snímek obrazovky si kopii přesto může ponechat.
Hovory
Hlasové a video hovory používají WebRTC. Nad jeho standardním šifrováním DTLS-SRTP tvůj prohlížeč ještě před odesláním zašifruje každý zvukový i obrazový snímek, včetně sdílení obrazovky, pomocí AES-256-GCM po vzoru SFrame. Každý účastník si při připojení vytvoří náhodný mediální klíč a předá ho každému dalšímu účastníkovi zvlášť: uvnitř šifrovaného kanálu místnosti a ještě jednou zapečetěný klíčem, který pro tento hovor sdílejí jen ty dva prohlížeče (ECDH P-256). Když někdo odejde, všichni, kdo zůstávají, přejdou na nový klíč, takže ten, kdo odešel, nedešifruje nic z toho, co následuje. Snímky, které nejdou dešifrovat, se zahodí a nikdy nepřehrají, a prohlížeč, který snímky šifrovat neumí, se k hovoru nepřipojí. Navázání hovoru putuje místností jako šifrované zprávy. Média vždy procházejí přes TURN relay, takže účastníci nikdy nevidí IP adresy ostatních; relay jen přeposílá šifrované pakety. Každý účastník se připojuje ke každému dalšímu, takže hovory fungují nejlépe v malých skupinách.
Soubory
Soubory do 90 MB se šifrují ve vašem prohlížeči vlastním náhodným klíčem, a to včetně názvu souboru. Klíč i odkaz ke stažení putují jen uvnitř šifrované zprávy, takže soubor je chráněný přesně jako zpráva, která ho nese, včetně dopředné bezpečnosti. Šifrovaný soubor se nahraje do vlastního úložiště encrypt.click, a pokud to selže, přes server encrypt.click na záložní hostingy (jen soubory do 50 MB). Hostingy vidí jen šifrovaný soubor, jeho velikost a adresu, ze které se nahrává. Nahrané soubory se 24 hodin po nahrání mažou; zpráva v historii zůstane, stažení už ne.
Dobré vědět
Chat je jen tak soukromý jako odkaz nebo heslo: kdokoli je má, se může připojit a od té chvíle číst s vámi. V místnostech s dopřednou bezpečností ale heslo získané později neotevře dříve nahraný provoz, i když ve výchozím režimu členové online předají nedávnou historii každému, kdo se připojí. Špatné heslo vede do místnosti, která neexistuje, takže pokud stránka hlásí, že místnost neexistuje, ačkoli jste tam čekali ostatní, zkontrolujte heslo. Do místnosti se může připojit až 32 lidí.
Klíče členů v uložených místnostech
V každé místnosti si váš prohlížeč vytvoří podpisový klíč pro tuto místnost a nechá si ho pro sebe; každá zpráva nese veřejnou polovinu a podpis a cokoli nepodepsaného se zahodí, včetně historie, kterou předávají ostatní členové. Jména jsou jen štítky: náhodná přezdívka nebo to, co si člen napsal. Ostatní členové si pamatují, s jakým klíčem se jméno objevilo poprvé, a upozorní vás, když se stejné jméno nebo jméno, které mu jen podobá, objeví pod novým klíčem, což je přesně to, jak by vypadal podvodník, který zná heslo nebo odkaz. Panel členů ukazuje u každého člena kód klíče, krátký otisk toho jediného klíče, a bezpečnostní číslo odvozené z obou vašich klíčů, které je na obou obrazovkách stejné: porovnejte ho osobně nebo hlasem. V uložené místnosti je klíčem člena dvojice jeho klíčů Ed25519 a ML-DSA-44 a kód klíče i bezpečnostní číslo pokrývají oba. Nový prohlížeč nebo zařízení dostane nový klíč, takže po přechodu toto upozornění čekejte. Podpis dokazuje, kdo v místnosti zprávu napsal, nikoli kým je, a dovnitř stále pouští jen heslo nebo odkaz. Režim zpráv je součástí klíče místnosti, takže server nemůže potichu změnit místnost s mizejícími zprávami na místnost, která historii uchovává. V uložené místnosti může každý, kdo viděl odkaz, číst vše po celou dobu její existence, proto ho sdílejte opatrně a místnost smažte, až splní účel; smazání odstraní historii ze serveru i z prohlížečů všech připojených.
Dopředná bezpečnost
V místnostech, které historii drží jen v prohlížečích, a v místnostech s mizejícími zprávami samotný klíč místnosti žádnou zprávu neotevře. Každý prohlížeč si při vstupu vytvoří nový pár klíčů P-256 a drží ho jen v paměti. Každý člen má vlastní řetězec pro odesílání: každá zpráva se šifruje AES-256-GCM klíčem, který z řetězce odvodí HKDF-SHA256, řetězec se pak posune o krok dál a použité klíče se smažou. Aktuální klíč řetězce dostane každý další člen zvlášť, zapečetěný klíčem z jejich dvou dočasných klíčů (ECDH) spolu s tajemstvím odvozeným z hesla místnosti, a jako vždy uvnitř podepsaného kanálu místnosti. Kdo si provoz nahraje a heslo zjistí později, zprávy bez prolomení výměny klíčů nepřečte a po skončení relace už potřebné klíče nejsou na žádném zařízení. Budoucí kvantový počítač, který prolomí P-256, by stále potřeboval heslo; proti někomu, kdo má heslo i takový počítač, dopředná bezpečnost neplatí. Řetězce se vymění po 100 zprávách nebo 10 minutách a pokaždé, když někdo odejde: nový řetězec dostanou jen členové, kteří se ozvou, takže kdo odešel, se svými klíči dál číst nemůže. Nově příchozí dostane každý řetězec až v jeho aktuálním kroku, takže nic, co prošlo přes relay před jeho příchodem, jeho klíči neotevře. Uložené místnosti dopřednou bezpečnost nemají: jejich historie musí zůstat čitelná na každém zařízení s odkazem.
Uložené místnosti: úplná historie a postkvantové podpisy
Uložené místnosti místo toho hlídají, že je historie úplná. Každá uložená zpráva nese pořadové číslo svého autora a hash jeho předchozí uložené zprávy, obojí pod podpisy. Váš prohlížeč při příchodu historie sleduje řetězec každého autora a pamatuje si, kam došel, a členové online oznamují své poslední číslo a hash. Když server zprávy vynechá, přehází zprávy jednoho autora nebo zadrží ty nejnovější, případně když dvě různé zprávy tvrdí, že patří na stejné místo, chat zobrazí varování. Server stále maže nejstarší zprávy, jakmile jich místnost má 1000, a chat na to upozorní, pokud se to stalo během vaší nepřítomnosti; může také zadržet nejnovější zprávy někoho, kdo není online, a pořadí mezi různými autory se nekontroluje. Uložené místnosti navíc každou zprávu podepisují vedle Ed25519 i algoritmem ML-DSA-44 (FIPS 204) a zpráva platí, jen když jsou oba podpisy v pořádku, takže k jejímu podvržení by bylo nutné prolomit oba. Každý prohlížeč drží svůj klíč ML-DSA zapečetěný klíčem odvozeným z odkazu místnosti. Zprávy na něj odkazují hashem a server uchovává veřejné klíče členů zašifrované klíčem místnosti, aby šlo ověřit i zprávy členů, kteří nejsou online. Zpráva bez platného podpisu ML-DSA, i taková, jejíž klíč ML-DSA není k dispozici, se zahodí.