Исследователи подделали RSA-подписи внутри аппаратного модуля безопасности, не извлекая ключ
Ключевые выводы
- •Исследователи из UC San Diego и INRIA подделали RSA-подписи для 1024-битного ключа, пока тот находился внутри аппаратного модуля безопасности, описав атаку в статье, представленной в архив IACR Cryptology ePrint 20 сентября.
- •Демонстрация включала отключение режима FIPS модуля, использование тестового ключа, отправку около 2^32 (примерно 4 млрд) выбранных запросов на подпись и, по оценкам, 1380 ядро-лет вычислений CPU.
- •Атака не затрагивает Bitcoin и Ethereum, поскольку эти сети используют подписи на эллиптических кривых, такие как ECDSA и Schnorr, а не RSA.
- •Стандартные схемы дополнения RSA, такие как PKCS#1 v1.5 и PSS, предотвращают появление эксплуатируемого оракула, поэтому, по словам авторов, атака, скорее всего, не представляет непосредственной операционной угрозы большинству современных развертываний RSA.
- •Авторы описывают результат как классическое свидетельство в пользу отказа от RSA в ходе постквантового перехода — перехода, который Google планирует завершить для собственных систем к 2029 году.

Исследователи из Калифорнийского университета в Сан-Диего и французского INRIA подделали RSA-подписи для 1024-битного ключа, хранившегося внутри аппаратного модуля безопасности — защищённого от несанкционированного доступа устройства, на которое полагаются институциональные кастодианы для защиты криптографических ключей, — не извлекая при этом сам ключ.
Фактически исследователи «выдали себя» за аппаратный модуль безопасности — устройство, хранящее приватные ключи и подписывающее данные по запросу, — вынудив его выдать корректные подписи, пока ключ оставался внутри. Они подробно описали атаку в статье, представленной в архив IACR Cryptology ePrint 20 сентября.
Для держателей криптовалют этот результат не означает взлома Bitcoin или Ethereum. Bitcoin подписывает транзакции с помощью алгоритма цифровой подписи на эллиптических кривых (ECDSA), а его кривая также поддерживает подписи Schnorr. Ethereum и большинство других крупных блокчейнов также используют подписи на эллиптических кривых. Данная статья касается криптографии Rivest-Shamir-Adleman (RSA) — другой схемы подписи.
Тем не менее результат является стресс-тестом того, как защищаются ключи. Институциональные провайдеры кастодиальных услуг, согласно BitGo, используют аппаратные модули безопасности — защищённые от взлома устройства, спроектированные так, чтобы ключи никогда не покидали оборудование, а посторонние могли лишь запрашивать подписи. В данном случае ключ так и не покинул устройство, однако исследователям всё же удалось подделать подписи.
При этом они отключили режим FIPS модуля — сертифицированную настройку безопасности, — чтобы он подписывал неформатированные числа, и использовали собственный тестовый ключ. Затем они попросили устройство подписать около 4 млрд выбранных ими чисел — примерно 2^32 запросов на подпись — после чего выполнили вычисления над ответами. Объём вычислений составил, по оценкам, 1380 ядро-лет CPU. Представьте себе хранилище, которое никогда не открывается, но ставит печать на любой чистый лист бумаги, который вы просунете под дверь: если спрашивать достаточно долго, можно научиться делать такую печать самостоятельно.
Что такое подпись?
Каждый раз, когда пользователь подтверждает транзакцию, его кошелёк подписывает её приватным ключом. Эта цифровая подпись доказывает, что владелец ключа одобрил транзакцию и что никто не изменил сообщение по пути, — именно поэтому подписи основой любого перемещения ценности в блокчейне.
RSA — один из способов построения такого доказательства. Он был создан в 1977 году Роном Ривестом, Леонардом Адлеманом и Ади Шамиром — той самой «S» в названии. Ключевая идея заключается в том, что умножить два огромных простых числа легко, а вот разделить результат обратно (этот процесс называется факторизацией) чрезвычайно сложно. Авторы пишут, что безопасность RSA общепринято считается основанной на этой сложности, хотя взлом RSA никогда не был доказан как эквивалентный факторизации. Эта команда ничего не факторизовала.
Кого это затрагивает
Стандартное подписание RSA применяет дополнение (padding) — этап перемешивания и форматирования, например PKCS#1 v1.5 или PSS, выполняемый перед основными вычислениями, — а подписи с дополнением не создают эксплуатируемого оракула. На практике атака работает только против устройства, настроенного на подписание необработанных, неформатированных чисел. Таким образом, описанная уязвимость зависит от интерфейса подписания и его конфигурации, а не просто от того, хранится ли ключ в HSM. По словам авторов, атака, скорее всего, не представляет непосредственной операционной угрозы большинству современных развертываний RSA. Статья является препринтом.
Некоторые системы выдают оракул намеренно. Слепые подписи на основе RSA позволяют серверу подписать данные, не видя их, — так работает один из вариантов Privacy Pass. Cloudflare сообщает, что Apple использует версию Privacy Pass, чтобы пользователи могли доказать прохождение проверки, например CAPTCHA, не раскрывая свою личность.
У слепых подписей есть корни в криптографии. Криптограф Дэвид Чаум использовал эту технику, когда основал DigiCash в 1989 году.
Главная угроза по-прежнему квантовая
Заголовки в духе «RSA взломан» уже имеют свою историю. В январе 2023 года китайские исследователи заявили о квантовом методе, угрожающем RSA, но факторизовали лишь 48-битное число, и эксперты отвергли это заявление. В этот раз демонстрация затрагивает реальный 1024-битный ключ — со звёздочкой размером с сам оракул.
Авторы описывают свой результат как классическое свидетельство в пользу отказа от RSA в ходе постквантового перехода — смещения к шифрованию, устойчивому к квантовым компьютерам.
Для Bitcoin квантовый вопрос касается подписей на эллиптических кривых. Исследователи Калтеха в конце марта оценили, что для запуска алгоритма Шора — метода, угрожающего этим подписям, — может быть достаточно от 10 000 до 20 000 кубитов, квантового аналога битов.
Google установила 2029 год как крайний срок завершения миграции собственных систем на постквантовую криптографию.