Wersja pakietu OpenSSL z dystrybucji Debian GNU/Linux zawiera poważny błąd związany z ograniczonym zakresem losowości generowanych kluczy. Problem dotyczy pakietów openssl, openssh i openvpn w takich dystrybucjach jak Debian Etch czy Ubuntu Gutsy/Hardy. Ich użytkownicy powinni jak najszybciej zaktualizować pakiety.
Ponadto, w wielu przypadkach konieczne będzie ponowne wygenerowanie kluczy ze względu na możliwość ich łatwego skompromitowania (odgadnięcia metodą brute-force). Zmiana dotyczy szczególnie:
- kluczy SSH dla hosta (
/etc/ssh/...
) - kluczy SSH dla użytkowników (
~/.ssh/id_*
) - dodatkowych miejsc gdzie klucze SSH są przechowywane (
authorized_keys
,known_hosts
) - kluczy SSL używanych np. do szyfrowania serwisów HTTPS (co oznacza konieczność ponownego wystąpienia do instytucji certyfikującej o podpis)
- kluczy OpenVPN
Jak widać konsekwencje są poważne. Co ciekawe, problematyczna zmiana w OpenSSL została wprowadzona 14 maja 2006 roku, czyli prawie dokładnie dwa lata temu. Opiekun pakietu OpenSSL postanowił wówczas przeanalizować oficjalny kod biblioteki przy pomocy analizatora kodu Valgrind. Narzędzie to słusznie wykazało błąd w funkcji ssleay_rand_bytes
, która traktowała niezainicjalizowane dane z bufora jako źródło losowości. Opiekun postanowił zakomentować tę część i byłoby to rozwiązanie poprawne i nie wpływające znacząco na jakość generatora. Problem w tym, że implementując zmianę pomylił się i zakomentował również kod z innej funkcji – ssleay_rand_add
, która ma kluczowe znaczenie dla generatora liczb losowych w OpenSSL.
Źródła:
- DSA-1571 – Debian Security Advisory,
- USN-612-1 – Ubuntu Security Notice,
- Debian bug #363516 – raport z testowania Valgrinda i wprowadzenia nieszczęsnej „poprawki”,
- dowkd.pl – analizator istniejących kluczy SSL/SSH/VPN do sprawdzenia, które należy wygenerować ponownie,
- Dilbert i xkcd pasujące na tę okazję.
Archiwalny news dodany przez użytkownika: wanted.
Kliknij tutaj by zobaczyć archiwalne komentarze.