Eran Tromer Slides credit: Dan Boneh, Stanford course CS155

Slides:



Advertisements
Similar presentations
Confidential 1 Phoenix Security Architecture and DevID July 2005 Karen Zelenko Phoenix Technologies.
Advertisements

Copyright© 2006 Trusted Computing Group - Other names and brands are properties of their respective owners. Slide #1 Trusted Computing David Grawrock TPM.
Trusted Platform Module
Microsoft ® Official Course First Look Clinic Overview of Windows 8 By Ragowo Riantory, S.Kom, MCP.
Rambling on the Private Data Security
Vpn-info.com.
Secure storage Papers AES-CBC + Elephant diffuser A Disk Encryption Algorithm for Windows Vista Niels Ferguson, Microsoft,
Ragib Hasan Johns Hopkins University en Spring 2011 Lecture 3 02/14/2010 Security and Privacy in Cloud Computing.
 Alexandra Constantin  James Cook  Anindya De Computer Science, UC Berkeley.
Eran Tromer Slides credit: Dan Boneh, Stanford
Hardware Security: Trusted Platform Module Amir Houmansadr CS660: Advanced Information Assurance Spring 2015 Content may be borrowed from other resources.
BitLocker: deep details, improvements and benifits
1 Minimal TCB Code Execution Jonathan McCune, Bryan Parno, Adrian Perrig, Michael Reiter, and Arvind Seshadri Carnegie Mellon University May 22, 2007.
1 Bootstrapping Trust in a “Trusted” Platform Carnegie Mellon University November 11, 2008 Bryan Parno.
Systems and Internet Infrastructure Security (SIIS) LaboratoryPage Systems and Internet Infrastructure Security Network and Security Research Center Department.
CMSC 414 Computer and Network Security Lecture 12 Jonathan Katz.
Copyright© Trusted Computing Group - Other names and brands are properties of their respective owners. Slide #1 Tightening the Network: Network.
Trusted Disk Loading in the Emulab Network Testbed Cody Cutler, Mike Hibler, Eric Eide, Rob Ricci 1.
Ragib Hasan Johns Hopkins University en Spring 2010 Lecture 5 03/08/2010 Security and Privacy in Cloud Computing.
Trusted Platform Modules: Building a Trusted Software Stack and Remote Attestation Dane Brandon, Hardeep Uppal CSE551 University of Washington.
Configuring Windows Vista Security Chapter 3. IE7 Pop-up Blocker Pop-up Blocker prevents annoying and sometimes unsafe pop-ups from web sites Can block.
Trusted Computing Initiative Beyond trustworthy. Trusted Computing  Five Key Concepts >Endorsement Key >Secure Input and Output >Memory Curtain / Protected.
SEC316: BitLocker™ Drive Encryption
Copyright © Clifford Neuman - UNIVERSITY OF SOUTHERN CALIFORNIA - INFORMATION SCIENCES INSTITUTE USC CSci599 Trusted Computing Lecture Three.
Copyright © Clifford Neuman - UNIVERSITY OF SOUTHERN CALIFORNIA - INFORMATION SCIENCES INSTITUTE USC CSci599 Trusted Computing Lecture notes.
TCG: Trusted Computing Group CS 155 Spring 2007 Dan Boneh.
File System and Full Volume Encryption Sachin Patel CSE 590TU 3/9/2006.
Bootstrapping Trust in Commodity Computers Bryan Parno, Jonathan McCune, Adrian Perrig 1 Carnegie Mellon University.
Securing Applications With Firmware (Going Beyond TCPA Platform Security) Dr. Robert W. Baldwin Chief Scientist.
1 UCR Firmware Attacks and Security introduction.
Session Agenda Designed to address BIOS Limitations Needed for the larger server platforms (Intel-HP Itanium) First called Intel Boot Initiative.
Trusted Computing BY: Sam Ranjbari Billy J. Garcia.
Kenichi Kourai (Kyushu Institute of Technology) Takuya Nagata (Kyushu Institute of Technology) A Secure Framework for Monitoring Operating Systems Using.
Trusted Computing Platform Alliance
An approach to on the fly activation and deactivation of virtualization-based security systems Denis Efremov Pavel Iakovenko
Trusted Computing Or How I Learned to Stop Worrying and Love the MPAA.
TCG: Trusted Computing Group CS 155 Spring Background TCG consortium. Founded in 1999 as TCPA. Main players (promotors): (>200 members) AMD, HP,
Cosc 4765 Trusted Platform Module. What is TPM The TPM hardware along with its supporting software and firmware provides the platform root of trust. –It.
An Introduction to Trusted Platform Technology Siani Pearson Hewlett Packard Laboratories, UK
Trusted Computing and the Trusted Platform Module Bruce Maggs (with some slides from Bryan Parno)
1 Introduction to Information Security , Spring 2013 Lecture 8: Virtual machine confinement, trusted computing architecture Eran Tromer Slides.
(ITI310) By Eng. BASSEM ALSAID SESSION 2: Server Configuration & Administration Notes SAT 31-Oct-2015.
Trusted Infrastructure Xiaolong Wang, Xinming Ou Based on Dr. Andrew Martin’s slides from TIW 2013.
Security fundamentals Topic 5 Using a Public Key Infrastructure.
Trusted Computing and the Trusted Platform Module Bruce Maggs (with some slides from Bryan Parno)
Introduction to Information Security , Spring 2015 Lecture 9: Low-level platform attacks, Trusted platform, TCP/IP security (1/2) Eran Tromer.
1 Information Security – Theory vs. Reality , Winter Lecture 12: Trusted computing architecture (cont.), Eran Tromer Slides credit:
TCG: Trusted Computing Group Dan Boneh CS 155 Spring 2006.
What is BitLocker and How Does It Work? Steve Lamb IT Pro Evangelist, Microsoft Ltd
Trusted Computing and SGX
Windows 10 Device Health Attestation (DHA)
Computer Security module October 2008 Mark D. Ryan HP Labs, Bristol University of Birmingham Trusted Platform Module (TPM) introduction.
Computer Security module October 2009 Mark D. Ryan University of Birmingham Trusted Platform Module (TPM) introduction.
Trusted Computing and the Trusted Platform Module
Trusted Infrastructure
Trusted Computing and the Trusted Platform Module
Outline What does the OS protect? Authentication for operating systems
Outline What does the OS protect? Authentication for operating systems
תרגול 9 – Windows Security
TERRA Authored by: Garfinkel, Pfaff, Chow, Rosenblum, and Boneh
Building hardware-based security with a Trusted Platform Module (TPM)
Intel Active Management Technology
TPM, UEFI, Trusted Boot, Secure Boot
Aimee Coughlin, Greg Cusack, Jack Wampler, Eric Keller, Eric Wustrow
The bios.
Bruce Maggs (with some slides from Bryan Parno)
Bruce Maggs (with some slides from Bryan Parno)
Presentation transcript:

Eran Tromer Slides credit: Dan Boneh, Stanford course CS155 Information Security – Theory vs. Reality 0368-4474-01, Winter 2011 Lecture 10: Trusted Computing Architecture Eran Tromer Slides credit: Dan Boneh, Stanford course CS155

Background TCG consortium. Founded in 1999 as TCPA. Main players (promotors): (>200 members) AMD, HP, IBM, Infineon, Intel, Lenovo, Microsoft, Sun Goals: Hardware protected (encrypted) storage: Only “authorized” software can decrypt data e.g.: protecting key for decrypting file system Secure boot: method to “authorize” software Attestation: Prove to remote server what software is running on my machine.

Secure boot History of BIOS/EFI malware: CIH (1998): CIH virus corrupts system BIOS Heasman (2007): System Management Mode (SMM) “rootkit” via EFI Sacco, Ortega (2009): infect BIOS LZH decompressor CoreBOOT: generic BIOS flashing tool Main point: BIOS runs before any defenses (e.g. antivirus) Proposed defense: lock system configuration (BIOS + OS) Today: TCG approach SMM: runs privileged code with no interrupts, not even from OS

TCG: changes to PC Extra hardware: TPM Trusted Platform Module (TPM) chip Single 33MhZ clock. TPM Chip vendors: (~.3$) Atmel, Infineon, National, STMicro Intel D875GRH motherboard Software changes: BIOS, EFI (UEFI) OS and Apps 7$ for TPM from National Semiconductors (per 1000 units)

TPMs in the real world TPMs widely available on laptops, desktops and some servers Software using TPMs: File/disk encryption: BitLocker, IBM, HP, Softex Attestation for enterprise login: Cognizance, Wave Client-side single sign on: IBM, Utimaco, Wave This stuff is real and getting deployed

What the TPM does How to use it

Non Volatile Storage (> 1280 bytes) Components on TPM chip Non Volatile Storage (> 1280 bytes) Other Junk PCR Registers (16 registers) LPC bus I/O API calls Crypto Engine: RSA, SHA-1, HMAC, RNG RSA: 1024, 2048 bit modulus SHA-1: Outputs 20 byte digest

Non-volatile storage 1. Endorsement Key (EK) (2048-bit RSA) Created at manufacturing time. Cannot be changed. Used for “attestation” (described later) 2. Storage Root Key (SRK) (2048-bit RSA) Used for implementing encrypted storage Created after running TPM_TakeOwnership( OwnerPassword, … ) Can be cleared later with TPM_ForceClear from BIOS 3. OwnerPassword (160 bits) and persistent flags Private EK, SRK, and OwnerPwd never leave the TPM TPM_ForceClear requires “proof of presence,” namely holding down the Fn key

PCR: the heart of the matter PCR: Platform Configuration Registers Lots of PCR registers on chip (at least 16) Register contents: 20-byte SHA-1 digest (+junk) Updating PCR #n : TPM_Extend(n,D): PCR[n]  SHA-1 ( PCR[n] || D ) TPM_PcrRead(n): returns value(PCR(n)) PCRs initialized to default value (e.g. 0) at boot time TPM can be told to restore PCR values in NVRAM via TPM_SaveState and TPM_Startup(ST_STATE) for system suspend/resume TPM_SaveState stores PCR values in NV-RAM

Using PCRs: the TCG boot process BIOS boot block executes Calls TPM_Startup (ST_CLEAR) to initialize PCRs to 0 Calls PCR_Extend( n, <BIOS code> ) Then loads and runs BIOS post boot code BIOS executes: Calls PCR_Extend( n, <MBR code> ) Then runs MBR (master boot record), e.g. GRUB. MBR executes: Calls PCR_Extend( n, <OS loader code, config> ) Then runs OS loader … and so on 0. During boot TPM receives a TPM_Init signal from LPC bus 1. TMP_Startup: does one of three things: (1) deactivates TPM, (2) resets PCRs, or (3) restores PCR values from data created with TPM_SaveState --- used for resume 2. TPM_Startup can only be called once after power-up (sets postInitialise flag to True) 3. Note: MBR is GRUB Stage 1

In a diagram After boot, PCRs contain hash chain of booted software Hardware BIOS boot block OS loader BIOS Application OS Root of trust in integrity measurement measuring Single PCR can identify entire platform TPM Extend PCR Root of trust in integrity reporting After boot, PCRs contain hash chain of booted software Collision resistance of SHA1 (?) ensures commitment

Example: Trusted GRUB (IBM’05) What PCR # to use and what to measure specified in GRUB config file

Using PCR values after boot Application 1: encrypted (a.k.a sealed) storage. Step 1: TPM_TakeOwnership( OwnerPassword, … ) Creates 2048-bit RSA Storage Root Key (SRK) on TPM Cannot run TPM_TakeOwnership again without OwnerPwd: Ownership Enabled Flag  False Done once by IT department or laptop owner. (optional) Step 2: TPM_CreateWrapKey / TPM_LoadKey Create more RSA keys on TPM protected by SRK Each key identified by 32-bit keyhandle OwnerPassword can later be used to change owner and remove SRK SRK key handle ID is 0x40000000

Protected Storage Main Step: Encrypt data using RSA key on TPM TPM_Seal (some) Arguments: keyhandle: which TPM key to encrypt with KeyAuth: Password for using key `keyhandle’ PcrValues: PCRs to embed in encrypted blob data block: at most 256 bytes (2048 bits) Used to encrypt symmetric key (e.g. AES) Returns encrypted blob. Main point: blob can only be decrypted with TPM_Unseal when PCR-reg-vals = PCR-vals in blob. TPM_Unseal will fail othrwise TPM_Seal: allows to specify arbitrary PCR values for unseal.

Protected Storage Embedding PCR values in blob ensures that only certain apps can decrypt data. e.g.: Messing with MBR or OS kernel will change PCR values.

Sealed storage: applications Lock software on machine: OS and apps sealed with MBR’s PCR. Any changes to MBR (to load other OS) will prevent locked software from loading. Prevents tampering and reverse engineering Web server: seal server’s SSL private key Goal: only unmodified Apache can access SSL key Problem: updates to Apache or Apache config General problem with software patches: Patch process must re-seal all blobs with new PCRs Reverse engineering requires messing with BIOS boot block

A cloud application [JPBM’10] servers Client VM VMM sealed to VMM TPM VMM Client seals VM to VMM measurement VM code and data is encrypted Can only be decrypted on valid cloud server Cloud operator cannot easily access data TPM

Security? Can attacker disable TPM until after boot, then extend PCRs with whatever he wants? Root of trust: BIOS boot block Defeated with one byte change to boot block [K’07] Resetting TPM after boot (by sending TPM_Init on LPC bus) allows arbitrary values to be loaded onto PCR. Other problems: role-back attack on encrypted blobs e.g. undo security patches without being noticed. Can be mitigated using Data Integrity Regs (DIR) Need OwnerPassword to write DIR K’07: Kauer, Usenix Security 2007. Need owner password to write to DIR. Anyone can read DIR. Stored in NV RAM.

Better root of trust DRTM – Dynamic Root of Trust Measurement AMD: skinit Intel: senter Atomically does: Reset CPU. Reset PCR 17 to 0. Load given Secure Loader (SL) code into I-cache Extend PCR 17 with SL Jump to SL BIOS boot loader is no longer root of trust Avoids TPM_Init attack: TPM_Init sets PCR 17 to -1

BitLocker drive encryption tpm.msc: utility to manage TPM (e.g TakeOwnership) Auto generates 160-bit OwnerPassword Stored on TPM and in file computer_name.tpm Volume Master Key (VMK) encrypts disk volume key VMK is sealed (encrypted) under TPM SRK using BIOS, extensions, and optional ROM (PCR 0 and 2) Master boot record (MBR) (PCR 4) NTFS Boot Sector and block (PCR 8 and 9), NTFS Boot Manager (PCR 10), and BitLocker Access Control (PCR 11) Configurable PCR policy: user can choose what PCRs to use. The PCRs described above at the default policy.

BitLocker Many options for VMK recovery Disk, USB, paper (all encrypted with password) Recovery needed after legitimate system change: Moving disk to a new computer Replacing system board containing TPM Clearing TPM At system boot (before OS boot) Optional: BIOS requests PIN or USB key from user TPM unseals VMK, if PCR and PIN are correct TPM defends against dictionary attack on PIN Dictionary attack mitigation by locking up or slowing down response after several failures.

TPM Counters TPM must support at least four hardware counters Increment rate: every 5 seconds for 7 years. Applications: Provide time stamps on blobs. Supports “music will pay for 30 days” policy.

Attestation

Attestation: what it does Goal: prove to remote party what software is running on my machine. Good applications: Bank allows money transfer only if customer’s machine runs “up-to-date” OS patches. Enterprise allows laptop to connect to its network only if laptop runs “authorized” software Quake players can join a Quake network only if their Quake client is unmodified. DRM: MusicStore sells content for authorized players only.

Attestation: how it works Recall: EK private key on TPM. Cert for EK public-key issued by TPM vendor. Step 1: Create Attestation Identity Key (AIK) Details not important here AIK Private key known only to TPM AIK public cert issued only if EK cert is valid TPM can store multiple AIKs (for multiple identities)

Attestation: how it works Step 2: sign PCR values (after boot) Call TPM_Quote (some) Arguments: keyhandle: which AIK key to sign with KeyAuth: Password for using key `keyhandle’ PCR List: Which PCRs to sign. Challenge: 20-byte challenge from remote server Prevents replay of old signatures. Userdata: additional data to include in sig. Returns signed data and signature. TPM_Quote actually doesn’t take usedata argument. Instead one could do chal = Hash(chal,user-data)

Attestation: how it (should) work Attestation Request (20-byte challenge) Generate pub/priv key pair TPM_Quote(AIK, PcrList, chal, pub-key) Obtain cert App (SSL) Key Exchange using Cert Validate: Cert issuer, PCR vals in cert OS Communicate with app using SSL tunnel Focus on interactive applications such as Quake and network access control. For non interactive applications (e.g. music distribution) there is no need for an SSL key exchange since pub-key is quoted. TPM Remote Server PC Attestation must include key-exchange App must be isolated from rest of system

Using Attestation

Attesting to VMs: Terra [SOSP’03] TVMM Provides isolation between attested applications application: secure login into a corporate network

Nexus OS (Sirer et al. ’06) Problem: attesting to hashed application/kernel code Too many possible software configurations Better approach: attesting to properties Example: “application never writes to disk” Supported in Nexus OS (Sierer et al. ’06) General attestation statements: “TPM says that it booted Nexus, Nexus says that it ran checker with hash X, checker says that IPD A has property P” IPD: Isolation Protection Domain

EFF: Owner Override TCG attestation: The good: enables user to prove to remote bank that machine is up-to-date The bad: content owners can release decryption key only to machines running “authorized” software. Stifles innovation in player design EFF: allow users to inject chosen values into PCRs. Enables users to conceal changes to their computing environment Defeats malicious changes to computing platform

TCG Alternatives IBM CryptoProcessor 4758: Supports all TCG functionality and more. Tamper resistant 486 100MhZ PCI co-processor. Programmable. … but expensive ~ $2000 AEGIS System: Arbaugh, Farber, Smith ’97: Secure boot with BIOS changes only. Cannot support sealed storage. Phoenix TrustConnector 2 SWATT: Seshadri et al., 2004 Attestation w/o extra hardware Server must know precise HW configuration

Attestation: challenges

1. Attesting to Current State Attestation only attests to what code was loaded. Does not say whether running code has been compromised. Problem: what if Quake vulnerability exploited after attestation took place? Can we attest to the current state of a running system? … or is there a better way?

2. Encrypted viruses Suppose malicious music file exploits bug in Windows Media Player. Music file is encrypted. TCG prevents anyone from getting music file in the clear. Can anti-virus companies block virus without ever seeing its code in the clear?

3. TPM Compromise Suppose one TPM Endorsement Private Key is exposed Destroys all attestation infrastructure: Embed private EK in TPM emulator. Now, can attest to anything without running it.  Certificate Revocation is critical for TCG Attestation.

4. Private attestation Attestation should not reveal platform ID. Recall Intel CPU-ID fiasco. Private attestation: Remote server can validate trustworthiness of attestation … but cannot tell what machine it came from. TCG Solutions: Privacy CA: online trusted party Group sigs: privacy without trusted infrastructure