Почему Apple использует более старую версию OpenSSL?

16

С последним обновлением OS X ( 10.10.5 ) Apple представляет OpenSSL 0.9.8 . Я просмотрел официальную страницу OpenSSL , и там я смог получить версию 1.0.2 .

Мой вопрос: почему Apple использует более старую версию OpenSSL? Это из-за устаревших функций в версии 1.0 или в чем причина?

Источник: страницы безопасности Apple

Бастиан Грубер
источник

Ответы:

20

Почему Apple использует уязвимую версию OpenSSL?

Это не так.

Если вы перейдете по ссылке, которую вы разместили в своем вопросе, вы увидите, что это обновление исправляет ряд уязвимостей, которые одинаково существуют в OpenSSL 0.9.8, 1.0.0, 1.0.1 и 1.0.2.

Другими словами, версия, которую вы позже предложите в качестве альтернативы, 1.0.2, была настолько же уязвимой, как и 0.9.8, и обе были исправлены одновременно.

С последним обновлением OS X ( 10.10.5 ) Apple представляет OpenSSL 0.9.8 . Я просмотрел официальную страницу OpenSSL , и там я смог получить версию 1.0.2 .

Apple обновляет OpenSSL до 0.9.8zg, которому всего 2 месяца, и всего 4 недели старше, чем 1.0.2d.

Мой вопрос: почему Apple использует более старую версию OpenSSL? Это из-за устаревших функций в версии 1.0 или в чем причина?

Это то, что вы должны спросить у Apple. Мое предположение заключается в том, что 0.9.8 - это версия, с которой они проводили тестирование на совместимость, а обновление до более новой версии потребовало бы совершенно нового раунда тестирования для компонента, который в любом случае считается устаревшим. Поскольку оно устарело, более новое программное обеспечение (которое, возможно, будет полагаться на новые функции) не должно его использовать в любом случае, а старое программное обеспечение, которое все еще использует его, не использует новые функции (потому что их не было) и может даже быть сломано обновлением, так зачем?

Пока сообщество OpenSSL по-прежнему поддерживает ветку 0.9.8, Apple даже не приходится делать бэкпорт патчей.

Обратите внимание, что в этом нет ничего необычного. Apple поставляла старую версию Ruby в течение очень долгого времени, и они обычно не обновляются во время цикла выпуска, только между выпусками. Дистрибутивы Linux, а также BSD и другие дистрибутивы Unix также обычно не обновляют версии во время выпуска, они применяют только исправления ошибок и исправления безопасности. В частности, Debian вообще не исправляет все ошибки, только уязвимости и ошибки, которые могут привести к потере пользовательских данных - любое изменение, даже исправление, является потенциальной несовместимостью и потенциальной возможностью появления новых ошибок; известные ошибки лучше, чем неизвестные!

Йорг Миттаг
источник
3
Если вы знаете это точно, скажите об этом и расскажите, откуда вы это знаете. В противном случае все, что вы делаете, это гадать.
Стив Чэмберс
Сам ОП связался с документом, в котором четко указано, что в этом обновлении был исправлен ряд уязвимостей (все последние, известные в OpenSSL). Позвольте мне перефразировать мой ответ.
Йорг Миттаг
1
Отлично, спасибо за то, что сократили числа и объяснили, что несколько веток перемещаются вперед и исправляются. +1 действительно
bmike
Обратите внимание, что в соответствии с текущей стратегией выпуска ветка OpenSSL 0.9.8 будет поддерживаться до конца 2015 года вместе с веткой 1.0.0. 0.9.8 был "Major Release" по их старой схеме управления версиями, и поддерживается с 2005 года, последней из второстепенных версий является "zg", 33-й выпуск этой ветки, согласно этому новостному журналу .
IMSoP
17

OpenSSL официально объявлен устаревшим. Он существует (за то небольшое время, которое Apple позволяет продвигаться вперед), чтобы не ломать программное обеспечение, которое не переходит либо на альтернативу Apple, ни внутренне связывает SSL с приложением.

См. Ссылку Apple Developer для объявления об устаревании: (другие ссылки более удобны для чтения / более обобщенное объяснение почему и что )

bmike
источник