References:
Dan Rosenberg, Reflections on Trusting TrustZone
Normal world vs Secure World:
Context Switch
Non-secure bit in Secure Configuration Register;
Non-secure bit in the main memory;
References:
Dan Rosenberg, Reflections on Trusting TrustZone
DRM (WideVine, PlayReady, DTCP-IP)
Secure key storage (dm-verify)
Mobile payments
Protected hardware (framebuffer, PIN entry)
Management of secure boot (via QFuses)
Kernel integrity monitoring (TIMA)
In Qualcomm implementation, Qualcomm Secure Execution Environment (QSEE), to leverage TrustZone vulnerabilities:
By Azimuth Security, two vulnerabilities were found.
A vulnerability allows to write a zero dword to any address in the TrustZone Kernel. It can be used to disable memory boundary validation on TrustZone memcpy
function, crafting an arbitrary write primitive.
Using signed comparison instead of unsigned comparison leads to leaking information from Secure World to Normal World.
The Trustonic implementation, t-base, or Kinibi.
It has a micro-kernel, thus no single point of failure.
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?