Lab 8 - Secure Shell (SSH) Protocol

Due: Friday March 7, 2008 by 5:00pm

One network security related protocol not mentioned in the book is the SSH protocol. This protocol allows encrypted shell sessions and encrypted file transfer sessions between the client and server. One issue in unsecure LANs is that others can sniff your password (and anything sent between the client and server) when you use a plaintext application such as telnet or FTP. SSH provides an encrypted alternative to these applications so that sniffing is not as easy. Note: as with any cryptographic protocol, if someone figures out how to break the underlaying cryptographic algorithms, they can recover the plaintext from the encrypted session.

The two main developers of SSH servers are SSH Communications Security and OpenSSH. The original SSH code was written by Tatu Ylönen and released freely. Tatu Ylönen went on to form SSH Communications Security, which is a proprietary company. OpenSSH was developed from Tatu Ylönen's free code and is open source. There are also many free SSH clients for various platforms, such as the Putty program on the Windows machines in 414 and 409. There are also proprietary SSH clients for a variety of platforms.

Like many network related protocols, SSH was developed first then standardized. IETF formed a working group called secsh to develop the RFCs. The working group has now dissolved. The main RFCs out of that working group are:

Assignment

Read through the RFCs and answer the following questions:
  1. Does SSH encrypt the TCP/IP header or just the payload?
  2. In brief, what is the purpose of including a message digest (MAC)?
  3. What is a key exchange and why is it used in SSH?
  4. Does SSH support public key, symmetric key or both?
  5. Why is Diffie-Hellman key exchange appealing?