Многие смарт-карты обладают низкой криптографической защитой либо не имеют её вовсе. Это утверждение справедливо даже для тех карт, которые признаны соответствующими жёстким критериям FIPS 140-2 Level 2 и надёжность которых подтверждена двумя международными сертификатами. К такому выводу пришла группа из семи независимых криптографов.
Полный отчёт об исследовании, компрометирующем существующую систему сертификации, будет представлен на конференции Asiacrypt 2013. Часть любопытных деталей стала известна уже сейчас.
Серьёзная уязвимость была выявлена в тайваньской программе цифровой сертификации с использованием персональных смарт-карт. С учётом её характера можно предположить, что она затрагивает другие страны и области применения. Основная проблема заключается в генераторе псевдослучайных чисел (ГПСЧ), применяемом в широко распространённом варианте криптосистемы RSA.
>Пример ненадёжного персонального цифрового сертификата на смарт-карте (фото: Dan Goodin).
Приставка «псевдо» используется потому, что получение истинно случайных значений трудно реализовать на уровне математических алгоритмов. Создаваемые генераторами цифровые последовательности всегда немного отклоняются от закона равномерного распределения. Однако эти отличия от идеальной схемы обычно не слишком принципиальны и нивелируются по мере увеличения множества сгенерированных чисел, а каждый генератор проходит ряд проверок, прежде чем стать основой серьёзного программного продукта.
В рассматриваемом случае генератор для системы цифровой сертификации оказался настолько посредственным, что среди собранных ключей RSA длиной 1 024 бита группе аналитиков под руководством Кеннета Дж. Патерсона удалось взломать 184 штуки в течение нескольких часов на рядовом персональном компьютере.
>Распределение этих простых чисел не выглядит случайным даже с оговорками (изображение: Daniel J. Bernstein et al.).
При использовании корректного ГПСЧ стойкость криптографической системы RSA (как и всех алгоритмов асимметричного шифрования) базируется на том, что при наличии открытого ключа сложно вычислить парный ему секретный.
Ключи создаются на основе произведения пар больших простых чисел (натуральных чисел, которые делятся без остатка только на единицу и сами на себя). Эти числа генерируются псевдослучайным образом. В теории ключу длиной 1 024 бита соответствует множество из 2>502 простых чисел. Для атакующей стороны они все равновероятны.
На практике это означает неприемлемо долгое время атаки (годы, века) даже с использованием суперкомпьютера или сети распределённых вычислений, так как она в конечном счёте сводится к решению задачи факторизации — представления (больших) целых чисел в виде произведения простых.
Эксперт по вопросам криптографии Марк Бернетт поясняет в своём микроблоге, что число атомов во Вселенной гораздо меньше множества этих пар. Поэтому при реальном соблюдении всех требований FIPS 140-2 Level 2 шанс найти два идентичных произведения простых чисел или сотню слабых ключей RSA даже из миллионов образцов должен быть очень близок к нулевому.
Случайна ли ошибка в генераторе случайных чисел?
На первый взгляд, такая грубая ошибка, как дефектный генератор псевдослучайных чисел, в международной платёжной системе просто не могла пройти мимо десятков специалистов сертификационных центров и остаться незамеченной. Складывается впечатление, что их попросту заставили проигнорировать её, а сложившаяся ситуация возникла по причине закрытости деталей конкретной криптографической системы.
Распространено мнение, что открытый исходный код криптографических программ гарантирует их надёжность. Однако на практике получается, что открытость — необходимое, но не достаточное условие.
К примеру, подобная ошибка в генераторе случайных чисел криптографического пакета OpenSSL (применяемого в том числе и для создания ключей RSA) в ОС Debian не замечалась сообществом более полутора лет, хотя его исходный код был общедоступен. Всё это время серверами генерировались слабые OpenSSL-ключи. Они были настолько предсказуемы, что вскрывались в течение нескольких часов ещё пять лет назад. При быстрой проверке среди владельцев цифровых сертификатов на основе слабых ключей обнаружилось свыше двадцати тысяч сайтов коммерческих и правительственных организаций, одним из которых был сайт Белого дома.