Cryptography Reference
In-Depth Information
used something else, for example, Putty ). What's more, it was easy to install,
well documented, and easy to use. Unfortunately, all of this applied to the
version mentioned here only; more about this further below. We will then call
it SSH1 .
Of course, we are interested in the cryptography of this software package.
SSH1 can use five different methods for symmetric encryption:
IDEA (in CFB mode);
Blowfish (in CBC mode);
DES (in CBC mode);
Triple-DES (in CBC mode); and
RC4 (the stream cipher discussed in Section 5.6; called 'arcfour' here).
You can select a method by configuration or switch on the command line. The
interface is very simple and visible from the program code. For example, it is
up to the user to integrate their own algorithms and to check the encryption
functions based on reference implementations. I'd like to see this in every piece
of cryptographic software.
Authentication and Key Exchange
The Secure Shell uses the RSA algorithm as its asymmetric method. The pro-
tocol it uses is interesting; it serves to authenticate computers and users, and
for secure session-key distribution. In detail, it looks like this:
1. Upon installation, the program creates a fixed pair of 1024-bit keys on
every participating computer. The public key is called 'public host key'
in an ASCII file that everybody can read. The private key is in a file
that only the superuser can access.
2. When starting the SSH daemon sshd (a program that should be started
up on system startup), an additional pair of 768-bit server keys is created.
The public part of it is the 'server key', while the private component is
not stored anywhere, but kept in memory. This key pair is changed at
hourly intervals.
3. The user, say Alice, additionally creates a 1024-bit 'user authentication
key'. Both components are saved to files, where the private key is IDEA-
encrypted with a passphrase, like in PGP.
Search WWH ::




Custom Search