14-летняя уязвимость позволяла создать клон YubiKey через тайминг-атаку

14-летняя уязвимость позволяла создать клон YubiKey через тайминг-атаку

14-летняя уязвимость позволяла создать клон YubiKey через тайминг-атаку

Французские исследователи доказали, что аппаратные ключи безопасности YubiKey можно получить через атаку по стороннему каналу. Метод EUCLEAK требует физического доступа к устройству, спецоборудования стоимостью $11 тыс. и хороших технических навыков.

Используемую уязвимость (привязана к микроконтроллеру Infineon SLE78) компания Yubico уже устранила с выпуском прошивок 5.7.0 (для YubiKey и Security Key) и 2.4.0 (для YubiHSM).

Криптобиблиотеку Infineon попросту заменили собственной разработкой, однако проблема затронула также продукты других вендоров на МК Infineon (кроме SLE78, уязвимы также Optiga Trust M и Optiga TPM).

Как выяснили в NinjaLab (PDF), данная ошибка в реализации ECDSA (алгоритм цифровой подписи на основе эллиптических кривых), а точнее, расширенного алгоритма Евклида (используется при вычислении обратного по модулю), присутствует в чипах Infineon с 2010 года. Для операций модульной инверсии не предусмотрено константное время, то есть отсутствует типовая защита от атак по стороннему каналу.

Еле заметная разница во времени выполнения открывает возможность для получения эфемерного ключа ECDSA (нонс-значения) путем замеров электромагнитного излучения с помощью осциллографа. Последующий анализ позволил исследователям воссоздать секретный ключ ECDSA и тем самым нарушить безопасность YubiKey-токена.

При наличии определенных навыков атака EUCLEAK, протестированная на YubiKey 5Ci, занимает меньше часа и проводится следующим образом:

  1. Кража логина и пароля на доступ к целевому аккаунту жертвы (защищенному по FIDO приложению, можно через фишинг).
  2. Получение физического доступа к YubiKey без ведома владельца (на пару минут).
  3. Отправка на устройство запросов на аутентификацию с использованием украденных учеток, параллельные измерения (для этого придется вскрыть YubiKey-девайс и подключить к плате соответствующее оборудование, а потом замести следы, заменив поврежденный корпус).
  4. Незаметный возврат токена жертве.
  5. Анализ результатов измерений, извлечение приватного ключа ECDSA, связанного с целевой учетной записью.

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

Энтузиаст выпустил скрипт для быстрой установки защищённого MTProxy

Пользователь Хабра под ником aikendo рассказал о развитии собственного проекта MTProxy, опубликованного от имени lingeniare. Несмотря на одинаковые названия, это не официальный прокси-сервер Telegram и не его форк, а сторонний скрипт для автоматической установки и настройки MTProxy.

Автор решил избавить пользователей от ручной компиляции, редактирования конфигураций и других развлечений для тех, кому отчаянно не хватает терминала после работы. На выходе скрипт должен предоставить уже настроенный прокси для Telegram.

После первого релиза проект получил Fake TLS с указанием внешнего домена через параметр --domain. Механизм маскирует прокси-трафик под обычное TLS-соединение и помогает проходить системы глубокого анализа пакетов — DPI.

Архитектуру секретов тоже переработали. Вместо общего файла ключи разных пользователей хранятся раздельно в каталоге /etc/mtproxy/secrets.d. Сам прокси запускается от отдельной системной учётной записи mtproxy, а сервис systemd получил дополнительные ограничения по принципу наименьших привилегий.

Для защиты от перебора и сетевого флуда скрипт добавляет правила iptables с модулем hashlimit. Их можно сохранять после перезагрузки через netfilter-persistent. Интерфейс статистики теперь доступен только локально по адресу localhost:2398, чтобы служебные данные не торчали наружу без необходимости.

За стабильностью следит watchdog на базе таймера systemd: при сбое он перезапускает прокси. Скрипт также настраивает синхронизацию времени по NTP, поскольку рассинхронизация часов может сорвать MTProto-рукопожатие. Опционально доступен сетевой алгоритм BBR.

После установки проект выводит QR-код и прямую ссылку tg://proxy, поэтому подключение не требует ручного переписывания параметров. Исходный код открыт на GitHub.

RSS: Новости на портале Anti-Malware.ru