Выбрать главу

Теоретически процесс стандартизации в NIST прозрачный, публичный. Однако законы США обязывают Институт пользоваться помощью АНБ — и временами, как выяснилось благодаря Эдварду Сноудену, эта «помощь» перерастает в диктат. Благодаря Эдварду мы знаем теперь, что именно так, под нажимом АНБ, NIST стандартизовал генератор псевдослучайных чисел Dual_EC_DRBG (тоже основанный на ЭК) — один из рекомендованных для использования в криптографических продуктах и реализованный в такой форме десятками вендоров. Документы Сноудена прямо указывают на то, что неслучайность, присущая Dual_EC_DRBG и давно уже подмеченная независимыми экспертами, была введена АНБ ради ослабления генератора и, соответственно, последующего более лёгкого взлома шифров. На днях, поупиравшись для виду («Мы не ослабляем стандарты намеренно!»), NIST официально посоветовал не использовать Dual_EC_DRBG и возобновил процедуру его публичного рассмотрения.

Что бизнес может противопоставить узаконенному шантажу со стороны спецслужб? Один из последних интересных вариантов — остроумный метод, известный под красивым англоязычным названием dead man’s switch, что примерно переводится на русский как «аварийная кнопка». Речь об устройстве, которое начинает работу, если его оператор вдруг выбывает из строя. Именно такое, кстати, построил якобы сам Эдвард на случай своего физического устранения: если с ним что-то произойдёт, построенная им система опубликует некие особо сенсационные данные. Но в нашем случае всё проще: на видном месте (скажем, лицевая страница официального сайта) размещается регулярно обновляемое предупреждение. Что-нибудь вроде «Мы не стучим на своих клиентов правительству. 16 сентября 2013 года». Фишка в том, что, как только вас принудят к сотрудничеству, вы перестанете его обновлять, потому что иначе это будет обманом. И даже если в целях нацбезопасности вас вынудят врать, в перспективе всё равно выигрываете: впоследствии будет легче смыть с себя позор, ведь вас заставили!

Dual_EC_DRBG используется сравнительно редко, однако скандал вокруг него дал повод усомниться вообще в стандартах эллиптического крипто, опубликованных NIST. Сыр-бор разгорелся вокруг уже упомянутых выше рекомендованных кривых: что если Институт, действуя по указке АНБ, выбрал особенные кривые — скажем, такие, основанные на которых шифры будут менее стойкими? Математического или документального доказательства этому нет. Но вот что настораживает: в ходе устроенного энтузиастами расследования выяснилось, что начальные параметры (константы) для рекомендованных кривых должны были быть сгенерированы случайным, но проверяемым образом — а вместо этого их словно бы взяли наугад, так что объяснить сейчас, как они были получены, никто не в состоянии. Логично предположить, что константы были подобраны, чтобы ослабить стойкость шифров. И каждый криптографический продукт, использующий ЭК-рекомендации NIST, оказывается беззащитным перед АНБ.

Дискуссия продолжается, и в следующие недели и месяцы мы наверняка услышим новые аргументы как за, так и против этого обвинения. Но в данный момент каждому пользователю и разработчику стоит задаться вопросом: используют ли важные лично для вас программы эллиптические кривые, рекомендованные NIST?

К счастью, для двух крупнейших свободных проектов Сети — Bitcoin и TOR — ответы на него будут отрицательными. Спасибо Сатоши Накамото: эллиптическое крипто, положенное в основу Bitcoin, опирается на кривую (sec256k1), отсутствующую в рекомендациях NIST. Равно и TOR основан на кривой, к которой NIST не имел отношения.

Но вы понимаете, что вопрос этот нужно задать для каждой программы, использующей эллиптическую криптографию. И ответ не всегда будет таким, на какой вы, возможно, надеетесь…