Hackeři využili funkcionalitu protokolu OpenPGP, která je známa více než deset let.
Vysvětlujeme, v čem spočívá problém a proč ho nelze opravit.
/ Unsplash /
Problémy v síti
V polovině června neznámí na síť serverů kryptografických klíčů , postavenou na bázi protokolu OpenPGP. Jedná se o standard IETF (), který se používá pro šifrování e-mailů a dalších zpráv. Síť SKS byla vytvořena před třiceti lety pro distribuci veřejných certifikátů. K ní se připojují nástroje jako pro šifrování dat a vytváření elektronických digitálních podpisů.
Hackeři kompromitovali certifikáty dvou správců projektu GnuPG — Roberta Hansena a Daniela Gillmora. Načtení poškozeného certifikátu ze serveru způsobuje selhání práce GnuPG — systém se jednoduše zasekne. Existují důvody se domnívat, že tímto zločinci neskončí a počet kompromitovaných certifikátů bude pouze růst. K dnešnímu dni zůstávají rozsahy problému neznámé.
Podstata útoku
Hackeři využili zranitelnost v protokolu OpenPGP. Ta je komunitě známa už řadu let. Dokonce na GitHubu jsou příslušné exploity. Ale zatím se nikdo nepřihlásil k odpovědnosti za opravu "díry" (o příčinách si povíme podrobněji).
Dvě doporučení z našeho blogu na Habr:
Podle specifikace OpenPGP může kdokoli přidávat digitální podpisy k certifikátům pro potvrzení jejich vlastníka. A maximální počet podpisů není nijak regulován. A zde vzniká problém — síť SKS umožňuje umístit až 150 tisíc podpisů na jeden certifikát, ale GnuPG takové množství nepodporuje. Při načítání certifikátu se tedy GnuPG (jak ostatně i jiné implementace OpenPGP) zasekne.
Jeden z uživatelů — import certifikátu mu zabral přibližně 10 minut. Certifikát měl více než 54 tisíc podpisů a jeho velikost činila 17 MB:
$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: klíč F20691179038E5C6: odstraněny 4 duplicitní podpisy
gpg: klíč F20691179038E5C6: 54614 podpisů nebylo zkontrolováno kvůli chybějícím klíčům
gpg: klíč F20691179038E5C6: 4 podpisy byly přeřazeny
gpg: klíč F20691179038E5C6: veřejný klíč "Daniel Kahn Gillmor <dkg@fifthhorseman.net>" importován
gpg: nenalezeny žádné konečně důvěryhodné klíče
gpg: Celkový počet zpracovaných: 1
gpg: importováno: 1
$ ls -lh pubring.gpg
-rw-r--r-- 1 filippo staff 17M 2 Jul 16:30 pubring.gpg
Situaci zhoršuje fakt, že klíčové servery s OpenPGP neodstraňují informace o certifikátech. To bylo zavedeno, aby bylo možné sledovat řetězec všech akcí s certifikáty a vyloučit jejich záměnu. Proto není možné odstranit kompromitované prvky.
V podstatě síť SKS představuje velký "soubory server", na který si každý může uložit data. Abychom ilustrovali problém, v loňském roce rezident GitHub , který uchovává dokumenty v síti serverů kryptografických klíčů.
Proč zranitelnost nebyla uzavřena
Pro uzavření zranitelnosti nebyl důvod. Dříve nebyla použita k provádění hackerských útoků. I když IT komunita vývojáře SKS a OpenPGP, aby se zaměřili na problém.
Spravedlnosti je třeba říci, že v červnu se přece jen experimentální klíčový server . V něm byla implementována ochrana proti těmto typům útoků. Jeho databáze se však plní od nuly a server není součástí SKS. Proto potrvá nějakou dobu, než bude možné jej používat.

/ Unsplash /
Co se týče chyby v původním systému, její opravy brání složitý mechanismus synchronizace. Síť klíčových serverů byla původně napsána jako proof of concept pro ochranu doktorské disertace Yaron Minsky. Pro jehož práci byl zvolen poměrně specifický jazyk OCaml. Podle správcovství Roberta Hansena je těžké se v kódu vyznat, a proto se do něj provádějí pouze malé opravy. Aby se architektura SKS mohla modifikovat, musela by být přepsána od nuly.
V každém případě v GnuPG nevěří, že by síť mohla kdy být opravena. V příspěvku na GitHubu vývojáři dokonce napsali, že nedoporučují pracovat s SKS Keyserver. Vlastně, to je jeden z hlavních důvodů, proč iniciovali přechod na nový servis keys.openpgp.org. Zbývá nám jen sledovat další vývoj událostí.
Některé materiály z našeho firemního blogu:
Zdroj: habr.com
