CS 426, Spring, 2008, HW 3. Due February 11 , 2007, 5:20 PM.

In this homework, you will experiment with a covert storage channel.

Create a covert storage channel in which the sender creates a flag file
to indicate that the next bit of a message is ready. The receiver reads
the bit and then deletes the flag file. After the flag file is gone the
sender can send another bit of a message. The value (0 or 1) of the bit sent is 
indicated by the presence or absence of a bit file, respectively, created and
deleted by the sender. The bit file is different from the flag file.
Neither the flag file nor the bit file can have anything written in them;
their presence or absence is all that matters.

Measure the throughput of your sender/receiver system when sending the
contents of a file. (The message transmitted probably should be several
kilobytes long.)

Then modify your programs to send and receive whole bytes at once
indicated by the presence of a subset of eight different files in place
of the bit file. Choose one particular byte to indicate "EOM."
Measure the throughput of this system.

Remember that no information is stored in any of these files.
Information is passed only through the existence or absence of files.


Turn in the following documents all together using "turnin".

1. A listing of both sets of your send and receive programs, including a 
README file describing how to compile and run the program.

2.  Make a file named answers.pdf or answers.txt (not answers.doc, as 
I cannot always open it in Unix mode) to answer this - A 3-line description 
of how you measured the throughput of the two systems.

3.  In answers.pdf or answers.txt: The measurements of throughput for each system.

4.  In answers.pdf or answers.txt : a 5-6 line answer for the following. 
Suppose you were designing a file system and an operating system which 
would resist covert storage channel attacks like the one you
just created. Tell what changes you would make in the file system and/or operating 
system to sharply reduce the throughput of a covert storage channel. 
How would your modification(s) affect legitimate file activity?