CS334: Computer Security (Prof. Szajda) Final Exam December 8, 2008

Name:______

Note: This exam is open book, open note. You are, however, limited to your course papers, notes, slides, tests, etc. Under no circumstances can you be assisted by anyone other than myself. The Honor Code applies. Your completed test is to be returned to my office by no later than 11:00pm on Tuesday, December 16, 2008.

Please keep your answers concise and to the point (though one line answers rarely suffice). To be clear, when I say “Explain”, that means that a one line answer does not suffice, even if a one line answer technically “answers” the question. That does not, however, mean I require a book length answer. It means that you should consider the Other Student Criteria.

  1. (4 points) I have stated several times during lecture that security is really all about risk management. Explain.
  1. (4 points) What was the main point of Ken Thompson’s paper “Reflections on Trusting Trust”? How did he prove his point?
  1. (6 points) Consider your programming project. Despite the fact that transmissions are encrypted, the basic design is unacceptable from a security standpoint if you want to use these to transmit truly sensitive information. List at least three big reasons why. Be sure to explain why these issues are problematic.
  1. (4 points) Discuss the primary differences (including advantages and disadvantages) of signature-based versus anomaly-based intrusion detection systems.
  1. (4 points) Why specifically do we require a structure (such as a Fiestel cipher) for our ciphers? Be sure to specifically address the question of why we can’t use arbitrary mappings of, say, n bit strings to n bit strings.
  1. (4 points) In his paper “Cryptographic Design Vulnerabilities” (which you did not read) Bruce Schneier states that many of the more interesting attacks that he has launched are “against the underlying trust model of the system; who or what in the system is trusted, in what way, and to what extent.” Discuss why such trust-related information might be useful for someone designing an attack on a system (or, for that matter, trying to protect a system). Note that social engineering, though certainly related to trust, is only a small part of the issue. I mention this so you don’t think this is a social engineering question. It’s not.
  1. (6 points) Explain the primary differences between key management in public key and symmetric key cryptographic systems.
  1. (4 points) Explain the difference between unconditional security and computational security.
  1. (6 points) Why specifically do we require a structure (such as a Fiestel cipher) for our ciphers? Be sure to specifically address the question of why we can’t use arbitrary mappings of, say, n bit strings to n bit strings.
  1. (6 points) Consider authentication. Tell me how I would use public key cryptography to authenticate a message. That is, assuming that the public keys of parties A and B are well known, describe (or draw a diagram showing how) A can send a message M to B in such a manner that all of the following are simultaneously satisfied:
  2. B can guarantee the message has not changed in transit
  3. B can guarantee the message was sent by A (and not by anyone else).
  4. A can guarantee that no one but B can read M.
  1. (6 points) Explain what is meant by each of the following four secure system design principles. For each principle, describe why it is considered good security practice.
  2. Fail-safe Defaults
  3. Complete Mediation
  4. Psychological Acceptability
  1. (8 points) Give a high-level description of the operation of the Internet worm. Be sure to answer in particular:
  2. The specific programs that the worm exploited.
  3. How the worm exploited those programs.
  4. How the worm chose target machines to attack.
  5. The different phases of worm execution upon identification of a suitable target machine.
  1. (4 points) From the standpoint of the adversary, polymorphic viruses are an improvement over encrypted viruses in that they are more difficult to detect. Why exactly is this? How is it that polymorphic viruses evade detection?
  1. (5 points) What is meant by the term type-safe as applied to a programming language? How does strong typing help increase the security of a language? In particular, how might strong typing reduce the risk of buffer overflows?
  1. (3 points) What property of macro viruses make them potentially much more effective from an attacker's perspective?
  1. (6 points) Consider the following quote regarding passwords as a user authentication mechanism, ``Although secure in theory, human practice often degrades quality of this means of authentication.'' Discuss in some detail. Be sure to mention the fundamental conflict between the desire to allow longer passwords and the desire to implement practical security.
  1. (4 points) Consider the diagram below, which provides information on worm propagation rates.
  1. Explain why the curve for the conventional worm propagation rate could be expected to be is sigmoidal (i.e., has the shape it does). (And to ward off a wrong answer, do not say that it has this shape because the equation for it gives this shape – the question is really asking why that equation (which gives this shape) is appropriate. To answer the question, however, you really need not refer to the equation at all.)
  1. Why is it that Warhol type worms are able to propagate so rapidly?
  1. Why is it that virus (as opposed to worm) propagation rates are relatively difficult to model?

  1. (6 points) Consider the functions shown below, which are intended to generate a 16 byte key. Explain carefully why this implementation of a random number generator is not acceptable for use in security protocols.
  1. (6 points) Consider the oblivious transfer protocol detailed in the diagram below. Explain in some detail why this protocol satisfies the necessary requirements for an oblivious transfer. (Note: I am not looking for the kind of proof (e.g., using a simulation) that researchers in this subarea use. Rather, I’m looking for an explanation of why this protocol does what it is supposed to.)

  1. (4 points) Consider Yao’s garbled circuit design.
  2. Explain why Bob can decrypt one and only one line of the garbled truth table provided by Alice.
  1. What aspects of Yao’s protocol makes it impractical for so many real-world applications?