LINUX.ORG.RU

В программах RSA Security обнаружен очередной бэкдор АНБ

 extended random, ,


1

1

По данным агенства Рейтер, АНБ оставило свои закладки не в одном, как было известно ранее, а сразу в двух программах, принадлежащих пионеру в области безопасности - компании RSA Security.

В декабре прошлого года уже появлялись доказательства того, что АНБ заплатило компании около 10 миллионов долларов за возможность поучаствовать в разработке генератора случайных чисел, основанного на механизме двойных эллиптических кривых (Dual EC DRBG). Внесённые изменения позволяли любому, кто был осведомлен о них, без особых трудностей предсказывать поведение генератора, а «случайные» числа становились вовсе не «случайными». Проблема усугублялась тем, что этот метод шифрования был задействован по умолчанию в самом популярном продукте RSA - программном комплексе BSAFE.

Профессоры различных американских университетов выступили с заявлением о том, что им удалось найти еще один бэкдор в BSAFE. Он размещён в расширении Extended Random (применяемом для повышения безопасности веб-сайтов), которое изначально должно было увеличивать количество источников энтропии, увеличивая надежность шифрования. Однако, включение данного расширения не только не способствует усилению криптостойкости, но позволяет в сотни и тысячи раз ускорить дешифровку данных, зашифрованных с помощью пресловутых двойных эллиптических кривых путём облегчения предсказания следующих случайных чисел. Примечательно, что в 2008 году Пентагон рекомендовал использовать это расширение в качестве средства повышения энтропии.

RSA Security отрицает, что данный код был добавлен по просьбе АНБ, но в качестве оправдания упирает лишь на то, что это расширение не обрело популярность, а его разработка и поддержка были прекращены полгода назад. «Нам стоило более скептически отнестись к намерениям АНБ,» - сказал главный инженер RSA Сэм Кэрри. «Мы доверяли им, лишь потому, что они обеспечивают безопасность правительства США и критической инфраструктуры США.»

По словам Томаса Райсенпарта из университета Висконсина, исследовавшего код, Extended Random не даёт вообще никаких преимуществ в плане безопасности.

Мэтью Грин, профессор университета Джонса Хопкинса, высказался более образно. Учитывая тот факт, что указанное расширение появилось аккурат после принятия двойных эллиптических кривых в качестве стандарта, объяснения RSA выглядят крайне неубедительно. «Использовать Dual EC DRBG - все равно, что играть со спичками. Но включение Extended Random можно сравнить разве что с добровольным обливанием себя бензином», - говорит Грин.

Роль АНБ в происхождении Dual EC DRBG довольно значительна. Авторами документа, описывавшего эту технологию, являются Маргарет Солтер, технический директор подразделения АНБ, ответственного за обеспечение безопасности, и сторонний эксперт Эрик Рескорла, выступавший за шифрования всего веб-трафика в Интернете. В настоящее время, он работает в Mozilla Foundation и отказывается от комментариев по вопросу об эллиптических кривых. Ответа от Маргарет Солтер получено не было. Агентство Национальной Безопасности США также отказалось комментировать ситуацию.

Несколько лет назад Инженерный совет Интернета (IETF) рассматривал вопрос о принятии Extended Random в качестве отраслевого стандарта. К счастью, этот протокол тогда принят не был.

Исследователям понадобился всего лишь час времени, чтобы вскрыть шифрование BSAFE, а стоимость задействованного для этого оборудования не превышает 40 тысяч долларов. Задействование Extended Random ускоряет этот процесс в 65 000 раз, сводя время атаки к нескольким секундам. Эта простота позволяет легко применять такую атаку при массовом наблюдении за трафиком.

>>> Подробности

anonymous

Проверено: Shaman007 ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Ответ на: комментарий от prischeyadro

утвердить a и b в качестве стандарта для какого-либо шифра.

таких констант ОЧЕНЬ мало. Их можно и поменять.

И да, никто не запрещает тебе прогнать ненадёжный рандом сквозь свой фильтр. Так обычно и делается, энтропия собирается из нескольких источников, потому даже если враг может предсказать один из них, то это ему ничего не даст.

Ну естественно есть продукты, в которых этого НЕ делается(или делается так, как оно удобно для АНБ), ну и что? Никто не заставляет использовать эти продукты.

emulek
()
Ответ на: комментарий от emulek

Из разных источнков энтропию берут обычно для сида генератора, а ПСЧ потом генерируются каким-то одним алгоритмом. Фильтровать можно (например, брать только LSB, остальное выкидывать), но в стандарте на этот счёт есть пункт «использовать только часть значений крайне не рекомендуется по соображениям производительности». Тоже от АНБ, уверен.

prischeyadro ★★★☆☆
()
Ответ на: комментарий от prischeyadro

Из разных источнков энтропию берут обычно для сида генератора

я о том и говорю. Бери seed из разных источников, и складывай всё.

а ПСЧ потом генерируются

а зачем тебе ПСЧ?

emulek
()
Ответ на: комментарий от emulek

а зачем тебе ПСЧ?

Тебе это неясно? Ну сравни cat /dev/random и cat /dev/urandom

всегда, если там жёстко прописаны какие-то магические константы, непонятно из чего полученные.

Ты далёк от реалий криптографии. Не в курсе про s-boxes, про протокол Диффи-Хеллмана? В стандарте должны быть константы, чтобы протокол работал.

prischeyadro ★★★☆☆
()
Ответ на: комментарий от prischeyadro

а зачем тебе ПСЧ?

Тебе это неясно?

учись читать: я не спрашивал «чем отличается», я спрашивал «зачем тебе ПСЧ?»

Ты далёк от реалий криптографии.

очень знакомый аргумент. Совсем недавно тут уже был иксперт, тоже самое говорил.

Не в курсе про s-boxes, про протокол Диффи-Хеллмана?

в курсе.

В стандарте должны быть константы, чтобы протокол работал.

я и не говорил «не должно». Но их должно быть мало, и должно быть предельно ясно, КАК они делаются. Иначе — да, будет возможна атака через эти константы. Вот только не ты эту атаку придумал, она и до тебя была известна.

emulek
()
Ответ на: комментарий от emulek

и должно быть предельно ясно, КАК они делаются

Ну вот тебе говорят: a получено при помощи квантового генератора случайных чисел. b получено при помощи квантового генератора случайных чисел. И?

я спрашивал «зачем тебе ПСЧ?»

Генерировать непредсказуемые IV для очень большого количества шифруемых данных.

prischeyadro ★★★☆☆
()
Ответ на: комментарий от prischeyadro

Ну вот тебе говорят: a получено при помощи квантового генератора случайных чисел. b получено при помощи квантового генератора случайных чисел. И?

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

Генерировать непредсказуемые IV для очень большого количества шифруемых данных.

что мешает тебе использовать криптостойкий хеш с солью для этой цели? Как ты сможешь из одной sha512, сделать предыдущую, если в соли 1024 бита, и тебе эта соль неизвестна?

Так и делаются твои IV. И нужно для этого всего два случайных числа, seed и соль.

emulek
()
Ответ на: комментарий от emulek

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

Тогда тебе говорят так: мы получили два числа, a и b, на квантовом генераторе случайных чисел, и досконально проверили, что генератор на их основе не будет предсказуемым, так что это ещё один очень хороший повод использовать именно эти a и b. И?

Так и делаются твои IV

Ну так ты и сделал из хэш-функции ГПСЧ. Это и есть ответ на вопрос «зачем нужен ГПСЧ».

prischeyadro ★★★☆☆
()
Ответ на: комментарий от prischeyadro

Тогда тебе говорят так: мы получили два числа, a и b, на квантовом генераторе случайных чисел, и досконально проверили, что генератор на их основе не будет предсказуемым, так что это ещё один очень хороший повод использовать именно эти a и b. И?

что значит «проверили, что не будет предсказуемым»? Если я правильно понял, это значит, что они не смогли предсказать. Они не смогли, а враг?

Ну так ты и сделал из хэш-функции ГПСЧ.

да. А при чём тут какие-то уязвимости в чьих-то алгоритмах?

Я использую уязвимый алгоритм всего лишь как дополнительный источник энтропии, для получения seed и соли. С ним лучше, чем без него. С ним предсказать может только АНБ(и то, в теории), без него — любой дурак.

emulek
()
Ответ на: комментарий от emulek

что значит «проверили, что не будет предсказуемым»? Если я правильно понял, это значит, что они не смогли предсказать. Они не смогли, а враг?

Ты с формальным определением атак на шифры знаком? Они используют понятие идеализированного противника — http://en.wikipedia.org/wiki/Adversary_(cryptography) Они не смогли, а враг смог — ну печалька. Но стопроцентные гарантии в криптографии даются только на шифр Вернама.

да. А при чём тут какие-то уязвимости в чьих-то алгоритмах?

Какие уязвимости? Ты спрашивал «а зачем тебе ПСЧ?» Ответ тебя устраивает?

Я использую уязвимый алгоритм всего лишь как дополнительный источник энтропии, для получения seed и соли.

Алгоритм источником энтропии быть не может поскольку детерминирован, ты о чём вообще?

prischeyadro ★★★☆☆
()
Ответ на: комментарий от prischeyadro

Ты с формальным определением атак на шифры знаком?

речь про другое немножечко. Речь про сами псевдослучайные числа. Проблема в том, что принципиально недоказуемо то, что они  — случайные. Последовательность 0,0,0,0,0,0... тоже _может_ быть случайной. А может быть и нет.

Они не смогли, а враг смог — ну печалька. Но стопроцентные гарантии в криптографии даются только на шифр Вернама.

тут всё дело в том, что если ты будешь использовать в качестве ПСЧ просто 1,2,3,4,5... и какую-то соль неизвестную врагу, то можно дать достаточно сильные гарантии, что враг не сможет предсказать даже эту последовательность 1,2,3,4,5..., в случае, если её обернуть в криптостойкий хеш. Т.е. это у нас будет УЖЕ криптосильный ГПСЧ. И его сила будет такая же, как у хеша(т.е. на сегодня достаточная, даже если брать md5). Но это конечно при условии, что соль непредсказуема. IRL используют более сильные последовательности, и более лучшие алгоритмы, т.ч. если всё делается правильно, то проблемы не будет, даже с кривым ГПСЧ. Эти IV нужны довольно редко, т.ч. проблемы в производительности у нас нет.

Единственная проблема — использование уязвимого ГПСЧ напрямую. Но это чистой воды вредительство.

Алгоритм источником энтропии быть не может поскольку детерминирован, ты о чём вообще?

алгоритм может быть источником энтропии, если какие-то входные данные не известны врагу(а сам алгоритм конечно известен).

emulek
()
Ответ на: комментарий от emulek

Проблема в том, что принципиально недоказуемо то, что они — случайные.

«Непредсказуемым» в криптографии является ГПСЧ, выход которого невозможно отличить от истинно случайной величины за полиномиальное время (то есть не применяя такие методы, как перебор всех значений сидов). http://ru.wikipedia.org/wiki/Тест_на_следующий_бит Вот это и доказали. ОК? Давай вернёмся к тому, что я написал:

Тогда тебе говорят так: мы получили два числа, a и b, на квантовом генераторе случайных чисел, и досконально проверили, что генератор на их основе не будет предсказуемым, так что это ещё один очень хороший повод использовать именно эти a и b. И?

Что делать людям, которые хотят проверить этот стандарт шифрования?

Т.е. это у нас будет УЖЕ криптосильный ГПСЧ.

Т.е. ты предложил вместо одного ГПСЧ использовать другой. Это не способ обнаружения закладки. Ты проблему таким образом не решаешь. Вот нам стало известно, что в стандартизированном сертифицированном PRNG есть закладка. Не благодаря открытости кода, стандарта и прочего, а только благодаря тому, что Сноуден про это знал и сказал. А если в следующий раз Сноудена не будет? Как без него проверить, что в той же хэш-функции, которую ты хочешь использовать, нет закладки? История с PRNG показывает, что в криптосистемы закладки можно вставлять так, что выявить их наличие, просматривая код, невозможно.

prischeyadro ★★★☆☆
()
Ответ на: комментарий от prischeyadro

«Непредсказуемым» в криптографии является ГПСЧ, выход которого невозможно отличить от истинно случайной величины

ещё раз: нет определения «истинно случайная величина». С чем ты сравнивать будешь? И как? Если ГПСЧ выдал 1,2,3,4,5 это как? Случайно? А почему нет?

http://ru.wikipedia.org/wiki/Тест_на_следующий_бит Вот это и доказали. ОК?

да в том-то и дело, что для прохождения этого теста надо потратить БЕСКОНЕЧНОЕ время. Ну или хотя-бы ОЧЕНЬ БОЛЬШОЕ. На практике даже для конгруэнтного ГПСЧ нужно его ВЕСЬ обойти. Хочу тебе заметить, что это самое «предсказание» на практике реализовано, называется «сжатие». Оно именно так и работает: предсказывается бит, и если угадала, его не записывают (IRL пишут часть бита, скажем если писать ½ бита, то файл сжимается в 2 раза). Проблема в том, что даже для 32х битного ГПСЧ надо сжать 4Гб. Если получится 4Гб, то всё хорошо, а если <4Гб, то данный предсказатель предсказывает лучше, чем ½. Сам понимаешь, что уже для 40 бит этот подход невыполним на сегодня. В принципе.

Что делать людям, которые хотят проверить этот стандарт шифрования?

выкинуть этот стандарт на помойку. И использовать свои a и b, а не специально подобранные добрым дядей(с КК в рукаве).

Т.е. это у нас будет УЖЕ криптосильный ГПСЧ.

Т.е. ты предложил вместо одного ГПСЧ использовать другой.

ну да. Который уже давно и используется. И который никто не взломал пока(во всяком случае, данные не опубликованы).

История с PRNG показывает, что в криптосистемы закладки можно вставлять так, что выявить их наличие, просматривая код, невозможно.

вполне можно найти то место, где закладка _может_ быть. В общепринятых алгоритмах таких мест практически нет. Те константы, которые там есть, они не могут фатально влиять на криптостойкость. Как например число раундов. Мало того, при желании их можно и поменять(стандартом это предусмотрено).

emulek
()
Ответ на: комментарий от emulek

таких констант ОЧЕНЬ мало. Их можно и поменять.

Стандарт называется стандартом не просто так, чтобы менять там всё направо и налево. И стандарт — это не всегда плохо. Есть нефиговая вероятность, что если ты не понимаешь досконально, до самых мельчайших подробностей, как работает алгоритм, то возможно бэкдорную величину ты заменишь просто на ненадёжную (с которой начнёт работать линейный криптоаналализ, например).

prischeyadro ★★★☆☆
()
Ответ на: комментарий от prischeyadro

Стандарт называется стандартом не просто так, чтобы менять там всё направо и налево. И стандарт — это не всегда плохо.

всегда, если там жёстко прописаны какие-то магические константы, непонятно из чего полученные.

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

значит должны быть стандартизированы безопасные способы получения этих констант.

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.