HW-based Mobile Platform Security Flashcards
Trusted Execution Environment
- Isolated and integrity-protected
from the „normal“ execution environment (Rich Execution Environment) - Processor, memory, storage, peripherals
REE vs. TEE
- REE:
-> Standard execution environment
-> Untrusted - TEE:
-> Coexistent to REE
-> Stronger security guarantees
TEE Services
- Platform integrity („boot integrity“)
-> Secure boot, authenticated boot - Secure storage
- Isolated execution
-> TEE - Device identification
- Device authentication
-> Remote attestation
Architectures with single TEE
- ARM TrustZone
- TI M-Shield
- Smart card
- Crypto co-processor
- Trusted Platform Module (TPM)
Architectures with multiple TEEs
- Intel SGX
- TON
- Hypervisor
TEE Hardware Realization Alternatives
- External Secure Element (TPM, Smart Card)
- Embedded Secure Element
- Processor Secure Environment (TrustZone, M-Shield)
Welche Komponenten gehören zur TCB - Platform Integrity?
- Verification Root
-> Device manufacturer public key - Cryptographic mechanisms
-> Signature verification algorithm - Volatile memory
-> Stores measurements for authenticated boot - Boot sequence
-> Boot code certificate: certified by device manufacturer
Welche Komponenten gehören zur TCB - Secure Storage?
- Cryptographic mechanisms
-> Encryption algorithm - Device Key
-> Protected memory - Non-volatile memory
-> Rollback protection
Welche Komponenten gehören zur TCB - Isolated Execution
- Verification Root
-> TA code certificate (certified by device manufacturer), TA code hash - Cryptographic Mechanisms
- Volatile Memory
- Trusted application
- TEE management layer
-> controls TA execution
Welche Komponenten gehören zur TCB - Device Authentication (and Remote Attestation)
- Cryptographic mechanisms
- Volatile memory
-> Sign system state in remote attestation - Device key
-> Used to protect/derive signature key - Non-volatile memory
TrustZone Example Process
1) Boot begins in SW Supervisor mode (set access control)
2) Copy code and keys from on-chip ROM to on-chip RAM
3) Configure address controller (protect on-chip memory)
4) Prepare for Normal World Boot
5) Jump to Normal World Supervisor for traditional boot (set NS flag to 1)
6) Set up trusted application execution
7) Execute trusted application