Understanding SSL (Secure Sockets Layer)

An Overview on Secure Sockets Layer (SSL)

The Secure Sockets Layer (SSL) protocol was developed by Netscape Communications, and enables secure communication over the Internet. SSL works at the transport layer of Transmission Control Protocol/Internet Protocol (TCP/IP), which makes the protocol independent of the application layer protocol functioning on top of it. SSL is an open standard protocol and is supported by a range of both servers and clients.

SSL can be utilized for the following:

SSL provides the following features for securing confidential data as it transverses over the Internet:

SSL works by combining public key cryptography and secret key encryption to ensure data confidentiality. The Rivest-Shamir-Adleman (RSA) public key algorithm is used to generate the certificates, and the public and private key pairs utilized in SSL. When a client Web browser connects to a Web server that is configured for SSL, a SSL handshake process is initiated with the Web server. The Web server at this stage has already obtained a server certificate from a certificate authority (CA).

A server certificate is a digital certificate which the server utilizes to verify its identity to other parties. Digital certificates form the basis of a Public Key Infrastructure (PKI) because these certificates use cryptographic algorithms and key lengths to protect data as it is transmitted over the network. The X.509 standard, derived from the X.500 directory standard, defines digital certificates. It describes a certificate as the means by which the distinguished name of the user can be associated with the public key of the user. The distinguished name of the user is defined by a naming authority. The distinguished name is used by the issuing Certificate Authority (CA) as the unique name of the user. A digital certificate contains information such as the certificate version, serial number, signature, issuer, and validity period, among other information.

A Certificate Authority (CA) can be defined as an entity that generates and validates digital certificates. The CA adds its own signature to the public key of the client. This essentially indicates that the public key can be considered valid, by those parties that trust the CA. Examples of third party entities that provide and issue digital certificates are VeriSign, Entrust and GlobalSign. Because these entities issue digital certificates for a fee, it can become a costly expense in a large organization. By using the tools provided by Microsoft, you can create an internal CA structure within your organization. You can use Windows Server 2003 Certificate Services to create certificates for users and computers in an Active Directory domain.

The SSL handshake process occurs between a client and Web server to negotiate the secret key encryption algorithm which the client and Web server will utilize to encrypt the data which is transmitted in the SSL session. The client Web browser initiates the handshake process by using a URL starting with the following: https://.

The SSL handshake process is described below:

  1. The client initiates the SSL handshake process by sending a URL starting with the following: https:// to the server.
  2. The client initially sends the Web server a list of each encryption algorithm which it supports. Algorithms supported by SSL include RC4 and Data Encryption Standard (DES). The client also sends the server its random challenge string which will be utilized later in the process.
  3. The Web server next performs the following tasks:
    • Selects an encryption algorithm from the list of encryption algorithms supported by, and received from the client.
    • Sends the client a copy of its server certificate.
    • Sends the client its random challenge string
  4. The client utilizes the copy of the server certificate received from the server to authenticate the identity of the server.
  5. The client obtains the public key of the server from the server certificate.
  6. The client next generates a premaster secret. This is a different random string which will in turn be utilized to generate the session key for the SSL session. The client then encrypts a different value called the premaster secret using the public key of the server, and returns this encrypted value to the server. This is accompanied with a keyed hash of the handshake messages, and a master key. The hash is used to protect the messages exchanged in the handshake process. The hash is generated from the former two random strings transmitted between the server and the client.
  7. The server sends the client a keyed hash of all the handshake messages exchanged between the two parties so far.
  8. The server and the client then generate the session key from the different random values and keys, and by applying a mathematical calculation.
  9. The session key is used as a shared secret key to encrypt and decrypt data exchanged between the server and the client.
  10. The session key is discarded when the SSL session either times-out or is terminated.

What is Transport Layer Security (TLS)

Transport Layer Security (TLS) is an Internet standard version of Secure Sockets Layer (SSL), and is very similar to Secure Sockets Layer version 3 (SSLv3).

The key differences between SSLv3 and TLS are:

SSLv3 uses the Message Authenticate Code (MAC) algorithm, while TLS utilizes a hash for Message Authentication Code, also known as HMAC. Because the differences between SSL and TLC are so few, the protocols are typically called SSL/TLS. While being quite similar, SSL and TLS do not interoperate. For a secure session, both parties must utilize either SSL or TLS.

SSL/TLS has the following layers.

The benefits associated with utilizing SSL/TLS are:

The shortcomings associated with deploying SSL/TLS are:

The different situations where an SSL/TLS implementation normally occurs:

Configuring Firewalls to Allow Encrypted Traffic

To enable SSL traffic to pass through the firewall, one of two methods can be used:

A Comparison of IPSec and SSL

The Windows Server 2003 Public Key Infrastructure (PKI) is based on the following standards:

As is the case with SSL, IPSec is also utilized to ensure authentication, data confidentiality, and message integrity. A few key differences between IPSec and SSL are:



Top 5 Free Networking Tools

Bookmark Understanding SSL (Secure Sockets Layer)

Latest Blog Posts


English English GermanGerman SpanishSpanish FrenchFrench ItalianItalian PortuguesePortuguese RussianRussian DutchDutch
GreekGreek HindiHindi JapaneseJapanese KoreanKorean ChineseChinese Chinese (Simplified)Chinese (Simplified) ArabicArabic

Copyright 2009 Tech-FAQ. All rights reserved. Privacy Policy.