certifying program execution with secure processorsbenjie/papers/hotos03/... · microsoft palladium...

29
Certifying Program Execution with Secure Processors Benjie Chen Robert Morris Laboratory for Computer Science Massachusetts Institute of Technology

Upload: others

Post on 02-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Certifying Program Executionwith Secure Processors

Benjie Chen Robert MorrisLaboratory for Computer Science

Massachusetts Institute of Technology

Page 2: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Motivation• All PCs may soon include trusted computing HW• Potential impact far greater than copy-protection!

Goal: explore appropriate hardwareand software design

Page 3: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Secure Remote LoginAlice @ Internet Cafe Trusted server

Is anyonemonitoring mykeystrokes?

Login session

Page 4: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Partial SolutionsAlice @ Internet Cafe Trusted server

One-time password;Personal smart-cardsSniffing login password

One-time phrase from serverFake login prompt

Encrypt session (e.g. ssh)Network sniffing

SolutionAttack

Page 5: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

We Won’t Try To Solve

• Modified keyboard or display– To steal keystrokes and data

• A camera can spy even personal laptops

Alice @ Internet Cafe Trusted server

Page 6: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Hard-to-Prevent Attacks

• Attacks by owner of the terminal– Install bad ssh software– Install bad operating system/device driver– Even w/ trusted OS, can snoop memory with DMA

Alice @ Internet Cafe Trusted server

Page 7: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Can Trusted Computing Help?

Page 8: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Microsoft Palladium (NGSCB)• Secure boot

– Keep fingerprints of BIOS,B/L, Nexus in secure chip

• Attestation– Nexus computes fingerprint

of secure app– Secure chip signs all

fingerprints• Keyboard driver in Nexus• Modified HW guides DMA

CPU Secure Chip

Nexus Kernel

Windows

Win App

Secure App

Win App

Secure App

Security boundary

Page 9: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Remote Login w/ Palladium

• Server looks for trusted– Chip, BIOS, boot loader, Nexus, ssh

Alice @ Internet Cafe Trusted serverNonce

Attestation certificate

One-time phrase

Is the terminal’s HW/SW trusted?

Page 10: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Palladium Pros

• Pros– Detect un-trusted chip, BIOS, boot loader– Detect un-trusted Nexus and ssh– Prevent DMA of memory of trusted apps

Page 11: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Palladium Pros and Cons

• Pros– Detect un-trusted chip, BIOS, boot loader– Detect un-trusted Nexus and ssh– Prevent DMA of memory of trusted apps

• Cons– Can you keep the Nexus small?

Page 12: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Palladium Pros and Cons

• Pros– Detect un-trusted chip, BIOS, boot loader– Detect un-trusted Nexus and ssh– Prevent DMA of memory of trusted apps

• Cons– Can you keep the Nexus small?– Can you verify Windows’ services?

Page 13: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Palladium Pros and Cons

• Pros– Detect un-trusted chip, BIOS, boot loader– Detect un-trusted Nexus and ssh– Prevent DMA of memory of trusted apps

• Cons– Can you keep the Nexus small?– Can you verify Windows’ services?– Non-DMA attacks on memory

Page 14: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

How Can We ImprovePalladium’s Security and

Verifiability?

Page 15: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Use Small m-kernel

• m-kernel allows attestation of all OS modules

fingerprint fingerprint fingerprint …

Keyboard driver

Network stack

Pager

ssh

fingerprint

User

Kernel

m-kernel

Page 16: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Flexible Security Boundary

• Secure Remote Login’s security boundary– ssh program– m-kernel– keyboard driver– BIOS, B/L, secure chip

• Some apps need more, some less– E.g. pager, network stack

Page 17: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

m-kernel Challenges

• Can we maintain a modular system?– Small kernel & OS modules - verifiability

Page 18: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

m-kernel Challenges

• Can we maintain a modular system?– Small kernel & OS modules - verifiability

• What about performance?– Careful engineering & SMT?

Page 19: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

m-kernel Challenges

• Can we maintain a modular system?– Small kernel & OS modules - verifiability

• What about performance?– Careful engineering & SMT?

• What about popular apps?

Page 20: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Un-trusted Apps Run In VM

fingerprint fingerprint fingerprint …

Keyboard driver

Pager

sshfingerprint

User

Kernel

m-kernel

Windows in VM

Page 21: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

XOM (Lie et al 00)Prevents DRAM Attacks

• Processor decrypts copy-protected program• HW/FW implements crypto-paging (Yee 94)• Cannot easily find out what OS is running

CPU

Cache DRAM

OS

App

Security boundaryEncryptedPlaintext

Page 22: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Borrow Crypto-Paging

• Use tamper-resistant processor– Cache is trusted and safe

• Run m-kernel in secure processor• m-kernel authenticates data to/from

DRAM

Page 23: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Memory Authentication

• Merkle tree– Tree of hashes– Parent authenticates children– Leaves authenticate physical

memory– Secure processor stores root– Trap handler uses/updates

tree when loading or evictingcached data

Page 24: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Cerium

CPUSecurity boundary

AuthenticatedPlaintext

Network stack

Keyboard driver

Appm-kernel

Cache DRAM

Page 25: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Secure Remote Login w/ Cerium

Alice @ Internet Cafe Trusted serverNonce

Page 26: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Secure Remote Login w/ Cerium

Alice @ Internet Cafe Trusted server

Certificate contains:nonce and fingerprints of BIOS, B/L, m-kernel, user-level keyboard driver, ssh

Nonce

Signed certificate

Page 27: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Secure Remote Login w/ Cerium

Alice @ Internet Cafe Trusted serverNonce

Signed certificate

One-time phrase

Page 28: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Cerium Enables Many Apps

• User can find out if a computerexecuted the user’s program faithfully!

• Many useful applications– Secure remote execution (e.g.

SETI@home)– Secure P2P network

Page 29: Certifying Program Execution with Secure Processorsbenjie/papers/hotos03/... · Microsoft Palladium (NGSCB) •Secure boot –Keep fingerprints of BIOS, B/L, Nexus in secure chip

Conclusion

• Trusted computing HW enables new apps• Cerium supports Secure Remote Login

– Merges good ideas from Palladium & XOM– Provides security and verifiability

• We should explore how to use trustedcomputing HW to build cool systems!