Журнал "Information Security/ Информационная безопасность" #4, 2019

Помимо деятельности в области стандартизации в США, ANSI отстаивает поли- тическую и техническую позицию США в междуна- родных организациях по стандартизации. ANSI является официальным представителем США в двух основных международных организациях по стандарти- зации – Международной организации по стандарти- зации (the International Orga- nization for Standardization – ISO) и Международной элек- тротехнической комиссии (the International Electrotech- nical Commission – IEC). ANSI участвует почти во всей технической програм- ме ISO и IEC и управляет многими ключевыми коми- тетами и подгруппами. Во многих случаях стандарты США передаются в ISO и IEC через ANSI, где они пол- ностью или частично прини- маются в качестве междуна- родных стандартов. https://ru.wikipedia.org выбора, а квадратичными выче- тами будет примерно половина из значений x = u|o j . Напомним, что нахождение числа y выпол- няется за полиномиальное время [22]. Общий алгоритм использо- вания лазейки следующий: l запросить outlen + δ псевдо- случайных бит; l на основе первых outlen бит сформировать множество Σ воз- можных внутренних состояний генератора; l для каждого s ∈ Σ вычислить следующие δ бит и сравнить с теми, которые выдал генера- тор. Шумов и Фергюсон провели эксперимент для кривой P-256, заменив точку Q на вычислен- ную ими точку Q 2 = d 2 P. При генерации 32 байт (т.е. δ = 16) внутреннее состояние генера- тора определялось всегда одно- значно. Возможности модификации Dual EC для защиты от лазеек Самое радикальное и про- стейшее противодействие – не использовать "напрямую" в качестве выхода генератора координаты точки R i , а каким- то образом преобразовывать их так, чтобы по выходу было затруднительно восстановить R i , например "обрезать" x-коор- динату точки R i на большее число бит, переставлять выход- ные биты и др. Шумов и Фергюсон предло- жили две возможные модифи- кации алгоритма Dual EC, кото- рые не давали бы возможности использовать подобного рода лазейку. Первая – уже упомянутое выше усечение x-координаты более чем на 16 бит. Имеет смысл брать половину бит x-коор- динаты. В этом случае состав- ление множества Σ и перебор всех его кандидатов становится вычислительно сложной зада- чей. Отметим, что стандарт NIST с первой же редакции [6] (п.10.3.1.4) запрещает подобную модификацию "из соображений производительности". Вторая рекомендация Шумо- ва и Фергюсона – вырабатывать новую случайную точку Q’, собственную для каждого экземпляра генератора. Такой метод надежен, только если пользователь сам получает точку Q’ каким-либо доверен- ным способом, не связанным с генератором, где эта точка будет использоваться. В про- тивном случае разработчик может заложить в алгоритм выработку каким-то специали- зированным образом ключа лазейки, а затем уже вычислять Q’ как Q’ = d’P. Приложение А.2 описывает возможность генерации собст- венных P и Q на тех же эллип- тических кривых, но, как ука- зывалось выше, при такой реа- лизации генератора становится невозможной сертификация криптографического модуля. Дополнительно отметим, что в первоначальной версии Dual EC защитой от лазейки было использование additional_input (см. рис. 3), поскольку внутрен- нее состояние S i +1 вычислялось из соотношения S i+1 = s i P. Одна- ко, если подано ненулевое значение additional_input, то т.е. формула (3) перестает быть верной. Сложность взлома бази- руется на том, что побитовое сложение происходит с неизвест- ной пока еще величиной s i . Именно эту проблему решает модификация стандарта 2012 г.: добавленное в конце алгоритма обновление внутреннего состоя- ния (без учета каких-либо допол- нительных входных данных) поз- воляет синхронизировать информацию у владельца ключа лазейки с внутренним состоя- нием генератора. После этого, когда внутреннее состояние генератора уже известно, допол- нительные битовые сложения никак не мешают предсказаниям "случайных" чисел, вырабаты- ваемых генератором. Практическая атака на Dual EC В августе 2014 г. была про- демонстрирована практическая эксплуатация лазейки и оцене- на стоимость такой атаки [16], [18]. Авторы исследовали четы- ре варианта реализации Dual EC: OpenSSL-FIPS, SChannel (Windows), а также версии C/C++ и Java библиотеки BSAFE RSA. Атака базируется на предпо- ложении, что атакующий (вла- деющий к тому же ключом лазейки) знает случайные биты, выработанные генератором, и после этого может вычислить внутреннее состояние генера- тора и предсказывать все его дальнейшие вычисления. Атака была продемонстрирована на широко используемом прото- коле TLS. Данный протокол состоит из нескольких частей, одной из которых является так называемый протокол рукопо- жатия (TLS handshake), упро- щенная схема которого пред- ставлена на рис. 4. Как видно из рис. 4, клиент и сервер обмениваются случай- ными числами – именно этой информации может быть доста- точно для восстановления внут- реннего состояния генератора. Авторы исследования показали, что в TLS передается достаточ- ное для атаки количество слу- чайных чисел. На первый взгляд, вырабатывается всего лишь 28 байт, но идентифика- тор сеанса – это тоже случайная битовая последовательность, генерируемая в большинстве случаев (но не всегда) тем же алгоритмом Dual EC. Поскольку для заданной в стандарте Dual EC точки Q значение дискретного логариф- ма (т.е. ключа лазейки) неизвестно, то при моделиро- вании атаки было сгенерирова- но случайное число d’ и вычис- лена точка Q’ = d’P. Далее было необходимо заменить Q на Q’ во всех исследуемых библио- теках. Поскольку OpenSSL имеет открытый исходный код, то подмена точки в OpenSSL- FIPS была простой задачей. Для библиотек SChannel, BSAFE-Java и BSAFE-C потре- бовался реверс-инжиниринг. В процессе исследования выяснилось, что библиотека OpenSSL-FIPS постоянно выда- вала ошибку при самодиагно- стике, если была сконфигури- рована для использования Dual EC, из чего можно предполо- жить, что никто никогда не использовал данный функцио- нал. Авторы исследования исправили эту ошибку и в даль- нейших экспериментах исполь- зовали модифицированную вер- сию библиотеки OpenSSL-fixed. На табл. 1 показано время атаки на протокол TLS при использовании различных крип- тобиблиотек. Для атаки брали 4-узловой вычислительный кла- стер на базе 4-ядерных AMD Opteron 6276 (Bulldozer). Каж- дый из узлов имел 256 Гбайт оперативной памяти, а связь между ними обеспечивалась Infiniband. Авторы исследования отмечают, что реально для атаки достаточно всего 1 Гбайт оперативной памяти на узел и не требуется такой быстрой 40 • ТЕХНОЛОГИИ

RkJQdWJsaXNoZXIy Mzk4NzYw