Kontrolór kľúčov OpenPGP & analyzátor paketov

Vloží sa armorovaný kľúč, podpis alebo správa OpenPGP — alebo sa načíta binárny súbor .gpg — a zobrazí sa odtlačok, ID kľúča, identifikátory používateľov, podkľúče, podpisové pakety a surový strom paketov. Všetko v prehliadači; nič sa nenahráva.
Iba analyzátor. Tento nástroj dekóduje a zobrazuje údaje OpenPGP — nikdy kryptograficky neoverí podpisy, nikdy nedešifruje a nepýta heslá. Na skutočné overenie alebo dešifrovanie slúži GnuPG (gpg --verify, gpg -d) s vlastnou sadou kľúčov. A ako pri každom nástroji: skutočné súkromné kľúče patria do sady kľúčov, nie do karty prehliadača.
Prijíma každý typ armor: PUBLIC KEY BLOCK, PRIVATE KEY BLOCK, MESSAGE, SIGNATURE, ARMORED FILE.
binárny export kľúčenky / .sig / .gpg — čítané lokálne, nikdy sa nenahrávajú
Čo tento nástroj overuje — a čo úmyselne nie
Dekóduje armor (označenie, hlavičky, užitočné dáta base64, kontrolný súčet prenosu CRC-24), analyzuje každý paket v starom aj novom formáte hlavičky, číta kľúčové pakety v4/v5/v6 (algoritmus, veľkosti MPI, čas vytvorenia), počíta odtlačky v4 (SHA-1) a odtlačky v6 (SHA-256), odvodzuje ID kľúčov, vypisuje identifikátory používateľov, podkľúče a podpodpakety podpisov. Neoveruje podpisy (to si vyžaduje úplný mechanizmus hashovania a overenia podľa RFC 9580 §5.2.4 a dôveryhodnú sadu kľúčov), nedešifruje a nesťahuje kľúče zo serverov kľúčov. Každý výstup sa porovná s GnuPG: gpg --show-keys file.asc vypíše odtlačok a identifikátory používateľov, gpg --list-packets file.asc vypíše štruktúru paketov.
Ukážkové kľúče na tejto stránke — štyri tlačidlá Ukážka vložia skutočný kľúč OpenPGP v4 RSA-2048, ktorý bol vygenerovaný výhradne pre túto stránku (nikdy sa nepoužil nikde inde). Ukážka súkromného kľúča je úmyselne uložená nešifrovaná (použitie S2K 0), aby analyzátor vedel ukázať rozloženie tajných MPI; skutočne exportovaný súkromný kľúč by namiesto toho ukázal svoj šifrovací algoritmus a odvodenie S2K.
Autotest
Znova spustí analyzátor nad vloženým ukážkovým kľúčom, oddeleným podpisom a podpísanou správou: označenia armoru, kontrola CRC-24 a úmyselné poškodenie, sekvencie značiek paketov, odtlačok v4 a ID kľúča oproti nezávisle vypočítaným hodnotám, identifikátory používateľov, odtlačky podkľúčov, detekcia tajného kľúča, plus negatívne testy (zlý vstup a skrátené pakety musia byť odmietnuté). Nič sa nikam neodosiela.
OpenPGP vysvetlené od začiatku
V jednej vete: OpenPGP je otvorený štandard (RFC 4880, aktualizovaný RFC 9580 v roku 2024) pre end-to-end šifrovanie a digitálne podpisy, najznámejšie používaný na zabezpečenie e-mailov — a všetko sa prenáša v malých označených binárnych paketoch, ktoré sú zvyčajne zabalené do textovej vrstvy „armor“.
Čo je OpenPGP?

PGP („Pretty Good Privacy“) vydal Phil Zimmermann v roku 1991 ako program, ktorý mohol použiť ktokoľvek na šifrovanie a podpisovanie správ. Aby sa unikli problémy jedného dodávateľa, formát správ bol štandardizovaný ako OpenPGP (RFC 2440 v roku 1998, RFC 4880 v roku 2007, RFC 9580 v roku 2024). Dnes je najbežnejšou implementáciou GnuPG a rovnaký formát paketov sa objavuje aj v podpísaných commitoch gitu, pri podpisovaní softvérových balíkov, na serveroch kľúčov a v DNS zázname OPENPGPKEY.

Model je end-to-end: každý z komunikujúcich si vygeneruje osobný pár kľúčov; čokoľvek zašifrované pre príjemcu môže dešifrovať iba jeho súkromný kľúč, ktorý nikdy neopustí jeho počítač. Namiesto centrálnej certifikačnej autority (ako v TLS) dôvera v kľúče iných ľudí vzniká podpisovaním kľúčov navzájom — „web dôvery“. To, či sa použije tento web alebo sa jednoducho porovnajú odtlačky mimo kanála (telefonát, vizitka), sa volí podľa situácie; samotný formát nič z toho nevynucuje.

Čo je kľúč OpenPGP?

Kľúč OpenPGP je v skutočnosti malý zväzok paketov: jeden primárny kľúčový paket (kotva identity, zvyčajne oprávnená podpisovať), jeden alebo viac paketov identifikátora používateľa („Alice <alice@example.com>“), vlastné podpisy, ktoré viažu tieto identifikátory na primárny kľúč, a voliteľne podkľúče s vlastnými väzobnými podpismi — zvyčajne samostatný šifrovací podkľúč, aby cenný primárny kľúč mohol zostať offline. Celý armorovaný blok, ktorý sa sem vloží, je tento zväzok.

Odtlačok je hash primárneho kľúčového paketu — SHA-1 (20 bajtov) pre kľúče v4, SHA-256 (32 bajtov) pre kľúče v6 — vypočítaný len z verejnej časti. ID kľúča sú len posledných 8 bajtov odtlačku v4 (pri v5 prvých 8). Odtlačky sa porovnávajú mimo kanála, aby sa zistilo, či niekto nevymenil kľúč na ceste k príjemcovi; ID kľúčov sú krátke označenie pre servery kľúčov a nie sú odolné voči kolíziám pred odhodlaným útočníkom.

ID algoritmuNázovTypické použitie v kľúči
1RSAKlasický univerzál; 2048–4096 bitov, podpisovanie a/alebo šifrovanie
19ECDSAKrivky NIST (P-256 atď.), podpisovanie
18ECDHDohoda kľúčov Curve25519/P-256, šifrovacie podkľúče
22EdDSAPodpisovanie Ed25519 (moderný predvolený v GnuPG 2.4+)
25X25519Šifrovacie podkľúče spárované s primárnymi Ed25519 (kľúče v6)

Blok súkromného kľúča nesie tajné čísla za verejnou časťou: bajt použitia S2K hovorí, ako sú chránené (0 = nechránené, 254/255 = kľúč odvodený z hesla so šifrou), potom nasledujú tajné MPI a kontrolný súčet. Táto stránka ukazuje tento režim ochrany, ale nikdy nepýta heslo a nepokúša sa dešifrovať tajný materiál.

Čo je paket OpenPGP?

Pod armorom je každý objekt OpenPGP postupnosť paketov. Každý začína bajtom značky: starý formát do neho skladá 4-bitový typ paketu a typ dĺžky, nový formát (CTB, nastavený bit 6) používa 6-bitový typ a bajty dĺžky, ktoré vedia opísať aj údaje v čiastočných blokoch. Bežné značky: 6 = verejný kľúč, 5 = tajný kľúč, 14 = podkľúč, 13 = identifikátor používateľa, 2 = podpis, 4 = jednoprechodový podpis, 11 = doslovné údaje, 8 = komprimované údaje, 18 = zašifrované údaje chránené MDC. Táto stránka vypíše značku, formát hlavičky, dĺžku a hexadecimálny výpis pre každý nájdený paket a pri zlej hlavičke paketu hlási chybu s pozíciou bajtu.

Podpisové pakety nesú svoje metaúdaje v hashovaných a nehashovaných oblastiach podpaketov. Podpis samotný pokrýva len hashovanú oblasť; nehashovaná oblasť (historicky používaná na ID kľúča vydavateľa) môže byť počas prenosu ľubovoľne prepísaná kýmkoľvek, preto ju čitatelia musia brať ako nápovedu, nikdy ako fakt. Vlastný podpis na identifikátore používateľa je to, čo naozaj viaže meno na kľúč; samotný kľúčový paket vložený osamote nedokazuje, kto ho vlastní.

ASCII armor je textový obal: -----BEGIN PGP PUBLIC KEY BLOCK-----, voliteľné hlavičky ako Version: alebo Comment:, base64 prúdu paketov a záverečný riadok =xxxx s 24-bitovým CRC. Tento CRC zachytáva len poškodenie pri prenose — ak sa zmení jeden znak base64 a táto stránka to označí — ale nie je to podpis a nedokazuje autorstvo.

Časté chyby
  • Dôvera kľúču bez porovnania odtlačkov. Ktokoľvek môže vygenerovať kľúč s ľubovoľným menom. Porovnanie odtlačkov cez kanál, ktorému sa už dôveruje (osobne, telefonicky), je celý autentifikačný krok.
  • Zámena CRC armoru s podpisom. Odznak „CRC OK“ znamená len to, že base64 prežil prenos, nič viac. Overenie je kryptografická operácia, ktorú táto stránka úmyselne nevykonáva.
  • Používanie ID kľúčov ako identity. 64-bitové ID kľúčov môže útočník s mierným výpočtovým výkonom sfalšovať (tzv. kolízia ID kľúča); vždy sa citujú úplné odtlačky.
  • Vkladanie skutočných súkromných kľúčov na webové stránky. Aj lokálna stránka bez nahrávania, ako je táto, je návyk, ktorý si netreba osvojiť. Ukážky tu sú jednorazové kľúče vygenerované pre demo.
  • Predpoklad, že „PGP MESSAGE“ znamená zašifrované. Označenie armoru nič nehovorí o obsahu — ukážková správa na tejto stránke je podpísaná, ale v čistom texte; o tom, čo je zašifrované a čo nie, rozhoduje až značka paketu 18 oproti 11.
  • Import kľúčov v3. Kľúče verzie 3 (návrh pred rokom 1996, slabé 16-bitové ID kľúčov) sa zavrhli od roku 2014; tento kontrolór ich úmyselne odmieta.
FAQ

Overuje tento nástroj podpisy? Nie. Analyzuje a zobrazuje. Overenie podpisu vyžaduje úplnú konštrukciu hash-trailer podľa RFC 9580, verejný kľúč podpisovateľa a rozhodnutie, či sa tomuto kľúču dôveruje — úloha GnuPG alebo knižnice OpenPGP.

Čím sa to líši od openpgp.js? openpgp.js je úplná implementácia (šifrovanie, dešifrovanie, podpisovanie, overovanie), ktorú vkladáte do aplikácie; táto stránka je kontrolór bez závislostí na čítanie a audit štruktúr OpenPGP v prehliadači.

Dokáže prečítať export GnuPG? Áno — kľúče v4, v5 a v6, oddelené podpisy a správy. Kľúče verzie 3 sa odmietnu s poznámkou (zavrhnuté od roku 2014).

Prečo existuje režim hexadecimálneho vstupu? Surové údaje OpenPGP sú binárne; ak je k dispozícii hexadecimálny výpis kľúčenky alebo súboru .gpg, hex sa vloží a analyzátor ho spracuje presne ako dekódované bajty.

Nahráva sa niečo? Nie. Analyzovanie, výpočet odtlačkov a generovanie správy prebiehajú všetko v tejto karte; stránka beží celá v prehliadači.