Dlaczego Apple używa starszej wersji OpenSSL?

16

W najnowszej aktualizacji OS X ( 10.10.5 ) Apple wprowadza OpenSSL 0.9.8 . Przeglądałem oficjalną stronę OpenSSL i tam mogłem pobrać wersję 1.0.2 .

Moje pytanie brzmi: dlaczego Apple używa starszej wersji OpenSSL? Czy to z powodu przestarzałych funkcji w wersji 1.0, czy jaki jest tego powód?

Źródło: strony Apple Security

Bastian Gruber
źródło

Odpowiedzi:

20

Dlaczego Apple korzysta z wrażliwej wersji OpenSSL?

To nie jest

Jeśli klikniesz link opublikowany w pytaniu, zobaczysz, że ta aktualizacja usuwa wiele luk, które istnieją identycznie w OpenSSL 0.9.8, 1.0.0, 1.0.1 i 1.0.2.

Innymi słowy, wersja, którą później sugerujesz jako alternatywę, 1.0.2, była tak samo wrażliwa jak 0.9.8 i obie zostały naprawione w tym samym czasie.

W najnowszej aktualizacji OS X ( 10.10.5 ) Apple wprowadza OpenSSL 0.9.8 . Przeglądałem oficjalną stronę OpenSSL i tam mogłem pobrać wersję 1.0.2 .

Apple aktualizuje OpenSSL do wersji 0.9.8zg, która ma zaledwie 2 miesiące i tylko 4 tygodnie starsza niż 1.0.2d.

Moje pytanie brzmi: dlaczego Apple używa starszej wersji OpenSSL? Czy to z powodu przestarzałych funkcji w wersji 1.0, czy jaki jest tego powód?

O to musisz zapytać Apple. Domyślam się, że 0.9.8 jest wersją, z którą przeprowadzili testy kompatybilności, a aktualizacja do nowszej wersji wymagałaby zupełnie nowej rundy testów dla komponentu, który i tak jest przestarzały. Ponieważ jest przestarzałe, nowsze oprogramowanie (które prawdopodobnie opierałoby się na nowszych funkcjach) i tak nie powinno z niego korzystać, a starsze oprogramowanie, które nadal z niego korzysta, nie korzysta z nowych funkcji (ponieważ nie istniały), a może nawet zostać zepsute przez aktualizację, więc po co zawracać sobie głowę?

Dopóki społeczność OpenSSL nadal utrzymuje gałąź 0.9.8, Apple nie musi nawet wykonywać poprawek do backportowania.

Pamiętaj, że nie jest to niczym niezwykłym. Firma Apple dostarczała starą wersję Ruby przez bardzo długi czas i na ogół nie aktualizują się one podczas cyklu wydawniczego, tylko między wydaniami. Dystrybucje Linuksa, a także BSD i inne dystrybucje Uniksa, zwykle nie aktualizują wersji podczas wydania, stosują jedynie poprawki błędów i poprawki bezpieczeństwa. W szczególności Debian na ogół nie naprawia wszystkich błędów, tylko luki w zabezpieczeniach i błędy, które mogą skutkować utratą danych użytkownika - każda zmiana, nawet poprawka błędu jest potencjalną niezgodnością i potencjalną możliwością nowych błędów; znane błędy są lepsze niż nieznane!

Jörg W Mittag
źródło
3
Jeśli znasz to na pewno, powiedz to i powiedz nam, skąd to wiesz. W przeciwnym razie wszystko, co robisz, to zgadywanie.
Steve Chambers
Sam OP powiązał się z dokumentem, który wyraźnie stwierdza, że ​​w tej aktualizacji naprawiono wiele luk (wszystkie najnowsze znane w OpenSSL). Pozwól, że sformułuję moją odpowiedź.
Jörg W Mittag
1
Dobra robota - dziękuję za przekreślenie liczb i wyjaśnienie, że wiele gałęzi jest przesuwanych do przodu i łatanych. +1 rzeczywiście
bmike
Należy pamiętać, że zgodnie z ich aktualną strategią wydania gałąź OpenSSL 0.9.8 będzie obsługiwana do końca 2015 r. Wraz z gałęzią 1.0.0. Zgodnie z tym dziennikiem wersja 0.9.8 była „wersją główną ” zgodnie ze starym schematem wersjonowania i jest utrzymywana od 2005 roku, a ostatnią niewielką wersją jest „zg”, 33 wydanie poza tą gałęzią .
IMSoP,
17

OpenSSL jest oficjalnie przestarzałe. Istnieje (przez jak długi czas Apple pozwala), aby nie złamać oprogramowania, które nie migruje do alternatywnego Apple ani nie łączy wewnętrznie SSL z aplikacją.

Zobacz link Apple Developer do ogłoszenia o wycofaniu: (inne linki są łatwiejsze do przeczytania / więcej syntezy tego, co do czego )

bmike
źródło