Questions tagged [trust-zone]

For question related to implementing and interfacing TrustZone secure and normal world software and the monitor mode that brokers them.

Trustzone is an architecture to allow CPU sharing in cases where a traditional dedicated 'secure CPU' may have been used. This can reduce cost, power and board space.

A TrustZone ARM core has two virtual processors with a bus control 'NS' bit to provide hardware based access control. A TrustZone CPU can switch states between two worlds referred to as 'secure' and 'normal'. The worlds strive to be independent of each other requiring minimal changes to transition from a standalone OS/firmware system.

Memory, peripherals, BUS and CPU are made aware of the world via the 'NS' bit which allows the SOC to provide access control to secrets and code on the system. Master devices such as DMA, or multi-core devices can also be TrustZone aware or the bus master can be set to provide boot time locked access.

TrustZone solutions need several components,

  1. A TrustZone CPU
  2. A secure boot mechanism
  3. Bus control
  4. Secure world software

Reference:

97 questions
4
votes
0 answers

TrustZone GCC example (Cortex A9 - ZedBoard Zynq 7000)

I am trying to run a simple TrustZone example on the ZedBoard, just a bare metal program that switches between Secure World and Normal World. Are any such examples available for the GCC compiler? The official ARM example is written mostly in ARM…
entipck
  • 41
  • 2
4
votes
2 answers

Use ARM TrustZone to prevent access to memory region from Non-Secure world

Context I want to have a rich GNU/Linux OS running in the Normal world and a small OS with an integrated Monitor running in the Secure world. Requirement We have to absolutely avoid the Normal world to access the Secure world memory…
cid
  • 696
  • 1
  • 8
  • 19
4
votes
3 answers

How to determine if ARM processor running in a usual locked-down "world" or in Secore "world"?

For example, virt-what shows if you are running inside hardware virtualization "sandbox". How to detect if you are running in ARM "TrustZone" sandbox?
Vi.
  • 37,014
  • 18
  • 93
  • 148
4
votes
2 answers

TrustZone versus Hypervisor

I am just reading this document from ARM on TrustZone and some things are unclear to me. The fact that a Hypervisor offers a special CPU mode and that for the TrustZone, the processor comes with an extra 33rd bit: Isn't mode also a particular bit…
user489152
  • 907
  • 1
  • 23
  • 42
3
votes
1 answer

How is SafeNet eToken 5110 different from SafeNet eToken 5100?

My EV code signing certificate is expiring, and I'm thinking about changing provider. However the new provider(Trust zone) is providing a SafeNet eToken 5100, the one I have now is a SafeNet eToken 5110. My questions are these: What are the…
DaniFlex
  • 31
  • 5
3
votes
2 answers

How is an ARM TrustZone secure OS secure?

I am trying to read the TrustZone white paper but it is really difficult to understand some of the basic stuff. I have some questions about it. They may be simple questions but I am a beginner in this field: What makes secure world really "secure".…
DigitalPerson
  • 191
  • 3
  • 12
3
votes
4 answers

How to communicate with QSEE in an Android application?

I am interested in developing trusted applications using TEE. I have a Nexus 5 that has Android 5.1.1 (LMY48M) on it. I want to create a very basic hello world app to understand TEE logic running on a real device. Nexus 5 supports QSEE (Qualcomm…
acalb
  • 74
  • 2
  • 7
3
votes
3 answers

Can a Linux kernel run as an ARM TrustZone secure OS?

I am trying to run a Linux kernel as the secure OS on a TrustZone enabled development board(Samsung exynos 4412). Although somebody would say secure os should be small and simple. But I just want to try. And if it is possible, then write or port a…
Hendy So
  • 31
  • 1
  • 4
3
votes
1 answer

What is partition checker in ARM Secure Mode

As per this link http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0333h/Chdfjdgi.html under System boot sequence ... Program the partition checker to allocate physical memory available to the Non-secure OS. What is the partition…
user435739
3
votes
1 answer

ARM TrustZone - Behaviour of the scheduler in Secure and Non-Secure OS

Can some one please explain to me that after the CPU is taken to secured mode, (Monitor program sets the NS = 0), how does the secure OS gets scheduled? Is it that now that the CPU is in secured mode, the timer tick interrupt would be handled by the…
Souvik
  • 151
  • 3
  • 14
3
votes
1 answer

TrustZone monitor mode and IFAR, IFSR, DFAR, DFSR

The ARM TrustZone monitor mode can trap aborts in monitor mode. The monitor mode always executes in the secure world or context. How can we know what address and reason caused a fault in the normal world when it traps to the monitor mode…
artless noise
  • 21,212
  • 6
  • 68
  • 105
3
votes
1 answer

Passing function pointers from Kernel driver to Hypervisor

I'm trying to pass a function pointer from EL1 (Android Kernel) to EL2(Hypervisor) using a SMC Call and trapping the SMC call in the hypervisor. I understand that just passing the pointer the the Hypervisor won't work because its a VA and it means…
kimi
  • 315
  • 3
  • 11
3
votes
3 answers

How to make use of ARM Trust Zone in Android Application

I am devlopeing some application wherein i have to store the keys in secure manner and do some cryptographic operation on it.
Jhon Paul
  • 33
  • 1
  • 5
3
votes
1 answer

Running ARM TrustZone Secure/Normal world"example on the ZedBoard

Does anyone know how to implement the example of TrustZone running "Secure world" and "Normal world" given on the ARM documentation website below on the ZedBoard? Any documentation on this subject (running TrustZone on the ZedBoard) would be also…
2
votes
1 answer

Porting Android to run on ARM RealView Debugger

I am new for Android OS porting. My task is to port Android OS to run in ARM TrustZone Non-secure world. To achieve this, I will first try to port Android OS to run in ARM TrustZone secure world using ARM RealView Debugger. Is there a recommended…
user695838
  • 51
  • 1
  • 4