Instructor | Chris Fletcher cwfletch@illinois.edu |
---|---|
Location |
Siebel |
Lecture Times |
Tuesday and Thursday, 12:30pm - 1:45pm |
Office | Siebel 4106 |
Office Hours |
Wednesdays 3pm-4pm or by appointment |
This course will bring students to the cutting-edge in secure processor architecture by examining the interplay between hardware, software and applied cryptography in these systems. The first several classes will feature lectures from the instructor: to give background on secure hardware systems from the standpoints of Computer Architecture and Applied Cryptography. The body of the course will be readings and discussion of top papers in the field. Course assignments will give students hands-on experience with the Intel Software Guard Extensions (SGX) SDK, building secure applications and evaluating their security. The end of semester will culminate in an original research project.
This class is primarily intended for students who would like to conduct secure systems research where hardware plays a first-class role. It will also appeal to students with a casual interest in this hot topic, or who want to do research in computer security generally.
Week 1 | ||||
Introduction/background | Discussion lead | |||
---|---|---|---|---|
Aug 29 | Lecture: Course introduction, syllabus, introduction to Secure Processors [Slides] |
Additional reads: - On the Impossibility of Cryptography Alone for Privacy-Preserving Cloud Computing. Name says it all; also discussion of limitations in hardware. |
Chris | |
Aug 31 | Lecture: Refresher: Computer Architecture [Slides] |
Additional reads: - Intel SGX explained. Pages: 2-31, 42-50 |
Chris | Week 2 |
Sept 5 | Lecture: Refresher: Applied Crypto for Secure Processors [Slides] |
Additional reads: - Intel SGX explained. Pages: 31-42 |
Chris | |
Intel SGX and Enclave Programming | ||||
Sept 7 | Lecture: SGX Deep Dive [Slides] | ***See also, Kamran's video recording of this lecture.*** Additional reads: - Intel SGX explained. Pages: 50-118 - Innovative instructions and software model for isolated execution. First paper describing SGX. - Using innovative instructions to create trustworthy software solutions. First paper discussing SGX usage. - Intel Software Guard Extensions (Intel SGX) Support for Dynamic Memory Management Inside an Enclave. First paper on SGX 2.0. |
Chris | Week 3 |
Sept 12 | Enclave programming [Slides] |
Discussion paper: - Ryoan: A Distributed Sandbox for Untrusted Computation on Secret Data. Additional reads: - Shielding Applications from an Untrusted Cloud with Haven. LibOS (heavyweight) granularity enclaves. - SCONE: Secure Linux Containers with Intel SGX. Container (featherweight) granularity enclaves. - PANOPLY: Low-TCB Linux Applications with SGX Enclaves. POSIX-API (leightweight) granularity enclaves. - Glamdring: Automatic Application Partitioning for Intel SGX. Automatic application partitioning to enclaves. |
John Alsop | |
Sept 14 | Enclave foundations [Slides] |
Discussion paper: - A Formal Foundation for Secure Remote Execution of Enclaves. Additional reads: - Foundations of Hardware-Based Attested Computation and Application to SGX. Name says it all; focus is not on machine checkable proofs. |
Riccardo Paccagnella | Week 4 |
Sept 19 | Virtual memory attacks [Slides] | ***Hardware covert channel/SGX lab out. Lab document, starter code, hello world SGX enclave.*** Discussion paper: - Leaky Cauldron on the Dark Land: Understanding Memory Side-Channel Hazards in SGX. Additional reads: - Controlled-Channel Attacks: Deterministic Side Channels for Untrusted Operating Systems. Nascent memory side-channels on SGX. |
Vincent Bindschaedler | |
Shared Resource Attacks and Defenses | ||||
Sept 21 | Shared resource attacks [Slides1, Slides2] | ***Paul and Elizabeth will present DRAMA and Cache storage channels back to back, then we will discuss both. Please read/summarize both for the class..*** Discussion paper: - Cache Storage Channels: Alias-Driven Attacks and Verified Countermeasures. - DRAMA: Exploiting DRAM Addressing for Cross-CPU Attacks. Like a cache timing attack, but on DRAM. Additional reads: - FLUSH+RELOAD: a High Resolution, Low Noise, L3 Cache Side-Channel Attack. A more gentle introduction to cache timing attacks. |
Paul Murley, Elizabeth Reed | Week 5 |
Sept 26 | Application-level attacks from shared resource attacks [Slides] |
Discussion paper: - Cache Template Attacks: Automating Attacks on Inclusive Last-Level Caches. Additional reads: - The Spy in the Sandbox: Practical Cache Attacks in JavaScript and their Implications. Launch a cache timing attack on any machine, from the browser. |
Azin Heidarshenas | |
Sept 28 | Co-location in a cloud environment [Slides1, Slides2] | ***Serif Yesil will present Cross-Tenant... in the second half of lecture.*** Discussion paper: - Hey, You, Get Off of My Cloud: Exploring Information Leakage in Third-Party Compute Clouds. - Cross-Tenant Side-Channel Attacks in PaaS Clouds. Two for one: more information on co-location; a new model for launching application-level attacks (not histogram based). |
Bingzhe Liu, Serif Yesil | Week 6 |
Oct 3 | Hardware mitigations to shared resource attacks [Slides] |
Discussion paper: - Secure Hierarchy-Aware Cache Replacement Policy (SHARP): Defending Against Cache-Based Side Channel Atacks. Additional reads: - New cache designs for thwarting software cache-based side channel attacks. The first HW-based proposals for defeating cache-based timing attacks. |
Mengjia Yan | |
Oct 5 | Software mitigations to shared resource attacks [Slides] |
Discussion paper: - Raccoon: Closing Digital Side-Channels through Obfuscated Execution. Scaling instruction-level obliviousness to handle program memory (also on commodity machines). |
Jake Bailey | Week 7 |
Oct 10 | Language support to prevent shared resource attacks [Slides] |
Discussion paper: - Caisson: A Hardware Description Language for Secure Information Flow. Additional reads: - A Hardware Design Language for Timing-Sensitive Information-Flow Security. SecVerilog: language enhancements for timing attack-awareness in Verilog HDL. |
Giordano Salvador | |
Oct 12 | Software mitigations to shared resource attacks (redux) [Slides] |
Discussion paper: - Oblivious Multi-Party Machine Learning on Trusted Processors. |
Abdulrahman Mahmoud | Week 8 |
Oct 17 | Class cancelled - Chris out at MICRO | ***Final project proposals due. Proposal guidelines.*** |
||
Oct 19 | Guest Lecture: Frank McKeen, Intel (inventor and lead architect of Intel SGX) |
Week 9 | ||
Bootstrapping trust | ||||
Oct 24 | Authentication [Slides] | ***Lab due.*** Discussion paper: - Silicon physical random functions. Additional reads: - Enhanced privacy id from bilinear pairing. Design of Intel SGX's EPID authentication scheme. |
Jose Rodrigo Sanchez | |
Oct 26 | Sources of randomness [Slides] |
Discussion paper: - Power-up SRAM State as an Identifying Fingerprint and Source of True Random Numbers. Additional reads: - FPGA-based True Random Number Generation using Circuit Metastability with Adaptive Feedback Control. Name says it all; how to extract randomness from low-level circuit behaviors. |
Sze Chuen Tan | Week 10 |
Isolation Potpourri | ||||
Oct 31 | Application-level isolation ala TXT [Slides] |
Discussion paper: - Flicker: An Execution Infrastructure for TCB Minimization. |
Tianyuan Liu | |
Nov 2 | Pre/post-cursors to SGX [Slides1, Slides2] | ***Adel will present Sanctum in the second half of lecture.*** Discussion paper: - Scalable architectural support for trusted software. - Sanctum: Minimal Hardware Extensions for Strong Software Isolation. Additional reads: - SurfNoC: A Low Latency and Provably Non-Interfering Approach to Secure Networks-On-Chip. Simple and effective throughout optimizations for NoC non-interference (in some sense finer-grain than Sanctum). |
Dimitrios Skarlatos, Adel Ejjeh | Week 11 |
Memory Attacks and Defenses (of the code injection variety) | ||||
Nov 7 | Memory corruption overview [Slides] |
Discussion paper: - SoK: Eternal War in memory. Additional reads: - If you liked the SoK, see its many related papers on CFI, DFI, etc. |
Wajih Hassan | |
Nov 9 | Lightweight hardware protections [Slides] |
Discussion paper: - HDFI: Hardware-Assisted Data-Flow Isolation. |
Ben Schreiber | Week 12 |
Nov 14 | Heavierweight hardware protections [Slides] |
Discussion paper: - Watchdog: Hardware for Safe and Secure Manual Memory Management and Full Memory Safety. Additional reads: - Architectural Support for Software-Defined Metadata Processing. More flexible (but heavier weight) take on in-HW instruction-level checking than Watchdog. - Beyond the PDP-11: Architectural support for a memory-safe C abstract machine. CHERI project's (clean slate design) take on supporting memory safety in C. |
Hadi Asghari-Moghaddam | |
Nov 16 | Project checkpoint - in class presentations | Week 13 | ||
Nov 21 | No class - thanksgiving | |||
Nov 23 | No class - thanksgiving | Week 14 | ||
Physical Attacks and Defenses | ||||
Nov 28 | Differential X analysis [Slides1, Slides2] | ***Omri Mor will present Beyond the PDP-11... in the second half of lecture.*** Discussion paper: - Differential Power Analysis. Additional reads: - Differential Fault Analysis of Secret Key Cryptosystems. Companion classic paper; based on fault injection. |
Omri Mor, Hyun Bin | |
Nov 30 | Hardware trojans [Slides] |
Discussion paper: - A2: Analog Malicious Hardware. Additional reads: - Hardware Trojan Attacks: Threat Analysis and Countermeasures. Survey for hardware trojans. - Verifiable ASICs. Assume HW is untrustworthy, ala verified outsourced computation. |
Adam Auten | Week 15 |
Dec 5 | Attacks on DRAM [Slides1, Slides2] | ***Thomas Yurek will present Lest we forget... in the second half of lecture.*** Discussion paper: - Rowhammer.js: A Remote Software-Induced Fault Attack in JavaScript. - Lest We Remember: Cold Boot Attacks on Encryption Keys. A modern look at cold boot attacks. |
Apostolos Kokolis, Thomas Yurek | |
Dec 7 | External memory protection [Slides] |
Discussion paper: - Design and Implementation of the Ascend Secure Processor. - Ascend Whitepaper. Additional reads: - A Memory Encryption Engine Suitable for General Purpose Processors. Design of Intel SGX's memory encryption engine (MEE). - CaSE: Cache-Assisted Secure Execution on ARM Processors. How to build an MEE in software on ARM processors. |
Kartik Hegde | Week 16 |
Dec 12 | On-chip memory protection [Slides] |
Discussion paper: - Inspection Resistant Memory: Architectural Support for Security from Physical Examination. |
Jiyong Yu | |
Dec 14 | (READING DAY, NO CLASS) | ***Final project due (11:59p).*** |
||
December 13, 7-9p: Final project presentations. Location TBA. |