How To Trust Your Computer With A Trusted Platform Module (Tcp)



Similar documents
Software-based TPM Emulator for Linux

Acronym Term Description

On the security of Virtual Machine migration and related topics

Trusted Platform Module

Background. TPMs in the real world. Components on TPM chip TPM 101. TCG: Trusted Computing Group. TCG: changes to PC or cell phone

TPM Key Backup and Recovery. For Trusted Platforms

Secure Data Management in Trusted Computing

Property Based TPM Virtualization

Opal SSDs Integrated with TPMs

Trustworthy Computing

Recipe for Mobile Data Security: TPM, Bitlocker, Windows Vista and Active Directory

A Virtualized Linux Integrity Subsystem for Trusted Cloud Computing

CS 155 Spring TCG: Trusted Computing Architecture

Embedded Trusted Computing on ARM-based systems

Trusted Platforms for Homeland Security

CS252 Project An Encrypted File System using TPM

vtpm: Virtualizing the Trusted Platform Module

BitLocker Drive Encryption Hardware Enhanced Data Protection. Shon Eizenhoefer, Program Manager Microsoft Corporation

Introduction to the TPM 1.2

Patterns for Secure Boot and Secure Storage in Computer Systems

Hierarchies. Three Persistent Hierarchies. Chapter 9

Using AES 256 bit Encryption

CycurHSM An Automotive-qualified Software Stack for Hardware Security Modules

Secure Network Communications FIPS Non Proprietary Security Policy

vtpm: Virtualizing the Trusted Platform Module

Using the TPM to Solve Today s Most Urgent Cybersecurity Problems

Penetration Testing Windows Vista TM BitLocker TM

Mobile trusted computing. Chris Mitchell Royal Holloway, University of London

TCG PC Client Specific Implementation Specification for Conventional BIOS

Pulse Secure, LLC. January 9, 2015

Index. BIOS rootkit, 119 Broad network access, 107

Lecture Embedded System Security Dynamic Root of Trust and Trusted Execution

Data At Rest Protection

FIPS Non-Proprietary Security Policy. IBM Internet Security Systems SiteProtector Cryptographic Module (Version 1.0)

Implementation of a Trusted Ticket System

TPM. (Trusted Platform Module) Installation Guide V2.1

Accellion Secure File Transfer Cryptographic Module Security Policy Document Version 1.0. Accellion, Inc.

FIPS Non- Proprietary Security Policy. McAfee SIEM Cryptographic Module, Version 1.0

Introducing etoken. What is etoken?

Secure Storage. Lost Laptops

SMPTE Standards Transition Issues for NIST/FIPS Requirements v1.1

TPM. (Trusted Platform Module) Installation Guide V for Windows Vista

Threat Model for Software Reconfigurable Communications Systems

USB Portable Storage Device: Security Problem Definition Summary

Using BroadSAFE TM Technology 07/18/05

Certification Report

Whitepaper Enhancing BitLocker Deployment and Management with SimplySecure. Addressing the Concerns of the IT Professional Rob Weber February 2015

Certicom Security for Government Suppliers developing client-side products to meet the US Government FIPS security requirement

Hardware Security Modules for Protecting Embedded Systems

Key & Data Storage on Mobile Devices

Chapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography

RELEASE NOTES. Table of Contents. Scope of the Document. [Latest Official] ADYTON Release corrections. ADYTON Release 2.12.

Bypassing Local Windows Authentication to Defeat Full Disk Encryption. Ian Haken

How to Secure Infrastructure Clouds with Trusted Computing Technologies

ERserver. iseries. Secure Sockets Layer (SSL)

Certification Report

Security Technical. Overview. BlackBerry Enterprise Service 10. BlackBerry Device Service Solution Version: 10.2

Open Access Research on Data Leak Protection Technology Based on Trusted Platform

ERserver. iseries. Securing applications with SSL

Security Policy for FIPS Validation

Dell Client BIOS: Signed Firmware Update

TECHNISCHE UNIVERSITÄT MÜNCHEN. Lehrstuhl für Datenverarbeitung. Runtime integrity framework based on trusted computing.

Hardware Security for Device Authentication in the Smart Grid

Smart Card- An Alternative to Password Authentication By Ahmad Ismadi Yazid B. Sukaimi

USB Portable Storage Device: Security Problem Definition Summary

Managed Portable Security Devices

SecureDoc Disk Encryption Cryptographic Engine

Customer Whitepaper. Motion Tablet PC Security Basics. Table of Contents. Whitepaper Goals and Intended Audience...2

Northrop Grumman M5 Network Security SCS Linux Kernel Cryptographic Services. FIPS Security Policy Version

TrustKey Tool User Manual

Securing Host Operations with a Dedicated Cryptographic IC - CryptoCompanion

How to Encrypt your Windows 7 SDS Machine with Bitlocker

Guidelines on use of encryption to protect person identifiable and sensitive information

EMBASSY Remote Administration Server (ERAS) BitLocker Deployment Guide

Overview of CSS SSL. SSL Cryptography Overview CHAPTER

Attestation and Authentication Protocols Using the TPM

Using the TPM: Data Protection and Storage

M-Shield mobile security technology

UNCLASSIFIED Version 1.0 May 2012

Secure Device Identity Tutorial

Digital Rights Management Demonstrator

ARTICLE 29 Data Protection Working Party

Certification Report

Firmware security features in HP Compaq business notebooks

Overview of Windows 10 Requirements for TPM, HVCI and SecureBoot

Factory-Installed, Standards-Based Hardware Security. Steven K. Sprague President & CEO, Wave Systems Corp.

Overview. SSL Cryptography Overview CHAPTER 1

Transcription:

Trusted Computing and Open Source Software Heiko Stamer Universität Kassel Department of Mathematics/Computer Science Heinrich-Plett-Straße 40, D-34132 Kassel stamer@theory.informatik.uni-kassel.de 76F7 3011 329D 27DB 8D7C 3F97 4F58 4EB8 FB2B E14F Kryptowochenende 2006, Kloster Bronnbach Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 1 / 21

Outline 1 Introduction 2 Trusted Computing Platform 3 Trusted Platform Module 4 Open Source Software 5 Demonstration (TPM Emulator, TrouSerS, and jtss Wrapper) Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 2 / 21

Introduction Trusted Computing Group Trusted Computing Group (TCG) is a not-for-profit organization formed to develop, define, and promote open standards for hardware-enabled trusted computing and security technologies, including hardware building blocks and software interfaces, across multiple platforms, peripherals, devices. Successor of the former Trusted Computing Platform Alliance (TCPA) Open membership: (non-)for-profit corporations, other enterprises Different levels of membership ($50,000 $1,000 p.a.) imply different benefits (pre-publication drafts, voting privileges, participate in Work Groups, product information on TCG web site) Reasonable and non-discriminatory (RAND) patent licensing Board, Committee, Work Group structure (supermajority voting) Board of Directors: Mark Schiller (HP), Leendert Van Doorn (IBM),... Advisory Council (2004): Rob Enderle, David J. Farber, Moira A. Gunn, Roger L. Kay, Gary S. Roboff, Rigo Wenning (W3C, FITUG e.v.) Technical Work Groups: TPM, TSS, PC Client, Mobile Phone, Storage, Server Specific, Compliance, Conformance, Infrastructure,... Promoters: AMD, HP, IBM, Infineon, Intel, Lenovo, Microsoft, Sun Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 3 / 21

Introduction Published Specification Documents Infrastructure: Specification of the TC-Infrastructure TCG Infrastructure Architecture, Version 1.0 TCG Infrastructure Credential Profiles, Version 1.0 (Rev. 0.981) Hardware: Specification of the Trusted Platform Module (TPM) Version 1.1b (February 2002), Version 1.2 (Revision 62: October 2003, Revision 85: February 2005, Revision 94: March 2006) Mainboard/Firmware/BIOS: Platform Specific Settings PC Specific Implementation Specification, Version 1.1 PC Client TPM Interface Specification (TIS), Version 1.2 Implementation Specification for Conventional BIOS, Version 1.2 Software: Specification of the TCG Software Stack (TSS) Version 1.1 (September 2003), Version 1.2 (January 2006) News: Auditing, delegation, monotonic counters, DAA,... Network: Specification of the Trusted Network Connect (TNC) Specification Support Documents (Overview, Glossary, FAQs) Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 4 / 21

Introduction Usage Scenarios Usage Scenarios (TCG Specification Architecture Overview): Risk Management (corporate process) Minimize risk for corporate/personal information assets Evaluated and certified implementation of security technologies Asset Management Asset tracking and accounting (theft and unauthorized use of computing power) E-Commerce Context for secure on-line transactions, payment, etc. Security Monitoring and Emergency Response Trustworthy reporting of platform configuration Restricted network access for untrusted devices Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 5 / 21

Introduction Usage Scenarios Use Case Scenarios (Mobile Phone WG): corresp. user benefits Platform Integrity (authorized operating system and hardware)... user can rely upon the trustworthiness of the device...... Device will be able to defend itself against malware...... key building block for other use cases... User and Device Authentication In some cases, the User will be better served by the Service Provider who trusts the User s Device... Robust DRM Implementation enable valuable content to be distributed to mobile Devices... SIM-Lock / Device Personalisation... obtain device at a substantial discount... Secure Software Download and Software Use Secure Channel between Device and UICC (UMTS Circuit Card) Mobile Ticketing and Mobile Payment User Data Protection and Privacy Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 6 / 21

Introduction Usage Scenarios Use Cases (Storage WG): hard disks, flash memory devices, optical drives,... Enrollment and Connection (dual mating, authorized access) Protected Storage (e.g. storage locations for system data) Locking and Encryption (end-of-life or repurposing) Logging (e.g. SMART, forensic logging) Cryptographic Services (compliance with well-known standards) Authorizing SD Feature Sets to Hosts Secure Download of Firmware Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 7 / 21

Trusted Computing Platform Overview TCG Scope: Personal Computers (PC), Personal Digital Assistants (PDA), Cellular Phones,... Fundamental Features (TCG Specification Architecture Overview): Protected Capabilities Commands with exclusive permission to access shielded-locations (safe places to operate on sensitive data) Attestation Process of vouching for the accuracy of information Integrity Measurement, Storage, and Reporting Obtaining metrics of platform characteristics Storing the integrity metrics and a digest of those metrics Attesting the contents of integrity storage Roots of Trust: components that must be trusted 1 Root of trust for measurement (RTM): e.g. CPU + CRTM 2 Root of trust for storage (RTS): e.g. TPM + Log 3 Root of trust for reporting (RTR): e.g. TPM Trusted Building Block (TBB): e.g. connection of CRTM, TPM, and Physical Presence mechanism to a motherboard Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 8 / 21

Trusted Computing Platform Software Layering User Process TCG Service Provider Interface (TSPI) User Process TCG Core Service Interface (TCSI) System Process TPM Device Driver Library Interface (TDDLI) User Mode Kernel Mode Application TCG Service Provider (TSP) TCG Core Services (TCS) TCG Device Driver Library (TDDL) TPM Device Driver Trusted Platform Module (TPM) TDDLI: OS-independent interface, software-based TPM simulator TCS: Common set of TC-platform services (context management, credential and key management, event log of measurements,... ) TSP: C interface to the TPM (context management, supporting cryptographic functions, e.g. for DAA protocols) Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 9 / 21

Trusted Platform Module Overview TCG wants cheap hardware TPM is NOT a cryptogr. accelerator Components of Trusted Platform Module (TPM): I/O (connection to communication bus, e.g. LPC bus on PC) Cryptographic Co-Processor and Key Generation Functionality: Asymmetric key generation, Asymmetric encryption/decryption, Hashing, Random number generation MUST support the RSA algorithm (according to P1363 resp. PKCS #1), MUST support key sizes: 512, 768, 1024, 2048 MAY implement other algorithms (DSA, ECC) and key sizes RSA public exponent MUST be e = 2 16 + 1 If CRT is used, MUST provide protection and detection of failures Symmetric encryption engine to encrypt authentication information, to provide confidentiality in transport sessions, and to provide internal encryption of blobs, e.g. TPM_SaveContext Vernam One-time-pad (MGF1 from PKCS #1) with XOR MAY support AES, 3DES, and other symmetric algorithms Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 10 / 21

Trusted Platform Module Overview Components of Trusted Platform Module (TPM): HMAC Engine Functionality: Keyed-hashing as proof of knowledge of AuthData, Command authorization and integrity (OIAP, OSAP, DSAP) RFC 2104: SHA1((k OPAD) SHA1((k IPAD) m)) Random Number Generator (RNG) Functionality: Provide random values for nonces, key generation, signatures, DAA, TPM_GetRandom,... Entropy source and collector, State register, Mixing function Allows implementation of a Pseudo RNG State register MUST be non-volatile and updated by each mixing function call (two register solution for burn-out problem ) SHA-1 Engine (implemented according to FIPS-180-1) TPM_SHA1Start, TPM_SHA1Update, TPM_SHA1Complete TPM_Extend: accumulate measured value m in register i PCR[i] := SHA1(PCR[i] m) Opt-In (activate/deactivate TPM, Physical Presence flags) Execution Engine (runs program code to execute commands) Power Detection, Volatile and Non-Volatile Memory (NV) Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 11 / 21

Trusted Platform Module Overview Selected Components of Non-Volatile Memory (shielded-locations): Endorsement Key (EK) RSA, 2048 Bit, unique, non-migratable, decrypt-only Storage Root Key (SRK) RSA, 2048 Bit, non-migratable, TPM_TakeOwnership Additional Key Slots (TPM_LoadKey, e.g. AIKs or legacy keys) Vendor Supplied Credentials (ASN.1 format) Endorsement Credential (properly created and embedded EK) Conformance Credentials (valid TPM, valid TBB, etc.) Platform Credential (connects TPM and EK credential) Validation Credentials (ref. for other measurable components) Attestation Identity Credential (AIK; issued by Privacy CA) Owner Authorization Data, Persistent Flags, Free Space Selected Components of Volatile Memory (shielded-locations): Platform Configuration Registers (PCR), MUST have 16 (24) Data Integrity Register (DIR), MUST have 1, deprecated Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 12 / 21

Trusted Platform Module Concepts Classes of Protected Message Exchange: Binding (traditional PK encryption confidentiality) Signing (traditional PK signing integrity) Sealing (message bound to specific platform metrics) Sealed-Signing (signature assures specific platform metrics) Encryption Schemes: Mandatory: RSA PKCS #1 v1.5, RSA OAEP SHA1 MGF1 Optional: AES/3DES CNT mode or OFB mode Signature Schemes: Mandatory: RSA PKCS #1 v1.5 SHA1/DER/INFO Protected Storage by using RTS: Key hierarchy starting from SRK External Storage (storing encrypted BLOBs outside) Key Cache Management (resource management outside TPM) Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 13 / 21

Trusted Platform Module Concepts Key Attributes: established at creation time and cannot be changed migratable / non-migratable isvolatile (must be unloaded on startup with TPM_ST_CLEAR) pcrignoredonread (PCRs are ignored when use public portion) migrateauthority (key is under control of a migration authority) Key Types: associated set of restrictions that limits the use Signing Keys: asymmetric general purpose keys for signing Storage Keys: asymmetric general purpose keys for encryption Identity Keys (AIK): non-migratable signing keys used to sign data originated by the TPM (PCR values, etc.) Legacy Keys: created outside the TPM, export/import Bind Keys: encryption of small data (TPM_Bind, TPM_UnBind) Authentication Keys: symmetric keys, e.g. transport sessions Endorsement Key: asymmetric special purpose key Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 14 / 21

Trusted Platform Module Concepts Command Authorization: for security/privacy related commands Authorization Secrets: ownerauth, usageauth (keys, e.g. SRK) Authorization Sessions HMAC protected messages between entity and TPM HMAC calculation: command ordinal, input/output parameters, return code, authorization secrets, nonces, etc. Replay Attack: Avoided by rolling-nonces in session state Currently Supported Protocols: Object-Independent Authorization Protocol (OIAP) Object-Specific Authorization Protocol (OSAP) Delegation-Specific Authorization Protocol (DSAP) Authorization Data Insertion Protocol (ADIP) Authorization Data Change Protocol (ADCP) Asymmetric Authorization Change Protocol (AACP) Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 15 / 21

Open Source Software Overview Open Source / Free Software: TPMDD [Hal06] TPM Device Driver (IBM) Character Driver (minor number 224) in drivers/char/tpm Supported v1.1 TPMs: Atmel, NSC, Infineon Generic TIS interface for v1.2 TPMs (since kernel version 2.6.17) TrouSerS [Yod06] TSS Implementation (IBM) Supported OS: i386 GNU/Linux (SuSE, Fedora, Gentoo) License: CPL (Common Public License) Plan: TSS 1.1 compliance while preparing for TSS 1.2 changes. jtss Wrapper [Win06] Java API for TSS (TU Graz) Trusted GRUB [Stü04] Secure Boot Manager (RU Bochum) TPM Emulator [St06] Software-based Emulator (ETH Zürich) Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 16 / 21

Open Source Software TPM Emulator Mario Strasser: Software-based TPM Emulator for Linux [St06] https://developer.berlios.de/projects/tpm-emulator/ Goal: Create a fully working software-based Trusted Platform Module emulator according to TCG Specifications, Version 1.2 Application: Explore TPMs for educational/experimental purposes Current State: Release 0.4 (June, 2006), GNU GPL v2 Kernel module tpm_emulator.ko (provides char. device /dev/tpm) Currently, 83 out of 120 TPM commands are implemented (admin startup, admin testing, admin opt-in, admin ownership, auditing, storage functions, cryptographic functions, endorsement key handling, identity creation and activation, integrity collection and reporting, authorization sessions, session management, eviction, timing ticks, transport sessions, monotonic counter, DAA, deprecated commands) Not yet/only partially implemented: capability, migration, maintenance, delegation, NV storage Packetized for Gentoo Linux ($ emerge tpm-emulator) Prerequisites: Linux Kernel 2.6.x, GNU Compiler Collection,... GNU Multiple Precision Arithmetic Library (libgmp) Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 17 / 21

Open Source Software Roadmap Roadmap/TODO: 1 Conformance with Revision 94 of the TPM Specification 1.2 (largely finished now) 2 Obtain better portability (kernel space vs. user space) 1st Problem: Kernel stack size is very limited (architecture dependent, e.g. 4K resp. 8K on x86) 2nd Problem: Persistent storage is needed to save the state Possible Solution: Dummy hardware interface in the common TPM device driver TPM emulator serves only as a user space daemon (TDDLI) 3 Implementation of all mandatory commands (v1.2 rev 94) 4 Adding optional commands and algorithms (e.g. AES) Contributions to our project [St06] are very welcome! Announce practical projects for university students (SOC) Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 18 / 21

Demonstration (TPM Emulator, TrouSerS, and jtss Wrapper) Demonstration Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 19 / 21

Conclusion Do you still know the meaning of the following abbreviations? AACP, ADCP, ADIP, AIK, CRTM, DAA, DIR, DRM, DSAP, EK, NV, OIAP, OSAP, PCR, RAND, RTM, RTR, RTS, SRK, TBB, TCG, TCPA, TCS, TCSI, TDDL, TDDLI, TIS, TNC, TPM, TSP, TSPI, TSS, UICC Thank You! Questions? Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 20 / 21

References [TCG] [St06] Trusted Computing Group. Web pages. Mario Strasser, et al. TPM-Emulator Project. Release 0.3, 2006. [Hal06] Kylene Hall, et al. Linux TPM Device Driver. Kernel 2.6.17, 2006. [Yod06] Kent Yoder, et al. TrouSerS Project. Release 0.2.6, 2006. [Win06] Thomas Winkler, et al. IAIK/OpenTC jtss Wrapper. Release 0.2, 2006. [Stü04] Christian St"uble, et al. TrustedGRUB. Release 0.8.1, 2004. https://www.trustedcomputinggroup.org/ https://developer.berlios.de/projects/tpm-emulator/ http://tpmdd.sourceforge.net/ http://trousers.sourceforge.net/ http://trustedjava.sourceforge.net/ http://www.prosec.rub.de/trusted_grub_details.html Heiko Stamer (Universität Kassel) Trusted Computing, Open Source Software Kryptowochenende 2006 21 / 21