Exams #

This is the exams info page for NC State’s Network Security (CSC 474) course.

This course includes up to three in-person paper exams to evaluate acquired content knowledge: exams 1 and 2 (“midterms”) and a final exam. The exams contribute 45% of the evaluation component in the following way:

  • 15% Midterm 1
  • 15% Midterm 2
  • 15% Final or average of Midterm 1 and Midterm 2

Optional Final Exam: Students who are happy with the average of their Exam 1 and Exam 2 grades may request to use that average in place of taking the final exam.

  • Students must explicitly inform the instructor of this choice (form announced / provided here closer to final exam)
  • Simply missing the final exam will result in a zero for the final exam.
  • This is not a “2 out of 3” setup, i.e., taking the final exam and getting a lower grade compared to the midterms will lower your overall exam grade component.

General:

  • Exams will be in-person, during specific time slots, on paper, closed-book (so no slide print-outs or open laptops).
  • The 2 Homeworks are intended to prepare you for some of the more complex tasks that might appear in the exams.
  • You will need / should bring a calculator for (some of) the exams.

Dates:

Allowed resources (same for all exams):

  • You may bring handwritten notes, limited to one double-sided letter-sized sheet.
  • You should bring a personal calculator without network or internet access. It will be useful for modular arithmetic (for example, in Diffie-Hellman or RSA problems).

Preparing for Exams #

There is an “Exam 1 Preparation” link in the “Exams” section of Moodle.

Lectures for Exam 1 #

Exam 1 will cover all lectures through User Authentication, except for the Authentication Protocol lectures.

I made a mistake and did not include crypto protocols on HW1, and I want you to have practice with them before you take an exam on them. Authentication Protocols will appear on Exam 2

  • Security Fundamentals
  • Introduction to Cryptography
  • Symmetric Cryptography
  • Hashes and MACs
  • Asymmetric Cryptography
  • Key Management
  • Authentication Protocols 1 (deferred to Exam 2)
  • Authentication Protocols 2 (deferred to Exam 2)
  • User Authentication

Learning Objectives #

The bullet points below specify the individual learning objectives for the different topic areas of this class.

Security Fundamentals #

  • Explain definitions of security.
  • Define adversary, trust, threat, and security models.
  • Define confidentiality, integrity, availability, asset, participant, vulnerability, threat, attack, defense, TCB, and risk.
  • Identify common attacker types, four attack archetypes, and five defense archetypes.
  • Differentiate the concepts of trusted and trustworthy.
  • Create and articulate security models for well-understood systems.
  • Define the principle of adequate protection.

Introduction to Cryptography #

  • Define cryptology, cryptography, cryptanalysis, plaintext, ciphertext, encryption, decryption, key, keyspace, and perfect secrecy.
  • Define Kerckhoffs’s principle and explain why cryptosystems should conform to it.
  • Identify key management problems.
  • Explain types of cryptanalysis.
  • Explain the one-time pad, how it offers perfect secrecy, and issues that complicate its use.

Symmetric Cryptography #

  • Distinguish stream ciphers from block ciphers.
  • Explain why stream-cipher reuse and IV reuse are catastrophic.
  • Describe the high-level structure of modern block ciphers.
  • Explain ECB, CBC, and CTR at a high level.
  • Identify major risks of confidentiality-only modes.
  • Choose between confidentiality-only and authenticated constructions for simple scenarios

Hashes and MACs #

  • Define preimage, second-preimage, and collision resistance.
  • Explain the birthday bound and its effect on hash security.
  • Identify common applications of hash functions.
  • Explain why encryption alone does not provide integrity or authenticity.
  • Build constructions that combine confidentiality, integrity, and authenticity.
  • Compare Encrypt-then-MAC, Encrypt-and-MAC, and MAC-then-Encrypt.
  • Explain why HMAC is needed and how it prevents length-extension attacks.
  • Recognize authenticated-encryption modes and nonce-misuse risks.

Asymmetric Cryptography #

  • Explain common uses of RSA.
  • Explain the components of RSA public and private keys and their relationship, including the common modulus.
  • Calculate a small RSA public/private keypair and encrypt/decrypt a message using RSA.
  • Identify and explain the hard problem underlying RSA.
  • Explain why textbook RSA is insecure and the intuition behind avoiding those problems.
  • Explain why we need to care about future quantum computing attacks now, even though no quantum computer can break RSA with reasonable-length keys.
  • Explain why asymmetric crypto operations are rarely performed directly on data, and what we do instead.
  • Explain digital signatures, common uses, and compute a digital signature given a small RSA public/private keypair.
  • Explain the differences between a digital signature and an HMAC and the concept of non-repudiation.

Key Management #

  • Distinguish key distribution from key agreement.
  • Explain the Diffie-Hellman key-agreement protocol.
  • Describe on-path, replay, and precomputation risks.
  • Explain perfect forward secrecy and its limits.
  • Interpret what a certificate does and does not prove.
  • Identify operational tradeoffs in revocation, expiration, pinning, and CA trust.
  • Compare manual verification, web-of-trust, PKI, and certificate transparency.

Authentication Protocols (1 and 2) #

  • Define authentication, credential
  • Distinguish authentication, identification, and authorization.
  • Explain why authentication is fundamental to security
  • Explain how HTTP cookies add state to a stateless protocol.
  • Critique cookie-based authentication designs.
  • Explain why Basic and Digest authentication are mostly historical mechanisms.
  • Design simple challenge-response protocols with freshness.
  • Identify replay, reflection, relay, and offline-guessing risks.
  • Explain how mutual authentication can establish a session key.
  • Explain how tickets can provide single sign-on (SSO)
  • Explain the functionality of the KDC and TGS in Kerberos
  • Explain OAuth2 at a high level
  • Explain why OIDC should be used instead of OAuth2 directly for authentication

User Authentication #

  • Identify three types of credentials, tradeoffs, and give examples
  • Identify and explain common problems, attacks and defenses related to passwords and secret questions, including online and offline brute-force attacks
  • Explain how salts and password stretching work, as well as how they mitigate brute-force attacks (and in what situations they help)
  • Explain the implications of password reuse (e.g., credential stuffing) and how password managers help
  • Identify examples of biometric authenticators and explain issues with their use
  • Identify examples of “something you have” authenticators, and distinguish bearer artifacts from proof-of-possession
  • Explain how passkeys and HW security keys prevent phishing
  • Discuss security trade-offs of passkeys and HW security keys
  • Define and explain multi-factor authentication
  • Explain the trade-offs of SMS as a second factor