Список open-source-инструментов, в которых возможен бэкдор, недавно пополнился Socat.

Socat — это универсальная утилита командной строки, предназначенная для создания двунаправленных потоков передачи данных между каналами, такими как файлы, сетевые шины, устройства с последовательным интерфейсом, сокеты.

В минувший понедельник появился посвященный Socat бюллетень с тревожной информацией: реализация адресации в OpenSSL содержит прописанный в коде 1024-битный параметр p алгоритма Диффи — Хеллмана (DH), не являющийся простым числом.

«Криптостойкость обмена ключами, использующего эти параметры, слабее, чем в том случае, когда в качестве p используется простое число, — говорится в этом бюллетене. — Более того, поскольку нет указания, каким образом были выбраны эти параметры, не исключено наличие секрета, позволяющего перехватчику заполучить совместно используемый закрытый ключ в ходе обмена ключами».

Данной уязвимости подвержены Socat версий 1.7.3.0 и 2.0.0-b8. Разработчик уже сгенерировал новый p-параметр, длиной 2048 бит, а в качестве временной меры рекомендует отключить наборы шифров DH.

Один из комментаторов на техническом форуме пояснил, что создавший риски параметр объявился более года назад. В примечании автор той давней записи отметил, что Socat не работала в режиме FIPS, так как он требует использования простого 1024-битного числа для DH. Эта ситуация была исправлена соответствующим патчем, разработанным сотрудником Oracle Чжиганом Ваном (Zhigang Wang).

За отсутствием данных о том, каким образом Ван выбирал новое число, остается открытым важный вопрос: отличный от простого числа параметр был привнесен намеренно или по ошибке? Журналисты Threatpost обратились за разъяснениями в Socat, однако на момент публикации ответ еще не был получен.

Тем временем другие участники текущего обсуждения проблемы с Socat отмечают, что проверки с помощью OpenSSL и других инструментов для генерации простых чисел не могут доподлинно установить, является число простым или нет. «Насколько я знаю, при генерации простых чисел обычно используется тест Миллера — Рабина на признаки простоты, но в этом случае выбор простого числа получается вероятностным, — подтверждает один из таких комментаторов. — Функции is_prime в OpenSSL на самом деле не проверяют, простое число или нет. Они лишь помогают определить простое число с вероятностью 1-2^-80. Не могу с уверенностью сказать, много это или мало».

Как бы то ни было, целый год Socat оставалась открытой к перехвату данных и краже криптоключей. Об этом все узнали менее чем через неделю после выхода патчей для OpenSSL, один из которых призван решить проблему, связанную с ненадежностью DH-параметров. Ту же слабость алгоритма Диффи — Хеллмана, похоже, давно пытается использовать АНБ, реализуя свои проекты по взлому существующих в Сети криптосистем.

Адъюнкт-профессор Мичиганского университета Алекс Халдерман (J. Alex Halderman) полагает, что простые числа в данном случае являются наиболее вероятной мишенью, поскольку они не генерируются случайным образом, а выбираются на основе предыдущего опыта или рекомендаций к существующим стандартам. В комментарии Threatpost Халдерман также отметил, что разведуправлению, подобному АНБ, понадобится вложить сотни миллионов долларов в разработку и создание специализированного вычислительного оборудования, способного на такие вычисления.

Категории: Уязвимости