id: Гость   вход   регистрация
текущее время 21:15 19/04/2024
Владелец: unknown (создано 07/11/2007 11:43), редакция от 07/11/2007 17:15 (автор: unknown) Печать
Категории: криптография, софт, случайные числа, уязвимости, операционные системы, закрытый софт
https://www.pgpru.com/Новости/2007/НестойкостьВГПСЧWindowsПозволяетБыстроВскрыватьКлючиИSSL-соединения
создать
просмотр
редакции
ссылки

07.11 // Нестойкость в ГПСЧ Windows позволяет быстро вскрывать ключи и SSL-соединения


Израильские учёные Leo Dorrendorf, Zvi Gutterman и Benny Pinkas опубликовали работу "Cryptanalysis of the Random Number Generator of the Windows Operating System".


Им удалось дизассемблировать и трассировать закрытый код ОС Windows, содержащийся в библиотеках ADVAPI32.DLL, RSAENH.DLL и KSECDD.SYS и полностью восстановить исходный код генератора псевдослучайных чисел ОС Windows без какой-либо помощи со стороны компании Microsoft и практически полном отсутствии документации по этой теме. WRNG используют многочисленные приложения через вызов функции CryptGenRandom, также он используется в WinCryptoAPI.


В работе также приводятся сравнения с LRNG – реализацией ГПСЧ в Linux, в которой также были ранее обнаружены многочисленные уязвимости, но из-за особенности архитектуры ОС, практическое значение их оказалось не так велико.


Генератор Windows использует модифицированную функцию SHA-1 и потоковый шифр RC4. Не используя каких либо уязвимостей в самом шифре RC4, исследователи обнаружили многочисленные ошибки в дизайне генератора и его несоответствие элементарным и давно известным требованиям, которым должны отвечать такие генераторы.


Генератор запускается не на уровне ядра, а на уровне пользовательских процессов, отдельно для каждого процесса. Это даёт некоторые преимущества: если будет извлечено состояние генератора для одного процесса, то другие процесы не пострадают. Но это также облегчает к нему доступ (достаточно получить значение адресного пространства для определённого приложения) и делает возможным, получив значение из одного сеанса, вычислить другие. В некоторых случаях доступ вредоносного кода к компьютеру, необходимый для проведения такой атаки, может быть незначительным, а уязвимости в приложениях, раскрывающие состояния генератора, имеют много шансов остаться незамеченными.


Атака типа forward security (предсказание предыдущих состояний генератора) составляет 223 операций (всего несколько секунд на персональном компьютере), а атака на backward security (предсказание последующих состояний) тривиальна и имеет сложность всего O(1)


Это связано с тем, что обновление состояния генератора происходит не при каждой итерации, а только после использования выхода в 128 кбайт. Такое большое значение может быть израсходовано приложением зачастую лишь спустя несколько дней после запуска. Например, Internet Explorer обновит своё состояние PRNG только спустя 600-1200 SSL-сессий. Это очень большое временное окно для атаки. Если в Linux состояние генератора обновляется почти ежесекундно (что совместно с реализацией на уровне ядра и защитой от прямого чтения состояния пользовательскими процессами делают уязвимости в Linux некритичными – приложения могут читать только выход генератора), то в Windows оно может оставаться неизменным в течении многих дней или не успевать обновляться вообще.


Исследователи рекоммендуют полностью переработать дизайн генератора, убрать из него функцию на основе RC4, которая не обеспечивает forward security и вообще не должна применяться в ГПСЧ. ОС Windows Vista исследованию не подвергалась, но учёные предполагают, что данный дизайн генератора сохранён и в ней.


Источник: Cryptology ePrint Archive


 
Много комментариев (26) [показать комментарии/форму]
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3