trusted computing - tud · 2020. 1. 14. · tpm is cryptographic coprocessor: rsa (encryption,...

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

Upload: others

Post on 14-Mar-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

Department of Computer Science Institute of System Architecture, Operating Systems Group

CARSTEN WEINHOLD

TRUSTED COMPUTING

Page 2: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

THIS LECTURE ...

2

■ Today: Trusted Computing Technology ■ Lecture discusses basics in context of TPMs

■ More theoretical concepts also covered in lecture „Distributed Operating Systems“

■ Things you should have heard about: ■ How to use asymmetric encryption

■ Concept of digital signatures

■ Collision-resistant hash functions

Page 3: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

L4

AN.ON

INTRODUCTION

3

TPM

? ?

? ?

Page 4: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

ANONYMITY

4

ISP

Proxy Server

Page 5: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

ANONYMITY

5

ISP

ProxyMIX

Server

Server

Page 6: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

ANONYMITY

6

ISP

MIX MIX

Server

Server

Page 7: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

ANONYMITY

7

AN.ON? ?

? ?

Page 8: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

IDEA

8

MIX

Do you spy?

No

Page 9: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

SYSTEM LAYERS

9

AN.ON MIX

OS

Boot Loader

BIOS

Hardware

Page 10: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TPM

10

http://www.infineon.com/export/sites/default/media/press/Image/press_photo/TPM_SLB9635.jpg

Page 11: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TPM

11

PCR := SHA-1( PCR | X )Platform Configuration Register

Page 12: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

OS

Boot Loader

BIOS

BOOTING + TPM

12

PCR

OS

Boot Loader

BIOS

OS

Boot Loader

BIOS

AN.ON MIXAN.ON MIXAN.ON MIX

4490EF83

Page 13: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

ATTESTATION

13

MIX

Remote Attestation

4490EF834490EF83✹

Page 14: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

ARCHITECTURE

14

AN.ON

TPM

? ?

? ?

Linux

Windows

Page 15: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

AFC937A0

MONOLITHIC

15

Monolithic OS

MIX

Page 16: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

4490EF83

L4/AN.ON

16

MIX

L4.Fiasco

TPM Driver

Memory

Network Stack

Network Driver

GUI

USB Driver

L4Linux

Page 17: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

L4/AN.ON

17

Page 18: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

L4/AN.ON

18

Page 19: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

L4/AN.ON

19

Page 20: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

L4/AN.ON

20

L4

AN.ON

TPM

? ?

? ?

Page 21: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

THE TRUSTED PLATFORM MODULE

21

Page 22: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TPM HARDWARE

22

■ TPMs are tightly integrated into platform: ■ Soldered on motherboard

■ Insecure / for experimentation only: Pluggable modules (PC, Raspberry Pi, ...)

■ Built into chipset / SoC

■ Implemented in Firmware

■ Tamper resistant casing

■ Widely deployed: ■ Business notebooks + desktops

■ Windows 8/10/RT tablets

Page 23: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TPM OVERVIEW

23

■ TPM is cryptographic coprocessor: ■ RSA (encryption, signatures), AES

(encryption), SHA-1 (cryptographic hashes)

■ Other crypto schemes (e.g., DAA)

■ Random number generator

■ Platform Configuration Registers (PCRs)

■ Non-volatile memory

■ TPMs are passive devices!

Page 24: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TPM SPECS

■ TPMs specified by Trusted Computing Group [2]

■ Multiple implementations

■ TPM specifications [3,4] cover: ■ Architecture, interfaces, security properties

■ Data formats of input / output

■ Schemes for signatures, encryption, ...

■ TPM life cycle, platform requirements

24

Page 25: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TPM & PLATFORM

25

CPURAM

TPM

BIOS

CRTM

Chipset

Platform

Reset

Page 26: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TPM IDENTITY

■ TPM identified by Endorsement Key EK: ■ Generated in manufacturing process

■ Certified by manufacturer

■ Unique among all TPMs

■ Can only decrypt, serves as root of trust

■ Creating entirely new EK possible (e.g., for use in corporate environments)

■ Private part of EK never leaves TPM26

Page 27: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

KEY HIERARCHY

■ All keys except for EK are part of key hierarchy below Storage Root Key SRK:

■ SRK created when user „takes ownership“

■ Key types: storage, signature, identity, ...

■ Storage keys are parent keys at lower levels of hierarchy (like SRK does at root level)

■ Keys other than EK / SRK can leave TPM: ■ Encrypted under parent key before exporting

■ Parent key required for loading and decrypting

27

Page 28: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

KEY HIERARCHY

28

EK

SKSK

AIKAIK

AIK

SK

AIKs required for Remote Attestation

SigK

SRK

Page 29: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

AIK

29

■ Special key type for remote attestation: Attestation Identity Key (AIKs) ■ TPM creates AIK + certificate request

■ Privacy CA checks certificate request + EK, issues certificate and encrypts under EK

■ TPM can decrypt certificate using EK

■ AIK certificate: ■ „This AIK has been created by a valid TPM“

■ TPM identity (EK) cannot be derived from it

Page 30: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

Application

OS

Boot Loader

BIOS

BOOTING + TPM

30

PCR

OS

Boot Loader

BIOS

OS

Boot Loader

BIOS

4490EF83

Application Application

Authenticated

Booting

Page 31: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

AIKS & QUOTES

31

SystemAE58B991

Challenger

✹4490EF83

AE58B991

TPM_Quote(AIK, Nonce, PCR)

Remote Attestation with Challenge/Response

Page 32: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

SEALED MEMORY

32

■ Applications require secure storage

■ TPMs can lock data to PCR values: ■ TPM_Seal(): ■ Encrypt user data under specified storage key

■ Encrypted blob contains expected PCR values

■ TPM_Unseal(): ■ Decrypt encrypted blob using storage key ■ Compare current and expected PCR values

■ Release user data only if PCR values match

Page 33: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

SEALED BLOBS

33

Only the TPM_SEALED_DATA structure is encrypted

Page 34: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

FRESHNESS

■ Sealed data is stored outside the TPM

■ Vulnerable to replay attacks: ■ Multiple versions of sealed blob may exist

■ Any version can be passed to TPM

■ TPM happily decrypts, if crypto checks out

■ Problem: ■ What if sealed data must be current?

■ How to prevent use of older versions?34

Page 35: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

COUNTERS■ TPMs provide monotonic counters

■ Only two operations: increment, read

■ Password protected

■ Prevent replay attacks: ■ Seal expected value of counter with data

■ After unseal, compare unsealed value with current counter

■ Increment counter to invalidate old versions

35

Page 36: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TPM SUMMARY

■ Key functionality of TPMs: ■ Authenticated booting

■ Remote attestation

■ Sealed memory

■ Problems with current TPMs: ■ No (sensible) support for virtualization

■ Can be slow (hundreds of ms / operation)

■ Linear chain of trust36

Page 37: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TPMS IN NIZZA ARCHITECTURE

37

Page 38: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

App A

OS

Boot Loader

BIOS

BOOTING + TPM

38

PCR

OS

Boot Loader

BIOS

OS

Boot Loader

BIOS

App A App B App BApp BApp A

83E2FF9A

Page 39: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

MULTIPLE APPS

39

■ Use one PCR per application: ■ Application measurements independent

■ Number of PCRs is limited (TPM 1.2: max 24)

■ Use one PCR for all applications: ■ Chain of trust / application log grows

■ All applications reported in remote attestation (raises privacy concerns)

■ All applications checked when unsealing

Page 40: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

EXTENDING TPMS■ Idea: per-application PCRs in software: ■ Measure only base system into TPM PCRs

(microkernel, basic services, TPM driver, ...)

■ „Software TPM“ provides „software PCRs“ for each application

■ More flexibility with „software PCRs“: ■ Chain of trust common up to base system ■ Extension of chains of trust for applications

fork above base system ■ Branches in Tree of Trust are independent

40

Page 41: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

SOFTWARE PCRS

41

Microkernel

GUIMemory Network Secure Storage

I/O Support

TPM Driver

TPM Multiplexer

App

App B

App C

Loader

PCR: 4490EF83

PCR: 4490EF83 vPCR(A): 6B17FC28 vPCR(B): 153B9D14

Page 42: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TPM MULTIPLEXED

42

■ Operations on software PCRs: ■ Seal, Unseal, Quote, Extend

■ Add_child, Remove_child

■ Performed using software keys (AES, RSA)

■ Software keys protected with real TPM

■ Link between software PCRs and real PCRs: certificate for RSA signature key

■ Implemented for L4: TPM multiplexer Lyon

Page 43: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

A SECOND LOOK AT VPFS

43

Page 44: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

Sealed Memory

VPFS SECURITY

44

Inode File

FileFile Dir File

Dir

Dir

Dir

83E2FF9A

Page 45: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

VPFS TRUST

45

Microkernel

VPFS

TPM Driver

TPM Multiplexer

L4Linux

AppVPFS can access secrets only, if its own vPCR and the vPCR for the app match the respective expected values.

Page 46: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

VPFS SECURITY

46

■ VPFS uses sealed memory: ■ Secret encryption key

■ Root hash of Merkle hash tree

■ Second use case is remote attestation: ■ Trusted backup storage required, because

data in untrusted storage can be lost

■ Secure access to backup server needed

■ VPFS challenges backup server: „Will you store my backups reliably?“

Page 47: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

A CLOSER LOOK AT THE WHOLE PICTURE

47

Page 48: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

NITPICKER

48

Page 49: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

TRUST NITPICKER

49

■ User cannot just trust what he / she sees on the screen!

■ Solution: ■ Remote attestation

■ For example with trusted device: ■ User’s smartphone sends nonce to PC ■ PC replies with quote of nonce + PCR values ■ User can decide whether to trust or not

Page 50: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

A SECOND LOOK AT THE CHAIN OF TRUST

50

Page 51: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

CRTM■ When you press the power button ... ■ First code to be run: BIOS boot block

■ Stored in small ROM

■ Starts chain of trust: ■ Initialize TPM ■ Hash BIOS into TPM ■ Pass control to BIOS

■ BIOS boot block is Core Root of Trust for Measurement (CRTM)

51

Page 52: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

CHAIN OF TRUST

■ Discussed so far:

■ CRTM & chain of trust

■ How to make components in chain of trust smaller

■ Observation: BIOS and boot loader only needed for booting

■ Question: can chain of trust be shorter?

52

App

OS

Boot Loader

BIOS

Hardware

App

Page 53: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

DRTM■ CRTM starts chain of trust early ■ Dynamic Root of Trust for Measurement

(DRTM) starts it late: ■ Special CPU instructions (AMD: skinit,

Intel: senter)

■ Put CPU in known state

■ Measure small „secure loader“ into TPM

■ Start „secure loader“

■ DRTM: Chain of trust can start anywhere53

Page 54: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

DRTM

DRTM: OSLO

■ First idea: DRTM put right below OS

■ Smaller TCB: ■ Large and complex BIOS /

boot loader removed

■ Small and simple DRTM bootstrapper added

■ Open Secure Loader OSLO: 1,000 SLOC, 4KB binary size [6]

54

App

OS

Boot Loader

BIOS

Hardware

App

Page 55: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

DRTM CHALLENGE■ DRTM remove boot software from TCB

■ Key challenges: ■ „Secure loader“ must not be

compromised

■ Requires careful checking of platform state

■ Secure loader must actually run in locked RAM, not in insecure device memory

■ DRTM can also run after booting OS55

Page 56: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

DRTM: FLICKER

■ New DRTM can be established anytime

■ Flicker [7] approach: ■ Pause legacy OS

■ Execute critical code as DRTM using skinit

■ Restore CPU state

■ Resume legacy OS

56

App

Legacy OS

Boot Loader

BIOS

Hardware

App

Page 57: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

Flicker Applet

DRTM: FLICKER

57

App

Legacy OS

Hardware

App

Page 58: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

FLICKER DETAILS

■ Pause untrusted legacy OS, stop all CPUs ■ Execute skinit: ■ Start Flicker code as „secure loader“ ■ Unseal input / sign data / seal output

■ Restore state on all CPUs ■ Resume untrusted legacy OS ■ If needed: create quote with new PCRs ■ TCB in order of only few thousand SLOC!

58

Page 59: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

FLICKER LIMITS

59

■ Problems with Flicker approach: ■ Untrusted OS must cooperate

■ Only 1 CPU active, all other CPUs stopped

■ Secure input and output only via slow TPM functionality (seal, unseal, sign)

■ Works for some server scenarios (e.g., handling credentials)

■ Client scenarios require more functionality (e.g., trusted GUI for using applications)

Page 60: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

ISA EXTENSIONS■ Intel Software Guard Extensions (SGX): [9]

■ Secure enclaves: protected regions of address space for code, stack, heap

■ Sealed memory and remote attestation

■ ARM TrustZone: [8]

■ New processor mode for critical software

■ Private memory partition (accessible only in secure processor mode)

■ Can be used to implement software TPM60

Page 61: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

MOBILE DEVICES■ Simple implementations in smartphones, etc.

■ Non-modifiable boot ROM loads OS

■ OS is signed with manufacturer key, checked by ROM-based boot loader

■ Small amount of flash integrated into SoC

■ Cryptographic co-processor: software can use (but not obtain) encryption key

■ Not open: closed or secure boot instead of authenticated booting

61

Page 62: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

WHAT’S NEXT?

62

■ January 21, 2020: ■ Lecture „Resilience“

■ Paper Reading Exercise

Page 63: TRUSTED COMPUTING - TUD · 2020. 1. 14. · TPM is cryptographic coprocessor: RSA (encryption, signatures), AES (encryption), SHA-1 (cryptographic hashes) Other crypto schemes (e.g.,

TU Dresden Security Architectures

REFERENCES

■ [1] http://www.heise.de/security/Anonymisierungsnetz-Tor-abgephisht--/news/meldung/95770

■ [2] https://www.trustedcomputinggroup.org/home/

■ [3] https://www.trustedcomputinggroup.org/specs/TPM/

■ [4] https://www.trustedcomputinggroup.org/specs/PCClient/

■ [5] Carsten Weinhold and Hermann Härtig, „VPFS: Building a Virtual Private File System with a Small Trusted Computing Base“, Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008, 2008, Glasgow, Scotland UK

■ [6] Bernhard Kauer, „OSLO: Improving the Security of Trusted Computing“, Proceedings of 16th USENIX Security Symposium, 2007, Boston, MA, USA

■ [7] McCune, Jonathan M., Bryan Parno, Adrian Perrig, Michael K. Reiter, and Hiroshi Isozaki, "Flicker: An Execution Infrastructure for TCB Minimization", In Proceedings of the ACM European Conference on Computer Systems (EuroSys'08), Glasgow, Scotland, March 31 - April 4, 2008

■ [8] http://arm.com/products/processors/technologies/trustzone/index.php

■ [9] http://software.intel.com/en-us/intel-isa-extensions#pid-19539-1495

63