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:
- Midterm Exam 1 exam1 - Thu, Sep 24 - 11:45am (during class, ~75 min)
- Midterm Exam 2 exam2 - Thu, Nov 5 - 11:45am (during class, ~75 min)
- Final Exam final - Tue, Dec 8 - 12:00pm (university assigned, ~150 min)
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