Recent Changes - Search:

Instructor

  • who: Michael Swift
  • where: Room 7369
  • when: Monday 11-12, Thursday 1:30-2:30
  • email: swift 'at' cs.wisc.edu
  • TAs

Lecture:

HomePage

Resources

edit SideBar

Hardware

TPM

  1. With a static root of trust, is there any software that must be trusted and cannot be verified? If so, which software and why?
  2. Suppose the OS is allowed to reset PCRs after initializing. How does this break attestation? Be specific
  3. What information does a client need to have to verify attestation of a remote operating system - to be sure it is running the correct software?
  4. Suppose you use a TPM to attest to remotely running code, and it is later attacked with a stack smash. Will someone using attestation discover the attack? Why or why not

SGX

  1. Why is the initial program loaded into an SGX enclave unencrypted?
  2. What does a client program have to verify before passing secrets to an SGX enclave?
  3. What state must be encrypted to protect the contents of an SGX enclave from the operating system or virtual machine monitor?
  4. Suppose code in an SGX enclave is waiting for data to arrive and calls the read() system call. What conditions must it check after the read() call returns to make sure it executes correctly?

Meltdown/Spectre

  1. On a machine with Meltdown, what capabilities does an attacker need to launch an attack?
  2. What can an attacker do with meltdown?
  3. Suppose you run on a system like Windows where the kernel does not map all of physical memory. Does this change the severity of the meltdown attack?
  4. Suppose with Spectre, you separate your code using encryption keys into a separate process from the application. Can spectre be used to compromise your secret keys? Explain.
  5. Suppose you have an instruction that can stop speculation. If you could modify the compiler, where would you insert this instruction to prevent spectre attacks?

Rowhammer

  1. What hardware capabilities does code have to have to launch a rowhammer attack?
  2. What information does code have to launch a double-sided rowhammer attack?
  3. How can a program increase the likelihood that a bit flip is:
    1. In memory controlled by the program?
    2. In memory controlled by the OS?
  4. Can you use rowhammer to defeat stack canaries? If so, how?
Edit - History - Print - Recent Changes - Search
Page last modified on April 24, 2019, at 03:14 PM