TEEP @ Hackathon
Hannes Tschofenig (hannes.Tschofenig@arm.com)
TEEP @ Hackathon Hannes Tschofenig (hannes.Tschofenig@arm.com) - - PowerPoint PPT Presentation
TEEP @ Hackathon Hannes Tschofenig (hannes.Tschofenig@arm.com) Agenda What is TEEP? History: TEEP protocol vs. OTrP Architecture Goals and project ideas TrustZone Integration TEEP - Trusted Execution Environment Provisioning
Hannes Tschofenig (hannes.Tschofenig@arm.com)
https://tools.ietf.org/html/draft-ietf-teep-architecture-06
The Trusted Execution Environment (TEE) concept is designed to execute applications in a protected environment that enforces that only authorized code can execute within that environment, and that any data used by such code cannot be read
including by a commodity
The TEEP protocol installs, updates, and deletes Trusted Applications (TAs) in a device with a TEE.
group based on prior work done outside the IETF.
cases, more TEEs, re-use ongoing IETF work and simplified the design.
https://tools.ietf.org/html/draft-ietf-teep-protocol-00
https://tools.ietf.org/html/draft-ietf-teep-otrp-over-http-04
TEEP Protocol
(with COSE and JOSE, respectively)
removed from base protocol
OTrP
personalization data protection
QueryRequest TrustedAppInstall TrustedAppDelete
Response || Error Success || Error Success || Error Trigger (Empty Msg)
(It is there via CDDL but more is needed to fully describe it.)
TEEP Broker / TEEP Agent TAM
TEEP Agent (TEE) TAM TEEP Broker (REE)
Arm v8-A Arm v8-M
SECURE STATES NON-SECURE STATES SECURE STATES NON-SECURE STATES Secure transitions handled by the processor to meet embedded system latency requirements
Crypto Attestation Secure Storage Secure Boot OS App Trusted Apps Secure OS Rich OS, e.g. Linux Secure Monitor
Secure memory (Non-secure callable) NonSecureFunc: BL SecureFunc <Non-secure code> SecureFunc: SG <Secure code> BXNS lr Non-secure memory
Enter Secure state Call Return to NS
products
extensions.
extensions)
properties available as well
Arm v6-M Arm v7-M Baseline Mainline Arm v8-M In deployment today
cannot access Secure resources.
access everything.
code besides TEEP, such as secure boot, attestation, crypto, secure storage, etc.
REE TEE System start (Secure Boot) TEEP Agent Crypto User application TEEP Broker Start Function calls Function calls Call Call Call OS & Middleware Call
swg/optee_examples
1. TEEC_InitializeContext(ctx) 2. TEEC_OpenSession(ctx,session, UUID,…) 3. // create command structure 4. TEEC_InvokeCommand(session, cmd, ..) 5. TEEC_CloseSession(session) 6. TEEC_FinalizeContext(ctx)
Reference: TEE Client API Specification - Version 1.0
functions based on the commands issued.
Reference: TEE Client API Specification - Version 1.0
REE App TA
REE App TA
If ( … ) …
Figure copied from STM32MP1 documentation.
lifecycle of TAs (or code in general).
negotiation
attestation functionality is desired.