Академический Документы
Профессиональный Документы
Культура Документы
ТЕХНОЛОГИИ
Dual EC – криптографический
стандарт с лазейкой
Алексей Жуков, председатель совета Ассоциации “РусКрипто”
Александра Маркелова, технический директор ООО НТЦ “Альфа-Проект”, к.ф.-м.н.
М
ы рассмотрим историю генератора псевдослучайных чисел
Dual_EC_DRBG (Dual Elliptic Curve Deterministic Random
Bit Generator), ставшего в свое время федеральным
криптографическим стандартом в США и продвинутого
в международные криптографические стандарты. Несмотря
на огромное количество работ, содержащих его серьезнейшую
критику, данный стандарт просуществовал как часть
стандартов ANSI и ISO/IEC с 2006 по 2015 г. По всеобщему
мнению криптографических экспертов (не подтвержденному,
однако, на официальном государственном уровне), этот
алгоритм содержит лазейку, позволяющую владельцу ключа
к лазейке вычислять по выходу генератора его внутреннее
состояние, а затем предсказывать вырабатываемые им числа.
36 •
gukov 9/6/19 3:51 PM Page 37
КРИПТОГРАФИЯ www.itsec.ru
процессом стандартизации
генераторов случайных чисел.
При этом изначальная версия
стандарта ISO, за которую про-
голосовало 19 стран из 24, не
содержала генератора Dual EC.
Было получено более 150 ком-
ментариев, но большинство из
них были незначительными
исправлениями и пояснениями.
Участники голосования выска-
зывали те или иные замечания
и уточнения к проекту стандар-
та, комментируя его отдельные
пункты и формулировки. Со
стороны США не было конкрет-
ных замечаний, был только
общий комментарий "ко всему
документу", в котором говори-
лось, что текущая версия стан-
дарта "не обладает достаточной
глубиной"1. В качестве альтер-
нативы ISO был предложен аме-
риканский стандарт ANSI X9.82,
как "более тщательно прорабо-
танный"2. В результате США,
по сути, навязали ISO свою вер-
сию стандарта, включающую
Dual EC, которая в итоге и была
принята [7].
Параллельно с процессом Рис. 1. Электронная переписка между Дж. Келси и Д. Джонсоном от 27.10.2004 [18]
продвижения Dual EC шел про-
цесс его критики со стороны могли изначально выбрать псевдослучайных чисел, и алго- Джон Келси – Дону
независимых экспертов. В авгу- число d, а затем вычислить ритм Dual EC, имеет офици- Джонсону: "Знаете ли вы,
сте 2007 г. на конференции точку Q как dP. Подобное пред- альных авторов – Элейн Баркер откуда взялось Q в
CRYPTO-2007 сотрудники Mic- положение подтверждается и (Elaine Barker) и Джон Келси Dual_EC_DRBG?"
rosoft Дэн Шумов и Нильс Фер- следующей перепиской между (John Kelsey), оба сотрудники Дон Джонсон – Джону
гюсон продемонстрировали воз- Дж. Келси и Д. Джонсоном, NIST. В то же время существуют Келси: "P = G.Q, по сути,
можность существования лазей- которую приводят авторы многочисленные подтвержде- открытый ключ для некото-
ки в Dual EC [8]. В этом алго- статьи [18], посвященной исто- ния того, что ни Келси, ни Бар- рого случайного закрытого
ритме при генерации случайных рии Dual EC (рис. 1). По сути, в кер не были разработчиками ключа. Кроме того, Q может
чисел используются две точки ней говорится, что мы имеем Dual EC, более того, они даже быть получена как еще одна
эллиптической кривой: P и Q. дело с асимметричным SETUP- не чувствовали себя компетент- каноническая точка G, но
С помощью точки P задается механизмом в структуре Dual ными давать комментарии по АНБ отвергло эту идею и
внутреннее состояние генера- EC, при этом Q играет роль поводу Dual EC, отсылая по запретило мне это публично
тора, а точка Q используется открытого ключа SETUP-меха- этому поводу к сотрудникам обсуждать…"
для вычисления выхода гене- низма, а d – роль секретного АНБ, например, переписка
ратора. Если известна связь ключа [1]. между Э. Баркер и М. Кампанья Национальный институт
между точками P и Q (т.е. такое Таким образом, наличие ука- (рис. 2), приведенная в [18]. стандартов и технологий
число d, что Q = d • P), то по занной скрытой лазейки в алго- Вскоре после конференции, США – (англ. The National
нескольким известным значе- ритме Dual EC в принципе воз- в ноябре 2007 г., вышла раз- Institute of Standards and Tech-
ниям выхода можно вычислить можно, хотя ни доказать, ни громная статья Брюса Шнайера nology, NIST). Официальная
текущее внутреннее состояние опровергнуть ничего нельзя. [9], в которой он советовал ни задача института – "продви-
генератора, а значит, можно Из приведенной выше пере- при каких обстоятельствах не гать инновационную и инду-
предсказать все последующие писки видно еще одно немало- использовать генератор Dual стриальную конкурентоспо-
генерируемые им числа3. важное обстоятельство – роль EC, тем более что и в стандар- собность США путем разви-
В стандарте точки P и Q зада- АНБ в разработке и принятии тах NIST, и в ISO есть альтер- тия наук об измерениях, стан-
ны. Поскольку задача дискрет- стандарта Dual EC. Ни в одном нативы. дартизации и технологий с
ного логарифмирования являет- из первоначальных материалов, Другой способ избежать воз- целью повышения экономи-
ся вычислительно трудной, то посвященных нашему стандар- можной закладки в Dual EC – ческой безопасности и улуч-
найти такое d, что Q = dP, на ту, не указан его автор или раз- это выработать собственные шения качества жизни". Вме-
данный момент невозможно. Но работчик. Официальная публи- точки P и Q и запускать генера- сте с Американским нацио-
дело в том, что эти точки зада- кация NIST, содержащая, наря- тор с этими новыми значения- нальным институтом стандар-
ны авторами стандарта, а они ду с другими генераторами ми. Формально NIST разрешил тов (ANSI) участвует в разра-
ботке стандартов и специфи-
1
We feel that this document is lacking sufficient depth in many areas and simply is not developed enough каций к программным реше-
to be an ISO standard… [10]. ниям, используемым как в
2
We do feel that ANSI X9.82 Random Bit Generation standardization work is much further developed государственном секторе
and should be used as the basis for this ISO standard [10]. США, так и имеющим ком-
3
Детально принцип работы генератора DUAL_EC_DRBG и механизм лазейки будет разобран мерческое применение.
в разделе 2. https://ru.wikipedia.org
• 37
gukov 9/6/19 3:51 PM Page 38
ТЕХНОЛОГИИ
ri = φ (x(siQ)), (2)
38 •
gukov 9/6/19 3:52 PM Page 39
КРИПТОГРАФИЯ www.itsec.ru
7
Provide Backtracking Resistance [16].
• 39
gukov 9/6/19 3:52 PM Page 40
ТЕХНОЛОГИИ
Помимо деятельности в выбора, а квадратичными выче- будет использоваться. В про- широко используемом прото-
области стандартизации в тами будет примерно половина тивном случае разработчик коле TLS. Данный протокол
США, ANSI отстаивает поли- из значений x = u|oj. Напомним, может заложить в алгоритм состоит из нескольких частей,
тическую и техническую что нахождение числа y выпол- выработку каким-то специали- одной из которых является так
позицию США в междуна- няется за полиномиальное зированным образом ключа называемый протокол рукопо-
родных организациях по время [22]. лазейки, а затем уже вычислять жатия (TLS handshake), упро-
стандартизации. ANSI Общий алгоритм использо- Q’ как Q’ = d’P. щенная схема которого пред-
является официальным вания лазейки следующий: Приложение А.2 описывает ставлена на рис. 4.
представителем США в двух l запросить outlen + δ псевдо- возможность генерации собст- Как видно из рис. 4, клиент и
основных международных случайных бит; венных P и Q на тех же эллип- сервер обмениваются случай-
организациях по стандарти- l на основе первых outlen бит тических кривых, но, как ука- ными числами – именно этой
зации – Международной сформировать множество Σ воз- зывалось выше, при такой реа- информации может быть доста-
организации по стандарти- можных внутренних состояний лизации генератора становится точно для восстановления внут-
зации (the International Orga- генератора; невозможной сертификация реннего состояния генератора.
nization for Standardization – l для каждого s ∈ Σ вычислить криптографического модуля. Авторы исследования показали,
ISO) и Международной элек- следующие δ бит и сравнить с Дополнительно отметим, что что в TLS передается достаточ-
тротехнической комиссии теми, которые выдал генера- в первоначальной версии Dual ное для атаки количество слу-
(the International Electrotech- тор. EC защитой от лазейки было чайных чисел. На первый
nical Commission – IEC). Шумов и Фергюсон провели использование additional_input взгляд, вырабатывается всего
ANSI участвует почти во эксперимент для кривой P-256, (см. рис. 3), поскольку внутрен- лишь 28 байт, но идентифика-
всей технической програм- заменив точку Q на вычислен- нее состояние Si +1 вычислялось тор сеанса – это тоже случайная
ме ISO и IEC и управляет ную ими точку Q2 = d2P. При из соотношения Si+1 = siP. Одна- битовая последовательность,
многими ключевыми коми- генерации 32 байт (т.е. δ = 16) ко, если подано ненулевое генерируемая в большинстве
тетами и подгруппами. Во внутреннее состояние генера- значение additional_input, то случаев (но не всегда) тем же
многих случаях стандарты тора определялось всегда одно- алгоритмом Dual EC.
США передаются в ISO и значно. Поскольку для заданной в
IEC через ANSI, где они пол- стандарте Dual EC точки Q
ностью или частично прини- Возможности т.е. формула (3) перестает быть значение дискретного логариф-
маются в качестве междуна- модификации Dual EC верной. Сложность взлома бази- ма (т.е. ключа лазейки)
родных стандартов. для защиты от лазеек руется на том, что побитовое неизвестно, то при моделиро-
https://ru.wikipedia.org Самое радикальное и про- сложение происходит с неизвест- вании атаки было сгенерирова-
стейшее противодействие – не ной пока еще величиной si. но случайное число d’ и вычис-
использовать "напрямую" в Именно эту проблему решает лена точка Q’ = d’P. Далее было
качестве выхода генератора модификация стандарта 2012 г.: необходимо заменить Q на Q’
координаты точки Ri, а каким- добавленное в конце алгоритма во всех исследуемых библио-
то образом преобразовывать обновление внутреннего состоя- теках. Поскольку OpenSSL
их так, чтобы по выходу было ния (без учета каких-либо допол- имеет открытый исходный код,
затруднительно восстановить нительных входных данных) поз- то подмена точки в OpenSSL-
Ri, например "обрезать" x-коор- воляет синхронизировать FIPS была простой задачей.
динату точки Ri на большее информацию у владельца ключа Для библиотек SChannel,
число бит, переставлять выход- лазейки с внутренним состоя- BSAFE-Java и BSAFE-C потре-
ные биты и др. нием генератора. После этого, бовался реверс-инжиниринг.
Шумов и Фергюсон предло- когда внутреннее состояние В процессе исследования
жили две возможные модифи- генератора уже известно, допол- выяснилось, что библиотека
кации алгоритма Dual EC, кото- нительные битовые сложения OpenSSL-FIPS постоянно выда-
рые не давали бы возможности никак не мешают предсказаниям вала ошибку при самодиагно-
использовать подобного рода "случайных" чисел, вырабаты- стике, если была сконфигури-
лазейку. ваемых генератором. рована для использования Dual
Первая – уже упомянутое EC, из чего можно предполо-
выше усечение x-координаты Практическая атака жить, что никто никогда не
более чем на 16 бит. Имеет на Dual EC использовал данный функцио-
смысл брать половину бит x-коор- В августе 2014 г. была про- нал. Авторы исследования
динаты. В этом случае состав- демонстрирована практическая исправили эту ошибку и в даль-
ление множества Σ и перебор эксплуатация лазейки и оцене- нейших экспериментах исполь-
всех его кандидатов становится на стоимость такой атаки [16], зовали модифицированную вер-
вычислительно сложной зада- [18]. Авторы исследовали четы- сию библиотеки OpenSSL-fixed.
чей. Отметим, что стандарт NIST ре варианта реализации Dual На табл. 1 показано время
с первой же редакции [6] EC: OpenSSL-FIPS, SChannel атаки на протокол TLS при
(п.10.3.1.4) запрещает подобную (Windows), а также версии использовании различных крип-
модификацию "из соображений C/C++ и Java библиотеки BSAFE тобиблиотек. Для атаки брали
производительности". RSA. 4-узловой вычислительный кла-
Вторая рекомендация Шумо- Атака базируется на предпо- стер на базе 4-ядерных AMD
ва и Фергюсона – вырабатывать ложении, что атакующий (вла- Opteron 6276 (Bulldozer). Каж-
новую случайную точку Q’, деющий к тому же ключом дый из узлов имел 256 Гбайт
собственную для каждого лазейки) знает случайные биты, оперативной памяти, а связь
экземпляра генератора. Такой выработанные генератором, и между ними обеспечивалась
метод надежен, только если после этого может вычислить Infiniband. Авторы исследования
пользователь сам получает внутреннее состояние генера- отмечают, что реально для
точку Q’ каким-либо доверен- тора и предсказывать все его атаки достаточно всего 1 Гбайт
ным способом, не связанным с дальнейшие вычисления. Атака оперативной памяти на узел и
генератором, где эта точка была продемонстрирована на не требуется такой быстрой
40 •
gukov 9/6/19 3:52 PM Page 41
КРИПТОГРАФИЯ www.itsec.ru
8
Эфемеральными (или разовыми) ключами протокола Диффи-Хеллмана называют случайные числа,
участвующие в вычислениях, производимых в рамках этого протокола. Открытыми эфемеральными
ключами называют информацию, которой обмениваются участники протокола по открытому каналу.
• 41
gukov 9/6/19 3:52 PM Page 42
ТЕХНОЛОГИИ
42 •