Бесплатно Экспресс-аудит сайта:

06.06.2014

В OpenSSL закрыли критическую уязвимость 16-летней давности

В OpenSSL закрыли критическую уязвимость 16-летней давности

В криптографическом пакете OpenSSL обнаружена и исправлена очередная серьёзная уязвимость CVE-2014-0224. С её помощью злоумышленник может специальным образом подобрать параметры рукопожатия, чтобы клиент и сервер OpenSSL SSL/TLS использовали для связи между собой слабые ключи, не обеспечивающие должной безопасности.

Ослабив таким образом канал, злоумышленник имеет возможность провести атаку типа «человек посередине» (MiTM), расшифровать и модифицировать трафик между клиентом и сервером.

Проведение атаки возможно только в том случае, если обе стороны используют уязвимую версию библиотеки OpenSSL. Уязвимыми являются все клиентские версии OpenSSL, и из серверных пакетов — только OpenSSL 1.0.1 и 1.0.2-beta1. Тем не менее, пользователям более ранних серверных версий тоже рекомендуется обновиться на всякий случай.

В OpenSSL закрыли критическую уязвимость 16-летней давности

Более подробно механизм эксплуатации объясняет японский специалист Макаси Кукичи (Masashi Kikuchi), который обнаружил этот баг.

Проблема заключается в некорректной обработке спецификаций ChangeCipherSpec (CCS) в OpenSSL во время рукопожатия. Причём баг существовал с момента самого первого выпуска криптографического пакета 16 лет назад.

Некорректная обработка заключается в том, что OpenSSL отправляет пакеты CCS по строгому графику в определённый момент рукопожатия, а вот обрабатывает принятые пакеты и в другое время. Злоумышленник может воспользоваться этим, чтобы внедриться в передачу со своими CSS и ослабить установленные ранее договорённости об использовании конкретных шифров.

Правильный порядок рукопожатия изображён на схеме. Нужно всего лишь вставить в код проверку, что этот порядок соблюдается.

В новых версиях 0.9.8za, 1.0.0m и 1.0.1h исправлена эта и ещё несколько уязвимостей в OpenSSL.