TCG TPM2 Software Stack & Embedded Linux
Philip Tricca philip.b.tricca@intel.com
& Embedded Linux Philip Tricca philip.b.tricca@intel.com - - PowerPoint PPT Presentation
TCG TPM2 Software Stack & Embedded Linux Philip Tricca philip.b.tricca@intel.com Agenda Background Security basics Terms TPM basics What it is / what it does Why this matters / specific features TPM Software Stack
Philip Tricca philip.b.tricca@intel.com
Background
TPM basics
TPM Software Stack
There is no magic, there are no silver bullets
maintenance
system”, only secure enough
“secure enough”
Using the TPM does not a secure system make
A process by which we identify & document
Please do?
Classic security concepts:
Use the TPM2 to build systems that implement these principles
Small Crypto Engine
functions
protection
/ reporting
I/O Asymmetric Engine(s) Hash Engine(s) Symmetric Engine(s) Mgmt Operations Authorization Volatile Memory
Random # Generation Non-Volatile Memory
Key Generation Power Mgmt Execution Engine
IP block Apps
Discrete IP Block (a chip) BUS
I/O Protected Capability Shielded Location … … … …
Integrated IP Block
I/O
Protected Capability Shielded Location
… … … … IP block
OS
Documented in TPM Rev 2.0 Part-1: Architecture
Platform Firmware
RTM
Option ROMs
OS
Reset PCR Boot Loader
App App App
PCR[0]: 0x…. PCR[1]: 0x…. PCR[23]: 0x….
Platform Configuration Register (PCR) & the “Extend” operation
Software Measurement is synonymous with the hash produced
System API (SYS)
TPM2 commands
– file IO – crypto – heap
Enhanced SAPI (ESYS)
Commands
utility functions
functions for sessions
Feature API (FAPI)
reduced application code size by offering static libraries
TPM Access Broker and Resource Manager (TABRM)
TPM Command Transmission Interface (TCTI)
IPC
System API & TCTI specification
– Abstraction to hide details of IPC mechanism – libtcti-device & libtcti-socket – Adds flexibility missing from 1.2 TSS
– Serialize C structures to TPM command buffers – One-to-one mapping to TPM commands (all 100+) – Minimal external dependencies: libc – Suitable for highly embedded applications / UEFI Application SAPI TCTI Tss2_Sys_XXX
TPM2 ResourceMgr TCTI Access Broker IPC Backend Resource Manager
Command Response
IPC / Transport
Application SAPI TCTI Tss2_Sys_XXX
Command Response
Application SAPI TCTI Tss2_Sys_XXX
Command Response
Application SAPI TCTI Tss2_Sys_XXX
Command Response
Intel implementing TCG TSS as Open Source
My personal OSS work
TPM requires RNG for key creation, nonce generation.
TPM2 for basic crypto: sign / encrypt / hash
https://dguerriblog.wordpress.com/2016/03/03/tpm2-0-and-
TPM2 policy authorization as access control on TPM protected object
Many thanks for contributions to materials:
& Everyone who’s contributed code / answered questions on GitHub!
Threat Modeling: Designing for Security – Adam Shostack
1118809998.html Trusted Platforms UEFI, PI and TCG-based firmware
Open Security Training Trusted Computing Module:
Davide Guerri TPM2.0 talk @ FOSDEM
TPM RNG linux howto: