Dzisiaj zawstydzony Exploit OpenSSL został ogłoszony na wolności, co pozwala atakującemu na ukrycie i wykradzenie prywatnych kluczy serwera (umożliwiając MitM i odszyfrowanie zaszyfrowanych danych oraz kradzież haseł). Dotyczy to wersji OpenSSL, w tym wersji 1.0.1f, która jest wersją na moim aktualny komputer Mavericks Mac (ponieważ użyłem portu / naparu do zainstalowania innego oprogramowania, które zaktualizowało mój openssl, nie zdając sobie z tego sprawy) ):
$ openssl version
OpenSSL 1.0.1f 6 Jan 2014
To pokazuje, że nie używam wersji OpenSSL Mavericks:
$ which openssl
/opt/local/bin/openssl
OpenSSL opublikował dziś poprawkę 1,0,1 g i zastanawiam się, jak mogę zainstalować tę poprawioną wersję na mojej obecnej wersji?
security
software-update
openssl
dr jimbob
źródło
źródło
which openssl
może mieć charakter informacyjny. Ponadto głównym problemem nie jest polecenie openssl, ale biblioteki openssl (używane przez inne programy) - nie są one kompatybilne z API między wersjami 0.9.x i 1.0.x, więc nie chcę zaktualizować dostarczone przez system biblioteki openssl!MacPort
w pewnym momencie na tej maszynie, która zaktualizowała mój openssl. (Prawdopodobnie podczas próby uzyskania działającego pythona 2.7). Prawdopodobnie powinno usunąć to pytanie, ale na wypadek, gdyby inni popełnili ten sam błąd, znajdź wspaniałą odpowiedź SapphireSun).openssl version
zwraca 1.0.1g, ale mówiszopenssl
komendy nie używają tej wersji?Odpowiedzi:
Na co warto, właśnie użyłem homebrew ( http://brew.sh/ ):
Jeśli pojawi się jedna ze złych wersji (1.0.1a-f), możesz dowiedzieć się, która wersja openssl używasz, w ten sposób:
Często jest to z / usr / bin. Aby upewnić się, że otrzymasz zaktualizowaną wersję, upuść dowiązanie symboliczne do / usr / local / bin, aby wskazać zaktualizowany openssl, w ten sposób:
Jako alternatywę dla tego ostatniego kroku niektórzy ludzie zastępują openssl
/usr/bin
z dowiązaniem symbolicznym do/usr/local/Cellar/openssl/1.0.1g/bin/openssl
(lub jakakolwiek jest twoja wersja):Ale wiadomo, że powoduje to problemy w niektórych nowszych wersjach OSX. Lepiej po prostu wstawić nowe dowiązanie symboliczne do / usr / local / bin, które powinno mieć pierwszeństwo na ścieżce nad / usr / bin.
źródło
hash -r
/usr/bin/openssl
, można utworzyć link pod adresem/usr/local/bin/openssl
. To powinno poprzedzać/usr/bin
na Twoim$PATH
i ominąć wszelkie problemy wynikające z „Ochrony integralności systemu” w nowszych wersjach OS X.Lub dla tych, którzy używają portów mac i nie martwią się o zachowanie wersji
simples :-)
źródło
sudo port upgrade outdated
działa również.sudo port -f uninstall openssl @<old-version>
zrobiłem sztuczkę dla mnie :)Do rozwiązania Rozszerzenie żądania statusu OCSP nieograniczony wzrost pamięci (CVE-2016-6304) na macOS Sierra za pomocą
brew
z Ochrona integralności systemu włączone:Tymczasowo dostosuj uprawnienia
/usr/local
więc napar może zaktualizować:Zainstaluj zaktualizowaną wersję OpenSSL (prawdopodobnie chcesz 1.0.2i):
Możesz / potrzebujesz usunąć istniejące dowiązanie symboliczne do openssl z
/usr/local/bin
:Ponownie połącz właściwą wersję parzenia:
Przywróć oryginalne uprawnienia
/usr/local/bin
:źródło
$PATH
zmienna do przejrzenia/usr/local/bin
?$ openssl version
dostajęOpenSSL 0.9.8zh 14 Jan 2016
ale kiedy biegnę$ brew install openssl
dostajęWarning: openssl 1.0.2l is already installed
. Czy to oznacza, że mam zainstalowane dwie wersje? Co dokładnie powinienem teraz zrobić?Ktokolwiek nie chce używać brew lub portów i chce po prostu zastąpić domyślną instalację OpenSSL 0.9.8, zawsze może wyłączyć ochronę integralności systemu, ponownie uruchamiając tryb odzyskiwania (cmd + R) i wydając
a następnie skompiluj openssl z
Z powodzeniem zastąpił dla mnie OpenSSL w ElCapitan i udało mi się skompilować curd i httpd 2.4 apache bez żadnego problemu bezpośrednio ze źródeł. Powodem tej metody, którą niektórzy mogą uznać za drastyczne, jest to, że firma ElCapitan nie jest już obsługiwana przez Apple i żadne aktualizacje nie są dostępne, więc prawdopodobnie się nie zepsuje. Po drugie, oszczędza się przed wskazywaniem folderu openssl w / usr / local dla każdego kompilowanego programu, dzięki czemu kompilacja jest bardziej niezawodna.
źródło