CS 334: Computer Security (Prof. Szajda) Exam 2 October 31, 2008 Name:____________________________________________________________ Note: This exam is open book, open note. You are, however, limited to your course papers, note, 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 5:00pm on Friday, November 7, 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. Questions 3 and 14 are each worth 8 points. All remaining questions are worth 6 points. 1. (6 points) What is meant by the term “security through obscurity”? Is this considered to be a good security technique? Be sure to explain your answer. 2. (8 points) Explain the primary differences between public key and symmetric key cryptography. Does public key cryptography effectively eliminate the key management problem? Explain. 3. (6 points) Consider the following classical substitution cipher to be used to encrypt English language ASCII text. The cipher chooses 26 distinct integers at random, and assigns one to each letter of the alphabet. The message is then encrypted by mapping individual letters to their associated integer. Is this cipher secure? Explain why or why not. If not, explain how an adversary might attempt to break the cipher. 4. (6 points) Consider the following scenario. An adversary is attempting to decrypt a message encrypted with AES. The adversary has the computational power to perform (and complete) an exhaustive key search. Is the adversary guaranteed to determine the key used to decrypt the message? Be sure to explain your answer (and be careful here). 5. (8 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. 6. (12 points) Explain in some detail (though without going into assembly code or the like) why buffer overflow attacks are possible, and how they are implemented. 7. (8 points) You have been approached by a journalist who is asking for your evaluation (as an expert in computer security) of DRE voting machines. What do you tell her? Be sure to discuss the goals of an election system and how they are met (or not, as the case may be) by current state-of-the-art DRE systems. 8. (9 points) Describe in some detail the RSA public-key encryption algorithm. Among the topics that should be discussed are: a. The way in which a person chooses a public-private key pair. b. The way in which a message is encrypted and decrypted. c. The reason why the scheme is secure. 9. (7 points) Describe in detail the Diffie-Helmann key exchange algorithm. 10. (8 points) In the paper “Why Cryptosystems Fail”, Ross Anderson presents a number of problems with the way security systems are typically designed, developed, deployed, and tested. In particular, discuss a. His assertion that “information security is at heart an engineering problem. The hardware and software products which are designed to solve it should in principle be judged in the same way as any other products: by their cost and effectiveness”. b. The problems that arise due to integration of multiple security software packages c. The inclusion of the “people” factor in the security equation d. The reasons why the security community lacks the type of useful feedback system found in the airline industry. 11. (8 points) In the paper “Cryptographic Design Vulnerabilities”, Bruce Schneier discusses (among other topics) attacks against trust models. In particular, he 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.” List and discuss at least four examples of how trust issues can cause the failure of a security system. 12. (6 points) Explain what is meant by the terms integrity, confidentiality, authentication, availability 13. The authors of a paper that described a security protocol for networked systems wanted to explain that their scheme assumed that data transmitted between any two nodes A and B, it arrived unchanged. They wrote: “Attacks that result from compromises of data in transit are beyond the scope of this paper---we assume that such data is encrypted.” The reviewers of the paper flagged this sentence, saying that it did not convey what they authors meant to convey. Explain why. 14. (4 points) What exactly is a man-in-the-middle attack? 15. (6 points) What is meant by the term “security through obscurity”? Is this considered to be a good security technique? Be sure to explain your answer. 16. (6 points) Explain the primary differences between public key and symmetric key cryptography. 17. (4 points) Explain the difference between unconditional security and computational security. 18. (6 points) Consider the following classical substitution cipher to be used to encrypt English language ASCII text. The cipher chooses 26 integers at random, and assigns one to each letter of the alphabet. The message is then encrypted by mapping individual letters to their associated integer. Is this cipher secure? Explain why or why not. If not, explain how an adversary might attempt to break the cipher. 19. (6 points) Consider the following scenario. An adversary is attempting to decrypt a message encrypted with DES. The adversary has the computational power to perform (and complete) an exhaustive search. Are they guaranteed to determine the key used to decrypt the message? Be sure to explain your answer (and be careful here). 20. (6 points) What exactly is steganography? disadvantages? What are its advantages and 21. (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. 22. (6 points) What was the main point of Ken Thompson’s paper “Reflections on Trusting Trust”? 23. (12 points) Explain in some detail (though without going into assembly code of the like) why buffer overflow attacks are possible, and how they are implemented. 24. 25. 26. 27. 28. 29. 30. (6 points) True or false. The discovery of effective public key cryptographic algorithms eliminated the need for sophisticated key distribution schemes. Be sure to explain your answer in some detail. 31. (15 points) Consider the following diagram that illustrates a standard symmetric key distribution protocol. For each step on the protocol, explain what information is being transmitted, why this information is necessary, and why this particular step in the protocol is necessary. 32. (6 points) True or false. Symmetric key encryption is the only tool required for message integrity, provided that the two communicating parties are the only ones that know the secret key K. Be sure to explain your answer. 33. (7 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: a. B can guarantee the message has not changed in transit b. B can guarantee the message was sent by A (and not by anyone else). c. A can guarantee that no one but B can read M. 34. (6 points) Answer the following three hash related questions. a. What is the difference between a message authentication code and a hash? b. What does it mean for a hash to have strong collision resistance? c. What does it mean for a has to have weak collision resistance? 35. (12 points) Explain in detail what a TCP sequence number attack involves. Be sure to discuss in particular: a. The TCP three-way handshake initialization protocol that two parties go through to set up a TCP connection. b. Why the granularity of the rate of change of the initial sequence number is more important than the average rate of change. c. Why is this attack not practical for an intruder targeting one of the Internet backbone routers? 36. (6 points) What exactly is a TCP source routing attack? Be sure to explain why it (sometimes) works. 37. The following passage is from a paper we read this semester. The passage concerns the use of one-time passwords in the login process. Explain what this passage is saying. 38. (6 points) Firewalls are an effective security tool, but regardless of the specific type of firewall, they do have limitations. Some, in fact, arguer that they simply don’t work. During our lectures on firewalls, we discussed four reasons why people feel this way. List and briefly discuss three of these reasons. 39. (6 points) Explain the “tiny fragment” technique for attacking a firewall. 40. (6 points) Discuss the advantages and disadvantages of packet filter style firewalls. 41. (12 points) Discuss the following intrusion detection issues: In the article “A survey of Intrusion Detection Techniques”, Teresa Lunt describes several potential approaches to intrusion detection. a. The difficulty of determining the structure and content of audit files. b. The advantages and disadvantages of statistical versus rule based approaches c. How does a model based approach improve on a rule-based approach? 42. (12 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. a. Fail-safe Defaults b. Complete Mediation c. Open Design d. Psychological Acceptability 43. What are some of the perceived advantages of autonomous agent-based intrusion detection systems, as compared with non agent-based systems? 44. What exactly is a honeypot? Why are they useful? 45. We discussed four reasons for not counterattacking when intrusions are detected. Give two of these reasons. 46. Give a short description of each of the following virus related terms: a. Boot sector infector b. Executable infector c. Multipartite virus d. TSR virus e. Stealth virus f. Excrypted virus g. Polymorphic virus h. Macro virus i. Logic bomb j. Bacteria 47. Give a detailed, though high-level, description of the operation of the Internet worm. Be sure to answer in particular: a. The specific programs that the worm exploited. b. How the worm exploited those programs. c. How the worm chose target machines to attack. d. The different phases of worm execution upon identification of a suitable target machine. 48. What specific properties of a macro virus allow them to spread relatively rapidly? 49. 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? 50. 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? 51. What property of macro viruses make them potentially much more effective from an attacker's perspective? 52. Explain in some detail how the Internet Worm worked. In particular, your discussion should include consideration of the particular routines and applications the vulnerability exploited, as well as the propagation mechanism (including the means through which potential new targets were chosen and the mechanics of infection). 53. 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. 54. You are trying to crack a target's password (which you may assume is at most 10 ASCII characters in length). Discuss your plan of attack including the specific strategies you will use, the order in which you will use them, and why you will use them. 55. Consider the diagram below, which provides information on worm propagation rates. 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.) Why is it that Warhol type worms are able to propagate so rapidly? Why is it that virus (as opposed to worm) propagation rates are relatively difficult to model? 56. 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. 57. 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.) 58. Consider Yao’s garbled circuit design. a. Explain why Bob can decrypt one and only one line of the garbled truth table provided by Alice. b. What aspects of Yao’s protocol makes it impractical for so many real-world applications?