Szukałem niezawodnego i przenośnego sposobu na sprawdzenie wersji OpenSSL na GNU / Linux i innych systemach, aby użytkownicy mogli łatwo dowiedzieć się, czy powinni zaktualizować swój SSL z powodu błędu Heartbleed.
Myślałem, że będzie to łatwe, ale szybko zetknąłem się z problemem Ubuntu 12.04 LTS z najnowszym OpenSSL 1.0.1g:
wersja openssl -a
Spodziewałem się zobaczyć pełną wersję, ale zamiast tego otrzymałem:
OpenSSL 1.0.1 14 marca 2012 zbudowany: Wt 4 czerwca 07:26:06 UTC 2013 Platforma: [...]
Ku mojemu niemiłemu zaskoczeniu list wersji nie pokazuje się. Nie ma f, nie ma, tylko „1.0.1” i to wszystko. Podane daty nie pomagają również w wykryciu wersji (nie) podatnej na ataki.
Różnica między 1.0.1 (af) a 1.0.1g jest kluczowa.
Pytania:
- Jaki jest niezawodny sposób sprawdzenia wersji, najlepiej cross distro?
- Dlaczego w pierwszej kolejności nie wyświetla się litera wersji? Nie byłem w stanie przetestować tego na niczym innym niż Ubuntu 12.04 LTS.
Inni też zgłaszają to zachowanie. Kilka przykładów:
- https://twitter.com/orblivion/status/453323034955223040
- https://twitter.com/axiomsofchoice/status/453309436816535554
Pojawiają się niektóre (specyficzne dla dystrybucji) sugestie:
- Ubuntu i Debian:
apt-cache policy openssl
iapt-cache policy libssl1.0.0
. Porównaj numery wersji z pakietami tutaj: http://www.ubuntu.com/usn/usn-2165-1/ - Fedora 20:
yum info openssl
(dzięki @znmeb na Twitterze) iyum info openssl-libs
Sprawdzanie, czy starsza wersja OpenSSL jest nadal rezydentem:
- Nie jest całkowicie niezawodny, ale możesz spróbować
lsof -n | grep ssl | grep DEL
. Zobacz Heartbleed: jak niezawodnie i przenośnie sprawdzić wersję OpenSSL? dlaczego to może nie działać dla Ciebie.
Okazuje się, że aktualizacja pakietu OpenSSL na Ubuntu i Debianie nie zawsze wystarcza. Powinieneś także zaktualizować pakiet libssl1.0.0 i - następnie - sprawdź, czy to openssl version -a
wskazuje built on: Mon Apr 7 20:33:29 UTC 2014
.
[root@null~]# openssl version -a OpenSSL 1.0.1e-fips 11 Feb 2013
apt-cache policy openssl
i odpowiedziałem: Installed: 1.0.1-4ubuntu5.12
to jest wersja 1.0.1g właśnie wydana przez Ubuntu dla 12.04 LTS. Wylogowałem się i wróciłem. Czy mogę coś jeszcze zrobić, aby to zweryfikować?