Utilia

Šifrování textu heslem

Zašifruj a dešifruj text heslovou frází ve svém prohlížeči pomocí AES-256-GCM a PBKDF2 se 600 000 iteracemi. Nic se nenahrává. Upřímně o omezeních.

Použij dlouhou heslovou frázi, například pět nebo více náhodných slov. Zapomenutou frázi nikdo neobnoví a zašifrovaný text je tak silný, jak silná je ona.

Jak text zašifrovat a dešifrovat

  1. Napiš nebo vlož zprávu do prvního pole, nebo klikni na Otevřít soubor .txt.
  2. Zadej Heslovou frázi a stejnou znovu do Potvrď heslovou frázi (pro šifrování). Zaškrtni Zobrazit heslové fráze, abys zkontroloval, co jsi napsal. Řádek se silou dává hrubou představu, jak těžké je frázi uhodnout.
  3. Klikni na Zašifrovat. Odvození klíče trvá záměrně asi vteřinu (viz níže). Výsledek je blok textu začínající BEGIN ENCRYPTED TEXT. Kopírovat ho vlož do e-mailu, chatu nebo poznámky, nebo ho Stáhnout .txt jako soubor.
  4. Pro zpětné přečtení vlož celý blok (nebo otevři soubor .txt) do prvního pole, zadej heslovou frázi a klikni na Dešifrovat. Potvrzovací pole se k dešifrování nepotřebuje.

Pokud je heslová fráze chybná, nebo se změnil byť jediný znak bloku, dostaneš jasnou chybu místo změtených znaků.

Co se s tvým textem děje

Vše běží ve tvém prohlížeči pomocí vestavěného Web Crypto API. Text ani heslová fráze se nikam neodesílají. Nástroj používá standardní, dobře prověřené stavební prvky:

  • Odvození klíče: PBKDF2 s HMAC-SHA-256 a 600 000 iteracemi, což je nastavení doporučené v OWASP Password Storage Cheat Sheet pro PBKDF2-HMAC-SHA256. Při každém šifrování se vygeneruje nová náhodná 16bajtová sůl, takže stejná heslová fráze dává pokaždé jiný klíč a předpočítané tabulky jsou k ničemu. 600 000 kol zpomaluje každý pokus útočníka o uhodnutí heslové fráze a je důvodem, proč šifrování chvíli trvá.
  • Šifrování: AES-256 v režimu GCM (NIST SP 800-38D) s novým náhodným 12bajtovým IV. GCM je autentizované šifrování: 16bajtový tag odhalí jakoukoli úpravu. Krátká hlavička (verze formátu, počet iterací, sůl a IV) je rovněž autentizovaná.
  • Výstup: Base64 s hlavičkou. Blok uvádí verzi formátu, takže budoucí verze nástroje stále přečtou dnešní zprávy. Dvojí zašifrování stejného textu dává dva různé bloky, což je očekávané.

Upřímně o omezeních

Nástroj je určen pro běžné soukromí: poslat kamarádovi heslo k Wi-Fi, ponechat osobní poznámku nečitelnou pro náhodné oči nebo sdílet krátké tajemství kanálem, kterému tolik nevěříš, přičemž heslovou frázi předáš jinak (osobně nebo telefonem).

  • Heslová fráze je všechno. Slabým místem není samotné AES-256, ale snadno uhodnutelná fráze. Krátkou nebo běžnou může kdokoli, kdo má zašifrovaný blok, prolomit offline i přes 600 000 iterací. Použij pět a více náhodných slov, nebo dlouhé náhodné heslo z generátoru. Odhad síly je jen nápověda: nepozná, že „Leto2024!“ je běžný vzor.
  • Žádné obnovení. Neexistují zadní vrátka, resetování ani kopie tvé heslové fráze. Zapomeneš ji a text je navždy ztracen.
  • Tvé zařízení musí být důvěryhodné. Malware, rozšíření prohlížeče nebo někdo, kdo ti kouká přes rameno, může text přečíst dřív, než se zašifruje.
  • Metadata nejsou skryta. Délka bloku zhruba prozrazuje délku zprávy.
  • Nenahrazuje zavedené nástroje. Pro soubory, zálohy, dlouhodobé archivy nebo cokoli citlivého (právní, zdravotní či obchodní tajemství) použij prověřené nástroje k tomu určené: age, GnuPG (OpenPGP) nebo koncové šifrování messengeru jako Signal.

Časté dotazy

Je toto šifrování bezpečné?

Algoritmy jsou ty, které používají banky a vlády, použité doporučeným způsobem (náhodná sůl a IV, autentizované šifrování). V praxi je bezpečnost dána tvou heslovou frází a zařízením, které používáš.

Proč je moje heslová fráze „chybná“, když jsem si jistý, že je správná?

Heslové fráze rozlišují velká a malá písmena a počítají se i mezery. Zkontroluj Caps Lock a rozložení klávesnice (QWERTZ, nebo QWERTY) a ujisti se, že se zkopíroval celý blok od BEGIN do END. Useknutý nebo upravený blok dává stejnou chybu jako chybná heslová fráze, a to záměrně.

Můžete mi text dešifrovat, když heslovou frázi ztratím?

Ne. Nikdo nemůže: heslová fráze se nikde neukládá a zkoušet všechny možnosti je přesně to, co návrh činí neproveditelným.

Můžu blok dešifrovat jiným programem?

Formát je zdokumentován na stránce a používá standardní primitiva: 1 bajt verze, 4bajtový počet iterací, 16bajtová sůl, 12bajtové IV a poté šifrový text AES-GCM s 16bajtovým tagem, vše v Base64; 33bajtová hlavička se předává jako dodatečná autentizovaná data. Vývojář ho může dešifrovat několika řádky kódu s OpenSSL, balíčkem cryptography pro Python nebo Web Crypto.

Je to lepší než Caesarova šifra nebo ROT13?

Úplně jiná liga: ty jen maskují písmena a prolomí se za pár vteřin. AES-GCM se silnou heslovou frází je moderní kryptografie, kterou nelze prolomit zkoušením posunů ani sledováním četnosti písmen.