Distributed OS Hermann Härtig Authenticated Booting, Remote Attestation, Sealed Memory aka Trusted Computing

Similar documents
Authenticated Booting, Remote Attestation, Sealed Memory aka Trusted Computing. Hermann Härtig Technische Universität Dresden Summer Semester 2009

Authenticated Booting, Remote Attestation, Sealed Memory aka Trusted Computing. Hermann Härtig Technische Universität Dresden Summer Semester 2007

Distributed OS Hermann Härtig Authenticated Booting, Remote Attestation, Sealed Memory aka Trusted Computing

Lecture Secure, Trusted and Trustworthy Computing Trusted Platform Module

Lecture Secure, Trusted and Trustworthy Computing Trusted Platform Module

Department of Computer Science Institute for System Architecture, Operating Systems Group TRUSTED COMPUTING CARSTEN WEINHOLD

Lecture Embedded System Security Trusted Platform Module

Terra: A Virtual Machine-Based Platform for Trusted Computing by Garfinkel et al. (Some slides taken from Jason Franklin s 712 lecture, Fall 2006)

Department of Computer Science Institute for System Architecture, Operating Systems Group TRUSTED COMPUTING CARSTEN WEINHOLD

Department of Computer Science Institute for System Architecture, Operating Systems Group TRUSTED COMPUTING CARSTEN WEINHOLD

CSE543 - Computer and Network Security Module: Trusted Computing

Lecture Secure, Trusted and Trustworthy Computing Trusted Platform Module

TRUSTED COMPUTING TRUSTED COMPUTING. Overview. Why trusted computing?

Atmel Trusted Platform Module June, 2014

Flicker: An Execution Infrastructure for TCB Minimization

Systems View -- Current. Trustworthy Computing. TC Advantages. Systems View -- Target. Bootstrapping a typical PC. Boot Guarantees

TPM v.s. Embedded Board. James Y

An Introduction to Trusted Platform Technology

OVAL + The Trusted Platform Module

Trusted Computing: Introduction & Applications

TCG TPM2 Software Stack & Embedded Linux. Philip Tricca

Hypervisor Security First Published On: Last Updated On:

Unicorn: Two- Factor Attestation for Data Security

CIS 4360 Secure Computer Systems. Trusted Platform Module

Lecture Embedded System Security Introduction to Trusted Computing

A TRUSTED STORAGE SYSTEM FOR THE CLOUD

Old, New, Borrowed, Blue: A Perspective on the Evolution of Mobile Platform Security Architectures

Offline dictionary attack on TCG TPM authorisation data

EXTERNALLY VERIFIABLE CODE EXECUTION

INF3510 Information Security Spring Lecture 4 Computer Security. University of Oslo Audun Jøsang

CIS 4360 Secure Computer Systems Secured System Boot

Computer Security CS 426 Lecture 17

Crypto Background & Concepts SGX Software Attestation

Lecture Embedded System Security Introduction to Trusted Computing

Embedded System Security Mobile Hardware Platform Security

How to create a trust anchor with coreboot.

TERRA. Boneh. A virtual machine-based platform for trusted computing. Presented by: David Rager November 10, 2004

TRUSTED SUPPLY CHAIN & REMOTE PROVISIONING WITH THE TRUSTED PLATFORM MODULE

Embedded System Security Mobile Hardware Platform Security

Security and Privacy in Cloud Computing

Trusted Computing in Drives and Other Peripherals Michael Willett TCG and Seagate 12 Sept TCG Track: SEC 502 1

UNIT - IV Cryptographic Hash Function 31.1

Intelligent Terminal System Based on Trusted Platform Module

Platform Configuration Registers

Preliminary analysis of a trusted platform module (TPM) initialization process

A Proposed Standard for Entity Attestation draft-mandyam-eat-00. Laurence Lundblade. November 2018

Trusted Computing and O/S Security. Aggelos Kiayias Justin Neumann

Sealing and Attestation in Intel Software Guard Extensions (SGX)

Mobile Platform Security Architectures A perspective on their evolution

Trusted Computing. William A. Arbaugh Department of Computer Science University of Maryland cs.umd.edu

Bootstrapping Trust in Commodity Computers

CIS 4360 Secure Computer Systems. Trusted Platform Module

Trusted Computing Group

Trusted Computing: Introduction & Applications

Trusted Computing and O/S Security

Building on existing security

A Robust Integrity Reporting Protocol for Remote Attestation

Policy-Sealed Data: A New Abstraction for Building Trusted Cloud Services

Applications of Attestation:

Using existing security infrastructures

Lecture 3 MOBILE PLATFORM SECURITY

Certifying Program Execution with Secure Processors. Benjie Chen Robert Morris Laboratory for Computer Science Massachusetts Institute of Technology

Master s Thesis. End-To-End Application Security Using Trusted Computing. Michiel Broekman. August 18, 2005

INF3510 Information Security. Lecture 6: Computer Security. Universitetet i Oslo Audun Jøsang

Design and Analysis of Fair-Exchange Protocols based on TPMs

6.857 L17. Secure Processors. Srini Devadas

Public-key Cryptography: Theory and Practice

OS Security IV: Virtualization and Trusted Computing

Demonstration Lecture: Cyber Security (MIT Department) Trusted cloud hardware and advanced cryptographic solutions. Andrei Costin

Binding keys to programs using Intel SGX remote attestation

Security of Cloud Computing

BCM58100B0 Series: BCM58101B0, BCM58102B0, BCM58103B0 Cryptographic Module VC0 Non-Proprietary Security Policy Document Version 0.

On-board Credentials. N. Asokan Kari Kostiainen. Joint work with Jan-Erik Ekberg, Pekka Laitinen, Aarne Rantala (VTT)

From TPM 1.2 to 2.0 and some more. Federico Mancini AFSecurity Seminar,

Secure, Trusted and Trustworthy Computing

Intel Software Guard Extensions

ROTE: Rollback Protection for Trusted Execution

Dawn Song

Lecture Embedded System Security Introduction to Trusted Computing

TCG. TCG Specification Architecture Overview. Specification Revision nd August Contact:

An Execution Infrastructure for TCB Minimization

Message authentication. Why message authentication. Authentication primitives. and secure hashing. To prevent against:

RISCV with Sanctum Enclaves. Victor Costan, Ilia Lebedev, Srini Devadas

Jonathan M. McCune. Carnegie Mellon University. March 27, Bryan Parno, Arvind Seshadri Adrian Perrig, Michael Reiter

Sanctum: Minimal HW Extensions for Strong SW Isolation

Past, Present, and Future Justin Johnson Senior Principal Firmware Engineer

TCG Guidance for Securing Resource- Constrained Devices. Version 1.0 Revision 22 March 13, Contact:

IEEE Std and IEEE Std 1363a Ashley Butterworth Apple Inc.

Enforcing Trust in Pervasive Computing. Trusted Computing Technology.

TRUSTED COMPUTING TECHNOLOGIES

Connecting Securely to the Cloud

APPLICATIONS AND PROTOCOLS. Mihir Bellare UCSD 1

Trusted Computing: Security and Applications

PKI Credentialing Handbook

Trusted Virtual Domains: Towards Trustworthy Distributed Services. Ahmad-Reza Sadeghi System Security Lab Ruhr-Universität Bochum

I Don't Want to Sleep Tonight:

INFLUENTIAL OPERATING SYSTEM RESEARCH: SECURITY MECHANISMS AND HOW TO USE THEM CARSTEN WEINHOLD

INF3510 Information Security University of Oslo Spring Lecture 3 Key Management and PKI. Audun Jøsang

Getting to Grips with Public Key Infrastructure (PKI)

Trusted Disk Loading in the Emulab Network Testbed. Cody Cutler, Mike Hibler, Eric Eide, Rob Ricci

Transcription:

Distributed OS Hermann Härtig Authenticated Booting, Remote Attestation, Sealed Memory aka Trusted Computing 30/05/11

Goals Understand principles of: Authenticated booting The difference to (closed) secure booting Remote attestation Sealed memory Non-Goal: Lots of TPM, TCG-Spec details read the documents once needed SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 2

Some terms Secure Booting Authenticated Booting (Remote) Attestation Sealed Memory Late Launch / dynamic root of trust Trusted Computing / Trusted Computing Base Attention: terminology has changed SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 3

Trusted Computing (Base) Trusted Computing Base (TCB) The set off all components, hardware, software, procedures, that must be relied upon to enforce a securit policy. Trusted Computing (TC) A particular technology compromised of authenticated booting, remote attestation and sealed memory. SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 4

TC key problems Can running certain Software be prevented? Which computer system do I communicate with? Which stack of Software is running? In front of me? On my server somewhere? Can I restrict access to certain secrets (keys) to certain programs? SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 5

Trusted Computing Terminology Measuring process of obtaining metrics of platform characteristics Example for metric: Hash- Codes of SW Attestation vouching for accuracy of information Sealed Memory binding information to a configuration SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 6

DRM: Trust./. No Trust in end user Internet {Digital Content} K Decoder TV K SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 7

An example application: DRM Digital Content is encrypted using symmetric key Smart-Card contains key authenticates device delivers key only after successful authentication Assumptions Smart Card can protect the key allowed OS can protect the key OS cannot be exchanged SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 8

Secure Booting / Authenticated Booting App. DRM X11 Linux GUI Mini OS Hardware SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 9

Notation SK priv SK pub Asymmetric key pair of some entity S { M }XK priv Digital Signature for message M using the private key of signer X { M }YK pub Message encrypted using public concellation key of Y H(M) Collision-Resistant Hash Function Certificate by authority Ca: { ID, SK pub, other properties } CaK priv SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 10

Notation Note: { M }Sk priv Digital Signature is short for: encrypt(h(m),sk priv ) { M }Sk pub Message concealed... does not necessarily imply public key encryption for all of M (rather a combination of symmetric and asymmetric methods ) SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 11

Identification of Software Program vendor: Foosoft FS Two ways to identify Software: H(Program) {Program, ID- Program}FSK priv use FSK pub to check the signature must be made available, e.g. shipped with the Program The ID of SW must be made available somehow. SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 12

Tamperresistant black box (TRB) CPU Non-Volatile Memory: Memory Platform Configuration Registers: SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 13

Ways to burn in the OS or secure booting Read- Only Memory Allowed H(OS) in NV memory preset by manufacturer load OS- Code compare H(loaded OS code) to preset H(OS) abort if different Preset FSK pub in NV memory preset by manufacturer load OS- Code check signature of loaded OS-Code using FSK pub abort if check fails SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 14

Authenticated Booting (AB) Phases: Preparation by Manufacturers (TRB and OS) Booting & Measuring Remote attestation SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 15

Authenticated Booting (AB) CPU Memory Non-Volatile Memory: Endorsement Key EK preset by Manufacturer Platform Configuration Registers: Hash-Code obtained during boot SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 16

Vendors of TRB and OS TRB generates key pair: Endorsement Key (EK) stores in TRB NV Memory: EK priv emits: EK pub TRB vendor certifies: { a valid EK, EK pub }TVK priv OS-Vendor certifies: { a valid OS, H(OS)}OSVK priv serve as identifiers: EK pub and H(OS) SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 17

Booting & Attestation Booting: TRB measures OS- Code (computes H(OS-Code)) stores in PCR no other way to write PCR Attestation: Challenge: nonce TRB generates Response: {PCR, nonce' }EKpriv SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 18

Remaining problems Now we know identities: H(loaded-OS) and EK pub Problems to solve: OS versioning Remote attestation on each message (what about reboot?) not only OS on platform (SW stacks or trees) Privacy: remote attestation always reveals EK pub Black box to big Sealed memory SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 19

AB (Variant 2, allow OS versions) CPU Memory Non-Volatile Memory: Endorsement Key EK preset by Manufacturer Platform Configuration Registers: OSK pub used to check OS SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 20

Vendors of TRB and OS TRB generates key pair: stores in TRB NV Memory: EK priv emits: EK pub TRB vendor certifies: { a valid EK, EK pub }TVK priv OS-Vendor certifies: { a valid OS, OSK pub }OSVK priv and signs OS-Code: {OS-Code}OSK priv serve as identifiers: EK pub and OSK pub SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 21

Booting & Attestation (Variant 2) Booting: TRB checks OS- Code using some OSK pub stores OSK pub in PCR no other way to write PCR Attestation: Challenge: nonce TRB generates Response: {PCR, nonce' }EKpriv SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 22

AB (Variant 3, check for reboot) attestation required at each request: {PCR, nonce' }EK priv PCR: H(OS) bzw. OSK pub always requires access to and usage of EK race condition! Instead: create new keypair on every reboot: OSrunningAuthK priv OSrunningAuthK pub SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 23

Booting (Variant 3) Booting: TRB checks OS- Code using some OSK pub stores OSK pub in PCR creates OSrunningAuthK keypair certifies: { OSrunningAuthK pub, OSK pub }EK priv SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 24

Attestation (Variant 3) Attestation: Challenge: nonce OS generates response: { OSrunningAuthK pub, OSK pub }EK priv {nonce'} OsrunningAuthK priv SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 25

Establish Secure Channel to OSRunning Booting: TRB checks OS- Code using some OSK pub stores OSK pub in PCR creates OSrunningAuthK keypair creates OSrunningConsK keypair certifies: { OSrunningAuthK pub, OSrunningConsKpub, OSK pub }EK priv Secure Channel: { message } OSrunningConsK pub SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 26

Assumptions TRB can protect: EK, PCR OS can protect: OSrunningK priv Rebooting destroys content of PCR and Memory Holding OSrunningK priv SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 27

Software stacks and trees Application Application Application GUI GUI GUI OS Code OS Code OS Loader OS Loader ROOT ROOT SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 28

Software stacks and trees Extend Operation stack: PCR n = H(PCR n-1 next-component ) tree: difficult (unpublished?) Key pairs: OS controls applications generate key pair per application OS certifies { Application 1, App1K pub } OsrunningK priv { Application 2, App2K pub } OSrunningK priv SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 29

Remote Attestation and Privacy Remote attestation reveals platform identity: EK pub add intermediate step: Attestation Identity Key (AIK) Trusted third party as anonymizer (TTP) SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 30

Remote Attestation and Privacy CPU Memory Non-Volatile Memory: EK preset by Manufacturer AIK signed by third party Platform Configuration Registers: SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 31

Remote Attestation and Privacy Generate AIK in TRB send { AIK } EK priv to trusted third party third party certifies: {AIK, good ID } TTPK priv AIK used instead of EK during remote attestation, response: {AIK, good ID } TTPK priv { OSrunningK pub, H(OS)}AIK priv {nonce} OSrunningK priv SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 32

Late Launch Use arbitrary SW to start system and load all SW provide specific instruction to enter secure mode set HW in specific state (stop all processors, IO, ) Measure root of trust SW store measurement in PCR AMD: skinit (Hash) arbitrary root of trust Intel: senter (must be signed by chip set manufacturer) SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 33

Sealed Memory Bind sensitive information to specific configuration (for example: keys to specific machine, specific OS) Provide information using secure channels How to store information in the absence of communication channels? SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 34

Tamperresistant black box (TRB) CPU Non-Volatile Memory: Storage key Memory Platform Configuration Registers: SW-config SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 35

Sealed Memory Tamperresistant black box Add / delete entry Read / write Microsoft PCR: H(OS) SUSE MyOwn SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 36

Sealed Memory Seal(PCR, message): encrypt( PCR, message, Storage-Key) sealed message Unseal(sealed message): decrypt( sealed message, Storage-Key) SW config, message If SW config == PCR then emit message else abort SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 37

Sealed Memory Seal(SW config, message): encrypt( future SW config, message, Storage-Key) sealed message Storage Key built into TPMs by manufacturer, known to nobody SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 38

Example Win7: Seal ( SonyOS, Sony-Secret ) SealedMessage (store it on disk) L4: Unseal (SealedMessage) SonyOS, Sony-Secret PCR#SonyOS abort SonyOS: Unseal(SealedMessage SonyOS, Sony-Secret PCR==SonyOS ok SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 39

Migration? How to transfer information form one TRB to another for example: key for decryption of videos Send information to third party Destroy information locally and prove to third party Third party provides information to another entity SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 40

Tamper Resistant Box? Ideally, includes CPU, Memory, In practise very rarely, for example IBM 4758... separate Trusted Platform Modules replacing BIOS breaks TRB SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 41

TCG PC Platforms CPU Memory FSB PCI LPC BIOS TPM SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 42

TPM NV Store PCK EK / AIK Internal Program IO SHA-1 RSA Key gen Random number gen SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 43

Usage Scenarios and Technical Risks * DRM Bank Game Operating System SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 44

Technical Risks Hardware: Authenticity, Integrity, Tamper-Resistance Protection of CPU-priv Integrity of RKey-OS-pub Operating System Protection of keys (OSRunning,...), Content,... Isolation Applications Assurance Side Channels! SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 45

References Specifications: https://www.trustedcomputinggroup.org/ groups/tcg_1_3_architecture_overview.pdf Important Foundational Paper: Authentication in distributed systems: theory and practice Butler Lampson, Martin Abadi, Michael Burrows, Edward Wobber ACM Transactions on Computer Systems (TOCS) SS 2011 Distributed OS / Trusted Computing - Hermann Härtig 46