Неисправимая уязвимость в чипе Apple приводит к утечке секретных ключей шифрования

Мар 21, 2024 | Железо и Программы | Нет комментариев

0
(0)
Время чтения 7 минуты

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

Недостаток — побочный канал , позволяющий сквозное извлечение ключей, когда чипы Apple используют реализации широко используемых криптографических протоколов — не может быть исправлен напрямую, поскольку он связан с микроархитектурой самого кремния. Вместо этого его можно смягчить только путем создания защиты в стороннем криптографическом программном обеспечении, которое может резко ухудшить производительность серии M при выполнении криптографических операций, особенно в более ранних поколениях M1 и M2. Уязвимость может быть использована, когда целевая криптографическая операция и вредоносное приложение с обычными системными привилегиями пользователя выполняются на одном и том же кластере ЦП.

Остерегайтесь аппаратной оптимизации

Угроза заключается в аппаратной оптимизации, которая предсказывает адреса памяти данных, к которым в ближайшем будущем может получить доступ работающий код. Загружая содержимое в кэш ЦП до того, как оно действительно понадобится, DMP, как сокращенно называется эта функция, уменьшает задержку между основной памятью и ЦП, что является распространенным узким местом в современных вычислениях. DMP — относительно новое явление, встречающееся только в чипах серии M и микроархитектуре Intel Raptor Lake 13-го поколения, хотя более старые формы устройств предварительной выборки были распространены в течение многих лет.

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

Прорыв нового исследования заключается в том, что оно раскрывает ранее упускаемое из виду поведение DMP в процессорах Apple: иногда они путают содержимое памяти, например ключевой материал, со значением указателя, который используется для загрузки других данных. В результате DMP часто считывает данные и пытается рассматривать их как адрес для доступа к памяти. Такое «разыменование» «указателей» — то есть чтение данных и их утечка через побочный канал — является вопиющим нарушением парадигмы постоянного времени.

В электронном письме они объяснили:

Предварительная выборка обычно просматривает адреса доступных данных (игнорируя значения доступных данных) и пытается угадать будущие адреса, которые могут быть полезны. В этом смысле DMP отличается, поскольку помимо адресов он также использует значения данных для прогнозирования (предсказания адресов для перехода и предварительной выборки). В частности, если значение данных «выглядит как» указатель, оно будет рассматриваться как «адрес» (хотя на самом деле это не так!) и данные с этого «адреса» будут перенесены в кеш. Поступление этого адреса в кэш видно, просачиваясь по боковым каналам кэша.

Наша атака использует этот факт. Мы не можем утечь ключи шифрования напрямую, но мы можем манипулировать промежуточными данными внутри алгоритма шифрования, чтобы они выглядели как указатель с помощью выбранной входной атаки. Затем DMP видит, что значение данных «выглядит как» адрес, и переносит данные с этого «адреса» в кеш, что приводит к утечке «адреса». Нас не волнует предварительная выборка значения данных, но тот факт, что промежуточные данные выглядели как адрес, виден через канал кэша и достаточен для раскрытия секретного ключа с течением времени.

В четверг команда объяснила это несколько иначе:

Наша ключевая идея заключается в том, что, хотя DMP разыменовывает только указатели, злоумышленник может обрабатывать входные данные программы так, что, когда эти входные данные смешиваются с криптографическими секретами, полученное промежуточное состояние может быть спроектировано так, чтобы оно выглядело как указатель тогда и только тогда, когда секрет удовлетворяет злоумышленника. выбранный предикат. Например, представьте, что программа имеет секрет s, принимает x в качестве входных данных, вычисляет и затем сохраняет y = s ⊕ x в своей программной памяти. Злоумышленник может создать разные x и получить частичную (или даже полную) информацию о s, наблюдая, может ли DMP разыменовать y. Сначала мы используем это наблюдение, чтобы нарушить гарантии стандартного примитива подкачки с постоянным временем, рекомендованного для использования в криптографических реализациях. Затем мы покажем, как взломать полные криптографические реализации, разработанные для защиты от атак с выбранным входом.

Войдите в GoFetch

Атака, которую исследователи назвали GoFetch, использует приложение, которому не требуется root-доступ, а только те же пользовательские привилегии, которые необходимы большинству сторонних приложений, установленных в системе macOS. Чипы серии M разделены на так называемые кластеры. Например, M1 имеет два кластера: один содержит четыре ядра эффективности, а другой — четыре ядра производительности. Пока приложение GoFetch и целевое приложение для шифрования работают в одном и том же кластере производительности (даже если они находятся на разных ядрах внутри этого кластера), GoFetch может добыть достаточно секретов для утечки секретного ключа.

Атака работает как против классических алгоритмов шифрования, так и против нового поколения шифрования, которое усилено, чтобы противостоять ожидаемым атакам со стороны квантовых компьютеров. Приложению GoFetch требуется менее часа для извлечения 2048-битного ключа RSA и чуть более двух часов для извлечения 2048-битного ключа Диффи-Хеллмана. Атака занимает 54 минуты для извлечения материала, необходимого для сборки ключа Kyber-512, и около 10 часов для ключа Dilithium-2, не считая автономного времени, необходимого для обработки необработанных данных.

Ключи RSA и Diffie-Hellman обрабатывались в реализациях Go и OpenSSL, а Kyber и Dilithium — в CRYSTALS-Kyber и CRYSTALS-Dilithium. Все четыре реализации используют программирование с постоянным временем, доказывая, что DMP в процессорах Apple преодолевают широко развернутую защиту.

Экспериментальные результаты четырех PoC-криптографических атак.  Это показывает среднее значение трех прогонов каждого PoC.  Под временем онлайн понимается время, необходимое для совместного процесса злоумышленника, который включает в себя (1) генерацию стандартных наборов вытеснений;  (2) определение комплексного выселения;  и (3) утечка DMP.  Время автономной работы — это время постобработки (например, уменьшения решетки) для завершения восстановления секретного ключа.  Время на этап автономного сбора подписей Дилитиума-2 не учитывается.
Увеличить / Экспериментальные результаты четырех PoC-криптографических атак. Это показывает среднее значение трех прогонов каждого PoC. Под временем онлайн понимается время, необходимое для совместного процесса злоумышленника, который включает в себя (1) генерацию стандартных наборов вытеснений; (2) определение комплексного выселения; и (3) утечка DMP. Время автономной работы — это время постобработки (например, уменьшения решетки) для завершения восстановления секретного ключа. Время на этап автономного сбора подписей Дилитиума-2 не учитывается.Чен и др.

GoFetch — это не первый раз, когда исследователи выявляют угрозы, скрывающиеся в Apple DMP. Оптимизация была впервые задокументирована в исследовании 2022 года, в ходе которого была обнаружена ранее неизвестная «DMP с погоней за указателем» как в M1, так и в чипе Apple A14 Bionic для iPhone. Исследование, проведенное другой группой ученых, привело к появлению Augury — атаки, которая идентифицировала и использовала боковой канал памяти, по которому происходила утечка указателей. В конечном счете, Augury не смог смешивать данные и адреса при использовании методов постоянного времени, и этот недостаток мог создать впечатление, что DMP не представляет особой угрозы.

«GoFetch показывает, что DMP значительно более агрессивен, чем считалось ранее, и, следовательно, представляет гораздо большую угрозу безопасности», — написали авторы GoFetch на своем веб-сайте. «В частности, мы обнаружили, что любое значение, загружаемое из памяти, является кандидатом на разыменование (буквально!). Это позволяет нам обойти многие ограничения Augury и продемонстрировать сквозные атаки на реальный код с постоянным временем».

Наказание за исполнение

Как и другие побочные каналы микроархитектуры ЦП, тот, который делает возможным GoFetch, не может быть встроен в микросхему. Вместо этого ответственность за смягчение вредных последствий уязвимости ложится на людей, разрабатывающих код для оборудования Apple. Для разработчиков криптографического программного обеспечения, работающего на процессорах M1 и M2, это означает, что в дополнение к программированию с постоянным временем им придется использовать другие средства защиты, почти все из которых сопряжены со значительными потерями производительности.

Хорошим примером является одно из наиболее эффективных средств смягчения последствий, известное как ослепление зашифрованного текста. Ослепление работает путем добавления/удаления масок к чувствительным значениям до/после сохранения в памяти/загрузки из памяти. Это эффективно рандомизирует внутреннее состояние криптографического алгоритма, не позволяя злоумышленнику контролировать его и тем самым нейтрализуя атаки GoFetch. К сожалению, по словам исследователей, эта защита одновременно зависит от алгоритма и часто является дорогостоящей, потенциально даже удваивая необходимые вычислительные ресурсы в некоторых случаях, например, для обмена ключами Диффи-Хеллмана.

Еще одна защита — запуск криптографических процессов на ранее упомянутых ядрах эффективности, также известных как ядра Icestorm, которые не имеют DMP. Один из подходов — запустить весь криптографический код на этих ядрах. Эта защита тоже вряд ли идеальна. Мало того, что необъявленные изменения могут добавить функциональность DMP к ядрам эффективности, запуск криптографических процессов здесь также, вероятно, увеличит время, необходимое для завершения операций, с нетривиальной величиной. Исследователи упоминают несколько специальных защитных мер, но они одинаково проблематичны.

DMP на M3, последнем чипе Apple, имеет специальный бит , который разработчики могут использовать для отключения этой функции. Исследователи пока не знают, какой штраф произойдет, если отключить эту оптимизацию производительности. (Исследователи отметили, что DMP, обнаруженный в процессорах Intel Raptor Lake, не передает такие же криптографические секреты. Более того, установка специального бита DOIT также эффективно отключает DMP.)

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

«В долгосрочной перспективе мы считаем правильным решением расширение контракта на аппаратное и программное обеспечение с учетом DMP», — пишут исследователи. «Как минимум, аппаратное обеспечение должно предоставлять программному обеспечению возможность выборочного отключения DMP при запуске критически важных для безопасности приложений. Это уже имеет зарождающийся прецедент в отрасли. Например, в расширениях DOIT от Intel специально упоминается отключение DMP через расширение ISA. В долгосрочной перспективе в идеале хотелось бы иметь более детальный контроль, например, ограничить DMP предварительной выборкой только из определенных буферов или назначенных нечувствительных областей памяти».

Представители Apple отказались комментировать запись об исследовании GoFetch.

Заинтересованные конечные пользователи должны проверить наличие обновлений GoFetch для смягчения последствий, которые становятся доступными для программного обеспечения macOS, которое реализует любой из четырех протоколов шифрования, которые, как известно, уязвимы. Из соображений предосторожности, вероятно, также разумно предположить, по крайней мере на данный момент, что другие криптографические протоколы, вероятно, также уязвимы.

«К сожалению, чтобы оценить уязвимость реализации, необходимы криптоанализ и проверка кода, чтобы понять, когда и как можно сделать промежуточные значения похожими на указатели, что приведет к утечке секретов», — советуют исследователи. «Этот процесс выполняется вручную и медленно и не исключает других подходов к атаке».

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

SiteAnalyzer, технический и SEO-анализ сайтов

Подпишитесь на нашу рассылку

0 Комментариев

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 

Не копируйте текст!