Vpn-info.com.

Slides:



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

Eran Tromer Slides credit: Dan Boneh, Stanford course CS155
Trusted Platform Module
Public Key Infrastructure A Quick Look Inside PKI Technology Investigation Center 3/27/2002.
Internet and Intranet Protocols and Applications Lecture 9a: Secure Sockets Layer (SSL) March, 2004 Arthur Goldberg Computer Science Department New York.
TCPA TCPA TCPA T rusted C omputing P latform A lliance Saurabh Phansalkar.
Hardware Security: Trusted Platform Module Amir Houmansadr CS660: Advanced Information Assurance Spring 2015 Content may be borrowed from other resources.
Chapter 14 From Cryptography and Network Security Fourth Edition written by William Stallings, and Lecture slides by Lawrie Brown, the Australian Defence.
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.
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.
Using Secure Coprocessors to Protect Access to Enterprise Networks Dr. José Carlos Brustoloni Dept. Computer Science University of Pittsburgh
Enforcement of Security Policy Compliance in Virtual Private Networks Prof. José Carlos Brustoloni Dept. Computer Science University of Pittsburgh
Trusted Disk Loading in the Emulab Network Testbed Cody Cutler, Mike Hibler, Eric Eide, Rob Ricci 1.
Trusted Platform Modules: Building a Trusted Software Stack and Remote Attestation Dane Brandon, Hardeep Uppal CSE551 University of Washington.
Trusted Computing Initiative Beyond trustworthy. Trusted Computing  Five Key Concepts >Endorsement Key >Secure Input and Output >Memory Curtain / Protected.
Class on Security Raghu. Current state of Security Cracks appear all the time Band Aid solutions Applications are not designed properly OS designs are.
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.
Digital Signature Xiaoyan Guo/ Xiaohang Luo/
Page 1 Sandboxing & Signed Software Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
CSCI 6962: Server-side Design and Programming
Chapter 31 Network Security
Computer Security Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
SYSTEM ADMINISTRATION Chapter 13 Security Protocols.
Securing Applications With Firmware (Going Beyond TCPA Platform Security) Dr. Robert W. Baldwin Chief Scientist.
Trusted Computing BY: Sam Ranjbari Billy J. Garcia.
Trusted Computing Platform Alliance
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
Merkle trees Introduced by Ralph Merkle, 1979 An authentication scheme
Trusted Computing and the Trusted Platform Module Bruce Maggs (with some slides from Bryan Parno)
31.1 Chapter 31 Network Security Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
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)
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.
Trusted Computing and SGX
Prof. Reuven Aviv, Nov 2013 Public Key Infrastructure1 Prof. Reuven Aviv Tel Hai Academic College Department of Computer Science Public Key Infrastructure.
Windows 10 Device Health Attestation (DHA)
Trusted Component Deployment Trusted Components Bernd Schoeller January 30 th, 2006.
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.
Presented by Mert Çetin
Trusted? 05/4/2016 Charles Sheehe, CCSDS Security Working Group GRC POC All information covered is from public sources.
Trusted Computing and the Trusted Platform Module
Trusted Infrastructure
Hardware security: The use of a Trusted Platform Module
Trusted Computing and the Trusted Platform Module
Outline What does the OS protect? Authentication for operating systems
PV204 Security technologies
Outline What does the OS protect? Authentication for operating systems
תרגול 9 – Windows Security
TERRA Authored by: Garfinkel, Pfaff, Chow, Rosenblum, and Boneh
Innovations for Grid Security from Trusted Computing
Building hardware-based security with a Trusted Platform Module (TPM)
Assignment #7 – Solutions
TPM, UEFI, Trusted Boot, Secure Boot
Bruce Maggs (with some slides from Bryan Parno)
Bruce Maggs (with some slides from Bryan Parno)
Presentation transcript:

vpn-info.com

Introduction to Trusted Platform Module

Trusted computing Is specified by trusted Computing group (TCG) From Trusted computing group, NTRU Cryptosystems

Motivating examples for using TPM How do I Store a key securely, so a user can access it with a password? Ensure that I am communicating with a particular user with access to a particular machine? Make sure my software only runs on a specific machine? Make sure my software runs only on machines in a specific state? TPM uses tamper-resistant hardware to ensure system integrity Systems containing TPM chips: Lenovo (IBM) Thinkpads and desktops Fujitsu lifebook HP desktop and notebooks TPM Chip vendors: (small inexpensive) Atmel, Infineon, National, STMicro Intel D875GRH motherboard

Boot-time checking App/lib OS OS App/lib Trusted boot or secure boot invokes BIOS (FLASH) Boot loader OS BIOS (ROM) invokes invokes invokes A well-defined sequence of software modules get executed at boot time. BIOS (FLASH) Boot loader OS BIOS (ROM) Checks & invokes Checks & invokes Checks & invokes Checks & invokes Each element in the boot sequence checks the integrity of the next before invoking it App/lib Need to know the verification process succeeded Trusted boot or secure boot

TPM architecture From wikipedia TPM stores secret keys and releases them depending on the state info at PCRs

Platform configuration registers (PCRs) PCRs are used to securely measure software (by computing hash) during boot Each PCR can contain an SHA-1 hash value (20byte) At least 16 PCRs PCRs are reset to 0 at boot time Write to a PCR # n by extending it – hash extension TPM_Extend(n,D): PCR[n]  SHA-1 ( PCR[n] || D ) For example OS OS computes h3 = SHA-1(module3); stores SHA-1(0,h3) -> PCR[3] Attacker substitutes module3 with module3’, h3’=SHA-1(module3’) Checks & invokes PCR[3] then contains SHA-1(0, h3’) Attacker cannot find v such that SHA-1(SHA-1(0, h3’), v) = SHA-1(0, h3) App/lib

At power-up PCR[n] initialized to 0 BIOS boot block executes 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). MBR executes: Calls PCR_Extend( n, <OS loader code, config params> ) Then runs OS loader Which PCRs to use is defined by specifications

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: Ownership Enabled flag  False Done once by IT department or computer owner. (optional) Step 2: TPM_CreateWrapKey Create more RSA keys on TPM certified by SRK Each key identified by 32-bit keyhandle OwnPass (Owner Password) can later be used to change owner. SRK key handle ID is 0x40000000

Main Step: Encrypt data using RSA key on TPM 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 otherwise 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. Why can’t attacker disable TPM until after boot, then extend PCRs with whatever he wants? Root of trust: BIOS boot block. Note: resetting TPM after boot (by physically sending TPM_Reset on LPC bus), allows arbitrary values to be loaded onto PCR. Need owner password to write to DIR. Anyone can read DIR. Stored in NV RAM.

PCR and attestation Tie a secret to a list of PCR values TPM will use or reveal a stored secret only if PCRs have specific values PCRs reflect system configuration and state Application: Attestation – to prove to a remote party the legitimate version of software is running on a host E.g., a company allows computers to connect to its network only if they run “authorized” software E.g., content providers sell digital media only to authorized versions of players -- DRM

Endorsement key (EK) and attestation identity key (AIK) Every TPM has a unique EK EK is the root of trust for identification EK is generated by manufacture, never leaves TPM Cert for EK public-key issued by TPM vendor, generated by a trusted CA For attestation, user first generates an attestation identity key Multiple AIKs may be generated Cert for AIK public key issued only if EK cert is valid AIK private key is only known to TPM

Attestation Local host answers challenges from a remote party by signing PCR values with AIK private key (after boot) Local host runs function TPM_Quote with inputs keyhandle: which AIK key to sign with KeyAuth: Password for using key `keyhandle’ PCR List: Which PCRs to sign. Challenge nonce: 20-byte challenge from remote server Prevents replay of old signatures. TPM_Quote returns signed data and signature. Remote party verifies the signature with AIK public key, verifies cert issuer, verifies PCR values in the signature

Attestation: how it works 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 TPM Remote Server PC

Some open questions relating to TPM TPM provides the guarantee of load-time code integrity. It does not provide detection ability for run-time compromises such as buffer overflow attack Can the remote party attest to the current state of a running system? Active research on this topic, e.g., Flicker 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? Example from Dan Boneh

Slides credits Dan Boneh Danfeng Yao Sean Smith