Подтвердить что ты не робот

Обращение с ARM TrustZones

У ARM есть что-то, что называется TrustZone. Согласно документации ARM, это дает возможность запускать процесс в безопасном/небезопасном мире.

  • Что означает безопасный/небезопасный мир. Связано ли это с режимами выполнения процессора или связано с настройкой разрешений областей памяти или что-то еще.
  • Есть ли какая-либо связь между 7 режимами работы ARM и безопасных/небезопасных миров.
  • Как включить TrustZone в ARM.
  • Из какой версии ARM это введено.
  • Обязательно использовать этот TrustZone. Ядро linux использует это расширение TrustZone.

Пожалуйста, помогите мне в понимании этого.

4b9b3361

Ответ 1

http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/index.html - довольно хороший вводный документ, который дает обзор чего-то слишком сложного, чтобы его можно было удовлетворительно объяснить, введя текстовое окно. Но я постараюсь ответить на ваши прямые вопросы ниже.

  • Он ссылается на дополнительный параметр привилегий, ортогональный режиму выполнения. Безопасный мир имеет возможность делать обращения к памяти помеченными как безопасные, но также может делать небезопасные обращения. Нормальный мир может только делать небезопасный доступ. Кроме того, некоторые параметры конфигурации процессора доступны только для безопасного мира. Цель состоит в том, чтобы изолировать защищенное программное обеспечение в простой среде, где он не может быть (напрямую) уязвим для программных эксплойтов в основной операционной системе устройства или прикладном программном обеспечении.
  • Нет, кроме того, что он добавляет дополнительный "монитор". Этот режим мониторинга используется для "контекстного переключателя" между нормальным и безопасным миром.
  • TrustZone не включен, он реализован (или нет).
  • TrustZone был представлен в версии Security Extensions для архитектуры ARM версии 6. Первым поддерживающим ее процессором был ARM1176. Поддерживаются все процессоры Cortex-A.
  • "Нет", хотя, поскольку процессоры, совместимые с TrustZone, начинают работать в состоянии "Безопасность" при включении, если загрузчик ничего не делает для изменения состояния безопасности, все программное обеспечение будет работать как безопасное (устраняя любые преимущества безопасности). Нет, среда TrustZone явно предназначена для совместной работы с вашей ОС, а не для непосредственной интеграции в нее. Для некоторых платформ ядро ​​Linux выполняет вызовы Secure Monitor для запроса Secure world для изменения определенных параметров конфигурации системы.

Ответ 2

Чтобы добавить UnixSmurfs ответ,

Что означает безопасный/небезопасный мир. Связано ли это с режимами выполнения процессора или связано с настройкой разрешений областей памяти или что-то еще.

В основном это связано с областями памяти. Все устройства, совместимые с TrustZone, будут отмечать доступ к шине AXI с помощью бит NS. Этот бит указывает, доступен ли доступ из безопасного или нормального мира. Таким образом, можно изолировать даже DMA периферийные устройства под управлением нормального мира.

Существует ли какая-либо связь между 7 режимами работы ARM и безопасными/незащищенными мирами.

Не совсем. Тем не менее, существует мир, называемый Monitor Mode, и, по-видимому, он является самым мощным из группы. Режим мониторинга - это посредник между безопасными и нормальными мирами. Он может обращаться к нормальным мировым CP15-реестрам, сохраняя при этом представление памяти sytem в безопасном мире (будет нажимать бит NS как 0).

Как включить TrustZone в ARM.

Включить - это немного перегруженное слово. Он встроен в процессор, поскольку unixsmurf указывает. По умолчанию процессоры с поддержкой TrustZone будут загружаться в безопасном мире. Если вы ничего не делаете, вы можете не обращать внимания на то, что процессор поддерживает TrustZone. Только установив нормальный мир и передав управление ему, будет использоваться TrustZone; возможно, это то, что вы подразумеваете под enable.

Из какой версии ARM это введено.

Есть два варианта:

  • TrustZone совместим.
  • Включен TrustZone.

Ответьте на это в разделе 4.2 Технического документа TrustZone Security. ARM1176JZ (F) -S, Cortex-A8, Cortex-A9, Cortex-A9-MPCore и Cortex-A5 поддерживают TrustZone. ARM1156T2 (F) -S и Cortex-R4 совместимы; они могут быть ядром 2 nd в системе. По мере разработки новых ядер они могут быть добавлены в список; этот вопрос является движущейся целью.

Обязательно использовать этот TrustZone. Линукс-ядро использует это расширение TrustZone.

Это не обязательно. Ядро Linux может играть две роли; безопасный и нормальный мир. См. svc-handler-to-smc-call для получения некоторой информации об использовании TrustZone с Linux.

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

Смотрите: PRD29-GENC-009492C
        ARM TrustZone как технология виртуализации во встроенных системах
        Надежные вычислительные блоки с ARM TrustZone
        доверенная прошивка ARM