Lab 9: Midterm Feedback

Plus a Quick Less in Anonymity

Prelab:
Write up your comments regarding your TA, lab, and discussion section, as well as the course in general. Save the comments in a file in your 61C account. In this lab, you'll be filling out a second course survey, and you'll include these comments in the survey. Do not include your name, login, sid, etc. in the comments files

Background:

"But wait!" you say. "I think my TA sucks rocks. I couldn't possibly tell him that, he'd fail me!" And, although your perception of the powers that TAs hold is grossly overestimated, your worries would be unfounded because this lab will use what's known as a mix to anonymize the survey process. And, just in case you're worried about hurting our feelings, don't worry, we've got thick skins. The more honest you are, the better a job we can do of tailoring the class to you.

Now this may seem like a silly exercise, afterall, what does anonymization have to do with CS 61C? It is, in fact, quite relevant in light of our recent discussion of networks in general and TCP/IP in particular. Often, people hide behind an online login or a Hotmail account, and believe that they are anonymous, when, in reality, nothing could be further from the truth!

Remember that every machine connected to the internet has a unique IP address. Furthermore, every TCP/IP packet sent out on the internet contains both a source IP address and a destination IP address. Each machine the packet passes through on its way to its destination will make a notation of the packet in its logs. In light of these facts, it is trivial to find out what machine a packet originated from if you have access to the logs of any of the machines on its path, including the destination machine.

Typically, if you know what machine a packet originated at, it is also easy to find out who was responsible for sending that particular packet from the machine. If the machine is someone's personal machine, then, chances are, that person sent the packet. In practice, even public machines, such as the ones found on the on campus labs provide little anonymity. Labs usually have sign-in sheets, and these can be used to figure out who was using the computer and when. Even if the person who wishes to remain anonymous doesn't sign the sign-in sheet, others in the lab at the same time would likely be able to implicate the person trying to remain "anonymous" if questioned.

Since TCP/IP makes it very easy to trace IP addresses, and thus people's identities, across the internet, extraordinary measures are required to anonymize internet traffic. Mix networks are one such measure. They work as follows:

The network is composed of an arbitrary number of machines, which we'll refer to as nodes of the network. You send each packet or collection of packets to any node of your choosing in the mix network. In particular, you should send your packets to a node in the network that you somehow trust. Unless you have good reason to trust the first node you send your data to, there is no guarantee that the node won't do something malicious, like sending your data off to its destination without any anonymization. Upon receiving a packet, the mix node strips out the source IP address, and replaces it with its own. It then chooses at random to either send the packet to another mix node it knows, or to send the packet to its destination address.

When the destination machine receives the packet from the mix network, it only learns the IP address of the last machine in the mix chain, and the actual sender's identity is kept secret.

Lab Instructions:

  1. Open up the second 61C survey in a new browser window.
  2. Fill out the survey completely, except for the comments box at the bottom of the survey. Don't submit the survey yet!
  3. Choose one of the people sitting next to you at random to be your mix partner. Make sure you trust this person, because your mix partner could associate you with your comments to your TA. Ask your mix partner what his/her 61C login is.
  4. E-mail the comments file you wrote in your prelab as an attachment to your mix partner. Your partner will do the same.
  5. Open up your e-mail, and save the file your mix partner just sent you to your home directory. Name the file "mix-comments".
  6. Now, open up the mix-comments file you just saved, and paste it into the comments box of the (otherwise complete) survey. Click submit.
    1. Endnotes: In this lab, you only performed the mix step once. In practice, a mix with only one step can be untangled with some cleverness, and some knowledge of probability and statistics. Nevertheless, the mix performed today should be sufficient for 61C feedback needs.

      Additionally, if you cannot attend the lab to perform the mix, you should still fill out the survey. You may, however, omit the comments field if you do not feel comfortable leaving your comments when your identity is known.

      Comments to Dan. Mail him if you think this lab sucks.