Привет! рано!
Все механизмы безопасности, которые мы изучали ранее, были основаны на ARM, но в последнее время популярность RISCV была очень сильной, поэтому сегодня я представлю RISCV TEE. Вот краткое введение. Если вам интересно, вы можете получить более подробную информацию в Ресурсы в конце статьи. Давайте посмотрим ниже~
Многорегиональная безопасность с помощью RISC-V
Первая доверенная среда выполнения (TEE) для процессоров RISC-V.
Для приложений RISC-V, которым требуется надежная аппаратная безопасность, безопасность MultiZone® обеспечивает аппаратно-программное разделение нескольких одинаково безопасных доменов с полным контролем над данными, программами и периферийными устройствами.
В отличие от традиционных решений, MultiZone® Security не требует дополнительных IP-блокировок или изменений в существующей прошивке. Библиотеки с открытым исходным кодом, сторонние двоичные файлы и устаревший код можно настроить за считанные минуты, обеспечивая беспрецедентную безопасность и безопасность.
MultiZone®Security основан на свободных и открытых стандартах, имеет открытый исходный код на GitHub, поставляется с бесплатной пробной лицензией и без лицензионных отчислений для коммерческого использования.
MultiZone Security, первая доверенная среда выполнения для RISC-V, разрабатывает облегченную среду безопасности на основе политик для RISC-V, которая масштабируется от небольших одноядерных устройств Интернета вещей до многоядерных приложений SMP Linux.
MultiZone®Security состоит из следующих компонентов:
-
MultiZone®nanoKernel — легкое, формально проверяемое ядро, которое обеспечивает управляемое политиками аппаратное разделение ОЗУ, ПЗУ, ввода-вывода и прерываний.
-
MultiZone® Messenger — коммуникационная инфраструктура для безопасного обмена сообщениями между зонами без использования общей памяти .
-
Конфигуратор MultiZone® — объединяет полностью связанные исполняемые файлы зоны с политиками и ядрами для создания образов встроенного ПО для безопасной загрузки.
-
MultiZone® Secure Boot — двухэтапный безопасный загрузчик, проверяющий целостность и подлинность образов прошивки (SHA-256/SHA-512/ECC)
(Мне кажется, что этот алгоритм практически бессмыслен)
Как работает MultiZone Security?
MultiZone Security легко интегрируется в существующие IDE, такие как Eclipse, или наборы инструментов на основе командной строки.
- Блоки приложения пишутся, компилируются и компонуются отдельно для каждого региона , создавая набор эльфийских или шестнадцатеричных файлов.
- Политики нескольких регионов настраиваются для обеспечения изоляции ОЗУ, ПЗУ, ввода-вывода и прерываний, необходимых для каждого региона — RWX, с детализацией всего 4 байта .
- Наконец, вызывается конфигуратор MultiZone для объединения elf/hex-файлов зоны со средой выполнения MultiZone в подписанный образ прошивки.
- Всю систему можно написать, скомпилировать и отладить с использованием существующих наборов инструментов GNU или Eclipse .
Функция
- Вытесняющий планировщик в реальном времени: цикл/совместная работа, настраиваемая шкала времени, нагрузка на процессор <1%
- Формально проверяемый, полностью написанный на ассемблере, автономный — без зависимостей от сторонних библиотек.
- Неограниченное количество изолированных доверенных сред выполнения (зон) — аппаратное обеспечение, определение политики.
- Каждая область имеет до 32 отображенных ресурсов памяти, а именно флэш-память, оперативная память, ввод-вывод, uart, gpio, таймер и т. д.
- Любая комбинация конфигураций верхнего уровня и естественно выровненных конфигураций — минимальная степень детализации — 4 байта.
- Любая комбинация политик чтения, записи и выполнения — перекрытие ресурсов разрешено, но не рекомендуется.
- Встроенная поддержка ограничений, настроенных по регионам, т. е. кэш/конвейер/инструкция/загрузка/сохранение.
- Полная поддержка прерываний PLIC и CLIC – полностью настраиваемое отображение областей/прерывания
- Полная поддержка безопасных обработчиков прерываний пользовательского режима, даже без расширения «N».
- Полная поддержка векторных прерываний с малой задержкой, вытесняемых прерываний и режимов ожидания прерывания.
- Встроенные ловушки и эмуляция для наиболее защищенных инструкций, т. е. CSR только для чтения.
- Безопасная инфраструктура межзональной связи на основе обмена сообщениями — без общей памяти/буферов
- Оболочка библиотеки C для выполнения в защищенном режиме — через механизм обработки исключений ECALL.
- Подписанная загрузка работает с двухэтапной загрузкой и/или открытым ключом/корнем доверия/PUF–SHA-256/ECC.
- Инструмент настройки командной строки, совместимый с любой операционной системой, поддерживающей Java 1.8.
среда разработки
- Eclipse IDE, включая плагины MCU и GNU, а также отладку OpenOCD/JTAG/GDB в реальном времени.
- AndeSight™ IDE с ICE или OpenOCD
- SiFive FreedomStudio IDE, включая плагины MCU и GNU, а также отладку OpenOCD/JTAG/GDB в реальном времени.
- Инструменты командной строки Linux и Windows (make, gcc, gdb и т. д.) — для встроенного Linux, Windows требуется Java 1.8.
- Встроенный пакет поддержки плат для X300 (Rocket), Andes N(X)25, SiFive E31 и S51.
Системные Требования
- 32-битный или 64-битный RISC-V ISA с расширением «S» или «U».
- Защита физической памяти, совместимая с версией 1.10.
- 4 КБ флэш-памяти и 1 КБ ОЗУ
Ресурсы
Ниже приводится соответствующая информация