Andrew Lewis – Supervisions
Introduction to Security
Work for each supervision is given below.
Please email your solutions (PDF or text) 24 hours before the supervision, or put written work in the box at the CL student reception before midday the day before the supervision.
Supervision 1
Read slides 1–60, then answer the following questions:
- Short answer questions: (two marks each)
- Outline a technique for determining the key used for a Vigenére cipher, given a ciphertext based on long English prose plaintext.
- Why does a one-time pad provide perfect secrecy when used correctly?
- Why should a collision-resistant hash function have an output size of at least 2 n bits when a 2 n search is computationally sufficiently infeasible?
- How does the structure of DES allow for a compact hardware implementation?
- Do exercises 1, 5, 6, 8, 9 and 11 in the notes.
- Exam question: CST 2005-03-09 part a)
Secure hash functions - Exam question: CST 2006-04-10
Signatures, MACs and hash functions - Exam question: CST 2007-03-09
Birthday paradox, modes of operation, authentication, hash functions - Exam question: CST 2008-03-08
Sources of randomness, DES
Optional:
- Exam question: CST 2002-03-02
Block ciphers, Feistel networks, modes of operation, hash functions and digital signatures - Read this blog post about a Wordpress vulnerability. How would you make an administrator account on a vulnerable blog with open registration?
- Describe an application of hash trees in a peer-to-peer network, where a low-bandwidth channel is available to a trusted website (e.g. a tracking host) and a high-bandwidth channel is available to an untrusted peer on the network.
- Compare and contrast the security requirements (in terms of the aspects described on slides six to eight) of a subscription-based multiplayer online game for each of the parts relating to: a) paying subscriptions, b) logging into the game and c) playing the game. You may wish to consider these issues: players with multiple accounts, distributing the game over several servers, user created content bought/sold in the game and defence against malicious players/attackers. State any assumptions you are making about game policy.
Supervision 2
Read slides 45–106, then answer the following questions:
- Short answer questions: (two marks each)
- Why are website login passwords often concatenated with a constant value before hashing for storage in a database? Why is it also wise to iterate the hash function many times?
- Name two disadvantages of using the Kerberos protocol (slide 58) for password authentication. (Hint: consider attacks on the server.)
- Why is it important to validate user input from website forms which will be inserted into a database? Should this be done on the client in e.g. Javascript, or on the server, or both?
- Why do some colleges 'port scan' users' machines on their internal networks?
- What is the purpose of the 'sticky bit' in the Unix access control mechanism?
- Briefly summarise the steps involved in developing a security policy.
- Do exercises 18, 22 and 30 in the notes.
- Exam question: CST 2007-04-08 parts b) and c)
Software vulnerabilities - Exam question: CST 2006-03-09
Software vulnerabilities, network security - Exam question: CST 2008-04-07
Unix access control, software vulnerabilities, covert channels - Exam question: CST 2009-05-09
Block ciphers, access control
Optional:
- Read slides 107 onwards.
- Do exercise 28 in the notes.
- The Phorm system is used to target advertising for customers of an ISP: they gather information on browsing habits by redirecting all HTTP requests via their domain, webwise.net. Which potential vulnerability of the DNS system is particularly dangerous when Phorm is being used?
- Electronic voting is used increasingly in many countries. What kinds of attacks might be possible on electronic voting systems compared to the UK paper ballot system (including postal voting)? Consider voter coercion, attacks by political parties, covert channels and hardware/software vulnerabilities. Contrast advantages of a system using a TCB of 500 lines of open-source Python code with those of a proprietary solution written in 100000 lines of C code.
