Международная группа исследователей в сфере кибербезопасности разработала схему атаки, которая позволяет взламывать RADIUS (Remote Authentication Dial-In User Service) — протокол аутентификации, который используется в сетевых приложениях по всему миру. Его слабым местом оказалась собственная реализация хеш-функции MD5.
Протокол RADIUS был разработан в 1991 году компанией Livingston Enterprises и утверждён как официальный стандарт Инженерным советом интернета (IETF) в 1997 году. С 1994 года в RADIUS используется собственная реализация хеш-функции MD5. Эта функция, созданная в 1991 году и утверждённая IETF в 1992 году стала популярной при создании дайджестов сообщений — механизмов, при которых принимается произвольный набор данных (число, текст или файл), а на выход подаётся хеш — последовательность длиной 16 байт.
Первоначально предполагалось, что потенциальный злоумышленник не сможет найти два набора исходных данных, которые на выходе давали бы один хеш. Но защита MD5 оказалась недостаточной, и функция более восприимчива к коллизиям, чем считалось ранее. В 2004 году это официально подтвердили (PDF) учёные Шаньдунского университета (Китай) Сяоюнь Ван (Xiaoyun Wang) и Хунбо Юй (Hongbo Yu); а три года спустя их теорию развили (PDF) в своей работе исследователи из Нидерландов и Швейцарии.
Чтобы продемонстрировать потенциально разрушительные последствия предложенной ими атаки, европейские специалисты применили свою схему для создания двух криптографических сертификатов X.509 с одной и той же подписью MD5, но разными публичными ключами и содержимыми полей Distinguished Name. В результате такой коллизии центр сертификации может, намереваясь подписать сертификат для одного домена, неосознанно подписать его для другого, вредоносного. В 2008 году эти же учёные в рамках демонстрации создали мошеннический центр сертификации — он генерировал TLS-сертификаты, которым доверяли все основные браузеры. Ключевым компонентом атаки было разработанное исследователями приложение Hashclash, которое сейчас стало общедоступным.
Новая схема атаки Blast-RADIUS (PDF) затрагивает все системы, в которых используется данный протокол. Она основывается на схеме атаки посредника (MITM-атаки), позволяя злоумышленнику получать администраторский доступ к устройствам, которые используют аутентификацию RADIUS на сервере. Разработанная в 2008 году схема атаки требует вычислительной мощности в размере 2800 ядро-дней, то есть эквивалента работы одного процессорного ядра в течение 2800 дней; а для Blast-RADIUS достаточно лишь 39 ядро-часов. Распределив нагрузку на кластер из 2000 ядер процессоров возрастом от 7 до 10 лет и четырёх низкопроизводительных видеокарт, исследователи сократили фактическое время атаки до пяти минут. Проанализировав расценки службы Amazon EC2, они установили, что превысить эти мощности достаточно ресурсов, арендованных за $50 в час, и эти ресурсы можно в дальнейшем масштабировать — с учётом того, что в системах на RADIUS время ожидания входа истекает всего за 30–60 секунд, угроза представляется вполне реалистичной.
Единственный способ устранить уязвимость RADIUS — передавать данные по защищённым протоколам TLS или DTLS, и сейчас рабочая группа IETF занимается обновлением спецификации с учётом данного метода защиты. Но крупное обновление такого рода займёт очень много времени — месяцы или даже годы. Некоторые реализации RADIUS, в том числе от Microsoft, до сих пор не поддерживают TLS. Поэтому в качестве временного решения для окружений, где так и придётся передавать данные RADIUS по открытому протоколу UDP, предлагается внедрить атрибуты Message-Authenticator на основе механизма аутентификации пакетов HMAC-MD5 — соответствующие обновления уже предложили FreeRADIUS, Radiator, Cisco, Microsoft и Nokia.
«Эта мера нарушает совместимость со старыми реализациями, которые могут не включать Message-Authenticators в запросы или ответы. Однако, в отличие от других вариантов, это не фундаментальное изменение протокола и может быть развёрнуто как простое обновление для клиентов и серверов», — предупреждают исследователи. Причём если отправитель включает Message-Authenticator при отправке данных, а принимающая сторона не требует этих атрибутов, уязвимость сохраняется — учёные указали два дополнительных сценария атак при такой схеме.
Источник: