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

gukov 9/6/19 3:51 PM Page 36

ТЕХНОЛОГИИ

Dual EC – криптографический
стандарт с лазейкой
Алексей Жуков, председатель совета Ассоциации “РусКрипто”
Александра Маркелова, технический директор ООО НТЦ “Альфа-Проект”, к.ф.-м.н.

М
ы рассмотрим историю генератора псевдослучайных чисел
Dual_EC_DRBG (Dual Elliptic Curve Deterministic Random
Bit Generator), ставшего в свое время федеральным
криптографическим стандартом в США и продвинутого
в международные криптографические стандарты. Несмотря
на огромное количество работ, содержащих его серьезнейшую
критику, данный стандарт просуществовал как часть
стандартов ANSI и ISO/IEC с 2006 по 2015 г. По всеобщему
мнению криптографических экспертов (не подтвержденному,
однако, на официальном государственном уровне), этот
алгоритм содержит лазейку, позволяющую владельцу ключа
к лазейке вычислять по выходу генератора его внутреннее
состояние, а затем предсказывать вырабатываемые им числа.

Обстоятельства, чисел (далее – ГСЧ и ГПСЧ) и в проекте стандарта ANSI


сопровождавшие про- являются важнейшими крипто- X9.82 [3].
цесс утверждения этого графическими примитивами, от Однако вскоре были опубли-
алгоритма в качестве свойств которых во многом кованы исследования, доказы-
криптографи ч е с к о г о зависит стойкость всей крипто- вающие, что генератор Dual EC
стандарта на националь- графической системы. Обыч- подвержен различительной
ном и международном ным требованием к таким гене- атаке (distinguishing attack) [4],
уровне, а также роль раторам является статистиче- [5], т.е. вырабатываемые им
АНБ в этом процессе ская неотличимость порожден- последовательности чисел ста-
лишь укрепляют убежде- ных ими последовательностей тистически отличимы от истин-
ние, что в данном случае от случайных равновероятных но случайных. Обычно такого
мы имеем дело с успеш- последовательностей. Для про- рода уязвимости считаются кри-
ной реализацией давней верки этих свойств разработаны тичными для ГПСЧ и являются
идеи государственных многочисленные статистические причиной его исключения из
структур США о внедре- тесты. Для криптографических криптографических стандартов,
нии лазеек в криптоал- приложений от ГПСЧ требуется но не в этот раз…
горитмы, являющиеся государст- еще и "непредсказуемость" – Комитет по стандартизации
венными (а еще лучше – меж- невозможность для нарушителя проигнорировал работы, крити-
дународными) криптографиче- предсказывать очередной знак кующие Dual EC, сославшись
скими стандартами [1]. выходной последовательности, на формальное превышение
АНБ – Агентство нацио- порождаемой генератором с сроков их подачи. При этом
нальной безопасности США История Dual EC: вероятностью, существенно некоторые другие, менее суще-
(National Security Agency – появление, отличной от равновероятной, ственные, замечания, поданные
NSA) – специализированный стандартизация, даже если ему известны все позже срока, все-таки были
орган в системе министерст- модификация, отмена предыдущие знаки этой после- учтены. В результате в июне
ва обороны США, осуществ- Следует сразу сказать, что довательности. Это подразуме- 2006 г. в пакете с другими гене-
ляет разведывательные мы приводим историю вает, что нельзя определить раторами псевдослучайных
функции в электронных ком- Dual_EC_DRBG (Dual EC – для внутреннее состояние ГПСЧ на чисел Dual EC был принят NIST
муникационных сетях, а краткости) в той степени, в кото- основе его выхода. в качестве криптографического
также защиту американских рой она известна обществен- С самого начала было ясно, стандарта [6].
правительственных и ведом- ности, т.е. пользуясь материа- что скорость работы нашего Одновременно с этим алго-
ственных закрытых линий лами, опубликованными в генератора является достаточно ритм Dual EC стал частью меж-
связи. АНБ располагает открытой печати. Сам алгоритм низкой за счет вычислений на дународного стандарта – стан-
широко разветвленной был впервые представлен на эллиптических кривых, но зато дарта ISO 18031:2005. И здесь
сетью пунктов подслушива- семинаре NIST по генерации его стойкость, по утверждению не обошлось без давления со
ния, радиоперехвата и случайных чисел в 2004 г. у как докладчика, Дона Джонсона, стороны властей США. К лету
радиопеленгации, располо- "теоретико-числовой генера- существенно выше альтерна- 2003 г. подкомитет 27 объеди-
женных во многих районах тор", использующий вычисления тив, поскольку базируется на ненного технического комитета
земного шара. в группе точек эллиптической задаче дискретного логариф- 1 ISO/IEC (Joint Technical Com-
кривой [2]. мирования в группе точек mittee ISO/IEC JTC 1, Information
Надо сказать, что генераторы эллиптической кривой. Тогда technology, Subcommittee SC 27,
случайных и псевдослучайных же алгоритм Dual EC появился IT Security techniques) занялся

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

ТЕХНОЛОГИИ

ние генератора и вырабатывае-


мые псевдослучайные биты.
В упрощенном варианте, если
дополнительная строка additio-
nal_input не задана, то

si = φ (x(si - 1P)), (1)

ri = φ (x(siQ)), (2)

где x(•) – выбор x-координаты


точки эллиптической кривой,
Рис. 2. Электронная переписка между Э. Баркер и М. Кампанья, от 02.03.2006 [18] а φ(•) – представление элемента
поля в виде битовой строки
использование альтернативных эксплуатацию уязвимости Dual (в формате Big Endian старшие
Элейн Баркер – Мэттью (сгенерированных пользовате- EC [16]. Их статья показала, биты записываются первыми).
Кампанья, копия Джону лем) P и Q, но на практике ока- как вычислять ключи протокола В силу сложности задачи дис-
Келси: "Мэтт, Джон – не тот залось, что это существенно TLS, используя знание связи кретного логарифмирования
человек, которому можно усложняет разработчикам сер- между точками P и Q (число d, обновление внутреннего состоя-
задавать вопросы касатель- тификацию соответствующего "ключ лазейки"). ния по формуле (1) должно
но Dual_EC_DRBG. Я пере- продукта на соответствие FIPS- Вскоре после этого RSA Secu- обеспечить стойкость генера-
адресовала ваше письмо 140-2 [11]. rity выпустила рекомендации тора к обратному перебору
Дебби Уоллнеру и Бобу Кар- После разоблачений Эдварда для пользователей библиотеки (Backtracking Resistance).
коска из АНБ. Элейн". Сноудена у криптографического BSAFE: не использовать гене- Последнее означает, что даже
сообщества не осталось сомне- ратор Dual EC. если в какой-то момент ском-
ний, что история Dual EC была В июне 2015 г. вышла новая прометировано внутреннее
частью масштабных программ версия рекомендаций NIST [17], состояние генератора, то все
SIGINT – радиоэлектрон- BULLRUN и SIGINT АНБ по в которой алгоритм Dual EC равно невозможно восстано-
ная разведка (англ. Signals ослаблению криптографических уже отсутствовал. Конец исто- вить предыдущие внутренние
Intelligence), включает пере- стандартов и встраиванию лазе- рии… Точка. состояния и получить ранее
хват каналов связи. BULL- ек в коммерческие продукты выработанные случайные
RUN – секретная программа [12]. Годовой бюджет АНБ на Описание алгоритма числа.
по дешифрованию онлайн- подобные мероприятия состав- Пусть задана эллиптическая Блок ExtractBits извлекает из
коммуникаций и данных, лял порядка $250 млн. кривая в форме Вейерштрасса: пришедшей на вход битовой
которая осуществляется Некоторые аффилированные y2 = x3 +ax = b mod p, строки правые outlen бит. При
Агентством национальной с АНБ математики продолжали где p > 3 – простое число, этом значение outlen должно
безопасности США. отрицать возможность практи- точка P = (Px, Py) – порождаю- делиться на 8 и быть не больше,
ческого использования лазейки щий элемент циклической под- чем 240 для кривой P-256, 368
в Dual EC. "Их глаза широко группы группы точек эллипти- для P-384 и 504 для P-521. То
открываются, когда я говорю о ческой кривой, r – порядок этой есть от x-координаты точки siQ
том, как трудно на самом деле подгруппы, Q = (Qx, Qy) – неко- берутся младшие outlen бит
В сентябре 2013 г. NIST получить информацию, которую торая ненулевая точка той же ("отбрасываются" как минимум
выпустил рекомендации по они предполагают получить подгруппы, отличная от P.5 два старших байта).
отказу от использования такими атаками... Я бросил им В приложении А.1 стандарта Презентация генератора [2]
Dual EC [13], но при этом вызов: предложил сгенериро- NIST версии 2006 г. [6] были обосновывала необходимость
алгоритм все еще оставался вать свои собственные пара- определены фиксированные использования операции
частью стандарта и некото- метры и показать мне, что они значения параметров p, r, a, b, ExtractBits тем, что иначе гене-
рые криптопродукты исполь- в действительности смогут вос- Px, Py, Qx, Qy для кривых P-256, ратор становится предсказуе-
зовали его. В декабре 2013 становить таким способом. P-384, P-521. мым в некоторых ситуациях.
г. в документах, обнародо- Никто пока этого не сделал"4,– Стойкость генератора бази- Дело в том, что количество
ванных Сноуденом, была заявил Ричард Джордж (Richard руется на сложности решения точек эллиптической кривой
обнаружена информация, George) в мае 2014 г. [18]. Заме- задачи дискретного логариф- приблизительно равно размер-
что компания RSA Security тим, что сам Ричард Джордж мирования в группе точек ности поля: по теореме Хассе
получила от АНБ $10 млн работал в АНБ с 1970 по 2011 г., эллиптической кривой, т.е. на [20], порядок m абелевой группы
за использование алгоритма а затем перешел в RSA Security, нахождении такого числа d, что точек эллиптической кривой
Dual EC в криптобиблиотеке где курировал финансируемые Q = dP.6 удовлетворяет неравенству
BSAFE в качестве основного правительством проекты [15].
генератора псевдослучай- Вызов Ричарда Джорджа был Основная идея
ных чисел [14]. RSA не под- принят группой математиков, Общая схема работы генера-
твердило и не опровергло и уже в августе 2014 г. они про- тора Dual EC показана на рис. 3. Из уравнения Вейерштрасса
эту информацию, сообщив, демонстрировали реальную Значения s и r задают, соот- легко понять, что если точка
что они "всегда действуют (а не только теоретическую) ветственно, внутреннее состоя- (x, y) лежит на эллиптической
в интересах своих клиен-
4
тов". АНБ от комментариев, “Their eyes open wide when I talk about how 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].
5
Слово Dual в названии алгоритма объясняют использованием в его работе двух точек.
6
В работе алгоритма Dual EC задействованы вычисления в группе точек эллиптической кривой [20],
где в силу аддитивной записи групповой операции степень элемента P-группы превращается в его
кратное n • P или короче – nP, а задача дискретного логарифмирования по основанию P принимает вид:
для данного Q найти такое n, что nP = Q.

38 •
gukov 9/6/19 3:52 PM Page 39

КРИПТОГРАФИЯ www.itsec.ru

кривой, то и точка (x, -y) тоже.


Таким образом, каждой x-коор-
динате соответствуют две точки,
а значит количество различных
координат можно оценить как

откуда следует, что количество


значений, не являющихся x-
координатами, оценивается как

Рис. 3. Алгоритм Dual EC [6]


Мы видим, что почти полови- Заметим, кстати, что при выра- e = d-1 mod r. Американский нацио-
на значений не являются коор- ботке достаточно длинной бито- нальный институт стандар-
динатами точек эллиптической вой строки additional_input Тогда тов (англ. American National
кривой, т.е. никогда не будут используется только в первом Standards Institute, ANSI)
выработаны генератором без блоке данных. К этому аспекту P = eQ. осуществляет надзор за
усечения, а следовательно мы еще вернемся, когда будем разработкой и использова-
такой генератор вырабатывает рассматривать структуру лазей- Для начала рассмотрим схему нием стандартов путем
не всевозможные битовые стро- ки в данном алгоритме. без additional_input. Из формул аккредитации процедур
ки, а только какое-то подмно- (1) и (2) следует: организаций, разрабаты-
жество. По утверждению авто- Модификация вающих стандарты. ANSI
ров алгоритма [2], отсечение алгоритма (3) также определяет конкрет-
13 старших (левых) бит позво- В обновленной версии стан- ные стандарты как амери-
ляет избавиться от этого недо- дарта NIST 2012 г. алгоритм где Si+1 = siP и Ri = siQ – соот- канские национальные стан-
статка, поскольку "валидные" и Dual EC был немного модифи- ветствующие точки эллиптиче- дарты, или ANS. –
"невалидные" значения x рас- цирован [21]. В конце алгоритма ской кривой. https://ru.wikipedia.org
пределены достаточно хаотично был добавлен еще один шаг: Таким образом, если знать
(к сожалению, точного объясне- ключ лазейки и точку Ri для
ния, откуда взялось число 13, s = φ (x(sP)), некоторого момента времени i,
нигде не приводилось, как то можно вычислить все после-
и многие другие пояснения т.е. было сделано дополнитель- дующие внутренние состояния
к предложенной конструкции). ное обновление внутреннего генератора и, соответственно,
Итак, пусть необходимо выра- состояния. В комментариях определить все его дальнейшие
ботать requested_number_of_bits к изменениям необходимость выходы.
бит, генератор ранее инициа- данного изменения объяснена Правда, в алгоритме Dual EC
лизирован (s – внутреннее "обеспечением стойкости известна только часть x-коор-
состояние), на вход подана к стойкости к раскрутке гене- динаты точки Ri. Тем не менее
строка additional_input (если не ратора в обратную сторону"7. всю точку Ri можно восстано-
задана, то считаем Однако более вероятна версия, вить перебором.
additional_input = 0). что данное исправление делает Шумов и Фергюсон [8] пред-
Обозначим за TRUNC_R(a, лазейку в алгоритме более уни- ложили следующий алгоритм
len) – правые (младшие) len бит версальной, об этом мы рас- для подбора "кандидатов" на
строки a, а за TRUNC_L(a, len) – скажем чуть позже. внутренние состояния.
левые (старшие) len бит стро- Дано: oj – блок выходной
ки a. Тогда алгоритм работает Лазейка с защитой битовой строки ключевого гене-
следующим образом: Сама математическая струк- ратора.
тура алгоритма Dual EC позво- Найти: множество возмож-
1. temp = Null; ляет легко спроектировать ных внутренних состояний
2. s = s ⊕ additional_input; лазейку. Действительно, так как
3. s = φ (x(sP)); P – порождающий элемент под-
4. r = φ (x(sQ)); группы группы точек эллипти-
5. temp = temp||TRUNC_R(r, ческой кривой, а Q – нетриви-
outlen); альный элемент этой же под-
6. Если len(temp) < reque- группы, то существует число d:
sted_number_of_bits, то перейти
к 3; Q = dP.
7. returned_bits = _
TRUNC_L(temp, Далее будем называть d клю- Если y = √z mod p существует,
requested_number_of_bits). чом лазейки. Мы покажем, что то A = (x, y) – точка кривой,
знание d помогает вычислять тогда
В данном описании мы опу- внутреннее состояние генера-
стили некоторые шаги, связан- тора на основе полученной Σ = Σ U {φ (eA)}.
ные с переинициализацией гене- битовой строки. Напомним, что
ратора, проверкой корректности r – порядок подгруппы, порож- Мощность множества Σ при-
всех длин данных, дополнитель- денной точкой P. Пусть e зада- близительно равна 215, посколь-
ной обработкой additional_input. ется формулой: ку всего есть 216 вариантов

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

Табл. 1. Время атаки на TLS [18]


связи между узлами. Время
атаки зависело от того, насколь- Криптобиблиотека Время атаки в худшем случае (в минутах)
ко длинную случайную после-
BSAFE-C v1.1 0.04
довательность может сразу
получить злоумышленник, про- BSAFE-Java v1.1 63.96
слушивающий канал, в частно- SChannel I 62.97
сти, от того, используется ли SChannel II 182.64
Dual EC для генерации иденти-
OpenSSL-fixed I 0.02
фикатора сеанса.
Атака на BSAFE-C оказалась OpenSSL-fixed II 83.32
самой легкой, поскольку иден- OpenSSL-fixed III 2k · 83:32
тификатор сеанса вырабатыва-
ется с помощью Dual EC, т.е.
атакующий сразу имеет доста- Заметим, что все перебо-
точное количество информации ры можно выполнять неза-
для взлома лазейки. висимо друг от друга, поэто-
В BSAFE-Java идентифика- му атака хорошо распарал-
тор вырабатывается другим леливается, т.е. время будет
способом, поэтому первый сокращаться пропорцио-
вызов Dual EC – это 28 байт нально количеству исполь-
случайного числа в протоколе зуемых процессоров.
рукопожатия, после которых
вырабатываются 32 байта для
эфемерального ключа Диффи-
Хэллмана. На основе передан-
ных 28 байт требуется сделать
232 попыток, проверяя резуль-
тат по открытому эфемераль-
ному ключу.8
Библиотека SChannel при гене-
рации идентификатора сеанса
использует Dual EC, но преобра-
зует результат некоторым обра-
зом, скрывающим от наблюда-
теля результат работы Dual EC.
Это усложняет восстановление
внутреннего состояния, но не
делает его невозможным. Авто-
ры исследования рассмотрели
два случая: SChannel-I, если зло-
умышленнику известны данные
предыдущих протоколов руко-
пожатия (Handshake), или же
SChannel-II, когда атака прово-
дится в пределах одного сеанса. Рис. 4. Общая схема TLS handshake (рис. из [16])
OpenSSL оказалась един-
ственной библиотекой, исполь- первое же соединение, когда завершения сеанса (на основе
зующей additional_input. Данное счетчик равен 0) и идентифи- сохраненных передаваемых
значение зависело от значения катор процесса (зная особен- данных). Кроме того, если
системного времени в секундах, ности нумерации и порядок целью атаки был не клиент, а
текущего системного времени запуска процессов в системе). сервер, то знание внутреннего
в микросекундах, некоторого Злоумышленнику остается состояния генератора позволяет
внутреннего счетчика и иден- пересчитать текущее время, злоумышленнику вычислить
тификатора процесса. Текущее заданное в секундах, в микро- секретный ключ и затем "под-
системное время в секундах секунды, на это требуется 1 млн менять" сервер, аутентифици-
злоумышленнику известно, попыток. руясь от его имени.
поскольку оно содержится в В последнем случае, когда ни
открытых данных, передавае- счетчик, ни идентификатор про- Заключение
мых в протоколе рукопожатия цесса не известны, требуется Как было отмечено ранее,
TLS, но остальные значения время в 2k раз большее времени работа [16] поставила точку в
требуется угадать. атаки OpenSSL-fixed-II, посколь- истории Dual EC, поскольку про-
OpenSSL-fixed-I предполагает, ку требуется угадать k-бит. демонстрировала не только тео-
что злоумышленник знает addi- Было продемонстрировано, ретическую, но и практическую
tional_input. что атака может выполняться возможность использования
В случае OpenSSL-fixed-II зло- как "онлайн", т.е. в момент встроенной в алгоритм лазейки.
умышленник знает значение соединения клиента и сервера, В то же время эта история
счетчика (например, он атакует так и "офлайн", уже после наглядно демонстрирует упорст-

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

• 41
gukov 9/6/19 3:52 PM Page 42

ТЕХНОЛОГИИ

во, с которым спецслужбы гото- edu/ viewdoc/download;jsessio- documents/itl-bulletin/itlbul2013-


вы продвигать необходимые им nid=D96134C539F238DD741A65 09-supplemental.pdf
стандарты и реализации ослаб- F49189E076?doi=10.1.1.6.1272&r [14] Menn J. Exclusive: Secret
ленных алгоритмов, невзирая ep=rep1&type=pdf contract tied NSA and security
на прямые обвинения со сторо- [4] Gj steen K. Comments on industry pioneer // Reuters.
ны экспертного сообщества. Dual-EC-DRBG/NIST SP 800-90, December 21, 2013 https://www.
Эта история демонстрирует draft December 2005, 2006. reuters.com/ article/us-usa-secu-
также серьезную зависимость https://www.researchgate.net/pub- rity-rsa/exclusive-secretcontract-
международных институтов lication/228960119_Comments_o tied-nsa-and-security-industry-pio-
стандартизации (а уж тем n_Dual-EC-DRBGNIST_SP_800- neer-idUSBRE9BJ1C220131220
более – национальных институ- 90_Draft_December_2005 [15] https://www.rsaconferen-
тов стандартизации США) от [5] Schoenmakers B., Sidorenko ce.com/speakers/richard_george
спецслужб США: необходимые A. Cryptanalysis of the Dual Elliptic [16] Checkoway S., Fredrikson
последним стандарты прини- Curve Pseudorandom Generator M., Niederhagen R., Everspaugh
маются, невзирая на то, что // Cryptology ePrint Archive, A., Green M., Lange T., Ristenpart
ведущие математики, крипто- Report 2006/190 (2006). T., Bernstein D. J., Maskiewicz J.,
аналитики, специалисты по https://eprint.iacr.org/2006/190.pdf Shacham H. On the practical
информационной безопасности [6] Barker E., Kelsey J. NIST exploitability of Dual EC in TLS
в один голос заявляют о нена- Special Publication 800-90. implementations // Fu K., Jung J.
дежности таких стандартов. Recommendation for Random (eds.) Proceedings of the 23rd
История алгоритма Dual EC Number Generation Using Deter- USENIX Security Symposium, San
и его бесславный конец – гряз- ministic Random Bit Generators. Diego, CA, USA, p. 319–335.
ное пятно на репутации солид- June 2006 https://nvlpubs.nist.gov/ USENIX Association (2014).
ных (во всяком случае, до сей nistpubs/Legacy/SP/nistspecial- [17] Barker E., Kelsey J. NIST
поры) организаций – NIST, ISO. publication800-90.pdf Special Publication 800-90A.
Разоблачение действий АНБ [7] ISO/IEC 18031:2005. Infor- Recommendation for Random
имело двойной эффект. mation technology – Security tech- Number Generation Using Deter-
С одной стороны, экспертное niques – Random bit generation. ministic Random Bit Generators.
сообщество окончательно [8] Shumow D., Ferguson N. June 2015. https://nvlpubs.nist.
утратило доверие к деятель- On the possibility of a back door gov/nistpubs/ SpecialPublica-
ности спецслужб. В дальней- in the NIST SP800-90 Dual EC tions/NIST.SP.800-90Ar1.pdf
шем это проявилось, напри- PRNG // CRYPTO 2007 Rump [18] Bernstein D. J., Lange T.,
мер, при попытках АНБ утвер- Session, August 2007. http://rump Niederhagen R. Dual EC: A Stan-
дить в качестве международ- 2007.cr.yp.to/15-shumow.pdf dardized Back Door // Ryan
ных стандартов малоресурсной [9] Schneier B. Did NSA put a P.Y.A., Naccache D., Quisquater
криптографии шифры Simon secret backdoor in new encryption J.-J. (eds.) The New Codebrea-
и Speck (о чем мы постараемся standard? // Wired Magazine, kers. LNCS, vol. 9100, p. 256–
рассказать в следующих стать- 2007. https://www.wired.com/ 281. Springer, Heidelberg (2016).
ях, когда дойдем до рассмот- 2007/11/ securitymatters-1115/ [19] Young A., Yung M. Klep-
рения лазеек в симметричных [10] Joint Technical Committee tography: using Cryptography
алгоритмах). ISO/IEC JTC 1, Information tech- against Cryptography // Advances
С другой стороны, спецслуж- nology, Subcommittee SC 27, IT in Cryptology – EUROCRYPT’97. –
бы и правоохранительные орга- Security techniques. US national Lecture Notes in Computer Sci-
ны все меньше скрывают свои body comments on ISO/IEC 2nd ence, Vol.1233. – Springer, 1998. –
действия по ослаблению крип- CD 18031. Attachment 10 to SC27 Р. 62–74.
тоалгоритмов и фактическите- N3685, 2003. https://projectbull- [20] Болотов А.А., Гашков
перь стремятся перейти к леги- run.org/dual-ec/documents/us- С.Б., Фролов А.Б., Часовских
тимизации лазеек. То есть comment-to-iso.pdf. А.А. Элементарное введение в
результатом разоблачения [11] FIPS-140-2, Security Requi- эллиптическую криптографию:
стало усиление давления со rements for Cryptographic Modu- Алгебраические и алгоритми-
стороны спецслужб на граж- les, Federal Information Proces- ческие основы. – М.: КомКнига,
данскую криптографию. sing Standards Publication 140- 2006. – 328 с. ISBN 5-484-
Не исключено, что вскоре 2, U.S. Department of Commer- 00443-8.
точка в истории Dual EC пре- ce/N.I.S.T., National Technical [21] Barker E., Kelsey J. NIST
вратится в многоточие... Information Service, 2001. Special Publication 800-90A.
[12] Ball J., Borger J., Gre- Recommendation for Random
Литература enwald G. Revealed: how US and Number Generation Using Deter-
[1] Жуков А. Е., Маркелова А. В. UK spy agencies defeat internet ministic Random Bit Generators.
Криптография и клептография: privacy and security // The Guar- January 2012 https://nvlpubs.nist.
скрытые каналы и лазейки dian. September 6, 2013 gov/nistpubs/ Legacy/SP/nistspe-
в криптоалгоритмах // Informa- https://www.theguardian.com/worl cialpublication800-90a.pdf
tion Security / Информационная d/ 2013/sep/05/nsa-gchq-encryp- [22] Shanks D. Five number-
безопасность. – 2019. – № 1 – tion-codes-security theoretic algorithms // Proceedings
C. 36–41. [13] Supplemental ITL bulletin of the Second Manitoba Confe-
[2] Johnson D. B. Number theo- for September 2013. NIST opens rence on Numerical Mathematics,
retic DRBGs // NIST RNG Works- draft special publication 800-90a, Congressus Numerantium, №. VII,
hop. July 20, 2004. https://crypto- recommendation for random num- 1973. – Р. 51–70. l
me.org/2013/12/NumberTheore- ber generation using deterministic
ticDRBG.pdf random bit generators, for review Ваше мнение и вопросы
присылайте по адресу
[3] ANS X9.82, Part 3 – DRAFT and comment. https://csrc.nist.gov/
is@groteck.ru
June 2004. http://citeseerx.ist.psu. csrc/media/publications/shared/

42 •