CS 231: Computer Security

What happens in an SSH session?

This is just a reading assignment, but you need a little more info than just "read sections X, Y, and Z".

You're going to be reading the SSH specification RFC 4253: The Secure Shell (SSH) Transport Layer Protocol. This is a pretty long document, and reading and internalizing the whole thing isn't a reasonable expectation for this class. So you're going to have to target your reading, making careful use of the table of contents and any other resources you find to help you decide which pieces are helpful and which pieces you can and should skip. Also, you may find some useful information in RFC 4252: The Secure Shell (SSH) Authentication Protocol. As usual with CS topics, Wikipedia may be quite handy in pointing the way.

Here's your goal: figure out the steps of a remote login using SSH, with particular attention to the roles of Diffie-Hellman, RSA (or other public key), and prevention of both eavesdropping and MITM attacks.

On Wednesday, we'll also bring Wireshark into the discussion so we can watch a session. But in the meantime, I recommend that you run a few SSH sessions to see how they act. By having the user experience of an SSH login in your mind, you'll be better equipped to find what you need to find in the spec. Here are some recommendations.

One last suggestion: sections 4, 6, and 7 of RFC 4253 will give you a good start.