Šifrovaný chat

Zvoľte, ako sa správy uchovávajú, a potom zdieľajte odkaz.

Krok 1 z 3

Uchovanie správ

Ako to funguje

Ako začať

Zvoľte, ako sa správy uchovávajú, vyberte názov miestnosti, nastavte ťažko uhádnuteľné heslo s dĺžkou aspoň 16 znakov a zdieľajte odkaz s ľuďmi, s ktorými chcete hovoriť. Miestnosti sa zakladajú len tu, takže každá dostane silné heslo a jasne zvolený režim správ; otvorenie adresy neexistujúcej miestnosti vás vráti na tento formulár. Odkaz kľúč nenesie: každý musí zadať heslo, ktoré zdieľajte inou cestou, napríklad osobne alebo cez inú aplikáciu. Uložená miestnosť heslo nemá: dostane náhodnú adresu a náhodný 256-bitový kľúč za # v odkaze, takže kľúčom je samotný odkaz a zdieľať ho musíte rovnako opatrne.

Správy

Každá správa sa zašifruje v tvojom prehliadači algoritmom AES-256-GCM. Pri vstupe do miestnosti prejde heslo raz funkciou Argon2id so 64 MiB pamäte a 3 prechodmi, takže každý pokus o uhádnutie offline je pomalý a náročný na pamäť. HKDF-SHA256 potom z výsledku odvodí kľúč pre správy, ktorý závisí aj od režimu správ v miestnosti, a druhú, samostatnú hodnotu, ktorá serveru iba dokazuje, že do miestnosti patríš. Server pozná túto hodnotu, nikdy nie šifrovací kľúč, a miestnosť na serveri je pomenovaná podľa jej hashu, nie podľa názvu tvojej miestnosti. Uložená miestnosť pomalé hashovanie hesla vynecháva: jej kľúč je už náhodný, a tak sa z neho kľúč pre správy aj prístupová hodnota odvodzujú priamo pomocou HKDF-SHA256. V miestnostiach bez histórie na serveri dostane každá správa navyše druhú vrstvu s doprednou bezpečnosťou (forward secrecy), opísanú nižšie.

Čo server vidí a uchováva

Miestnosti bežia na Cloudflare Workers. Relay preposiela zašifrované správy ľuďom v miestnosti a neukladá ich, s výnimkou uložených miestností, kde zašifrované správy, najviac 1000 na miestnosť, uchováva v Európskej únii, kým niektorý člen miestnosť nevymaže alebo ju 90 dní nikto nenavštívi. Inak uchováva iba nastavenia miestnosti a vymaže ich, keď je miestnosť 7 dní prázdna. Vidí však, kedy sa správy posielajú, koľko ľudí je pripojených a podľa načasovania pravdepodobne aj to, kedy niekto píše. Každá správa sa doplní na jednu z obmedzeného počtu veľkostí, najmenej 512 bajtov, takže krátke správy, indikátory písania a signály prítomnosti vyzerajú rovnako a pri dlhších je vidieť len približnú veľkosť. Cloudflare, ako každý hosting, vidí tvoju IP adresu a názov miestnosti sa objavuje v adrese stránky, ktorú načítaš. V uložených miestnostiach uchováva aj verejné kľúče ML-DSA členov, zašifrované kľúčom miestnosti, takže vracajúceho sa člena podľa kľúča nespozná.

História a miznúce správy

V predvolenom režime si každý účastník uchováva históriu vo vlastnom prehliadači: podpísané správy zapečatené kľúčom odvodeným z tajomstva miestnosti, takže vydržia aj obnovenie stránky. Členovia, ktorí sú online, odovzdajú nováčikovi najviac 200 posledných správ, zašifrovaných len pre neho a stále s podpisom každého autora, takže nikto nemôže pri odovzdávaní histórie vkladať slová do úst iným. Dopredná bezpečnosť chráni to, čo prešlo cez relay; čo si prehliadače členov uchovali, môžu ukázať každému, kto sa pripojí s heslom, a práve na to tento režim slúži. V uloženej miestnosti zašifrovaná história žije namiesto toho na serveri, takže je k dispozícii po obnovení stránky, na novom zariadení aj pre toho, kto sa pripojí neskôr; tvoj prehliadač si drží kópiu a od servera si vyžiada len to, čo mu chýba. Namiesto toho môžeš nastaviť, aby všetky správy zmizli 5 sekúnd až 1 deň po zobrazení; potom sa nič neukladá. V ľubovoľnej miestnosti môžeš jednu správu ukončiť !N, napríklad !30, a zmizne po N sekundách; do uloženej histórie sa nedostane. Časovač beží v prehliadači každého účastníka, takže upravený klient alebo obyčajná snímka obrazovky si kópiu aj tak môže ponechať.

Hovory

Hlasové a video hovory používajú WebRTC. Nad jeho štandardným šifrovaním DTLS-SRTP tvoj prehliadač ešte pred odoslaním zašifruje každý zvukový aj obrazový snímok, vrátane zdieľania obrazovky, pomocou AES-256-GCM podľa vzoru SFrame. Každý účastník si pri pripojení vytvorí náhodný mediálny kľúč a odovzdá ho každému ďalšiemu účastníkovi zvlášť: vnútri šifrovaného kanála miestnosti a ešte raz zapečatený kľúčom, ktorý pre tento hovor zdieľajú len tieto dva prehliadače (ECDH P-256). Keď niekto odíde, všetci, ktorí zostávajú, prejdú na nový kľúč, takže ten, kto odišiel, nedešifruje nič z toho, čo nasleduje. Snímky, ktoré sa nedajú dešifrovať, sa zahodia a nikdy neprehrajú, a prehliadač, ktorý snímky šifrovať nevie, sa k hovoru nepripojí. Nadväzovanie hovoru prebieha cez miestnosť ako zašifrované správy. Médiá vždy idú cez relay TURN, takže účastníci nikdy neuvidia IP adresy ostatných; relay len preposiela zašifrované pakety. Každý účastník sa pripája ku každému ďalšiemu, preto hovory fungujú najlepšie v malých skupinách.

Súbory

Súbory do 90 MB sa zašifrujú v tvojom prehliadači vlastným náhodným kľúčom, vrátane názvu súboru. Kľúč aj odkaz na stiahnutie putujú len vo vnútri zašifrovanej správy, takže súbor je chránený presne ako správa, ktorá ho nesie, vrátane doprednej bezpečnosti. Zašifrovaný súbor sa nahrá do vlastného úložiska encrypt.click, alebo ak to zlyhá, na záložné hostingy cez server encrypt.click (iba súbory do 50 MB). Hostingy vidia iba zašifrovaný súbor, jeho veľkosť a adresu, z ktorej sa nahrával. Nahrané súbory sa 24 hodín po nahraní mažú; správa v histórii zostane, stiahnutie už nie.

Dobré vedieť

Chat je len taký súkromný ako odkaz alebo heslo: ktokoľvek, kto ho má, sa môže pripojiť a odvtedy čítať s vami. V miestnostiach s doprednou bezpečnosťou však heslo získané neskôr neotvorí skôr nahranú prevádzku, hoci v predvolenom režime členovia online odovzdajú nedávnu históriu každému, kto sa pripojí. Nesprávne heslo vedie do miestnosti, ktorá neexistuje, takže ak stránka hlási, že miestnosť neexistuje, hoci si tam čakal ostatných, skontroluj heslo. Do miestnosti sa môže pripojiť až 32 ľudí.

Kľúče členov v uložených miestnostiach

V každej miestnosti si váš prehliadač vytvorí podpisový kľúč pre túto miestnosť a nechá si ho pre seba; každá správa nesie verejnú polovicu a podpis a čokoľvek nepodpísané sa zahodí, vrátane histórie, ktorú odovzdávajú ostatní členovia. Mená sú len štítky: náhodná prezývka alebo to, čo si člen napísal. Ostatní členovia si pamätajú, s akým kľúčom sa meno objavilo prvýkrát, a upozornia vás, keď sa rovnaké meno alebo meno, ktoré sa mu len podobá, objaví pod novým kľúčom, čo je presne to, ako by vyzeral podvodník, ktorý pozná heslo alebo odkaz. Panel členov ukazuje pri každom členovi kód kľúča, krátky odtlačok toho jediného kľúča, a bezpečnostné číslo odvodené z oboch vašich kľúčov, ktoré je na oboch obrazovkách rovnaké: porovnajte ho osobne alebo hlasom. V uloženej miestnosti je kľúčom člena dvojica jeho kľúčov Ed25519 a ML-DSA-44 a kód kľúča aj bezpečnostné číslo pokrývajú oba. Nový prehliadač alebo zariadenie dostane nový kľúč, takže po prechode toto upozornenie čakajte. Podpis dokazuje, kto v miestnosti správu napísal, nie kým je, a dnu stále púšťa len heslo alebo odkaz. Režim správ je súčasťou kľúča miestnosti, takže server nemôže potichu zmeniť miestnosť s miznúcimi správami na miestnosť, ktorá históriu uchováva. V uloženej miestnosti môže každý, kto videl odkaz, čítať všetko počas celej jej existencie, preto ho zdieľajte opatrne a miestnosť zmažte, keď splní účel; zmazanie odstráni históriu zo servera aj z prehliadačov všetkých pripojených.

Dopredná bezpečnosť

V miestnostiach, ktoré históriu držia len v prehliadačoch, a v miestnostiach s miznúcimi správami samotný kľúč miestnosti žiadnu správu neotvorí. Každý prehliadač si pri vstupe vytvorí nový pár kľúčov P-256 a drží ho len v pamäti. Každý člen má vlastný reťazec na odosielanie: každá správa sa šifruje AES-256-GCM kľúčom, ktorý z reťazca odvodí HKDF-SHA256, reťazec sa potom posunie o krok ďalej a použité kľúče sa zmažú. Aktuálny kľúč reťazca dostane každý ďalší člen zvlášť, zapečatený kľúčom z ich dvoch dočasných kľúčov (ECDH) spolu s tajomstvom odvodeným z hesla miestnosti, a ako vždy vo vnútri podpísaného kanála miestnosti. Kto si prevádzku nahrá a heslo zistí neskôr, správy bez prelomenia výmeny kľúčov neprečíta a po skončení relácie už potrebné kľúče nie sú na žiadnom zariadení. Budúci kvantový počítač, ktorý prelomí P-256, by stále potreboval heslo; proti niekomu, kto má heslo aj taký počítač, dopredná bezpečnosť neplatí. Reťazce sa vymenia po 100 správach alebo 10 minútach a vždy, keď niekto odíde: nový reťazec dostanú len členovia, ktorí sa ozvú, takže kto odišiel, so svojimi kľúčmi ďalej čítať nemôže. Nováčik dostane každý reťazec až v jeho aktuálnom kroku, takže nič, čo prešlo cez relay pred jeho príchodom, jeho kľúčmi neotvorí. Uložené miestnosti doprednú bezpečnosť nemajú: ich história musí zostať čitateľná na každom zariadení s odkazom.

Uložené miestnosti: úplná história a postkvantové podpisy

Uložené miestnosti namiesto toho strážia, aby bola história úplná. Každá uložená správa nesie poradové číslo svojho autora a hash jeho predchádzajúcej uloženej správy, oboje pod podpismi. Tvoj prehliadač pri príchode histórie sleduje reťazec každého autora a pamätá si, kam došiel, a členovia online oznamujú svoje posledné číslo a hash. Keď server správy vynechá, poprehadzuje správy jedného autora alebo zadrží tie najnovšie, prípadne keď dve rôzne správy tvrdia, že patria na rovnaké miesto, chat zobrazí varovanie. Server stále maže najstaršie správy, keď ich miestnosť má 1000, a chat na to upozorní, ak sa to stalo počas tvojej neprítomnosti; môže tiež zadržať najnovšie správy niekoho, kto nie je online, a poradie medzi rôznymi autormi sa nekontroluje. Uložené miestnosti navyše každú správu podpisujú popri Ed25519 aj algoritmom ML-DSA-44 (FIPS 204) a správa platí, len keď sú oba podpisy v poriadku, takže na jej podvrhnutie by bolo treba prelomiť oba. Každý prehliadač drží svoj kľúč ML-DSA zapečatený kľúčom odvodeným z odkazu miestnosti. Správy naň odkazujú hashom a server uchováva verejné kľúče členov zašifrované kľúčom miestnosti, aby sa dali overiť aj správy členov, ktorí nie sú online. Správa bez platného podpisu ML-DSA, aj taká, ktorej kľúč ML-DSA nie je k dispozícii, sa zahodí.