Due:March 17, 2014 (no late assignments accepted) Points: 100
(25 points) Revisit the example for x := y + z in Section 16.1.1. Assume that x does not exist in state s. Confirm that information flows from y and z to x by computing H(ys | xt), H(ys), H(zs | xt), and H(zs) and showing that H(ys | xt) < H(ys) and H(zs | xt) < H(zs). (text, problem 16.1)
(25 points) Let L = (SL, ≤L) be a lattice. Define:
Prove that the structure IL = (SIL, ≤IL) is a lattice.
(text, problem 16.2, modified)
(25 points) In the Janus system, when the framework disallows a system call, the error code EINTR (interrupted system call) is returned.
When some programs have read or write system calls terminated with this error, they retry the calls. What problems might this create?
Why do you think the developers of Janus did not devise a new error code (say, EJAN) to indicate an unauthorized system call? Justify your answer.
(text, problem 17.5, modified)
(25 points) Consider the rule of transitive confinement. Suppose a process needs to execute a subprocess in such a way that the child can access exactly two files, one only for reading and one only for writing.
Could capabilities be used to implement this? If so, how?
Could access control lists be used to implement this? If so, how?
(text, problem 17.3)
(20 points) A company develops a new security product using the agile programming software development methodology (in the book, this is called “extreme programming”). Programmers code, then test, then add more code, then test, and continue this iteration. Every day, they test the code base as a whole. The programmers work in pairs when writing code to ensure that at least two people review the code. The company does not adduce any additional evidence of assurance. How would you explain to the management of this company why their software is in fact not “high assurance” software? (text, problem 18.7, modified)