Обеспечение безопасности встраиваемых систем на базе RISC-V: Преодоление вызовов и пути к улучшению
В мире, где все более популярным становится Интернет вещей (IoT), безопасность систем приобретает критическое значение, особенно если разработчики решат использовать открытое программное обеспечение. Встраиваемые системы подвержены угрозам со стороны хакеров и вредоносных программ, которые могут воспользоваться уязвимостями в безопасности, если система не защищена должным образом. Открытые архитектуры наборов команд (ISA) пока отстают от лицензированных, однако RISC-V стремится быстро наверстать упущенное. Рассмотрим основы безопасности встраиваемых систем и то, как они применимы к открытым решениям.
Основы безопасности
Для защиты встраиваемых систем от взлома и вредоносных программ разработчики должны создавать надежную основу безопасности. В такой системе корень доверия является неизменным основанием, на котором строятся все другие функции безопасности. Корень доверия выполняет функции, связанные с безопасностью, в соответствии с установками разработчика, и его действия не могут быть нарушены злоумышленниками. Аппаратная часть корня доверия реализует и защищает ключи и функции безопасности, такие как шифрование, расшифровка, аутентификация и безопасная загрузка.
Стандартизированные криптографические функции обеспечивают основу для безопасности системы. Эти функции часто реализуются с помощью защищенных аппаратных компонентов, которые защищены от несанкционированного доступа. Ключи, используемые для защиты данных и проверки их подлинности, также должны быть защищены от несанкционированного доступа и могут использовать уникальные характеристики устройства, которые сложно взломать.
После того как корень доверия установлен, и криптографические функции и ключи защищены, можно создать Среду Доверенного Исполнения (TEE), которая обеспечит защиту кода приложений от хакеров и вирусов. TEE также защищает важные данные, такие как учетные данные пользователей, медицинские записи и финансовую информацию. Вся остальная часть кода приложений основывается на TEE для обеспечения общей безопасности системы. Аппаратный корень доверия должен быть защищен от атак злоумышленников, чтобы сохранить безопасность всей системы.
Программная безопасность
Для дополнительной защиты от взлома и вредоносных программ высокоуровневые приложения используют специальные протоколы для безопасной передачи данных. Код приложения использует функции этих протоколов (например, HTTP, FTPS, SFTP), которые в свою очередь обращаются к низкоуровневым протоколам для защиты (например, SSL и SSH). Все эти функции в конце концов используют криптографию через TEE и корень доверия для безопасного выполнения и защиты данных.
Аппаратная безопасность
Для повышения защиты встраиваемой системы от атак можно добавить специальные аппаратные компоненты в MCU на базе RISC-V, создавая защищенную среду, которая защитит важную память, периферийные устройства и даже другие процессоры в многозадачной системе. Пример защиты, показанный на диаграмме ниже (адаптированной от модели безопасности SiFive WorldGuard), демонстрирует подходы к безопасному доступу. Функции защиты памяти RISC-V (PMP и PMA) используются для ограничения доступа к важным ресурсам MCU только безопасными процессами. Блоки контроля доступа используют PMP и PMA для предотвращения несанкционированного доступа к кэш-памяти, внутренней памяти (Flash или SRAM), периферийным устройствам (например, криптографическому оборудованию и хранилищу ключей), другим процессорам и другим компонентам системы. Нарушение доступа может вызвать прерывание, на которое система безопасности отреагирует, возможно, записав инцидент и приняв меры защиты.
Защита кэш-памяти и криптографических ключей критична для обеспечения безопасности. Также важна защита других элементов системы, таких как периферийные устройства и интерфейсы отладки, от несанкционированного доступа и изменений. Защита конфиденциальных данных и защита интерфейсов от доступа хакеров — ключевые задачи в защите системы.
