Группа исследователей из Техасского, Иллинойсского и Вашингтонского
университетов раскрыли
сведения о новом семействе
атак по сторонним каналам (CVE-2022-23823, CVE-2022-24436), получившим
кодовое имя Hertzbleed. Предложенный
метод атаки основан на особенностях динамического управления частотой в
современных процессорах и затрагивает все актуальные CPU Intel и AMD.
Потенциально проблема может проявляться и в процессорах других
производителей, поддерживающих динамическое изменение частоты, например
в ARM-системах, но проведённое исследование ограничилось проверкой чипов
Intel и AMD. Исходные тексты с реализацией метода атаки
опубликованы на GitHub
(реализация протестирована на компьютере с CPU Intel i7-9700).
Для оптимизации энергопотребления и предотвращения перегрева процессоры
динамически изменяют частоту в зависимости от нагрузки, что приводит к
изменению производительности и влияет на время выполнения операций
(изменение частоты на 1 Hz приводит к изменению производительности на 1
цикл в секунду). В ходе проведённого исследования было выяснено, что при
определённых условиях на процессорах AMD и Intel изменение частоты
напрямую коррелирует с обрабатываемыми данными, что, например, приводит
к тому, что время вычисления операций «2022 + 23823» и «2022 +
24436» будет отличаться. На основании анализа отличий времени
выполнения операций с разными данными можно косвенно восстановить
информацию, используемую при вычислениях. При этом в высокоскоростных
сетях с предсказуемыми постоянными задержками атаку можно провести
удалённо, оценивая время выполнения запросов.
При успешном проведении атаки выявленные проблемы позволяют определять
закрытые ключи на основе анализа времени вычислений в криптографических
библиотеках, использующих алгоритмы, математические вычисления в которых
всегда выполняются за постоянное время, не зависимо от характера
обрабатываемых данных. Подобные библиотеки считались защищёнными от атак
по сторонним каналам, но как оказалось, время вычисления определяется не
только алгоритмом, но и особенностями работы процессора.
В качестве практического примера, показывающего реалистичность
применения предложенного метода, продемонстрирована атака на реализацию
механизма инкапсуляции ключей SIKE
(Supersingular Isogeny Key Encapsulation), который вошёл в финал конкурса
постквантумных криптосистем, проводимого Национальным институтом
стандартов и технологий США (NIST), и позиционируется как защищённый от
атак по сторонним каналам. В ходе эксперимента при помощи нового
варианта атаки на основе подобранного
шифротекста
(постепенный подбор на основе манипуляций с зашифрованным текстом и
получения его расшифровки) удалось полностью восстановить используемый
для шифрования ключ, проводя измерения с удалённой системы, несмотря на
применение реализации SIKE с постоянным временем вычислений.
Компании
Intel
и
AMD
признали подверженность своих процессоров проблеме, но не планируют
блокировать уязвимость через обновление микрокода, так как без
существенного влияния на производительность аппаратно устранить
уязвимость не получится. Вместо этого разработчикам криптографических
библиотек даны
рекомендации
по программному блокированию утечки информации при выполнении
конфиденциальных вычислений. Компании Cloudflare и Microsoft уже
добавили подобную защиту в свои реализации SIKE, что привело к снижению
производительности CIRCL на 5%, а
PQCrypto-SIDH на 11%. В
качестве другого обходного пути блокирования уязвимости в BIOS или в
драйвере можно отключить режимы "Turbo Boost", "Turbo Core" или
"Precision Boost", но данное изменение приведёт к кардинальному
снижению производительности.
Компании Intel, Cloudflare и Microsoft были уведомлены о проблеме в
третьем квартале 2021 года, а компания AMD в первом квартале 2022 года,
но по просьбе Intel публичное раскрытие сведений о проблеме было
отложено до 14 июня 2022 года. Наличие проблемы подтверждено в
процессорах для настольных систем и ноутбуков на базе 8-11 поколений
микроархитектуры Intel Core, а также для различных настольных, мобильных
и серверных процессоров AMD Ryzen, Athlon, A-Series и EPYC
(исследователи продемонстрировали метод на CPU Ryzen с микроархитектурой
Zen 2 и Zen 3).
>>> Подробности