1. Cyber security: Technology, Application and Policy| Modules, Topics, and Faculty
MODULE ONE: Introduction
The introductory module aims to give a broad survey of the course and of
cybersecurity challenges and opportunities.
Introduction: Cybersecurity (Howard Shrobe)
Learning from the past: Multics
Examples of what can go wrong
Capability architectures
Tagged architectures, including Memory safety, Type safety, Information flow, and
“Zero Kernel”
Security Overview (Srini Devedas)
Why security is a hard goal to achieve
Broad strategies that one can employ to create secure systems
MODULE TWO: Systems Security
The systems security module surveys the system development side of cybersecurity.
Hardware Architectures for Security (Howard Shrobe)
How novel hardware architectures can help to enforce the security properties that
Operating Systems and Programming Languages expect, including memory safety,
type safety, information flow, and access control
How to enforce properties in hardware can be much more systematic and
dramatically more efficient than enforcement by software alone
2. Operating Systems Security (Frans Kaashoek)
Taking a global, systems-wide view of security. Viewing security as a "negative goal,"
considering all possible paths to security breaches- permissions, access, trojans,
bugs, and many others
Discussion of various design approaches to securing systems, including complete
mediation, separation privilege, and minimizing the trusted computer base
Verifying Systems (Adam Chlipala)
How to formulate requirements on secure behavior of C-like programs as rigorous
logical formulas
How to argue that programs meet such requirements
Secure Programming Languages (Armando Solar Lezama)
Languages and low-level security properties
Languages and high-level security properties
Type safety
MODULE THREE: Cryptography and Network
This module is on algorithms for secure computation and security challenges in
network and protocol design.
Public Key Cryptography (Ron Rivest)
A quick overview of basic public-key cryptography, including the RSA and El-Gamal
public-key cryptosystems, relevant number theory, security definitions, and
complexity assumptions
A brief intro to more advanced notions, such as digital signatures, certificates,
homomorphic encryption, and elliptic curves
Multi-party Computation, Secret Sharing, Distributed Trust (Shafi Goldwasser)
A cryptographic paradigm shift: from communication of private data to computation
over private data
3. How to define secure multiparty computation and its applications
How to achieve multi-party secure computation through polynomial secret sharing
and computation on shares
Using the principles of multiparty computation to distribute trust and power
Homomorphic and functional encryption (Vinod Vaikuntanathan)
Solving the all or nothing paradigm of encryption - how do we keep data secure,
while allowing computations on underlying data: how to “have your cake and eat it
too”
Discussion on the developments in homomorphic encryption from the ‘80s through
today, and constructing partially and fully homomorphic crypto-systems
How functional encryption systems can grant third-party access to only the precise
information it needs to perform a task
Network Security and Protocol Design (Dave Clark)
What the different aspects of network security are and what mechanisms are used to
address them
Why the current state of network security is so poor
MODULE FOUR: Case Studies
This systems module discusses solutions to security in several domains.
Bitlocker (Nickolai Zeldovich)
Discussion of the challenges of building a disk encryption system using passwords,
removable devices and trusted hardware methods
Overview of the Trusted platform method and case study of how BitLocker uses this
method
How BitLocker actually encrypts data using the ‘poor man’s authentication’ method
Resilient Software (Martin Rinard)
An explanation of how errors can cause serious security vulnerabilities using
examples of buffer and integer overflow errors
Overview of methods to automatically find and patch these errors, including
transferring correct code from one application to another, and generating patches to
identify errors and produce the correct output
4. Discussion of how automating these difficult and expensive manual tasks can
produce software that is more reliable and secure, with enhanced functionality
Web security (Daniel Jackson)
What makes web applications especially vulnerable to attack
How attacks against web applications work: two broad classes
How to defend against attacks, at the design and implementation levels
Mobile Phone Security (Nickolai Zeldovich)
Discussion of the unique characteristics of a mobile phone that necessitate different
applications from existing desktop or web applications
Case study of how computer system security works in mobile phones, using the
Android's application model, and mechanisms used by Android to secure data while
allowing applications to share information
A look back on Android’s development: What worked? What didn’t work? What
changes have been made to overcome challenges?
MODULE FIVE: Policy
This systems module discusses policy aspects of cybersecurity.
The Landscape of Cyber Policy (Danny Weitzner)
Inquiring into the role public policy plays in sustaining and securing the Internet
Reviewing six key policy goals embodied in today’s digital communications
environment, how they arose, and what keeps them on track
Exploring the way progress requires policymakers to understand the background
against which new rules are made