Midterm NS Note = Anzahl Pkte/48 x /4; 2. 4/4; 3. 4/4; 4. 4/ /16; 6. 16/16 2.Durchschnitt: 4.5
Aufgabe 1a) und 1b) Compression algorithms work very efficiently if i) the plaintext contains lots of repetitive pattern and ii) it is encoded in ASCII. Encrypted text is implicitly non redundant and binary which would offer little chance to compression algorithms to do their work. You need to know after the decryption how many ASCII characters the plain but compressed text contains in order to check (admittedly at very low security level) its integrity. For this reason this number is not specially protected.
Aufgabe 2a und 2b) a)Forbid HTTP GET to perform non-query: IETF RFC 2616: “ The GET and HEAD methods should not have the significance of taking an action other than retrieval. Those methods ought to be considered safe. This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested.” If look = 0 ! you delete data in the DB. b)PUT. The browser checks the repetition of a PUT-request, so the user is aware that something is going on ( Resend?).
Aufgabe 3a) and 3b) a)The #define keyword only substitute a ASCII-sequence with another one without checking anything. Use enum (it's a int type in C/C++) and can be verified at compile time. What happens if the function flushplay() does not work as intended? b)Use enum and check the return value of flushplay().
Aufgabe 4a) 4b) 4c) a)Sometimes, unprivileged users must be able to accomplish tasks that require privileges. An example is the passwd program, which allows you to change your password. Changing a user's password requires modifying the password field inthe /etc/passwd file. However, you should not give a user access to change thisfile directly - the user could change everybody else's password as well! b)Likewise, the mail program requires that you be able to insert a message into the mailbox of another user, yet you should not to give one user unrestricted access to another's mailbox.To get around these problems, UNIX allows programs to be endowed with privilege. Processes executing these programs can assume another UID or GID when they're running. A program that changes its UID is called a SUID program (set-UID); a program that changes its GID is called a SGID program (set-GID). A program can be both SUID and SGID at the same time. When a SUID program is run, its effective UID becomes that of the owner of the file, rather than of the user who is running it. This concept is so clever that AT&T patented it. c)Least privilege and separation (compartmentalization) of rights.
Aufgabe 5a) Message 1: A → S: A║B║N A A wishes to communicate with B via a TTP S. Message 2 : S → A: {N A ║B║K AB ║{K AB ║A}K BS }K AS S sends to A a session key K_{AB} and an encrypted version for B. Message 3 : A → B: {K AB ║A}K BS A sends to be the encrypted ticket (Kerberos!) she received from S. Message 4 : B → A: {N B }K AB B decrypts the session key and sends a nonce to A. Poor man authentication of B. Message 5 : A → B: {N B -1}K AB A decrypts the message and sends to B the (nonce -1). Poor man authentication of A.
Aufgabe 5b) 5c) 5d) 5e) b)Protocol to establish a symmetrical session key between two strangers using a TTP. Weak authentication of A in confront of B and vice versa. c)Many weak points: i.No time stamps are used : Oscar can try a replay attack with Message 4 anytime. ii.Oscar can play the role of S as long he owns K OS and A has K AO d)i. Replay, ii. Man-in-the-middle. e)Time stamps (see Kerberos) for i. and Message 1: A → S: {A║B║N A }K AS for ii.
Aufgabe 6a) and 6b) 1.Change the database, so that it contains the MD5 values of the modified files, rather than the original files. Defence: Physically separate the DB from your machine (simple: make a copy of the Tripwire-DB on a tape). 2.Change the function that calculates MD5, so that it returns the old values, rather than the new ones. Defence: JUnit test of MD5 on a separate standalone and protected machine with known vectors. 3.Hack the kernel so that the Tripwire program thinks it is reading the files in the /bin and /usr/bin directories, when it is in fact reading other files (presumably the original copies). Defence: Pretty difficult: use chroot or carefully observe the logfiles for suspect activity or use a secure OS-kernel. 4.Hack the Tripwire program, so that it says that nothing is wrong, when in fact something is. Defence: Use only an original tripwire executable from a personal memory sticker. 5.Hack Bob’s operating system, so that Bob sees the Tripwire program report that everything is okay, when in fact it is reporting something else. Defence: You are in a quite desperate situation.