Вы находитесь на странице: 1из 7

КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

Криптография и клептография.
Генератор псевдослучайных чисел Dual EC

En Cryptography Данная работа продолжает анонсированный в [1] цикл статей, посвященных


клептографии – деятельности по внедрению уязвимостей в криптографические
and Kleptography.
системы и пользовательские устройства. Мы рассмотрим историю принятия
Dual EC Deterministic стандарта генерации псевдослучайных чисел DUAL_EC_DRBG, продвигаемого
Random Bit Generator в свое время Агентством национальной безопасности США на национальном
и на международном уровнях. Данный стандарт неоднократно подвергался
A. E. Zhukov, критике, однако просуществовал как часть стандартов ANSI и ISO/IEC с 2006
Chairman of the Board по 2015 год. Алгоритм содержит лазейку (SETUP-механизм), позволяющую
«RusСrypto» Association владельцу ключа лазейки по выходу генератора вычислять его внутреннее
aez_iu8@rambler.ru состояние, а затем предсказывать вырабатываемые им числа.
A. V. Markelova, Ключевые слова: криптографические лазейки, клептография, SETUP-механизм, гене-
PhD (Phys./Math.), Technical Director
ратор псевдослучайных чисел, эллиптическая кривая, криптографические стандарты
Science and Technology Center
«AlphaProject»
a@safe-crypto.ru ными стандартами. В ряде случаев
Алексей Евгеньевич Жуков,
председатель совета это уже удалось осуществить. Одним
This work continues the series of ar-
ticles on cleptography announced Ассоциация «РусКрипто» из криптографических алгоритмов,
in [1] – the activity on the embed- aez_iu8@rambler.ru снабженных потайным ходом (об-
ding of vulnerabilities into crypto- щепринятое мнение, не подтвер-
Александра Викторовна Маркелова,
graphic systems and user devices. кандидат физико-математических наук,
жденное, однако, на официальном
We will look at the history of the технический директор уровне), принятым в США в каче-
adoption of the DUAL_EC_DRBG ООО «НТЦ Альфа-Проект», стве федерального стандарта и про-
standard, which was promoted at двинутым в стандарты международ-
a@safe-crypto.ru
the time by the US National Security ные является скандально известный
Agency at the national and interna-
генератор псевдослучайных чисел
tional levels. This standard was re-
peatedly criticized, but it existed as
DUAL_EC_DRBG (Dual Elliptic Curve
part of the ANSI and ISO/IEC stan- Deterministic Random Bit Generator),
1. Введение далее – Dual EC. Вначале – немного
dards from 2006 to 2015. The al-
gorithm contains a cryptographic Как отмечалось в [1], в последнее истории, поскольку принятие Dual
backdoor (SETUP mechanism), which время все чаще наблюдаются по- EC в качестве криптографического
allows the owner of the key of the пытки государственных структур ря- стандарта сопровождал ряд собы-
backdoor to calculate the internal да ведущих стран ослабить алгорит- тий, который только усилил подо-
state of the generator and then to мы шифрования и стандарты без- зрения относительно наличия лазей-
predict its outputs.
опасности с целью облегчения рабо- ки в этом алгоритме.
Keywords: cryptographic backdoors, ты спецслужб и правоохранительных
kleptography, SETUP mechanism, органов. Все больше и больше офи-
pseudo-random number generator, циальных лиц заявляют о необхо- 2. История Dual EC:
elliptic curve, cryptographic stan- димости принятия на официальном возникновение,
dards государственном уровне решения стандартизация,
о внедрении уязвимостей в инфор- модификация, отмена
мационные системы, сети и пользо- Алгоритм Dual EC был впервые
вательские устройства, об обязатель- представлен на семинаре Националь-
ном внедрении лазеек в криптоал- ного института стандартов и техно-
горитмы, являющиеся государствен- логий США (The National Institute of

2 Защита информации. INSIDE № 3'2019


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

Standards and Technology, NIST)1 по торую проголосовало 19 стран из 24, точки заданы авторами стандарта,
генерации случайных чисел в 2004 го- не содержала генератора Dual EC. а они могли изначально выбрать чис-
ду [2] как «теоретико-числовой ге- Участники голосования высказыва- ло d, а затем вычислить точку Q как
нератор». Скорость работы генера- ли те или иные замечания к проекту dP. То есть такая ситуация в прин-
тора была достаточно низкой за счет стандарта, комментируя его отдель- ципе возможна, хотя ни доказать, ни
вычислений на эллиптических кри- ные пункты и формулировки. Со сто- опровергнуть ничего нельзя.
вых, но зато его стойкость, по утвер- роны США не последовало конкрет- Вскоре после конференции, в но-
ждению докладчика Дона Джонсо- ных замечаний – только общий ком- ябре 2007 года, вышла разгромная
на, существенно превышала альтер- ментарий «ко всему документу», в ко- статья Брюса Шнайера [9], в которой
нативные варианты, поскольку ба- тором говорилось, что текущая вер- он советовал ни при каких обстоя-
зировалась на задаче дискретного ло- сия стандарта ISO «не обладает до- тельства не использовать генератор
гарифмирования в группе точек эл- статочной глубиной»4. В качестве Dual EC, тем более, что в стандартах
липтической кривой. Тогда же алго- альтернативы предлагался американ- и NIST, и ISO есть альтернативы.
ритм Dual EC появился и в проекте ский стандарт ГПСЧ как «более тща- Другой вариант избежать воз-
стандарта ANSI X9.82 [3]2. тельно проработанный»5. В итоге можной закладки в Dual EC – это
Вскоре были опубликованы ис- США, по сути, навязали ISO свою выработка собственных точек P и Q
следования, доказывающие, что вы- версию стандарта, включающую Dual и запуск генератора с этими новыми
рабатываемые Dual EC последова- EC, которая и была принята [7]. значениями. Формально, NIST раз-
тельности чисел статистически от- Параллельно с процессом про- решил использование сгенериро-
личимы от истинно случайных [4, 5]. движения Dual EC шел процесс его ванных пользователем P и Q, но на
Уже одного этого обычно достаточ- критики со стороны независимых практике оказалось, что в этом случае
но, чтобы генератор псевдослучай- экспертов. В августе 2007 года на кон- невозможно провести сертифика-
ных чисел был признан «некаче- ференции CRYPTO-2007 сотрудни- цию продукта на соответствие FIPS-
ственным» и решительно отвергнут, ки Microsoft Дэн Шумов и Нильс 140-2 [11].
тем более в качестве претендента на Фергюсон продемонстрировали воз- После разоблачений Эдварда Сно-
криптографический стандарт. Но не можность существования лазейки удена у криптографического сообще-
в этот разѕ в Dual EC [8]. В этом алгоритме при ства не осталось сомнений, что ис-
Комитет по стандартизации про- генерации случайных чисел исполь- тория Dual EC была частью масштаб-
игнорировал работы, критикующие зуются две точки эллиптической ных программ BULLRUN и SIGINT7
Dual EC, сославшись на формальное кривой: P и Q. С помощью точки P Агентства национальной безопасно-
превышение сроков их подачи. При задается внутреннее состояние гене- сти США (АНБ) по ослаблению крип-
этом некоторые другие, менее суще- ратора, а Q применяется для вычис- тографических стандартов и встраи-
ственные замечания, поданные поз- ления псевдослучайных чисел. Если ванию лазеек в коммерческие про-
же срока, оказались все-таки учте- известна связь между точками P и Q дукты [12]. Годовой бюджет АНБ на
ны. В результате, в пакете с другими (то есть такое число d, что Q = dP), подобные мероприятия в ту пору
генераторами псевдослучайных чи- то по нескольким известным значе- составлял порядка 250 млн долл.
сел Dual EC был принят NIST в ка- ниям выхода можно вычислить те- В сентябре 2013 год NIST выпу-
честве стандарта генератора псевдо- кущее внутреннее состояние генера- стил рекомендации по отказу от ис-
случайных чисел (ГПСЧ) в июне тора, а значит, предсказать все после- пользования Dual EC [13], но при
2006 года [6]. дующие генерируемые им числа6. этом алгоритм все еще оставался
Одновременно с этим алгоритм В стандарте точки P и Q заданы. частью стандарта, и некоторые крип-
Dual EC стал частью международного Поскольку задача дискретного лога- топродукты продолжали его исполь-
стандарта ISO/IEC 18031:2005. И здесь рифмирования является вычисли- зовать. В декабре 2013 года в доку-
не обошлось без давления со стороны тельно трудной, то найти такое d, ментах, обнародованных Сноуденом,
властей США3. Дело в том, что изна- что Q = dP), на данный момент не- была обнаружена информация, что
чальная версия стандарта ISO, за ко- возможно. Но дело в том, что эти компания RSA Security получила от

1 NIST вместе с Американским национальным институтом стандартов (American National Standards Institute, ANSI) участвует в раз-
работке стандартов и спецификаций к программным решениям как используемым в государственном секторе США, так и имеющим
коммерческое применение.
2 ANSI – организация, разрабатывающая торговые и коммуникационные стандарты. ANSI является официальным представителем
США в двух основных международных организациях по стандартизации: Международной организации по стандартизации (ISO)
и Международной электротехнической комиссии (IEC).
3 ANSI участвует почти во всей технической программе ISO и IEC, управляя рядом ключевых комитетов и подгрупп. Во многих случаях
стандарты США передаются в ISO и IEC через ANSI, где они полностью или частично принимаются в качестве международных
4 «We feel that this document is lacking sufficient depth in many areas and simply is not developed enough to be an ISO standard…» [10].
5 «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].
6 Детально принцип работы генератора DUAL_EC_DRBG и механизм лазейки будут описаны в разделе 4.
7 SIGINT – радиоэлектронная разведка (signals intelligence), включает перехват каналов связи. BULLRUN – секретная программа по
дешифрованию онлайн-коммуникаций и данных, которая осуществляется АНБ.

Защита информации. INSIDE № 3'2019 3


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

АНБ 10 млн долл. за использование :G1  , :G2  . Состояниями


алгоритма Dual EC в криптобиб- 3. Описание алгоритма. ГПСЧ являются элементы si  G1,
лиотеке BSAFE в качестве основного Основная идея при этом функция перехода f, вы-
генератора псевдослучайных чисел Общая схема функционирования числяющая следующее состояние,
[14]. RSA не подтвердила и не опро- ГПСЧ, рассматриваемого как авто- действует как
вергла эту информацию, сообщив, номный автомат, приведена на рис. 1. f
si  si + 1 =p (si ).
что они «всегда действуют в инте- При этом функции f и g должны
ресах своих клиентов». АНБ от ком- быть однонаправленными (то есть Значение функции выхода g в мо-
ментариев, разумеется, воздержалось. по значению функции восстановить мент i определяется как ri = (qi),
Некоторые аффилированные соответствующий аргумент вычис- где qi  G2 вычисляется по формуле:
с АНБ математики продолжали от- лительно сложно). Однонаправлен-
qi = q  (si ).
рицать возможность практического ность g необходима для того, чтобы
использования подобной лазейки по выходу генератора было невоз- Тогда если G1 и G2 – группы, в ко-
в Dual EC. «Их глаза широко откры- можно восстановить его внутреннее торых задача дискретного логариф-
ваются, когда я говорю о том, как состояние, поскольку знание внут- мирования имеет достаточно высо-
трудно на самом деле получить ин- реннего состояния в какой-то момент кую вычислительную сложность,
формацию, которую они предпола- времени позволит однозначно пред- а элементы p  G1, q  G2, являют-
гают получить такими атакамиѕ сказать всю его дальнейшую работу. ся образующими элементами своих
Я бросил им вызов: предложил сге- В свою очередь, однонаправленность групп, то генератор, несмотря на низ-
нерировать свои собственные пара- f обеспечивает стойкость к «раскрут- кую скорость работы, вполне удов-
метры и показать мне, что они в дей- ке» генератора в обратную сторону летворителен с криптографической
ствительности смогут восстановить (backtracking resistance). Последнее точки зрения. Однонаправленность
таким способом. Никто пока этого означает, что даже если в какой-то функций перехода и выхода обес-
не сделал»8, – заявил Ричард Джордж) момент скомпрометировано внут- печивается сложностью задачи дис-
в мае 2014 года. Заметим, что сам реннее состояние генератора, то все кретного логарифмирования.
Ричард Джордж работал в АНБ с 1970 равно невозможно восстановить пре- Таким образом, несмотря на бес-
по 2011 год, а затем перешел в RSA дыдущие внутренние состояния и по- славную «кончину» стандарта Dual
Security, где курировал финансируе- лучить ранее выработанные случай- EC, нельзя не отметить, что основ-
мые правительством проекты [15]. ные числа. ная заложенная в нем идея все-таки
Вызов Ричарда Джорджа был позволяет построить криптографи-
принят группой математиков, и уже Честный алгоритм чески стойкий ГПСЧ без каких-либо
в августе 2014 года они продемон- В качестве математической осно- лазеек.
стрировали реальную (не теорети- вы, которая должна обеспечить хо-
ческую) эксплуатацию уязвимости рошие криптографические свойства Лазейка
Dual EC [16]. Их статья показала, как генератора Dual EC, выбрана задача Структура ГПСЧ, описанного вы-
вычислять ключи протокола TLS, ис- дискретного логарифмирования в ко- ше, позволяет встроить в него лазей-
пользуя знание связи между точками нечной циклической группе. Это об- ку с универсальной защитой (SETUP-
P и Q (число d, «ключ лазейки»). стоятельство и послужило основным механизм – см. [1], [19]). Выберем
Вскоре после этого RSA Security и чуть ли не единственным аргумен- G1 = G2, и пусть элемент p = q e для
выпустила рекомендации для поль- том в пользу Dual EC в противовес некоторого e. Очевидно, что в этом
зователей библиотеки BSAFE: не ис- многочисленным недостаткам, на ко- случае si + 1 = qie, поскольку
пользовать генератор Dual EC. торые указывали его критики.
qie = (q (si ))e = (q e )(si ) = p (si ) = si + 1.
В июне 2015 года вышла новая Рассмотрим следующую схему
версия NIST SP 800-90A [17], в ко- для ГПСЧ. Пусть зафиксированы ко- Число e – это секретный ключ ла-
торой алгоритм Dual EC уже отсут- нечные циклические группы G1, G2 зейки. Если при этом функция  не
ствовал. Занавес… элементы p  G1, q  G2 и функции является однонаправленной, то есть
по ri = (qi) можно легко восстано-
вить qi , то, зная секретный ключ ла-
зейки, по выходу ri можно получить
и si + 1 – состояние ГПСЧ в момент
i + 1, а следом определить и всю
последующую работу генератора.
s0 – начальное состояние автомата (ГПСЧ), Заметим, что если бы в данном
si– внутреннее состояние в момент i, вычисляемое как si + 1 = f(si ),
ri – выход генератора в момент i,ri = g(si), i = 1, 2, …, f и g – функции перехода генераторе функция  была однона-
(то есть вычисления следующего состояния) и выхода правленной, то воспользоваться та-
Рис. 1. Общая схема функционирования ГПСЧ кой лазейкой стало бы невозможно.

8 «Their eyes open wide when I talk about how hard it is to really get the information they assume they just get to attack this thing… I’ve challenged
any of them to actually generate their own parameters and show me that in real life they can recover that. No one has done it yet» [18].

4 Защита информации. INSIDE № 3'2019


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

4. Алгоритм DUAL_EC_DRBG
Перейдем к описанию непосред-
ственно алгоритма Dual EC. Как сле-
дует из его названия (EC – Elliptic
Curve), действие перенесено в группу
точек эллиптической кривой [20], Рис. 2. Алгоритм Dual EC [6]
где в силу аддитивной записи груп-
повой операции, степень элемента P не больше 240 для кривой P-256, 368 нератор ранее инициализирован (s –
группы превращается в его кратное для P-384 и 504 для P-521. То есть от внутреннее состояние), на вход по-
n · P или короче – nP, а задача дис- x-координаты точки siQ берутся млад- дана строка additional_input (если она
кретного логарифмирования по ос- шие outlen бит («отбрасываются», как не задана, то считаем additional_in-
нованию P принимает такой вид: для минимум, два старших байта). put = 0).
данного Q найти такое n, что nP = Q. Презентация генератора [2] об- Обозначим за TRUNC_R(a, len) –
Пусть задана эллиптическая кри- основывала необходимость усечения правые (младшие) len бит строки a,
вая в форме Вейерштрасса: тем, что иначе генератор становится а за TRUNC_L(a, len) – левые (стар-
предсказуемым в некоторых ситуа- шие) len бит строки a. Тогда алгоритм
y 2 = x3 + ax + b modp,
циях. Дело в том, что количество то- работает следующим образом:
где p > 3 – простое число; чек эллиптической кривой прибли- 1) temp = Null;
точка P = (Px, Py) – порождаю- зительно равно размерности поля: 2) s = s Å additional_input;
щий элемент циклической подгруп- по теореме Хассе, [20] порядок m абе- 3) s = (x(sP));
пы группы точек эллиптической левой группы точек эллиптической 4) r = (x(sQ));
кривой; кривой удовлетворяет неравенству 5) temp = temp||TRUNC_R(r, outlen);
r – порядок этой подгруппы; 6) Если len(temp) < requested_num-
p + 1 – 2p–  m  p + 1 + 2p.

Q = (Qx, Qy) – некоторая ненуле- ber_of_bits, то перейти к 3;
вая точка той же подгруппы, от- Из уравнения Вейерштрасса лег- 7) returned_bits = TRUNC_L(temp,
личная от P. ко понять, что если точка (x, y) ле- requested_number_of_bits).
В приложении А.1 стандарта NIST жит на эллиптической кривой, то В данном описании мы опустили
версии 2006 года [6] были опреде- и точка (x, –y) – тоже. Таким обра- некоторые шаги, связанные с пере-
лены фиксированные значения па- зом, каждой x-координате соответ- инициализацией генератора, провер-
раметров p, r, a, b, Px, Py, Qx, Qy для ствуют две точки, а значит, количе- кой корректности всех длин данных,
кривых P-256, P-384, P-521. ство различных x-координат можно дополнительной инициализацией,
Стойкость генератора базируется оценить как: связанной с additional_input. Заметим,
на сложности решения задачи дис- – кстати, что при выработке достаточ-
m/2  (p + 1)/2 + p,
кретного логарифмирования в груп- но длинной битовой строки additio-
пе точек эллиптической кривой, то откуда следует, что количество значе- nal_input используется только при
есть на нахождении такого числа d, ний x, не являющихся x-координа- получении первого блока данных.
что Q = dP. тами, оценивается как: К этому аспекту мы еще вернемся,
Общая схема работы генератора – когда будем рассматривать структуру
p – m/2  (p – 1)/2 – p.
Dual EC показана на рис. 2. лазейки в данном алгоритме.
Значения s и r задают, соответ- Мы видим, что почти половина
ственно, внутреннее состояние гене- значений x не являются координа- Модифицированная версия
ратора и вырабатываемые псевдо- тами точек эллиптической кривой, 2012 года
случайные биты. В упрощенном ва- то есть никогда не будут выработа- В обновленной версии стандарта
рианте, если дополнительная строка ны генератором без усечения, а сле- NIST 2012 года Dual EC был немного
additional_input не используется, то довательно, такой генератор выра- модифицирован [21]. В конец алго-
si = (x(si – 1P)), (1) батывает не всевозможные битовые ритма добавили еще один шаг:
строки, а только какое-то их под-
ri = (x(siQ)), (2) s = (x (sP)),
множество. По утверждению авторов
где x(•) – выбор x-координаты точки алгоритма [2], отсечение 13 старших то есть было сделано дополнитель-
эллиптической кривой, а (•) – пред- (левых) битов позволяет избавиться ное обновление внутреннего состоя-
ставление элемента поля в виде би- от этого недостатка, поскольку «ва- ния. В комментариях необходи-
товой строки (в формате «big endi- лидные» и «невалидные» значения x мость данного изменения объяснена
an» – старшие биты записываются распределены достаточно хаотично «обеспечением стойкости к раскрут-
первыми). (к сожалению, точного объяснения, ке генератора в обратную сторону».
Блок ExtractBits извлекает из при- откуда взялось число «13», нигде не Однако вероятнее выглядит версия,
шедшей на вход битовой строки пра- приводилось). что данное исправление делает ла-
вые outlen бит. При этом значение Итак, пусть необходимо вырабо- зейку в алгоритме более универсаль-
outlen должно делиться на 8 и быть тать requested_number_of_bits бит, ге- ной (об этом – чуть позже).

Защита информации. INSIDE № 3'2019 5


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

Лазейка с защитой нахождение y выполняется за поли- невозможной сертификация крип-


Так как P – порождающий эле- номиальное время [22]. тографического модуля.
мент подгруппы группы точек эл- Общий алгоритм использования Дополнительно отметим, что
липтической кривой, а Q – также не- лазейки следующий: в первоначальной версии Dual EC
тривиальный элемент этой подгруп- 1) запросить outlen +  псевдо- защитой от лазейки было использо-
пы, то существует число d: случайных бит; вание additional_input (см. рис. 2),
2) на основе первых outlen бит поскольку внутреннее состояние
Q = dP.
сформировать множество  возмож- Si + 1 вычислялось из соотношения
Далее будем называть d ключом ных внутренних состояний генера- Si + 1 = si P. Если подано ненулевое
лазейки. Мы покажем, что знание d тора; значение additional_input, то
помогает вычислять внутреннее со- 3) для каждого s   вычислить
Si + 1 = (si additional_input)P  eRi ,
стояние генератора на основе извест- следующие  бит и сравнить с теми,
ного выхода. Напомним, что r – по- которые выдал генератор. то есть формула (3) перестает быть
рядок подгруппы, порожденной точ- Шумов и Фергюсон провели экс- верной. Сложность взлома базиру-
кой P. Пусть e задается формулой: перимент для кривой P-256, заменив ется на том, что побитовое сложение
точку Q на вычисленную ими точку происходит с неизвестной пока еще
e = d –1modr.
Q2 = d2P. При генерации 32 байтов величиной si.
Тогда P = eQ. (то есть  = 16) внутреннее состоя- Именно эту проблему решает мо-
Для начала рассмотрим схему без ние генератора определялось всегда дификация стандарта 2012 года: до-
additional_input. Из формул (1) и (2) однозначно. бавленное в конце алгоритма обнов-
следует: ление внутреннего состояния (без
учета каких-либо дополнительных
Si + 1 = si P = si eQ = esiQ = eRi , (3) 5. Возможности модификации входных данных) позволяет синхро-
где Si + 1 = si P и Ri = si Q – это соот- Dual EC для защиты от лазеек низировать информацию у владель-
ветствующие точки эллиптической Шумов и Фергюсон предложили ца ключа лазейки с внутренним со-
кривой. две возможные модификации алго- стоянием генератора. После этого,
Таким образом, если знать ключ ритма Dual EC, которые не давали когда внутреннее состояние генера-
лазейки и точку Ri для некоторого бы возможности использовать по- тора уже известно, дополнительные
момента времени i, то можно вы- добного рода лазейку. битовые сложения никак не мешают
числить все последующие внутрен- Прежде всего, можно использо- предсказаниям «случайных» чисел,
ние состояния генератора и, соот- вать усечение более чем на 16 бит. вырабатываемых генератором.
ветственно, определить все его даль- Имеет смысл брать половину бит
нейшие выходы. x-координаты. В этом случае состав-
Правда, в алгоритме Dual EC вы- ление множества  и перебор всех 6. Практическая атака
ход – только часть x-координаты его кандидатов становится вычис- на Dual EC
точки Ri. Тем не менее, всю точку Ri лительно сложной задачей. Отметим, В августе 2014 года была проде-
можно восстановить перебором. что стандарт NIST с первой же ре- монстрирована практическая экс-
Шумов и Фергюсон [8] предло- дакции [6] (п. 10.3.1.4) запрещает по- плуатация лазейки и оценена стои-
жили следующий алгоритм для под- добную модификацию «из сообра- мость такой атаки [16, 18]. Авторы
бора «кандидатов» на внутренние со- жений производительности». исследовали четыре варианта реали-
стояния. Вторая рекомендация Шумова зации Dual EC: OpenSSL-FIPS, SChan-
Дано: oj – блок выходной битовой и Фергюсона – вырабатывать но- nel (Windows), а также версии C/C++
строки ключевого генератора. вую случайную точку Q', собствен- и Java библиотеки BSAFE RSA.
Найти: множество  возможных ную для каждого экземпляра гене- Атака базируется на предполо-
внутренних состояний. ратора. Такой метод надежен, только жении, что атакующий (владеющий
1.  ={}. если пользователь сам получает точ- к тому же ключом лазейки) знает
2. Для u = 0, ѕ, 216 – 1: ку Q' каким-либо доверенным спо- случайные биты, выработанные ге-
x = u|oj собом, не связанным с генератором, нератором, и после этого может вы-
z = x3 + ax + b modp. где эта точка будет использоваться. числить внутреннее состояние гене-
Если y = z– modp существует, то В противном случае разработчик мо- ратора и предсказывать все его даль-
A = (x, y)– точка кривой, тогда жет заложить в алгоритм выработку нейшие выходы. Атака была проде-
каким-то специализированным об- монстрирована на широко исполь-
 =   {(eA)}.
разом ключа лазейки d', а затем уже зуемом протоколе TLS. Данный про-
Мощность множества  прибли- вычислять Q' как Q' = d'P. токол состоит из нескольких частей,
зительно равна 215, поскольку всего Приложение А.2 описывает воз- одной из которых является так на-
есть 216 вариантов выбора u, а ко- можность генерации собственных P зываемый «протокол рукопожатия»
личество квадратичных вычетов со- и Q на тех же эллиптических кривых, (TLS handshake).
ставит примерно половину из чис- но, как указывалось выше, при такой Клиент и сервер обмениваются
ла значений x = u|oj . Напомним, что реализации генератора становится случайными числами – именно этой

6 Защита информации. INSIDE № 3'2019


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

информации может быть достаточ- Таблица. Время атаки на TLS [18]


но для восстановления внутреннего
Криптобиблиотека Время атаки в худшем случае (в минутах)
состояния генератора. Авторы ис-
следования показали, что в TLS пе- BSAFE-C v1.1 0,04
редается достаточное для атаки ко- BSAFE-Java v1.1 63,96
личество случайных чисел. На пер- SChannel I 62,97
вый взгляд, вырабатывается всего SChannel II 182,64
лишь 28 байтов, но идентификатор
OpenSSL-fixed I 0,02
сеанса – это тоже случайная битовая
последовательность, генерируемая OpenSSL-fixed II 83,32
в большинстве случаев (но не всегда) OpenSSL-fixed III 2 k O 83,32
тем же алгоритмом Dual EC.
Поскольку для заданной в стан- лучить злоумышленник, прослуши- стемное время в секундах злоумыш-
дарте точки Q значение дискретного вающий канал, в частности, от того, леннику известно, поскольку оно со-
логарифма (то есть ключ лазейки) используется ли Dual EC для генера- держится в открытых данных, пе-
не известно, то при моделировании ции идентификатора сеанса. редаваемых в протоколе рукопожа-
атаки было сгенерировано случайное Атака на BSAFE-C оказалась самой тия TLS, но остальные значения тре-
число d' и вычислена точка Q' = d'P. легкой, поскольку идентификатор буется угадать.
Далее было необходимо заменить Q сеанса вырабатывается с помощью OpenSSL-fixed-I предполагает,
на Q' во всех исследуемых библио- Dual EC, то есть атакующий сразу что злоумышленник знает additio-
теках. Поскольку OpenSSL имеет от- обладает достаточным количеством nal_input.
крытый исходный код, то подмена информации для взлома лазейки. В случае OpenSSL-fixed-II зло-
точки в OpenSSL-FIPS оказалась про- В BSAFE-Java идентификатор вы- умышленник знает значение счет-
стой задачей. Для библиотек SChan- рабатывается другим способом, по- чика (например, он атакует первое
nel, BSAFE-Java и BSAFE-C потре- этому первый вызов Dual EC – это же соединение, когда счетчик равен
бовался реверс-инжиниринг. 28 байтов случайного числа в про- нулю) и идентификатор процесса
В процессе исследования выясни- токоле рукопожатия, после которых (зная особенности нумерации и по-
лось, что библиотека OpenSSL-FIPS вырабатываются 32 байта для эфе- рядок запуска процессов в системе).
постоянно выдавала ошибку при са- мерального ключа Диффи – Хэлл- Злоумышленнику остается пересчи-
модиагностике, если была сконфи- мана. На основе переданных 28 бай- тать текущее время, заданное в се-
гурирована для использования Dual тов требуется сделать 232 попыток, кундах, в микросекунды – на это тре-
EC, из чего можно предположить, проверяя результат по открытому буется 1 млн попыток.
что никто никогда не применял дан- эфемеральному ключу9. В последнем случае, когда ни
ный функционал. Авторы исследо- Библиотека SChannel при генера- счетчик, ни идентификатор процесса
вания исправили ошибку и в даль- ции идентификатора сеанса исполь- неизвестны, требуется время в 2k раз
нейших экспериментах воспользо- зует Dual EC, но преобразует резуль- большее времени атаки OpenSSL-fi-
вались модифицированной версией тат некоторым образом, скрываю- xed-II, поскольку необходимо уга-
библиотеки OpenSSL-fixed. щим от наблюдателя итог работы дать k бит.
В приведенной таблице показано Dual EC. Это усложняет восстанов- Заметим, что все переборы можно
время атаки на протокол TLS при ис- ление внутреннего состояния, но не выполнять независимо друг от друга,
пользовании различных криптобиб- делает его невозможным. Авторы ис- поэтому атака хорошо распаралле-
лиотек. Для атаки использовался че- следования рассмотрели два случая: ливается, то есть время будет сокра-
тырехузловой вычислительный кла- SChannel-I, если злоумышленнику щаться пропорционально количе-
стер на базе 4-ядерных AMD Opteron известны данные предыдущих про- ству используемых процессоров.
6276 (Bulldozer). Каждый из узлов токолов рукопожатия, или же SChan- Было продемонстрировано, что
имел 256 гигабайт оперативной па- nel-II, когда атака проводится в пре- атака может выполняться как онлайн,
мяти, а связь между ними обеспечи- делах одного сеанса. то есть в момент соединения клиента
валась Infiniband. Авторы исследо- OpenSSL оказалась единственной и сервера, так и офлайн, уже после
вания отмечают, что реально для ата- библиотекой, использующей addi- завершения сеанса (на основе сохра-
ки достаточно всего 1 гигабайта опе- tional_input. Данное значение зави- ненных передаваемых данных). Кро-
ративной памяти на узел и не тре- село от значения системного време- ме того, если целью атаки был не
буется такой быстрой связи между ни в секундах, текущего системного клиент, а сервер, то знание внутрен-
узлами. Время атаки зависело от то- времени в микросекундах, некото- него состояния генератора позво-
го, насколько длинную случайную рого внутреннего счетчика и иден- ляет злоумышленнику вычислить
последовательность сможет сразу по- тификатора процесса. Текущее си- секретный ключ и затем «подме-

9 Эфемеральными (или разовыми) ключами протокола Диффи – Хеллмана называют случайные числа, участвующие в вычислениях,
производимых в рамках этого протокола. Открытыми эфемеральными ключами называют информацию, которой обмениваются
участники протокола по открытому каналу.

Защита информации. INSIDE № 3'2019 7


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

нять» сервер, аутентифицируясь от RSA // Защита информации. Инсайд. – 2019. – https://www.theguardian.com/world/2013/sep/05/


его имени. № 2 (86). – С. 74–79. nsa-gchq-encryption-codes-security/.
2. Johnson D. B. Number theoretic DRBGs // NIST 13. Supplemental ITL bulletin for September 2013.
RNG Workshop. July 20, 2004 [Электронный NIST opens draft special publication 800-90a, rec-
7. Заключение ресурс]. – Режим доступа: ommendation for random number generation using
Как было отмечено ранее, работа https://cryptome.org/2013/12/NumberTheoretic- deterministic random bit generators, for review and
[16] поставила точку в истории Dual DRBG.pdf. comment [Электронный ресурс]. – Режим до-
EC, поскольку продемонстрировала 3. ANS X9.82, Part 3 – DRAFT June 2004 [Элек- ступа:
не только теоретическую, но и прак- тронный ресурс]. – Режим доступа: https://csrc.nist.gov/csrc/media/publications/shared/
тическую возможность использова- http://citeseerx.ist.psu.edu/viewdoc/download;jses- documents/itl-bulletin/itlbul2013-09-supplemen-
ния встроенной в алгоритм лазейки. sionid=D96134C539F238DD741A65F49189E076? tal.pdf.
В то же время эта история на- doi=10.1.1.6.1272&rep=rep1&type=pdf. 14. Menn J. Exclusive: Secret contract tied NSA and
глядно демонстрирует упорство, с ко- 4. Gj steen K. Comments on Dual-EC-DRBG/NIST security industry pioneer // Reuters. December 21,
торым спецслужбы готовы про- SP 800-90, draft December 2005, 2006 [Электрон- 2013 [Электронный ресурс]. – Режим доступа:
двигать необходимые им стандарты ный ресурс]. – Режим доступа: https://www.reuters.com/ article/us-usa-security-
и реализации ослабленных алго- https://www.researchgate.net/publication/22896011 rsa/exclusive-secretcontract-tied-nsa-and-securi-
ритмов, невзирая на прямые обви- 9_Comments_on_Dual-EC-DRBGNIST_SP_800- ty-industry-pioneer-idUSBRE9BJ1C220131220/.
нения со стороны экспертного со- 90_Draft_December_2005/. 15. RSA Conference: where the world talks security.
общества. Эта история демонстри- 5. Schoenmakers B., Sidorenko A. Cryptanalysis of Richard_George [Электронный ресурс]. – Режим
рует также серьезную зависимость the Dual Elliptic Curve Pseudorandom Generator // доступа:
международных институтов стан- Cryptology ePrint Archive, Report 2006/190 (2006) https://www.rsaconference.com/speakers/richard_
дартизации (а уж тем более – амери- [Электронный ресурс]. – Режим доступа: george/.
канских национальных институтов https://eprint.iacr.org/2006/190.pdf. 16. Checkoway S., Fredrikson M., Niederhagen R.,
стандартизации) от спецслужб США: 6. Barker E., Kelsey J. NIST Special Publication Everspaugh A., Green M., Lange T., Ristenpart T.,
необходимые последним стандарты 800-90. Recommendation for Random Number Bernstein D. J., Maskiewicz J., Shacham H. On the
принимаются даже в случае, когда Generation Using Deterministic Random Bit Gen- practical exploitability of Dual EC in TLS imple-
ведущие математики, криптоанали- erators. June 2006 [Электронный ресурс]. – Ре- mentations // Fu K., Jung J. (eds.) Proceedings of
тики, специалисты по ИБ в один го- жим доступа: the 23rd USENIX Security Symposium, San Diego,
лос заявляют о их ненадежности. https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nist- CA, USA, pp. 319–335. USENIX Association (2014).
Разоблачение действий АНБ име- specialpublication800-90.pdf. 17. Barker E., Kelsey J. NIST Special Publication
ло двойной эффект. С одной сторо- 7. ISO/IEC 18031:2005. Information technology – 800-90A. Recommendation for Random Number
ны, экспертное сообщество оконча- Security techniques – Random bit generation. Generation Using Deterministic Random Bit Gen-
тельно утратило доверие к деятель- 8. Shumow D., Ferguson N. On the possibility of erators. June 2015 [Электронный ресурс]. – Ре-
ности спецслужб. В дальнейшем это a back door in the NIST SP800-90 Dual EC PRNG // жим доступа:
проявилось, например, при попыт- CRYPTO 2007 Rump Session, August 2007 [Элек- https://nvlpubs.nist.gov/nistpubs/SpecialPublica-
ках АНБ утвердить в качестве меж- тронный ресурс]. – Режим доступа: tions/NIST.SP.800-90Ar1.pdf.
дународных стандартов малоресурс- http://rump2007.cr.yp.to/15-shumow.pdf. 18. Bernstein D. J., Lange T., Niederhagen R. Dual
ной криптографии шифры Simon 9. Schneier B. Did NSA put a secret backdoor in EC: A Standardized Back Door // Ryan P. Y. A.,
и Speck (о чем мы постараемся рас- new encryption standard? // Wired Magazine, 2007 Naccache D., Quisquater J.-J. (eds.) The New Code-
сказать в будущих статьях, когда дой- [Электронный ресурс]. – Режим доступа: breakers. LNCS. Springer, Heidelberg (2016). V. 9100.
дем до рассмотрения лазеек в сим- https://www.wired.com/2007/11/securitymat- Р. 256–281.
метричных алгоритмах). ters-1115/. 19. Young A., Yung M. Kleptography: using Cryp-
С другой стороны, спецслужбы 10. Joint Technical Committee ISO/IEC JTC 1, In- tography against Cryptography // Advances in Cryp-
и правоохранительные органы все formation technology, Subcommittee SC 27, IT Se- tology – EUROCRYPT’97. – Lecture Notes in Com-
меньше скрывают свои действия по curity techniques. US national body comments on puter Science. V. 1233. 1998. – P. 62–74.
ослаблению криптоалгоритмов и те- ISO/IEC 2nd CD 18031. Attachment 10 to SC27 20. Василенко О. Н. Теоретико-числовые ал-
перь фактически стремятся перейти N3685, 2003 [Электронный ресурс]. – Режим горитмы в криптографии. – М.: МЦНМО. –
к легитимизации лазеек. То есть ре- доступа: 2003. – 328 с.
зультатом разоблачения стало уси- https://projectbullrun.org/dual-ec/documents/us- 21. Barker E., Kelsey J. NIST Special Publication
ление давления, оказываемого этими comment-to-iso.pdf. 800-90A. Recommendation for Random Number
ведомствами на гражданскую крип- 11. FIPS-140-2, Security Requirements for Cryp- Generation Using Deterministic Random Bit Gen-
тографию. tographic Modules, Federal Information Processing erators. January 2012 [Электронный ресурс]. –
Не исключено, что вскоре точ- Standards Publication 140-2, U.S. Department of Режим доступа:
ка в истории Dual EC превратится Commerce/N.I.S.T., National Technical Informa- https://nvlpubs.nist.gov/nistpubs/ Legacy/SP/nist-
в многоточиеѕ ■ tion Service, 2001. specialpublication800-90a.pdf.
12. Ball J., Borger J., Greenwald G. Revealed: how 22. Shanks D. Five number-theoretic algorithms //
ЛИТЕРАТУРА US and UK spy agencies defeat internet privacy and Proceedings of the Second Manitoba Conference on
1. Жуков А. Е., Маркелова А. В. Криптография security // The Guardian. September 6, 2013 [Элек- Numerical Mathematics, Congressus Numerantium.
и клептография. Потайные ходы в алгоритме тронный ресурс]. – Режим доступа: 1973. № VII. Р. 51–70.

8 Защита информации. INSIDE № 3'2019