AEGIS: Secure Processor for Certified Execution

Slides:



Advertisements
Similar presentations
Vpn-info.com.
Advertisements

1 Implementing an Untrusted Operating System on Trusted Hardware David Lie Chandramohan A. Thekkath Mark Horowitz University of Toronto, Microsoft Research,
1 Architectural Support for Copy and Tamper- Resistant Software David Lie Computer Systems Laboratory Stanford University.
Physical Unclonable Functions and Applications
Implementing an Untrusted Operating System on Trusted Hardware.
Architectures for Secure Processing Matt DeVuyst.
Software Certification and Attestation Rajat Moona Director General, C-DAC.
Chapter 6 Limited Direct Execution
Title of Selected Paper: Design and Implementation of Secure Embedded Systems Based on Trustzone Authors: Yan-ling Xu, Wei Pan, Xin-guo Zhang Presented.
CS-550 (M.Soneru): Protection and Security - 1 [SaS] 1 Protection and Security.
1 Process Description and Control Chapter 3. 2 Process Management—Fundamental task of an OS The OS is responsible for: Allocation of resources to processes.
Advanced OS Chapter 3p2 Sections 3.4 / 3.5. Interrupts These enable software to respond to signals from hardware. The set of instructions to be executed.
CS-3013 & CS-502, Summer 2006 Memory Management1 CS-3013 & CS-502 Summer 2006.
1 OS & Computer Architecture Modern OS Functionality (brief review) Architecture Basics Hardware Support for OS Features.
Digital Signature Xiaoyan Guo/ Xiaohang Luo/
On-Chip Control Flow Integrity Check for Real Time Embedded Systems Fardin Abdi Taghi Abad, Joel Van Der Woude, Yi Lu, Stanley Bak, Marco Caccamo, Lui.
Computer Security Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Protection and the Kernel: Mode, Space, and Context.
80386DX.
Architecture for Protecting Critical Secrets in Microprocessors Ruby Lee Peter Kwan Patrick McGregor Jeffrey Dwoskin Zhenghong Wang Princeton Architecture.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
1 Architectural Support for Copy and Tamper Resistant Software David Lie, Chandu Thekkath, Mark Mitchell, Patrick Lincoln, Dan Boneh, John Mitchell and.
IVEC: Off-Chip Memory Integrity Protection for Both Security and Reliability Ruirui Huang, G. Edward Suh Cornell University.
1 NEW GENERATION SECURE COMPUTING BASE. 2 INTRODUCTION  Next Generation Secure Computing Base,formerly known as Palladium.  The aim for palladium is.
July 30, 2001Systems Architecture II1 Systems Architecture II (CS ) Lecture 8: Exploiting Memory Hierarchy: Virtual Memory * Jeremy R. Johnson Monday.
R Enabling Trusted Software Integrity Darko Kirovski Microsoft Research Milenko Drinić Miodrag Potkonjak Computer Science Department University of California,
4 th lecture.  Message to be encrypted: HELLO  Key: XMCKL H E L L O message 7 (H) 4 (E) 11 (L) 11 (L) 14 (O) message + 23 (X) 12 (M) 2 (C) 10 (K) 11.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
G53SEC 1 Reference Monitors Enforcement of Access Control.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
Operating Systems Lecture 14 Segments Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing Liu School of Software Engineering.
Processes and Virtual Memory
© Copyright 2009 SSLPost 01. © Copyright 2009 SSLPost 02 a recipient is sent an encrypted that contains data specific to that recipient the data.
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
Efficient Software-Based Fault Isolation Authors: Robert Wahbe Steven Lucco Thomas E. Anderson Susan L. Graham Presenter: Gregory Netland.
Architecture Support for Secure Computing Mikel Bezdek Chun Yee Yu CprE 585 Survey Project 12/10/04.
1 Network Security. 2 Security Services Confidentiality: protection of any information from being exposed to unintended entities. –Information content.
Memory Protection: Kernel and User Address Spaces Andy Wang Operating Systems COP 4610 / CGS 5765.
Translation Lookaside Buffer
Hardware-rooted Trust for Secure Key Management & Transient Trust
Introduction to Kernel
Trusted Computing and the Trusted Platform Module
Non Contiguous Memory Allocation
Processes and threads.
Memory Protection: Kernel and User Address Spaces
Protection and OS Structure
CS 6560: Operating Systems Design
Computer Communication & Networks
Trusted Computing and the Trusted Platform Module
Efficient Memory Integrity Verification and Encryption for Secure Processors G. Edward Suh, Dwaine Clarke, Blaise Gassend, Marten van Dijk, Srinivas Devadas.
NET 311 Information Security
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Secure Processing On-Chip
Bastion secure processor architecture
Computer-System Architecture
Module 2: Computer-System Structures
User-mode Secret Protection (SP) architecture
Process Description and Control
Translation Lookaside Buffer
Prof. Leonardo Mostarda University of Camerino
Sai Krishna Deepak Maram, CS 6410
Physical Unclonable Functions and Applications
Shielding applications from an untrusted cloud with Haven
Lecture 8: Efficient Address Translation
Module 2: Computer-System Structures
Memory Protection: Kernel and User Address Spaces
Presentation transcript:

AEGIS: Secure Processor for Certified Execution G. Edward Suh, Dwaine Clarke, Blaise Gassend, Marten van Dijk, Srinivas Devadas Massachusetts Institute of Technology BARC 2003: 1

Security Problems in Computing Music/Movie Conventional security Protect users from malicious software attacks; trusted users New security challenges Protect digital content from malicious users Digital Rights Management Software Licensing Collaboration of mutually untrusted computers/users Distributed Computing: SETI@home Peer-to-Peer Network Software-only solutions do not work Untrusted OS Physical attacks Make Illegal Copies Software Program Incorrect Results; Break the System Distributed Computing, Peer-to-Peer Network BARC 2003: 2

Architectural Support for Security Security advantages of hardware processors Physically secure Very difficult to change or monitor internal processor states Easier to trust a processor than a system A closed system; users cannot modify Only a few manufacturers Other ongoing attempts Microsoft Palladium Protects software from software Vulnerable to physical attacks XOM Architecture Software copy protection; encrypted software can only executes on one processor Security holes Have to encrypt both instructions and data  performance degradation BARC 2003: 3

Certified Execution: Can Processors GUARANTEE a valid program execution? A secure processor guarantees a valid execution and the identity of a program; no privacy Enable trusted collaboration of untrusted systems Protect against physical attacks and untrusted OS Tamper-evident execution Any software or physical tampering to alter the program behavior should be detected Required protections Initial start-up Registers on a context switch On-chip/Off-chip memory integrity Message authentication To be useful, a processor needs an authenticated communication with another system Outgoing messages: prove it is from a valid secure processor with a valid program Incoming message: check it is from a trusted party BARC 2003: 4

Secure Context Manager (SCM) A notion of secure processes Assign a secure process ID (SPID) for each certified process Secure context manager (SCM) Implements new instructions enter_cert: start certified execution sign_msg: sign a message Maintains secure table Even operating systems cannot modify Large # of certified processes Not enough on-chip space Store the table in memory with a cache in SCM Verify with hash trees Standard Processor SCM Processor Core Regs SPID … L1 Instruction cache L1 Data cache On-Chip L2 Cache Off-Chip Memory BARC 2003: 5

Protection Mechanisms: Initial Start-Up enter_cert code_end, data_start, data_end, sp_bound ‘enter_cert’ instruction Allocate a new entry in the SCM table Start protecting the program with the memory integrity verification mechanism Compute the hash of the code and initial data: H(Prog) Store H(Prog) in a secure table Check the stack pointer is above sp_bound (e.g. x86) Tampering of the initial PC Results in a different H(Prog) Will be detected!! Program .text enter_cert EKey1 = 0xA4523BC2E435D; EKey2 = 0xB034D2C654F32; E1Msg = … Secret=GetSecret(Challenge); Key1=Decrypt(EKey1, Secret); Key2=Decrypt(EKey2, Secret); CheckMAC(Key1, Key2, MAC); Msg = Decrypt(E1Msg, Key1); E2Msg = Encrypt(Msg, Key2); Output(E2Msg); H(Prog) SCM Table SHA-1 Code Segment Data Segment .data EKey1 = 0xA4523BC2E435D; EKey2 = 0xB034D2C654F32; EKey3 = 0xA4523BC2E435D; EKey4 = 0xB034D2C654F32; EKey5 = 0xA4523BC2E435D; EKey6 = 0xB034D2C654F32; E1Msg = … EKey7 = 0xA4523BC2E435D; EKey8 = 0xB034D2C654F32; ... BARC 2003: 6

Protection Mechanisms: Context Switching Untrusted operating systems can tamper with registers SCM remembers and verifies registers on a context switch Interrupt (Program  OS) Compute the hash of register values H(Regs) Store H(Regs) in the SCM table Resume execution (OS  Program) Compute the hash of restored register values H’(Regs) Verify the restored register values (H’(Regs)=?H(Regs)) Standard Processor SCM Processor Core SHA-1 Regs SPID … H(Prog) H(Regs) SHA-1 ≠? Exception!! L1 Instruction cache L1 Data cache On-Chip L2 Cache Off-Chip Memory BARC 2003: 7

Protection Mechanisms: On-Chip Caches Attacks on the on-chip caches No Physical attack is possible Untrusted OS and other processes can change the value in the cache Protect on-chip cache integrity with SPID tags When accessed, tag a cache block with the active SPID; 0 for regular processes For an access by a certified process, evict and reload a block if the tag does not match the active SPID  incur off-chip integrity checking Standard Processor SCM Processor Core Regs SPID … H(Prog) H(Regs) L1 Instruction cache SPID Tags L1 Data cache SPID Tags On-Chip L2 Cache SPID Tags Off-Chip Memory BARC 2003: 8

Protection Mechanisms: Off-Chip Memory Verify virtual memory space of each certified process should return the most recent value stored in that virtual address by the process Mechanisms Hash trees (HPCA’9) Check after each memory access Log hash (LCS TR 872) Check a sequence of accesses Optimistic execution Use values from memory before they are verified unless there is a signing instruction Background integrity checking Standard Processor SCM Processor Core Regs SPID … H(Prog) H(Regs) Hash L1 Instruction cache SPID Tags L1 Data cache SPID Tags On-Chip L2 Cache SPID Tags Integrity Checker Off-Chip Memory BARC 2003: 9

Message Authentication Outgoing messages: Processor  Another system A secure processor holds a private/public key pair (Sproc, Pproc) Never reveals the private key (Sproc) The processor signs a message (sign_msg M): {H(Prog), M}Sproc Unique for each program cause H(Prog) is always included Only signs for the processes in the certified execution mode Incoming messages: Another system  Processor Embed the user’s public key in a program Incoming messages are signed with the user’s private key Program with Puser {Message}Suser {H(Prog), Message}Sproc BARC 2003: 10

Performance Implication Major performance degradation is from off-chip integrity checking Start-up and context switches are infrequent no performance overhead for on-chip tagging Log Hash w/ infrequent siging: Worst case 15% degradation Most cases < 5% degradation Hash Trees: Worst case 50% degradation Most cases < 25% degradation BARC 2003: 11

Summary Many applications require protection from physical attacks and untrusted operating systems Architectural support is essential to achieve this goal A secure processor can provide trusted execution environment for a program with acceptable overhead Secure start-up, context switches, and memory integrity Processor signs a message with its private key Enables trusted collaboration of untrusted systems Ongoing work Complete architecture description (LCS TR 883 forthcoming) Certified execution architecture Add privacy to the certified execution architecture Required for DRM and software licensing Fast encryption mechanisms BARC 2003: 12

Questions? BARC 2003: 13