Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Handling ARM TrustZones

ARM has something called TrustZone. As per ARM documentation , it gives that a process can run in Secure / Non-Secure World.

  1. What does the Secure / Non-Secure World means. Is it related to Processor executing modes or it is related to setting the permissions of memory regions or something else.
  2. Is there any relationship between the 7 operating modes of ARM and the Secure / Non-Secure Worlds.
  3. How to enable the TrustZone in ARM.
  4. From Which version of ARM is this introduced.
  5. Is it mandatory to use this TrustZone. Does linux kernel uses this TrustZone extension.

Kindly help me in understanding this.

like image 769
Prabagaran Avatar asked Sep 08 '12 20:09

Prabagaran


People also ask

What is ARM's TrustZone?

Arm® TrustZone® technology provides a cost-effective methodology to isolate security critical components in a system, by hardware separating a rich operating system, from a much smaller, secure operating system.

What is non-secure callable?

The Non-Secure Callable region enables non-secure software to call a secure service. It is declared by secure software and must contain a Secure Gateway (SG) instruction to cause the transition to secure 8 Page 12 state.

What is ARM trusted firmware?

ARM Trusted Firmware provides a reference to secure software for ARMv8-A architecture and it provides implementations of various interface standards like PSCI(Power State Coordination Interface) and Secure monitor code for interfacing to Normal world software.

What is Qualcomm TrustZone?

TrustZone implements architectural security extensions on ARM processors that can be integrated into the bootloader, radio, Android system image and a trusted execution environment (TEE) in mobile devices.


1 Answers

http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/index.html is a pretty good introductory document that gives an overview of something a little bit too complex to be satisfactorily explained by typing into a text box. But I'll try to answer your direct questions below.

  1. It refers to an additional privilege option orthogonal to the execution modes. Secure world has the ability to make memory accesses tagged as secure, but can also make non-secure accesses. Normal world can only make non-secure accesses. In addition, certain processor configuration options are only accessible to Secure world. The intent is to isolate secure software in a simple environment where it cannot be (directly) vulnerable to software exploits in the device's main operating system or application software.
  2. None, apart from it adding an additional "monitor" mode. This monitor mode is used for the "context switch" between Normal and Secure world.
  3. TrustZone isn't enabled, it is implemented (or not).
  4. TrustZone was introduced in the Security Extensions to ARM architecture version 6. The first processor supporting it was ARM1176. All Cortex-A processors support it.
  5. "No", although since TrustZone-capable processors start executing in Secure state on power-on, if the boot loader does nothing to change the security state, all software will run as Secure (removing any security benefits). No, the TrustZone environment is explicitly intended to run alongside your OS, not to be directly integrated into it. For some platforms, the Linux kernel performs Secure Monitor Calls to request Secure world to change certain system configuration options.
like image 124
unixsmurf Avatar answered Sep 29 '22 20:09

unixsmurf