Shadow Key Attack: [Часть №1] Угроза утечки nonce в Bitcoin через алгоритм Евклида по побочным каналам EUCLEAK в YubiKey 5 и Infineon MCU

Ах, мир криптовалют — место, где даже самый заумный математик может почувствовать себя героем боевика, а приватные ключи трещат по швам от одного лишь взгляда злоумышленника. Сегодня у нас на повестке дня — Shadow Key Attack!

Звучит как тёмная магия из вселенной Гарри Поттера, но нет: это серьёзный криптоанализ, который способен превратить ваши биткоины в цифровой прах быстрее, чем вы скажете «nonce reuse» (а nonce — это не новый танец из TikTok, а эфемерное случайное число в алгоритме ECDSA).

Итак, представьте себе: вы идёте по улице с вашим YubiKey серии 5 — аппаратным токеном безопасности, который должен охранять ваши тайны лучше любого телохранителя. Но тут на сцену выходит EUCLEAK (CVE-2024-45678), хитрая электромагнитная атака от исследователей NinjaLab.

Они словно шпионы из фильмов про Джеймса Бонда, только вместо прослушки разговоров ловят мельчайшие колебания электромагнитных волн микроконтроллера. И что же они находят? Частичную информацию о вашем самом сокровенном числе k — том самом nonce, который должен был быть секретным и уникальным для каждой подписи.

А теперь внимание: если вы случайно или по глупости используете один и тот же nonce дважды (привет всем забывчивым разработчикам!), то Shadow Key Attack приходит в гости с огромным мешком алгебраических трюков и решёток (да-да, речь о lattice attacks и Hidden Number Problem).

С их помощью можно восстановить ваш приватный ключ Bitcoin и забрать все ваши монеты так быстро, что вы даже не успеете сказать «HMAC-DRBG».

Кстати говоря, знаете анекдот про программиста и криптографию? Программист говорит: «Я использую случайные числа!» Криптограф отвечает: «Покажи мне твой nonce». Программист молчит… Потому что nonce он повторил три раза подряд.

Вот именно такие моменты превращают вашу безопасность в фарс.

Возвращаясь к нашим баранам — или точнее к расширенному алгоритму Евклида (Extended Euclidean Algorithm), который на первый взгляд кажется скучным школьным занятием. Но нет! Время выполнения модульной инверсии этого алгоритма меняется настолько тонко и незаметно для глаза обычного пользователя, что его можно использовать как лазейку для утечки информации через побочные каналы. Это как если бы вы пытались тихо открыть бутылку шампанского на вечеринке — и при этом кто-то засек ваше движение по вибрациям пола.

Исследование NinjaLab не просто раскопало эту уязвимость — они создали целый математический аппарат для её формализации и предложили BITHORecover.

Нет, это не супергерой из комиксов Marvel, а инструмент для восстановления приватных ключей через эксплуатацию энтропии nonce. Если ваши ключи попали под прицел BITHORecover — считайте себя в беде.

Но не всё так мрачно! В статье предлагаются комплексные контрмеры против Shadow Key Attack и EUCLEAK — ведь даже самые надёжные системы могут содержать бреши. Помните старый анекдот: «Как узнать настоящего программиста?

Он пишет код так долго, пока баги не станут фичами». В криптомире важно писать код так тщательно, чтобы никакой баг не превратился в дверь для атаки.

При всей серьёзности темы нельзя не улыбнуться тому факту, что даже такие титаны безопасности как YubiKey или микроконтроллеры Infineon оказались уязвимыми перед хитростью времени выполнения алгоритма Евклида.

Это напоминает ситуацию из жизни: ты покупаешь самый дорогой сейф с кодовым замком от известного бренда, а оказывается, что секретный код можно угадать по звуку щелчков механизма. Вот примерно так же работает EUCLEAK — только в мире биткоинов.