BYU logo Computer Science
CS 465 Introduction to Security and Privacy

Midterm Preparation

Topics to study:

  • Concepts and principles
    • What are important questions to be considered when performing threat modeling?
    • How does risk assessment relate to threat modeling?
    • What are the components of DREAD?
  • Crytographic building blocks
    • What is the difference between information-theoretic security and computational security?
    • What are the different types of attacks that can be made on a cipher?
    • Why does symmetric encryption use block ciphers?
    • How can two peopele use basic challenge-response to prove ownership of a shared symmetric key?
    • How does hybrid encryption work? Explain what each party exchanges using cryptographic notation.
    • How do digital signatures work? Explain what each party exchanges using crytographic notation.
    • How does Diffie-Hellman establishe a shared key between two people?
    • Explain the properties of a cryptographic hash function.
    • Explain what an HMAC does. Use cryptographic notation to show what one party would send to another when using an HMAC.
  • User authentication
    • Explain how salting and hashing of passwords works, including what is stored in a password database.
    • What are the current NIST recommendations for password composition policies? Why have they made these recommendations?
    • Explain how entropy applies to passwords and why it may not accurately reflect how people choose passwords.
    • Explain the basics of how a federated identity system works.
    • How does a one-time password generator work? How does a TOTP generator work?
    • Why would a company or a user want to use two-factor authentication?
  • Access control
    • Describe the basics of how an operating system provides memory protection for processes.
    • Explain how ugo file permissions work in Linux.
    • Explain the purpose of the setuid bit in Linux and how it works.
    • How is Role-Based Access Control different from file-based access control? What are its advantages?
  • Software security
    • Give an example of a TOCTOU race condition.
    • Give an example of how an integer-based vulnerability.
    • Explain how a basic buffer overflow vulnerability works.
    • Explain how a heap-spraying attack works.
    • How does a canary defend against a stack-based buffer overflow vulnerability?
    • How does ASLR defend against a stack-based buffer overflow vulnerability?
  • Malicious software
    • What is the difference between a virus and a worm?
    • Give an example of a strategy an anti-virus program could use to detect malware. Give an example of a counter-attack a virus could use to defeat this detection measure.
    • Given Figure 7.5 from the book, explain how inline hooking works.
    • What is a botnet? Give an example of how an attacker can hide its command and control infrastructure from legal authorities.