Niekto spamuje podpismi certifikáty významných prispievateľov OpenPGP v sieti SKS serverov

SKS

Zdroj: Robert J. Hansen

Pre pochopenie problému musím na začiatku vysvetliť zopár vecí. Príbeh začína ešte v roku 1990. V tomto roku Phil Zimmermann vyvinul PGP (Pretty Good Privacy). Jeho systém umožňoval šifrovanú komunikáciu medzi ľuďmi. Využíval niečo čomu dnes hovoríme asymetrická kryptografia. Stačilo mať len verejný kľúč(certifikát) toho komu chcem poslať zašifrovaný email. Vznikol ale problém, ako jednoducho získať verejný kľúč príjemcu správy a ako overiť, že je to naozaj jeho kľúč.

Na vyhľadávanie a distribúciu verejných kľúčov bol teda napísaný softvér – keyserver. Bolo to niečo ako telefónny zoznam (aj tie už medzitým upadli do zabudnutia). Používateľ mohol prehľadávať takýto server a nájsť verejný kľúč používateľa. Keyserver nevykonával kontrolu autenticity verejných kľúčov, to bolo na používateľovi. Ak používateľ overil, že verejný kľúč naozaj patrí danej osobe, mohol pridať svoj kryptografický podpis k verejnému kľúču (toto bude podstatné pri vysvetľovaní problému).

Na začiatku roka 1990 bola obava, že diktatúry a nepriateľské režimy môžu donútiť prevádzkovateľov keyserverov, aby zamenili niektoré kľúče. Kvôli tomu bolo rozhodnuté, že keyserver nikdy za žiadnych okolností nebude môcť čokoľvek zmazať. Sieť keyserverov na celom svete fungovala tak, že ak sa niekto pokúsi manipulovať keyserver, ostatné to vďaka komunikácii medzi sebou zistia. Následne si zmanipulovaný keyserver stiahne nezmanipulované dáta z iného keyservera.

Asi už tušíte, že táto architektúra je otvorená zneužitiu. Prečo nebola opravená? Keyserver softvér pre SKS (Synchronizing Key Server) bol napísaný jedným človekom ako jeho dizertácia v jazyku OCaml. To by pre dizertáciu nebol problém, ale pre podporu softvéru použitého na živých systémoch to veľký problém je. Keďže softvér bol napísaný v neobvyklom jazyku, nikto z keyserver komunity ho nie je schopný prerobiť. Oprava chyby je jedna vec, ale úplne zmeniť to ako je systém navrhnutý je vec úplne odlišná.

A konečne sa môžem dostať k vysvetleniu problému, ktorý je ale len jeden z mnohých, ktoré „vďaka“ tejto architektúre existujú. Pamätáte sa ako som vysvetľoval, že hocikto môže pridať kryptografický podpis k verejnému kľúču aby ho overil? Špecifikácia OpenPGP nelimituje počet podpisov. Keyserver dokáže zvládnuť 150.000 podpisov. Už viete kam to speje? Neznámy útočník alebo útočníci začali pridávať k verejným kľúčom Robert J. Hansena a Daniela Kahn Gillmora tisíce podpisov. Úplne ich zaspamovali podpismi.

Problém je, že klientský softvér GnuPG nevie čo s takým certifikátom ak ho stiahne z keyservera. GnuPG síce nespadne, ale je nepoužiteľný. Vzhľadom na horeuvedené, takýto certifikát sa nedá zmazať zo servera. Počet postihnutých certifikátov bude zrejme narastať. Nie je zatiaľ jasný úplný rozsah problému. Najrozšírenejší spôsob použitia OpenPGP je verifikácia softvéru v Linuxe. Ak niekto zaspamuje verejný kľúč vendora Linux softvéru a administrátor si ho stiahne, jeho GnuPG prestane fungovať. Nebude možné overiť kľúč a urobiť aktualizáciu softvéru.

Jediné riešenie ak nechcete byť za žiadnych okolností zasiahnutý je prestať používať keyserver sieť. V príspevku je popísaný spôsob ako manuálne nastaviť experimentálny keyserver, ale to je len dočasné riešenie. Článok zakončím poslednou vetou v príspevku Roberta J. Hansena: „Mier všetkým – vrátane teba, ty sukin syn“. Myslím, že netreba vysvetľovať na koho je nahnevaný…

Analýza Daniela Kahn Gillmora je tu.

Obrázok: „Keys“ by Jeremy Segrott, used under CC BY 2.0

Facebook
Twitter
LinkedIn
Pinterest

ĎALŠIE ČLÁNKY, KTORÉ BY ŤA MOHLI ZAUJÍMAŤ

Rekapitulácia roku 2022 a ChatGPT

Podcast č. 138 O čom sme hovorili v roku 2022, neželaným marketingovým volaniam odzvonilo, Windows 8.1 končí, ovládanie ale aj hacknutie auta mobilom, ľudská hlúposť…