Зависимость времени выполнения инструкций от данных на CPU ARM и Intel

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
29-Янв-2023 13:54

Эрик Биггерс (Eric Biggers), один из разработчиков шифра Adiantum и мэйнтейнер подсистемы ядра Linux fscrypt, предложил набор патчей для блокирования проблем с безопасностью, возникающих из-за особенности процессоров Intel, не гарантирующей постоянное время выполнения инструкций для разных обрабатываемых данных. В процессорах Intel проблема проявляется начиная с семейства Ice Lake. Аналогичная проблема наблюдается и в процессорах ARM.
Наличие зависимости времени выполнения инструкций от обрабатываемых в этих инструкциях данных расценивается автором патчей как уязвимость в процессорах, так как такое поведение не может гарантировать безопасность производимых в системе криптографических операций. Многие реализации криптографических алгоритмов рассчитаны на то, что данные не влияют на время выполнение инструкций и нарушение этого поведения может привести к созданию атак по сторонним каналам, восстанавливающих данные на основе анализа времени их обработки.
Потенциально зависимость времени выполнения от данных также может использоваться для организации атак по определению данных ядра из пространства пользователя. По заявлению Эрика Биггерса, постоянное время выполнения по умолчанию не обеспечивается даже для инструкций, выполняющих операции сложения и XOR, а также для специализированных инструкций AES-NI (информация не подтверждена тестами, по другим данным при умножении векторов и подсчёте битов возникает задержка на один цикл).
Для отключения рассматриваемого поведения компании Intel и ARM предложили новые флаги: PSTATE-бит DIT (Data Independent Timing) для CPU ARM и MSR-бит DOITM (Data
Operand Independent Timing Mode) для CPU Intel, возвращающие старое поведение с постоянным временем выполнения. Компании Intel и ARM рекомендуют включать защиту по мере необходимости для особо важного кода, но на деле важные вычисления могут встречаться в любых частях ядра и пространства пользователя, поэтому рассматривается возможность постоянной активации режимов DOITM и DIT для всего ядра.
Для процессоров ARM в ветку ядра Linux 6.2 уже приняты патчи, меняющие поведение для ядра, но данные патчи рассматриваются как недостаточные, так как они охватывают только код ядра и не меняют поведение для пространства пользователя. Для процессоров Intel включение защиты пока находится только на стадии рецензирования. Измерение влияния патча на производительность пока не проводилось, но по данным из документации Intel включение режима DOIT снижает производительность (например, из-за отключения некоторых оптимизаций, таких как специфичная для определённых данных упреждающая загрузка) и в будущих моделях процессоров снижение производительности может усилиться.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_intel, #_arm, #_cpu, #_timing, #_kernel
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 21-Ноя 14:37
Часовой пояс: UTC + 5