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!