Securing the communication and its content is an important concern in computer networks due to the fact that most of the physical infrastructure is publicly accessible and shared among the users. This fact brings all the security goals into play, which we have described in Chapter 2. Furthermore, we have reviewed in Chapter 1 that most of the protocols used to deliver messages between the end hosts are public. Thus, everyone is aware of the sequence of actions that will be performed while transmitting a message and could exploit this knowledge to attack the ongoing communication. This simply does not mean that nothing is secure in computer networks; protocols have evolved to overcome such deficiencies. However, the service model of the computer networks in general and the Internet in particular, is developed or evolved in such a way that it is impossible to eliminate all the weaknesses.