Last unit we talked about HTTPS--
how to use the transport layer security protocols to first do a handshake,
to agree on our secret key, and then to have a secure channel between the client and server.
What these messages are we just drew as arrows, but what they really are--
if we think Internet, well, their message is going through routers on the Internet.
There may be many hops between the client and the server.
Along these hops will go packets.
Because they're using TLS, part of the packet is the encrypted message,
but another part of the packet is the routing information.
This is necessary so R1 knows the direction to send the message.
It needs to know that the goal is to reach the server.
Any eavesdropper who can see one of these messages, and it could be the first one
from the client to the first router or maybe she is intercepting
a message on some later routing path.
She can learn that the client and the server are talking to each other.
This is a form of traffic analysis where the important property we want to hide
is not the contents of the message, which if HTTPS is working correctly, are encrypted
and cannot be understood by Eve.
But what we really want to hide is the fact that this client is talking to the server
or that Alice is talking to Bob.
The mere presence of communication between two parties
is often enough to cause problems.
An example would be if the client is a dissident in some oppressive country
and is connecting to server, it's used by dissidents to communicate
or a server in another country that's viewed as a threat.
If we want to prevent this kind of traffic analysis, we want to prevent
adversaries who can observe messages on the routers from
being able to know which parties are communicating,
we need to do something else.
