Технологии

Pico RP2350 выиграл вознаграждение за безопасность

Pico RP2350 выиграл вознаграждение за безопасность

Обеспечить безопасность аппаратного обеспечения сложнее, чем кажется, и именно поэтому я был уверен, что Raspberry Pi придётся выплатить $20 000 в качестве вознаграждения тому, кто сможет взломать защиту RP2350 - сердца Pico.

Причина, по которой вы можете подумать, что аппаратное обеспечение легче защитить, чем программное, заключается в том, что это именно аппаратное обеспечение. Программное обеспечение легко изменить, а для аппаратного нужен паяльник или что-то подобное. Но основные способы обеспечения безопасности аппаратного обеспечения очень ограничены. Вы можете записать код в память OTP (One-Time Programmable), и это не позволит кому-то изменить его, но вам нужно разрешить авторизованные изменения, а это обычно делается путем запуска только кода, подписанного закрытым ключом, который может быть проверен с помощью открытого ключа, записанного в память OTP.

В случае с RP2350 OTP является основой безопасности. Он используется для конфигурирования ARM TrustZone. Обычные методы атаки предполагают возмущение системы каким-либо образом, чтобы проверить, можно ли перевести ее в небезопасное состояние. В Raspberry Pi предусмотрены детекторы глюков и сопроцессор избыточности RCP, который проверяет выполнение начального загрузочного кода.

В целом все выглядит очень надежно, но прошлый опыт подсказывает, что трещины найдутся, и первая была обнаружена Аэданом Калленом, который догадался, что сбой напряжения в критический момент выполнения может что-то сделать. Он заморозил машину состояний, считывающую память OTP, так что при повторном чтении она возвращала защитное значение, а оно оказалось 0x333333, что как раз соответствует битовой схеме, необходимой для работы ядер RISC-V с разрешенной отладкой, и отсюда OTP может быть считан, а вся безопасность потеряна. Как и следовало ожидать, исправление, вероятно, заключается в изменении защитного значения на такое, которое не отключает безопасность, но это невозможно до обновления чипа.

Второе нарушение было предоставлено Мариусом Муенчем (Marius Muench) и представляло собой еще один сбой, вызванный скачком напряжения питания чипа, который запускал режим загрузки для запуска незащищенного программного обеспечения. В принципе, такой режим может быть запущен только с безопасного ПО, так что проблем быть не должно - но глюк обходит это и позволяет запускать что угодно. Решить эту проблему проще простого - установите один флаг конфигурации OTP, чтобы отключить этот конкретный режим загрузки.

Третье нарушение было реализовано Кевином Курдесом (Kévin Courdesses), который снова использовал процедуру безопасной книги с помощью глюка. В этом случае нужно было успеть загрузить проверяемый код и проверить его. Глюк заставляет хэш-функцию вычислять хэш другого заданного блока кода и рассматривать результат как относящийся к загруженному коду. Если второй блок валиден, то загруженный код выполняется, несмотря на то, что он не был проверен. Конечно, в принципе, встроенные в чип детекторы глюков должны были заметить атаку, но глюк был внесен не через линию питания, а через световой импульс. Задняя часть упаковки была отшлифована, чтобы обнажить заднюю часть чипа, а затем с помощью лазера была подана вспышка света, которая нарушила работу электроники.

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

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

Пятая атака не претендует на приз, поскольку была проведена в сотрудничестве с Raspberry Pi. В этом случае радиоволны использовались для создания ошибки, повреждающей OTP.

Несмотря на то что был предложен всего один приз в 20 000 долларов, качество работ было признано настолько высоким, что каждый победитель получит всю сумму.

Так что же мы должны сделать из этих результатов?

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

Интересно, что Raspberry Pi не собирается останавливаться на достигнутых результатах и планирует еще не один подобный вызов:

«Пока этот хакерский вызов заканчивается, начинается другой. Как компонент более широкой архитектуры безопасности RP2350, мы работаем над созданием реализации AES, которая защищена от атак по побочным каналам (в частности, дифференциального анализа мощности), и мы бросим вам вызов, чтобы победить ее».

Читайте также