Bezpečnost a soukromí

Srozumitelné shrnutí toho, jak je encrypt.click navržený vůči vašim datům. Jen informativní - nejde o právní radu.

Bez účtů, bez přihlášení

encrypt.click nemá uživatelské účty, přihlášení ani profily. K používání nástrojů se nemusíte registrovat ani uvádět osobní údaje.

Nástroje v prohlížeči

Nástroje pro soukromí (AES slova, časová kapsle, steganografie, foto šifra a spektrální šifra) běží ve vašem prohlížeči přes Web Crypto a další lokální API. Jejich vstupy se na encrypt.click ke zpracování neodesílají.

Když nástroj potřebuje veřejná data, která sami spustíte (například Drand náhodnost pro Time Capsule přes náš same-origin proxy), požadavek neobsahuje vaše plaintextová tajemství ani hesla.

Šifrované sdílení zpráv a souborů

Encrypt & share běží AES-GCM ve vašem prohlížeči dřív, než se cokoli nahraje. Heslo zůstává u vás, dokud ho sami nezkopírujete nebo nepošlete.

Automatický upload preferuje first-party úložiště ciphertextu (/upload na tomto webu). Tato cesta má limit okolo 90 MB a měsíční rozpočet a dostupnost je garantovaná asi 24 hodin. Když je plná nebo nedostupná, nejdřív se zeptáme; pokud souhlasíte, prohlížeč pošle jen ciphertext na upload API encrypt.click, které ho serverově předá dočasným Send-kompatibilním hostitelům (soubory do 50 MB). Ti by měli vidět ciphertext a serverový egress - ne přímý upload plaintextu z prohlížeče.

Příjemci otevírají odkazy na encrypt.click (často /u). Šifrovaný materiál může být ve fragmentu URL (při běžném načtení stránky se na naše servery neposílá) nebo ukazovat na nahraný ciphertext. Volitelné zabalení do PNG umí schovat share link do obrázku pro offline předání.

Nahrávání je zdarma, proto se automatizované nebo neobvykle velké používání kontroluje. Běžné nahrávání projde bez čehokoli navíc; když nahrávání vypadá automatizovaně nebo zařízení nahrálo hodně dat, musí prohlížeč nejdřív vyřešit krátkou výpočetní úlohu (proof-of-work). Běží ve vašem zařízení a neúčastní se jí žádná třetí strana. Každá další úloha během hodiny trvá dvakrát déle a vyřešená úloha dovolí zařízení hodinu dál nahrávat, stále v rámci stejných pevných denních limitů.

Šifrovaný chat, hovory, whiteboard a soubory

Zprávy chatu, indikátory psaní a signaling hovorů se v prohlížeči šifrují (AES-GCM), než dorazí na relay. Relay přeposílá ciphertext a neukládá historii zpráv, s výjimkou uložených místností, kde šifrované zprávy (nejvýše 1000 na místnost, v Evropské unii) uchovává, dokud některý člen místnost nesmaže nebo ji 90 dní nikdo nenavštíví. V místnostech bez historie na serveru mají zprávy navíc dopřednou bezpečnost: odesílací klíč každého člena se s každou zprávou posune a ostatním se předává jen pod klíči z krátkodobých párů klíčů, které se nikdy neukládají, takže nahraný provoz zůstane zavřený i pro toho, kdo heslo zjistí později.

Živé hovory používají WebRTC s TURN-only ICE politikou, aby se IP účastníků nevyměňovaly přímo. Kromě DTLS-SRTP je každý zvukový i obrazový snímek šifrovaný end-to-end přímo v prohlížeči pomocí AES-256-GCM (insertable streams po vzoru SFrame, video ve VP8 nebo VP9). Mediální klíč každého odesílatele je náhodný, putuje jen uvnitř šifrovaného a podepsaného kanálu místnosti, pro každého příjemce je ještě zapečetěný efemérním klíčem ECDH P-256 a mění se pokaždé, když někdo z hovoru odejde. Mediální klíče nikdy neprocházejí DTLS handshakem, takže kdo dnes nahraje provoz hovoru a handshake později prolomí, třeba kvantovým počítačem, se bez tajemství místnosti k médiím nedostane. Prohlížeče bez šifrování snímků se k hovorům nepřipojí. TURN credentials se berou z encrypt.click (/api/turn).

Přílohy v chatu se šifrují v prohlížeči před nahráním, stejně jako v Encrypt & share. Ukládají se do našeho úložiště a po 24 hodinách se smažou, i v uložených místnostech. Když naše úložiště není dostupné, zašifrovaný soubor místo toho putuje na veřejnou instanci Send v EU, kde může zůstat až 7 dní.

Nové místnosti vždy vyžadují heslo o délce aspoň 16 znaků, které projde kontrolou síly, a dají se založit jen přes formulář. Heslo není součástí odkazu, proto ho sdílejte zvlášť.

Whiteboard používá stejnou realtime infrastrukturu pro společné tahy a stav. Přístup berte jako u chatu: na citlivé věci použijte silné heslo.

Uložené místnosti používají náhodný klíč nesený ve fragmentu odkazu, který se na server nikdy nedostane. V každé místnosti je každá zpráva v prohlížeči podepsaná klíčem dané místnosti, takže ostatní členové poznají, když se jméno objeví s jiným klíčem, a režim zpráv je svázaný s klíčem místnosti, takže ho server nemůže změnit. Uložené místnosti ke každé zprávě přidávají podpis ML-DSA-44 a uložené zprávy každého autora řetězí, takže prohlížeče poznají, když server zprávy vynechá, přehází nebo zadrží.

Zkracování odkazů

Po zašifrování prohlížeč pošle odkaz na /api/shorten na encrypt.click, který ho zkrátí naší vlastní službou l.encrypt.click. Žádné cizí zkracovače se nepoužívají. Když zkrácení selže, dostanete celý odkaz.

Krátký odkaz ukládá celý odkaz včetně zašifrovaného obsahu, nikdy ale heslo. Kdo má krátký odkaz, pořád potřebuje heslo, proto použijte vygenerovanou passphrase nebo jiné silné heslo.

Krátký odkaz se vytváří automaticky, takže zašifrovaný obsah každého sdílení se uloží na l.encrypt.click bez ohledu na to, který odkaz nakonec pošlete. Celý odkaz nese obsah ve fragmentu URL, který prohlížeč příjemce nikdy neodešle na server.

Cookies a local storage

Web nastavuje jedinou funkční cookie ec-lang, a to až poté, co si v menu vyberete jazyk. Obsahuje jen dvoupísmenný kód jazyka, nic jiného, platí rok a neslouží ke sledování. První návštěva bez ní se zobrazí v jazyce vašeho prohlížeče. Prohlížeč může používat localStorage pro motiv a tam, kde se historie chatu uchovává, pro zašifrované zprávy, v uložených místnostech i pro údaj, kam až byla zkontrolována historie každého člena. Session storage může krátce držet heslo místnosti během připojování a klíč místnosti, který přišel v odkazu, drží po dobu, co je daná záložka otevřená, aby mohl zmizet z adresního řádku. IndexedDB drží podpisový klíč, který prohlížeč vytvoří pro každou místnost chatu a každou tabuli, a u uložených místností i zárodek postkvantového podpisového klíče zapečetěný klíčem odvozeným z odkazu místnosti; soukromé klíče zařízení nikdy neopustí.

Cloudflare (hosting) může podle provozu a nastavení prohlížeče nastavit cookies pro bezpečnost a ochranu proti zneužití podle vlastních zásad Cloudflare.

Síť a transportní bezpečnost

  • Veškerý provoz běží přes HTTPS s moderním TLS.
  • HTTP Strict Transport Security (HSTS) je zapnuté s includeSubDomains a preload.
  • Content Security Policy (CSP) omezuje skripty, styly, fonty a spojení; místo širokého unsafe-inline pro skripty se používají hashe inline skriptů.
  • Vkládání do iframe je zakázané přes frame-ancestors 'none' a X-Frame-Options: DENY.
  • Kontrola nasazení porovnává nově stažené soubory s manifestem ze stejného serveru. Nedokazuje pravost kódu běžícího v prohlížeči a nechrání před kompromitovaným hostingem.

Infrastruktura třetích stran

Web běží na Cloudflare Workers. Realtime chat a whiteboard přeposílají Durable Objects ve stejném Workeru (PartyServer). Relay hovorů může používat Cloudflare TURN a/nebo jiné nastavené TURN providery. Dočasní ciphertext hostitelé (Send-kompatibilní instance) můžou dostat šifrované bloby, když first-party upload není dostupný.

encrypt.click si nevede vlastní databázi vstupů z nástrojů. Ochrana API proti zneužití používá krátkodobý in-memory solný hash IP (okolo 60 sekund). Cloudflare může podle svých zásad nasadit i bot/challenge ochrany.

Zodpovědné nahlášení

Pokud si myslíte, že jste našli bezpečnostní nebo privacy problém v encrypt.click, napište na mail@encrypt.click. Uveďte dost detailů k reprodukci a vyhněte se testování, které by mohlo zasáhnout ostatní uživatele.

Neprávní shrnutí

Tato stránka je lidsky čitelné shrnutí toho, jak je encrypt.click navržený vůči datům. Není smlouvou ani úplnými právními podmínkami. Žádná záruka dokonalé bezpečnosti se nedává; nástroje používáte na vlastní riziko.