Software-based TPM Emulator for Linux



Similar documents
A Virtualized Linux Integrity Subsystem for Trusted Cloud Computing

TCG PC Client Specific Implementation Specification for Conventional BIOS

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

Embedded Trusted Computing on ARM-based systems

CS 155 Spring TCG: Trusted Computing Architecture

Secure Data Management in Trusted Computing

Opal SSDs Integrated with TPMs

Trustworthy Computing

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

Property Based TPM Virtualization

Trusted Platform Module

Using the TPM: Data Protection and Storage

vtpm: Virtualizing the Trusted Platform Module

On the security of Virtual Machine migration and related topics

Cautions When Using BitLocker Drive Encryption on PRIMERGY

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

Patterns for Secure Boot and Secure Storage in Computer Systems

vtpm: Virtualizing the Trusted Platform Module

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

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

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

TPM Key Backup and Recovery. For Trusted Platforms

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

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

SecureDoc Disk Encryption Cryptographic Engine

Acronym Term Description

Data At Rest Protection

YubiKey Integration for Full Disk Encryption

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

CS252 Project An Encrypted File System using TPM

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

Secure Network Communications FIPS Non Proprietary Security Policy

How to Secure Infrastructure Clouds with Trusted Computing Technologies

Index. BIOS rootkit, 119 Broad network access, 107

EMBASSY Remote Administration Server (ERAS) BitLocker Deployment Guide

HW (Fat001) TPM. Figure 1. Computing Node

Using the TPM to Solve Today s Most Urgent Cybersecurity Problems

ACER ProShield. Table of Contents

Penetration Testing Windows Vista TM BitLocker TM

Navigating Endpoint Encryption Technologies

An Improved Trusted Full Disk Encryption Model

Encrypting stored data. Tuomas Aura T Information security technology

Implementation of a Trusted Ticket System

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

Pulse Secure, LLC. January 9, 2015

Technical Brief Distributed Trusted Computing

Encrypted File Systems. Don Porter CSE 506

Secure Storage. Lost Laptops

WebSphere DataPower Release FIPS and NIST SP a support.

Security Technology for Smartphones

FIPS SECURITY POLICY FOR

Building Blocks Towards a Trustworthy NFV Infrastructure

PCI Express SATA / esata 6Gb/s RAID Card User Manual

Security Policy for FIPS Validation

Aircloak Analytics: Anonymized User Data without Data Loss

Windows Server 2008 R2 Boot Manager Security Policy For FIPS Validation

Using BitLocker As Part Of A Customer Data Protection Program: Part 1

EXPLORING LINUX KERNEL: THE EASY WAY!

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

Firmware security features in HP Compaq business notebooks

Trusted Platforms for Homeland Security

A M D DA S 1. 0 For the Manageability, Virtualization and Security of Embedded Solutions

Protecting Data with Short- Lived Encryption Keys and Hardware Root of Trust. Dan Griffin DefCon 2013

Enhancing Organizational Security Through the Use of Virtual Smart Cards

FIPS Security Policy 3Com Embedded Firewall PCI Cards

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

Using AES 256 bit Encryption

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

EMC Symmetrix Data at Rest Encryption

Advanced Server Virtualization: Vmware and Microsoft Platforms in the Virtual Data Center

Introduction to BitLocker FVE

Digital Rights Management Demonstrator

USB 2.0 Flash Drive User Manual

Software Execution Protection in the Cloud

EMC VMAX3 DATA AT REST ENCRYPTION

Kaseya US Sales, LLC Virtual System Administrator Cryptographic Module Software Version: 1.0

Overview of Windows 10 Requirements for TPM, HVCI and SecureBoot

RocketRAID esata 3G HBA Series Bootable RAID. Installation Guide.

Introduction to the TPM 1.2

HP ProtectTools Embedded Security Guide

Alliance AES Encryption for IBM i Solution Brief

Planning and Administering Windows Server 2008 Servers

How to Encrypt your Windows 7 SDS Machine with Bitlocker

Implementing SSL Security on a PowerExchange Network

Lecture Embedded System Security Dynamic Root of Trust and Trusted Execution

Chapter 3: Operating-System Structures. Common System Components

SkyRecon Cryptographic Module (SCM)

Microsoft Windows Server 2008: Data Protection

A Security Assessment of Trusted Platform Modules Computer Science Technical Report TR

Establishing and Sustaining System Integrity via Root of Trust Installation

13135 Lee Jackson Memorial Hwy., Suite 220 Fairfax, VA United States of America

Symantec Corporation Symantec Enterprise Vault Cryptographic Module Software Version:

TNC Endpoint Compliance and Network Access Control Profiles

IBM i Encryption in a Snap! Implement IBM FIELDPROC with a simple to use GUI and a few clicks of your mouse.

Transcription:

Software-based TPM Emulator for Linux Semester Thesis Mario Strasser Department of Computer Science Swiss Federal Institute of Technology Zurich Summer Semester 2004 Mario Strasser: Software-based TPM Emulator for Linux 1

Outline 1 Motivation and Goals 2 Trusted Computing 3 Trusted Platform Module 4 TPM Emulator 5 Conclusion Mario Strasser: Software-based TPM Emulator for Linux 2

Outline 1 Motivation and Goals 2 Trusted Computing 3 Trusted Platform Module 4 TPM Emulator 5 Conclusion Mario Strasser: Software-based TPM Emulator for Linux 2

Outline 1 Motivation and Goals 2 Trusted Computing 3 Trusted Platform Module 4 TPM Emulator 5 Conclusion Mario Strasser: Software-based TPM Emulator for Linux 2

Outline 1 Motivation and Goals 2 Trusted Computing 3 Trusted Platform Module 4 TPM Emulator 5 Conclusion Mario Strasser: Software-based TPM Emulator for Linux 2

Outline 1 Motivation and Goals 2 Trusted Computing 3 Trusted Platform Module 4 TPM Emulator 5 Conclusion Mario Strasser: Software-based TPM Emulator for Linux 2

Status Quo Status Quo Many controversies about TC, TCG/TCPA, TPM (Fritz-Chip), and DRM. IBM provides a TPM device driver for their ThinkPads as well as some example applications. Dartmouth College works on a TPM-based file integrity measurement module (Enforcer) for Linux. Mario Strasser: Software-based TPM Emulator for Linux 3

Motivation, and Goals What I cannot create I do not understand. (R. Feynman) Motivation Give people the means to easily explore TPMs for educational and experimental purposes. Goals Implementation of a software-based TPM emulator for Linux in cooperation with IBM (David Safford, Jeff Kravitz) and Dartmouth College (Omen Wild). Mario Strasser: Software-based TPM Emulator for Linux 4

Motivation, and Goals What I cannot create I do not understand. (R. Feynman) Motivation Give people the means to easily explore TPMs for educational and experimental purposes. Goals Implementation of a software-based TPM emulator for Linux in cooperation with IBM (David Safford, Jeff Kravitz) and Dartmouth College (Omen Wild). Mario Strasser: Software-based TPM Emulator for Linux 4

Trusted Computing A Trusted (Computing) Platform is a platform that is trusted by local and remote users. A relationship of trust must be established between the user and the computing platform so that the user believes that an expected boot process, a selected operating system, and a set of selected security functions in the computing platform have been properly installed and operate correctly. Mario Strasser: Software-based TPM Emulator for Linux 5

Overview Platform Configuration Key Generation and Storage Signing and Sealing Overview The Trusted Platform Module (TPM) is a hardware component that provides four major functions: 1. Cryptographic functions: RSA, (P)RNG, SHA-1, HMAC 2. Secure storage and reporting of hash values representing a specific platform configuration 3. Key storage and data sealing 4. Initialization and management functions (opt-in) Auxiliary functions since version 1.2: Monotonic counters and timing-ticks Non-volatile storage Auditing Mario Strasser: Software-based TPM Emulator for Linux 6

Overview Platform Configuration Key Generation and Storage Signing and Sealing Platform Configuration Obtaining metrics of platform characteristics that affect the integrity of a platform and storing them into the PCRs. A PCR update includes history: PCR[n] SHA-1(PCR[n] + measured data). Transitive trust (inductive trust) is applied to extend the trust boundary during bootup: TPM, CRTM BIOS MBR OS Application. PCR Index PCR Usage 0 CRTM, BIOS, and Platform Extensions 1 Platform Configuration 2 Option ROM Code 3 Option ROM Configuration and Data 4 IPL Code (usually the MBR) 5 IPL Code Configuration and Data Mario Strasser: Software-based TPM Emulator for Linux 7

Overview Platform Configuration Key Generation and Storage Signing and Sealing Key Generation and Storage TPM generate RSA key pair K encrypt key with parent key K TPM_CreateWrapKey() TPM decrypt key with parent key load key into a free key slot 0 parameters, flags,... K key handle TPM_LoadKey() K SRK SK1 SK2 SK3 K1 SK4 K2 K3 K4 Mario Strasser: Software-based TPM Emulator for Linux 8

Overview Platform Configuration Key Generation and Storage Signing and Sealing Signing and Sealing Binding Encryption of a message using a public key. The (migratable) private key is managed (stored) by the TPM. Sealing Encryption of a message using a public key with additional binding to a set of platform metrics (system must be in a specific configuration to successfully unseal the data). Signing Signing of a message digest using a signing only private key. Sealed-Signing Signing of a message digest using a signing-only private key with inclusion of the current platform metrics. Mario Strasser: Software-based TPM Emulator for Linux 9

Overview Platform Configuration Key Generation and Storage Signing and Sealing Signing and Sealing Binding Encryption of a message using a public key. The (migratable) private key is managed (stored) by the TPM. Sealing Encryption of a message using a public key with additional binding to a set of platform metrics (system must be in a specific configuration to successfully unseal the data). Signing Signing of a message digest using a signing only private key. Sealed-Signing Signing of a message digest using a signing-only private key with inclusion of the current platform metrics. Mario Strasser: Software-based TPM Emulator for Linux 9

Overview Platform Configuration Key Generation and Storage Signing and Sealing Signing and Sealing Binding Encryption of a message using a public key. The (migratable) private key is managed (stored) by the TPM. Sealing Encryption of a message using a public key with additional binding to a set of platform metrics (system must be in a specific configuration to successfully unseal the data). Signing Signing of a message digest using a signing only private key. Sealed-Signing Signing of a message digest using a signing-only private key with inclusion of the current platform metrics. Mario Strasser: Software-based TPM Emulator for Linux 9

Overview Platform Configuration Key Generation and Storage Signing and Sealing Signing and Sealing Binding Encryption of a message using a public key. The (migratable) private key is managed (stored) by the TPM. Sealing Encryption of a message using a public key with additional binding to a set of platform metrics (system must be in a specific configuration to successfully unseal the data). Signing Signing of a message digest using a signing only private key. Sealed-Signing Signing of a message digest using a signing-only private key with inclusion of the current platform metrics. Mario Strasser: Software-based TPM Emulator for Linux 9

Overview Command Execution Overview Emulator is provided as a Linux kernel module (i.e., device driver for the device file /dev/tpm) One goal was to be compatible with the driver from IBM Two main parts: kernel interface and emulator engine Startup mode is specified by a module parameter Command serialization by means of semaphores Kernel Interface TPM Emulator engine Parameter (un)marshalling and (de)coding Cryptographic engine Execution engine key, data, and session storage Mario Strasser: Software-based TPM Emulator for Linux 10

Overview Command Execution Command Execution I OS User Space insmod tpm_emulator init_tpm_module() OS Kernel Space tpm_emulator_init() Application fh=open(/dev/tpm) write(fh,...) read(fh,...) close(fh) tpm_open() tpm_write() if ok resp =... else resp = NULL tpm_read() return resp tpm_close() tpm_emulator_command() rmmod tpm_emulator cleanup_tpm_module() tpm_emulator_shutdown() Mario Strasser: Software-based TPM Emulator for Linux 11

Overview Command Execution Command Execution II unmarshal TPM request TPM command check status and mode header parameters auth unmarshal command parameters i1... in compute input parameter digest Mario Strasser: Software-based TPM Emulator for Linux 12

Overview Command Execution Command Execution II unmarshal TPM request TPM command check status and mode header parameters auth unmarshal command parameters i1... in compute input parameter digest verify authorization execute command setup output o1... o2 Mario Strasser: Software-based TPM Emulator for Linux 13

Overview Command Execution Command Execution II unmarshal TPM request TPM command check status and mode header parameters auth unmarshal command parameters i1... in compute input parameter digest verify authorization execute command setup output o1... o2 marshal TPM response response setup response authorization auth marshal command response TPM response Mario Strasser: Software-based TPM Emulator for Linux 14

Overview Command Execution Two Selected Problems I Problem 1: Persistent Storage Seems to be easy, just write all data to hard disk. But file system is under the user s control what if disk is not yet mounted or temporarily unmounted? As a general design rule: kernel functions should not directly write to hard disks! Possible solution: use user tool to (re)store TPM s data. Drawback: TPM knows when saving is advisable, not the user. Mario Strasser: Software-based TPM Emulator for Linux 15

Overview Command Execution Two Selected Problems II Problem 2: (Un-)Marshalling and command decoding Only five basic TPM types: BYTE, BOOL, UINT16, UINT32, UINT64, and BLOB (BYTE*). All non-basic TPM types are just compositions (structures, arrays) of either basic or other non-basic types. Simple, repetitive statements but error-prone and extensive. Luckily, it can be auto-generated for the most part. About 95% of the (un)marshalling code has been auto-generated out of the (PDF) specification by means of Perl, awk, and sed scripts. Mario Strasser: Software-based TPM Emulator for Linux 16

Conclusion and Outlook TPM Emulator works with (almost) all TPM applications I know about. By now, about 50 out of 120 TPM commands are implemented ( 42%). Complete TPM Device Driver Library for the emulator according to TCG Software Stack (TSS) specification. Jeff Kravitz from IBM is preparing a new TPM library and some additional examples. Omen Wild from Dartmouth College is confident to find some students who might support the project. Jesus Molina from the University of Maryland is porting the emulator to a PCI embedded system. Goal is the development of a free TPM device as well as an appropriate BIOS. Mario Strasser: Software-based TPM Emulator for Linux 17

Conclusion and Outlook TPM Emulator works with (almost) all TPM applications I know about. By now, about 50 out of 120 TPM commands are implemented ( 42%). Complete TPM Device Driver Library for the emulator according to TCG Software Stack (TSS) specification. Jeff Kravitz from IBM is preparing a new TPM library and some additional examples. Omen Wild from Dartmouth College is confident to find some students who might support the project. Jesus Molina from the University of Maryland is porting the emulator to a PCI embedded system. Goal is the development of a free TPM device as well as an appropriate BIOS. Mario Strasser: Software-based TPM Emulator for Linux 17

Mario Strasser: Software-based TPM Emulator for Linux 18