Выявлен метод клонирования ключей из криптографических токенов на базе чипов NXP

Материал из Викиновостей, свободного источника новостей

10 января 2021 года

Исследователи безопасности из компании NinjaLab разработали новый вид атаки по сторонним каналам (CVE-2021-3011), позволяющей клонировать ECDSA-ключи, хранимые в USB-токенах на базе чипов NXP. Атака продемонстрирована для токенов двухфакторной аутентификции Google Titan на базе чипа NXP A700X, но теоретически применима и для криптографических токенов Yubico и Feitian, использующих тот же чип.

Предложенный метод (Архивная копия от 10 января 2021 на Wayback Machine) позволяет атакующему воссоздать хранимые в токене ключи ECDSA на основе данных, полученных через анализ электромагнитного сигнала, излучаемого токеном во время генерации цифровых подписей. Исследователи показали, что электромагнитный сигнал коррелирует с информацией об эфемерном ключе ECDSA, которой достаточно для восстановления ключа с использованием методов машинного обучения. Для восстановления секретного ключа в токене Google Titan достаточно анализа около 6000 операций с цифровыми подписями на основе ключа ECDSA, используемых для двухфакторной аутентификации FIDO U2F при подключении к учётной записи Google.

Для поиска слабых мест в реализации алгоритма ECDSA в чипах NXP ECDSA использовалась открытая платформа для создания смарткарт NXP J3D081 (JavaCard), которая очень похожа на чипы NXP A700X и использует идентичную криптографическую библиотеку, но при этом предоставляет больше возможностей для изучения работы движка ECDSA. Для восстановления ключа из JavaCard оказалось достаточно анализа около 4000 операций.

Для проведения атаки необходимо наличие физического доступа к токену, т.е. токен на длительное время должен оказаться доступен для исследования атакующим. Более того, чип экранирован алюминиевым экраном, поэтому требуется разбор корпуса, что затрудняет скрытие следов атаки, например, токены Google Titan запаяны в пластик и без видимых следов разобрать их не получится (как вариант предлагается печать на 3D-принтере нового корпуса). На восстановления ключа для одной учётной записи FIDO U2F необходимо около 6 часов плюс ещё около 4 часов требуется для разборки и сборки токена.

Для атаки также требуется достаточно дорогое оборудование, стоимостью приблизительно 10 тысяч евро, навыки по реверс инжинирингу микросхем и специальное программное обеспечение, которое публично не распространяется (возможность атаки подтверждена Google и NXP). В процессе атаки использовался измерительный комплекс Langer ICR HH 500-6, применяемый для испытаний микросхем на электромагнитную совместимость, усилитель Langer BT 706, микроманипулятор Thorlabs PT3/M с разрешением 10μm и четырёхканальный осциллограф PicoScope 6404D.

В качестве реализуемого на стороне сервера метода для частичной защиты от применения клонированных токенов при двухфакторной аутентификции предлагается использовать механизм счётчиков, описанный в спецификации FIDO U2F. Стандарт FIDO U2F изначально подразумевает наличие только одного набора ключей, что обусловлено тем, что протокол поддерживает только две базовые операции - регистрация и аутентификация.

На стадии регистрации генерируется новая пара ключей, закрытый ключ сохраняется в токене, а открытый передаётся на сервер. Операция аутентификации на стороне токена создаёт цифровую подпись ECDSA для переданных сервером данных, которая затем может быть проверена на сервере при помощи открытого ключа. Закрытый ключ всегда остаётся в токене и не может быть скопирован, поэтому при необходимости привязки нового токена создаётся новая пара ключей, а старый ключ помещается в список отозванных ключей.

Суть предлагаемого в FIDO U2F механизма защиты от клонирования ключей в том, что токен ведёт счётчик выполненных операций и передаёт его на сервер, который сравнивает переданное значение и значение, сохранённое при выполнении прошлой операции с тем же токеном. Если переданное значение оказалось меньше сохранённого, то делается вывод о наличии нескольких устройств с идентичной парой ключей. Данный механизм уже используется при аутентификации в сервисах Google и позволяет блокировать учётные записи при выявлении активности с клонированных токенов.

Среди подверженных атаке продуктов отмечены:

  • Google Titan Security Key
  • Yubico Yubikey Neo
  • Feitian FIDO NFC USB-A / K9
  • Feitian MultiPass FIDO / K13
  • Feitian ePass FIDO USB-C / K21
  • Feitian FIDO NFC USB-C / K40
  • NXP J3D081_M59_DF
  • NXP J3A081
  • NXP J2E081_M64
  • NXP J3D145_M59
  • NXP J3D081_M59
  • NXP J3E145_M64
  • NXP J3E081_M64_DF

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Выявлен метод клонирования ключей из криптографических токенов на базе чипов NXP», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.