Sunday, 25 October 2015

Security Sockets Layer (SSL)



SSL is an acronym for Secure Sockets Layer, a global standard security technology developed by Netscape in 1994. SSL is all about encryption. It creates an encrypted link between a web server and a web browser. The link ensures that all data passed between the web server and browser remains private and secure and is recognised by millions of consumers by a secure padlock which appears in their browser.


The SSL protocol is used by e-Business globally to protect their customers ensuring their online transactions remain confidential. In order to be able to use the SSL protocol, a web server requires the use of an SSL Certificate. Certificates are provided by Certification Authorities (CA) who in most cases also offers additional products and services to aid e-Businesses to demonstrate that they are trustworthy. Consumers have grown to associate the 'golden padlock', that appears within their browser display, as an indication of trust in the web site. This simple fact allows e-Business providers an opportunity to leverage that increased trust level to turn visitors into paying customers - so long as you know which type to choose.
SSL is about creating trust. Trust that your communications are not intercepted and, in the case of higher verification, assurance that you communicating with a trustworthy party. The Internet has successfully created many new global business opportunities for enterprises conducting online commerce. However, that growth has also attracted fraudsters and cyber criminals. Today's fastest growing threat is Phishing. This is where a fraudulent web site impersonating a legitimate business attempts to woe unsuspecting visitors into divulging personal information. The increasing awareness to this problem has presented an opportunity to E-commerce providers to capitalize on consumer fears by displaying trust indicators. Just like the real world, people need to be confident before they proceed down an unknown path.


SSL Architecture

SSL is designed to make use of TCP to provide a reliable end-to-end secure service.SSL is not a single protocol but rather two layers of protocols The SSL Record Protocol provides basic security services to various higher layer protocols. In particular, the Hypertext Transfer Protocol (HTTP), which provides the transfer service for Web client/server interaction, can operate on top of SSL. Three higher-layer protocols are defined as part of SSL: the Handshake Protocol, The Change Cipher Spec Protocol, and the Alert Protocol. These SSL specific protocols are used in the management of SSL exchanges and are examined later in this section.

 



Two important SSL concepts are the SSL session and the SSL connection, which are defined in the specification as follows.
1 Connection: A connection is a transport (in the OSI layering model definition) that provides a suitable   type of service. For SSL, such connections are peer-to-peer relationships. The connections are transient. Every connection is associated with one session.
A connection state is defined by the following parameters.

Server and client random: Byte sequences that are chosen by the server and client for each connection.
 Server write MAC secret: The secret key used in MAC operations on data sent by the server.
Client write MAC secret: The secret key used in MAC operations on data sent by the client.
Server write key: The secret encryption key for data encrypted by the server and decrypted by the client.
Client write key: The symmetric encryption key for data encrypted by the client and decrypted by the server.
Initialization vectors: When a block cipher in CBC mode is used, an initialization vector (IV) is maintained for each key. This field is first initialized by the SSL Handshake Protocol. Thereafter, the final ciphertext block from each record is preserved for use as the IV with the following record.
Sequence numbers: Each party maintains separate sequence numbers for transmitted and received messages for each connection. When a party sends or receives a change cipher spec message, the appropriate sequence number is set to zero. Sequence numbers may not exceed 264 – 1.

2   Session: An SSL session is an association between a client and a server. Sessions are created by the Handshake Protocol. Sessions define a set of cryptographic security parameters which can be shared among multiple connections. Sessions are used to avoid the expensive negotiation of new security parameters for each connection.
There are a number of states associated with each session. Once a session is established, there is a current operating state for both read and write (i.e., receive and send). In addition, during the Handshake Protocol, pending read and writes states are created. Upon successful conclusion of the Handshake Protocol, the pending states become the current states.
A session state is defined by the following parameters.
Session identifier: An arbitrary byte sequence chosen by the server to identify an active or resumable session state.
Peer certificate: An X509.v3 certificate of the peer. This element of the state may be null.
 Compression method: The algorithm used to compress data prior to encryption.
 Cipher spec: Specifies the bulk data encryption algorithm (such as null, AES,etc.) and a hash algorithm (such as MD5 or SHA-1) used for MAC calculation. It also defines cryptographic attributes such as the hash size.
 Master secret: 48-byte secret shared between the client and server.
 Is resumable: A flag indicating whether the session can be used to initiate new connections .

Between any pair of parties (applications such as HTTP on client and server), there may be multiple secure connections. In theory, there may also be multiple simultaneous sessions between parties, but this feature is not used in practice.
Architecturally, the SSL protocol is designed as a suite of protocols over TCP/IP. The design of the SSL protocol is often described as the "SSL Protocol Stack".  
The first layer of the SSL Protocol Stack over TCP/IP is known as the SSL Record Protocol. The SSL Record protocol is responsible for ensuring data security through encryption, and data integrity. The SSL Record protocol also handles checking of data and encapsulating it with appropriate headers for secure transmission under the TCP protocol.  
The second layer of the SSL Protocol Stack is positioned above the SSL Record protocol and is responsible for establishing secured connection with an application protocol like HTTP. The protocols at the second and the top layer of the SSL protocol stack include the SSL Handshake Protocol, the SSL Change Cipher protocol and the SSL Alert Protocol.  
These three protocols at the top layer of the SSL protocol stack offer session management, cryptographic parameter management and secure transfer of SSL messages between the client and the server