Secure Sockets Layer (SSL) Protocol: by Steven Giovenco
Secure Sockets Layer (SSL) Protocol: by Steven Giovenco
Secure Sockets Layer (SSL) Protocol: by Steven Giovenco
(SSL) Protocol
by Steven Giovenco
Overview
History Handshaking
SSL Handshaking
SSL Roles ChangeCipherSpec
Protocol Stack Protocol
The 4 Protocols More Handshaking
The Record Layer Alert and Application
Message Authentication Protocols
Code Benefits and Drawbacks
History
Need for secure web communication
Netscape
Worried especially about credit card transaction over
the web
Also worried about ease of implementation since
they wanted this to be industry-standard, not
proprietary
SSLv1 - 1994
SSLv2
SSLv2 also released in 1994
SSLv1 wasn’t widely implemented
Rules for establishing secure connection
Rules for public key encryption
Optional certificate-based authentication for
servers and even clients
Flexible
No specifically required encryption, compression, or
key generation algorithm
SSL Roles
Two roles
Client
Initiates communication, lists possibilities for choices
Server
Listens for client connections, chooses from possibilities
sent from clients
Both roles simply add Secure Sockets Layer to
protocol stack
SSL and the Protocol Stack
SSL between Transmission Control Protocol (TCP)
layer and Application layer
Actually 2 layers
Record
Secure Application
Can run under any protocol that relies on TCP,
including HTTP, LDAP, POP3, FTP
The Four Upper Layer Protocols
Handshaking Protocol
Establish communication variables
ChangeCipherSpec Protocol
Alert to a change in communication variables
Alert Protocol
Messages important to SSL connections
Application Encryption Protocol
Encrypt/Decrypt application data
Record Layer
Frames and encrypts upper level data into one
protocol for transport through TCP
5 byte frame
1st byte protocol indicator
2nd byte is major version of SSL
*Certificate
ServerKeyExchange
*CertificateRequest
ServerHelloDone
*Certificate
*CertificateVerify
ClientKeyExchange
ChangeCipherSpec
Finished
The Process Begins
Client Sends ClientHello
Highest SSL version supported
32-byte random number
SessionID
SessionID