Time of Check Time of Use Problem
SMART
SMART adversary model
SMART System assumptions
SMART attestation
SMART protocol parameters passed to prover
SMART protocol
1) Attestation is issued by verifier
2) Determine output address where to store HMAC, start SMART attestation (execution is non-interruptible)
3) HMAC of code section and parameters authenticated with key
4) Verify valid key access (if false, reset)
5) Result is written to RAM
6) Remove all intermediate values
7) Start execution of the attested code (if flag is set)
8) Send HASH value to verifier
SMART Advantages
SMART Disadvantages
TrustLite
TrustLite Adversary Model
TrustLite System assumptions
TrustLite Features
TrustLite: Trustlet Loading
1) Load Trustlets into the main memory
2) Protect MPU configuration itself, MPU marked as read-only. From this point it is immutable until system reboot
3) Load operating system
TrustLite: Exception Handling
1) Interrupt while Trustlet is executed
2) State saved on Trustlet stack
3) Update Trustlet table
4) Load OS Stack
5) Load Interrupt Service Routine
-> Each Trustlet has its own stack stored in its own memory region
-> CPU state (context) is not maintained (is erased) when switching between Trustlets (specific Trustlet is restored for execution)
TrustLite: Attestation Trustlet
1) Verifier sends nonce to the device
2) Attestation Trustlet calculates HASH over code region, the nonce and the device key
3) Result is sent to the verifier
TrustLite Advantages
TrustLite Disadvantages
Attestation Solutions Comparison: Authentication of Prover
Attestation Solutions Comparison: Freshness of Attestation
Attestation Solutions Comparison: Integrity of Attestation
Jeep Hack
Software-based Attestation