Сноуден: самый опасный человек в мире - Сырков Борис. Страница 15

Доклад сопровождался показом 9 слайдов. Из него следовало, что алгоритм генерации случайных чисел Dual_ EC_DRBG, получивший официальное одобрение со стороны американского правительства в составе стандарта шифрования «НИСТ СП800-90», имел вопиющую слабость, которая позволяла его взламывать. Более того, эта слабость обладала признаками «лазейки», которую кто-то специально встроил в алгоритм шифрования, чтобы иметь возможность читать сообщения, засекреченные с его помощью. Однако тогда реакция на доклад Шумофа и Фергюсона была довольно спокойной. Большинство подумало про себя, что, скорее всего, это была простая оплошность разработчиков.

Все изменилось в октябре 2013 года после очередной сенсационной публикации в американской газете «Нью-Йорк тайме». В этой публикации говорилось: «Секретные служебные документы АНБ, по-видимому, подтверждают, что фатальная слабость в стандарте шифрования, которую в 2007 году обнаружили два программиста из «Майкрософт», была встроена туда агентством. Оно разработало этот стандарт и энергично добивалось его одобрения, неофициально именуя образцовым».

Разоблачения «Нью-Йорк тайме» породили бурю возмущения запутанным процессом принятия американских криптографических стандартов. Национальный институт стандартов США (НИСТ), который одобрил алгоритм Dual_ EC_DRBG и стандарт «НИСТ СП800-90», был вынужден заново вынести их на публичное обсуждение. Корпорация «РСА», являвшаяся лидером американского рынка компьютерной безопасности, во всеуслышание отказалась от использования алгоритма Dual_EC_DRBG, признав, что именно этот алгоритм несколько лет по умолчанию использовался в ее комплекте криптографических программ.

Считается, что правильный выбор криптографического алгоритма по умолчанию является необходимым условием обеспечения безопасности коммуникаций. Наличие изъяна в алгоритме по умолчанию означает, что криптосистема в целом тоже ненадежна. Ведь по некоторым данным, если производитель явно устанавливал в своем продукте значение по умолчанию, то более 90 % пользователей оставляли его неизменным. А если устанавливал неявно, то, как бы ни призывали пользователей сменить неявное значение по умолчанию средства массовой информации, инструкции по эксплуатации и встроенные в продукт справочные подсистемы, то это делали не более 60 % пользователей.

С другой стороны, надо признать, что правильный выбор криптографического алгоритма, используемого по умолчанию в программном продукте, вряд ли можно признать достаточно надежным способом защиты от «лазеек», если в списке опций присутствует алгоритм с «лазейкой».

Ведь злоумышленник, подобный АНБ, может проникнуть в компьютерную систему и переназначить используемым по умолчанию именно алгоритм с «лазейкой», сделав тем самым совершенно бесполезным шифрование. Это значительно более эффективный шпионский метод, чем применение клавиатурного шпиона или другого подобного ему трояна. В последнем случае в компьютерной системе «прописывается» немалая по своему размеру программа. При ее обнаружении трудно будет сделать вид, что произошла непреднамеренная ошибка. И совсем другое дело, например, если поменять один битик в реестре операционной системы «Виндоуз», чтобы активировать «лазейку», заранее встроенную в криптографический алгоритм. Здесь заметно присутствие тайного умысла более утонченного, чем довольно прямолинейное заражение компьютера трояном.

Эксперты не были единодушны в своем мнении относительно стандарта «НИСТ СП800-90». Некоторые обратили внимание на тот факт, что обычно слабости в криптографических алгоритмах возникают из-за недостаточной грамотности разработчиков или их нежелания как следует потрудиться. Но в данном случае на создание стандарта «НИСТ СП800-90» было потрачено много усилий, и почему-то вдруг оказалось, что разработанный алгоритм является недостаточно стойким! Странно.

В то же время если признать, что выявленная слабость в стандарте «НИСТ СП800-90» на самом деле являлась «лазейкой», то ее создатели проявили предусмотрительность. Глядя на алгоритм, трудно было со всей уверенностью сказать, действительно ли это «лазейка» или просто результат недоработки его авторов. Что и требовалось от качественной «лазейки», если бы ее вдруг обнаружили бы. Тогда всю вину за нее можно было бы свалить на разработчиков.

Обвинения в адрес АНБ по поводу встраивания «лазеек» в криптографические стандарты звучали и в прошлом. В некотором смысле дебаты вокруг стандарта «НИСТ СП800-90» являлись отзвуком споров, которые велись в отношении американского стандарта шифрования данных «DES» в 1970-е годы. Тогда АНБ подозревалось в намеренном ослаблении «DES» путем манипулирования константами. Однако в 1994 году выяснилось, что АНБ выбирало константы таким образом, чтобы защитить «DES» от взлома с помощью метода, который в 1970-е годы был известен только в АНБ. Подозрения оказались безосновательными.

В 1995 году американская газета «Балтимор сан» опубликовала материал, из которого следовало, что с подачи АНБ «лазейка» была встроена в шифраторы швейцарской фирмы «Крипто АГ». А в 1999 году обнаружилось, что криптографический ключ, который использовался в операционной системе «Виндоуз НТ» корпорации «Майкрософт», содержал в своем названии аббревиатуру «АНБ». Этот факт породил спекуляции о том, что «Майкрософт» тайно предоставила АНБ возможность готовить собственные обновления криптоядра «Виндоуз НТ» и придавать им законную силу, подписывая с помощью специального ключа. «Майкрософт» свою вину отрицала, объясняя сей факт простым отражением контролирующей роли АНБ при получении разрешения на экспорт программных продуктов, в которые встраивались средства шифрования.

Все эти подозрения в адрес АНБ оказались еще не забыты в 2006 году, когда Шумоф и Фергюсон занялись анализом алгоритма Dual_EC_DRBG. В стандарт «НИСТ СП800-90», помимо Dual_EC_DRBG, входили еще три алгоритма генерации псевдослучайных чисел, которые предполагалось использовать при шифровании секретной и конфиденциальной информации.

Алгоритм Dual_EC_DRBG основывался на теории эллиптических кривых над конечными полями. По мнению АНБ, за этим алгоритмом было будущее, как за более компактным, быстродействующим и стойким. Поэтому стремление АНБ включить Dual_EC_DRBG в состав стандарта «НИСТ СП800-90» выглядело вполне оправданным.

Однако Шумоф и Фергюсон, в 2006 году начавшие изучать алгоритм Dual_EC_DRBG на предмет его реализации в составе семейства операционных систем семейства «Виндоуз», обратили внимание на своеобразные свойства этого алгоритма. Во-первых, он работал очень медленно – на два-три порядка медленнее, чем три остальных датчика псевдослучайных чисел. А во-вторых, алгоритм Dual_EC_ DRBG не обладал достаточной степенью безопасности. Иными словами, сгенерированные с его помощью числа были недостаточно случайными. Ситуация не была катастрофической, но представлялась весьма странной, учитывая, что стандарт «НИСТ СП800-90» получил официальную поддержку со стороны американского правительства.

А потом Шумоф и Фергюсон выяснили еще кое-что. Дело в том, что стандарт «НИСТ СП800-90» содержал список констант, которые использовались в алгоритме Dual_ EC_DRBG. Откуда они взялись, сказано не было. Но тот, кто рассчитал эти константы для включения в стандарт, мог одновременно рассчитать второй список констант и использовать его, чтобы абсолютно точно предсказывать псевдослучайную последовательность, генерируемую алгоритмом Dual_EC_DRBG. Шумоф и Фергюсон продемонстрировали, как это сделать, зная всего лишь первые 32 байта псевдослучайной последовательности.

Автор списка констант для использования в алгоритме Dual_EC_DRBG не был известен, но было вполне логично предположить, что их авторство принадлежало АНБ. Ведь именно это агентство активно добивалось принятия стандарта «НИСТ СП800-90».

Казалось бы, инцидент был исчерпан еще в 2007 году. Любой разработчик программных приложений, взявший на себя труд даже поверхностно ознакомиться с докладом Шумофа и Фергюсона, сразу понял бы, что алгоритм Dual_ EC_DRBG обладал существенным изъяном, и не стал бы использовать его в своих разработках.