В чипах Apple Silicon нашли уязвимость, которую нельзя устранить
Злоумышленники могут извлекать секретные ключи.

Группа учёных из американских университетов опубликовала отчёт об атаке под названием GoFetch, которая эксплуатирует уязвимость в чипсетах серий Apple M1, M2 и M3. Брешь позволяет извлекать секретные ключи.
Процессоры серий Apple M разделяются на кластеры. Например, у M1 есть четыре блока Icestorm с низким энергопотреблением и столько же высокопроизводительных блоков Firestorm. Последние отличаются наличием механизма DMP (data memory-dependent prefetcher) — он загружает содержимое памяти в кэш до того, как оно понадобится, чтобы ускорить обработку задач.
Известно, что подобные технологии оптимизации подвержены атакам по сторонним каналам (side-channel attack). Они позволяют получить информацию о секретных ключах, которые обрабатываются процессором в текущий момент, на основе косвенных признаков — например, скачков энергопотребления. Один из способов решения уязвимости — constant-time защита. Её идея заключается в том, что если все операции занимают одинаковое количество времени, то у злоумышленника будет меньше возможностей проанализировать процессы.
В статье исследователей говорится, что DMP в процессорах Apple иногда может путать содержимое памяти, рассматривая данные как адрес для выполнения доступа к памяти, что противоречит модели constant-time защиты.
Уязвимость затрагивает все криптографические алгоритмы, даже квантово-устойчивые. Приложению, которое эксплуатирует GoFetch, не нужные какие-то особые привилегии в операционной системе. В итоге GoFetch требуется менее часа, чтобы извлечь 2048-битный ключ по криптоалгоритму RSA.
Устранить проблему напрямую нельзя, поскольку она связана с микроархитектурой процессоров Apple. Но разработчики могут предпринять программные средства защиты: например, запускать операции шифрования и дешифрования на ядрах Icestorm, которые не имеют DMP. Эти блоки проигрывают Firestorm по производительности, поэтому криптографические задачи будут выполняться медленнее.
В случае с чипом Apple M3 разработчики могут отключить DMP, однако неясно, как сильно это скажется на скорости выполнения задач.