Hakerzy wykorzystali cechę protokołu OpenPGP, o której wiadomo od ponad dziesięciu lat.
Wyjaśniamy, na czym to polega i dlaczego nie da się tego naprawić.
/ Unsplash /
Problemy w sieci
W połowie czerwca nieznani sprawcy na sieć serwerów kluczy kryptograficznych , opartą na protokole OpenPGP. To standard IETF (), który jest używany do szyfrowania e-maili i innych wiadomości. Sieć SKS została stworzona trzydzieści lat temu w celu dystrybucji publicznych certyfikatów. Do sieci łączą się takie narzędzia jak do szyfrowania danych i tworzenia elektronicznych podpisów.
Hakerzy skompromitowali certyfikaty dwóch głównych współtwórców projektu GnuPG — Roberta Hansena i Daniela Gillmora. Pobranie uszkodzonego certyfikatu z serwera powoduje awarię GnuPG — system po prostu się zawiesza. Istnieją podstawy, aby sądzić, że na tym sprawcy się nie zatrzymają, a liczba skompromitowanych certyfikatów tylko wzrośnie. Na chwilę obecną skala problemu pozostaje nieznana.
Istota ataku
Hakerzy wykorzystali lukę w protokole OpenPGP. Jest ona znana społeczności od wielu lat. Nawet na GitHubie są odpowiednie exploity. Ale jak dotąd nikt nie wziął odpowiedzialności za załataniu "dziury" (o przyczynach porozmawiamy później).
Dwie kompilacje z naszego bloga na Habrze:
Zgodnie ze specyfikacją OpenPGP każdy może dodawać podpisy cyfrowe do certyfikatów w celu potwierdzenia ich właściciela. Co więcej, maksymalna liczba podpisów nie jest w żaden sposób regulowana. A tutaj pojawia się problem — sieć SKS pozwala umieszczać do 150 tys. podpisów na jednym certyfikacie, ale GnuPG nie obsługuje ich takiej liczby. W ten sposób przy pobieraniu certyfikatu GnuPG (jak i innych realizacji OpenPGP) zawiesza się.
Jeden z użytkowników — import certyfikatu zajął mu około 10 minut. Certyfikat miał ponad 54 tys. podpisów, a jego rozmiar wyniósł 17 MB:
$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: klucz F20691179038E5C6: 4 duplikaty podpisów usunięto
gpg: klucz F20691179038E5C6: 54614 podpisów nie sprawdzono z powodu brakujących kluczy
gpg: klucz F20691179038E5C6: 4 podpisy przerejestrowano
gpg: klucz F20691179038E5C6: klucz publiczny "Daniel Kahn Gillmor <dkg@fifthhorseman.net>" zaimportowany
gpg: nie znaleziono kluczy ostatecznie zaufanych
gpg: Łączna liczba przetworzonych: 1
gpg: zaimportowanych: 1
$ ls -lh pubring.gpg
-rw-r--r-- 1 filippo staff 17M 2 lip 16:30 pubring.gpg
Sytuację pogarsza fakt, że serwery kluczy OpenPGP nie usuwają informacji o certyfikatów. Zostało to zrobione, aby móc śledzić wszystkie działania z certyfikatów i wykluczyć ich podmianę. Dlatego nie można zlikwidować skompromitowanych elementów.
W istocie sieć SKS jest dużym „serwerem plików”, na który każdy może zapisać dane. Aby zilustrować problem, w ubiegłym roku rezydent GitHub , który przechowuje dokumenty w sieci serwerów kluczy kryptograficznych.
Dlaczego nie zamknięto luki
Nie było podstaw do zamknęcia luki. Wcześniej nie była wykorzystywana do przeprowadzenia ataków hakerskich. Mimo to społeczność IT deweloperów SKS i OpenPGP o zwrócenie uwagi na problem.
Z słuszności warto zauważyć, że w czerwcu w końcu eksperymentalny serwer kluczy . W nim wdrożono ochronę przed tego rodzaju atakami. Niemniej jednak jego baza danych jest wypełniana od zera, a sam serwer nie jest częścią SKS. Dlatego minie trochę czasu, zanim będzie można z niego korzystać.

/ Unsplash /
Jeśli chodzi o błąd w oryginalnym systemie, to trudno go naprawić z powodu skomplikowanego mechanizmu synchronizacji. Sieć serwerów kluczy była początkowo tworzona jako proof of concept dla obrony pracy doktorskiej Yaron Minsky'ego. Co więcej, do pracy wybrano dość specyficzny język OCaml. Z według maintanera Roberta Hansena, zrozumienie kodu jest trudne, dlatego wprowadza się jedynie niewielkie poprawki. Aby zmodyfikować architekturę SKS, trzeba będzie przepisać ją od podstaw.
W każdym razie w GnuPG nie wierzą, że sieć kiedykolwiek zostanie naprawiona. W poście na GitHub deweloperzy nawet napisali, że nie rekomendują pracy z serwerem kluczy SKS. Właściwie to jedna z głównych przyczyn, dla których zainicjowali przejście na nową usługę keys.openpgp.org. Pozostaje nam tylko obserwować dalszy rozwój wydarzeń.
Kilka materiałów z naszego bloga korporacyjnego:
Źródło: habr.com
