Public-Key Encryption Algorithms : SSL
SSL Handshake Protocol
Designed for the purpose for creating an initial agreement between a client and a server
on which cryptographic protocols, algorithms, methods, and parameters to use.
- Client Hello
client sends the server a message with names of algorithms to be used,
names of names of the compression algorithms used, and a random number.
ClientHello( CypherSuite[], CompressionMethod[], ClientRandom)
Three encryption protocols are defined in CypherSuite :
- the key exchange protocol - RSA, Diffie-Hellman
- the secret key algorithm - NULL, RC4, RC2, DES40, Fortezza
- the one-hash algorithm - NULL, MD5, SHA
- Server Hello
Upon receiving message from the client, the server matches a cryptographic algorithm
specified in the CypherSuite[], matches a compression method specified in CompressionMethod[]
and returns to the client the following information:
ServerHello( CypherSuite, CompressionMethod, ServerRandom )
From here on, the client and server have agreed upon a set of cryptographic and compression
algorithms.
If the server has a public-key certificate
- it sends the certificate to the client
- the client generates a master secret key and sends it to the server
encrypted with the certificate of the server.
If not, then a key exchange protocol is initiated (ie. Diffie Hellman).
- Last step in the handshake protocol is to send to each other a digest of the messages
sent so far encrypted with the newly established secret keys.
Copyright 1997 by Slackers Union. Comments should go to any of the
group members. Opinions reflected on this page are by no means
opinions
of UCSD. Go sue somebody else.
Last Modified: June 1, 1997
|