[Перевод] OpenSSL: новая уязвимость: возможность выполнить MITM атаку (CVE-2014-0224)
Атака OpenSSL MITM CCS injection За несколько последних лет в разных криптографических библиотеках были обнаружены несколько серьезных уязвимостей. Хотя только некоторые из них могли быть реально массово использованы перед тем, как их подробности становились общедоступными, и были выпущены патчи с исправлениями, серьёзные уязвимости типа Heartbleed побудили разработчиков, исследователей и простых пользователей к повышенно внимательному изучению надежности этих продуктов.
Среди недавних багов исправленных в OpenSSL версии 1.0.1h главная это — возможность MITM-атаки (CVE-2014–0224) против протоколов OpenSSL и TLS.
Что такое CVE-2014–0224 и должен ли я волноваться из-за него? Короткий ответ: неоднозначно, Но как и в случае с любой другой уязвимостью в безопасности, лучше всегда исправить, чем откладывать и волноваться.
Для эксплуатации этой уязвимость следующие условия должны выполняться:
И клиент, и сервер должны быть уязвимы. Со стороны клиента все версии OpenSSL уязвимы. На стороне сервера на данный момент считается уязвимой только версия 1.0.1. Если либо на клиенте, либо на сервере уязвимость исправлена, использование уязвимости становится невыполнимым. Атакующий должен быть «человеком посередине». Атакующий должен иметь возможность перехватывать и модифицировать Ваши пакеты. Десять лет назад такой вектор атаки казался почти невозможным для любого, кроме интернет-провайдеров, так как у них есть доступ ко всем сетевым устройствам, через которые идет трафик интернет.(Примечание переводчика: и десять лет назад, и у неразумных провайдеров сейчас можно слушать соседский трафик активными снифферами с помощью, например, arp-poisoning) Однако с появлением различных публичных беспроводных точек доступа, свободно доступных в кафе, ресторанах и т.д., MITM становится более реальным. К тому же существует множество программного обеспечения, которое позволяет создавать поддельные точки доступа. Как только клиент подключается к такой точке доступа, атакующий стать «человеком посередине» для трафика от клиента. Успешная атака «человек посередине» может сделать доступными злоумышленнику Ваши учетные данные, конфиденциальную информацию или предоставить злоумышленнику возможность подделать личность жертвыКак работает эта атака? SSL/TLS сессия инициализируется с помощью согласования посредством сообщений ClientHello и ServerHello с соответствующей стороны. Эта часть протокола отвечает за установку атрибутов сессии, таких как версия используемого протокола, протокол шифрования, ключи шифрования, код аутентичности сообщения (Message Authentication Code (MAC)), векторы инициализации и используемые расширения.
По разным причинам, как клиент, так и север могут принять решение о модификации стратегий выбора криптографического алгоритма вовремя этапа согласования (не путайте с протоколом согласования). Это достигается с помощью запроса ChangeCipherSpec (CCS). CCS состоит из одного пакета, посылаемого с клиентской и серверной стороны для уведомления о том, что следующие данные будут защищены новыми криптоалгоритмом и ключами.
Для того, чтоб эксплуатировать эту уязвимость, «человеку посередине» надо:
Дождаться установки нового соединения, с последующими сообщениями ClientHello / ServerHello. Послать CCS пакет в оба направления, который приведет к тому, что OpenSSL будет использовать мастер-ключ нулевой длины. Сессионные ключи будут созданы, на основе этого «нулевого» ключа и будущие сессионные ключи будут так же уязвимы.Переинициализировать параметры согласования.Атакующий получается возможность расшифровывать и даже модифицировать передаваемые пакеты.
В OpenSSL исправлена эта уязвимость следующим образом: CCS пакеты не могут быть получены до установки мастер-ключа, а мастер-ключи нулевой не разрешены.
Как защититься? Обновите пакет OpenSSL до последней версии, предоставленной Вашим дистрибутивом.
Примечание переводчика: Исправленные версии выпущены дляOpenSSL 0.9.8 — 0.9.8zaOpenSSL 1.0.0 — 1.0.0mOpenSSL 1.0.1 — 1.0.1hБаг в генту (исправленная версия уже в портажах)