1 / 9100%
A Survey on SSL/ TLS and their Vulnerabilities
A Survey on SSL/ TLS and their Vulnerabilities
Abstract
SSL/TLS is a secure transport and session protocol designed to provide confidentiality and message
integrity to weab traffic, using a combination of cryptography and hashing techniques known as a
cypher suite. Established in the mid-1990s, SSL/TLS has undergone many changes due to
vulnerabilities exploited throughout the years. SSL/TLS is established with a handshake that
determines what cipher suite and master secret can be used, and then uses digital certificates to make a
connection between a client and server. Using the agreed-upon cipher suite, SSL/TLS uses
cryptography to encode data and hashing algorithms in order to maintain message integrity. As web
traffic increasingly relies upon SSL/TLS, many vulnerabilities have been discovered, and SSL is no
longer safe to use. Many threats have emerged, with the Raccoon Attack being the most recent. To
mitigate these attacks when possible, using TLS 1.3 is recommended, and using any version of TLS
prior to 1.2 should be avoided.
Keywords: Secure Socket Layer, Transport Layer Security, Compression Algorithms,
Message Authentication Code, SSL/ TLS Attacks
1.1 INTRODUCTION
Secure Socket Layer (SSL)/ Transport Layer Security (TLS) protocols are used to provide reliable
services over transport layer protocol G. Paterson (2012) .SSL has gone through several up
gradation such as SSLv1.0, SSLv2.0, and SSLv3.0 etc. SSLv3.1 is basically called as TLSv1.0 which
provides backward compatible with previous version of SSL.SSL protocol works on two layer of
services where first one is SSL connection and second one is SSL session. SSL connection works at
transport layer to establish links between clients and servers. Peer to peer associations allow sessions to
be built up which is ephemeral. Each SSL session is associated with one SSL connection. SSL/ TLS
handshaking protocol is used to create session by exchanging a couple of parameters (e.g., random
number, session ID, cipher suite, compression techniques etc.). Each session is maintained by two
states mainly. Session state deals with a number of parameters such as session identifier, X509
1
A Survey on SSL/ TLS and their Vulnerabilities
certificate, compression techniques, cipher specification, master secret etc. connection state parameter
includes server and client send MAC secrets, initialization vectors, sequence numbers etc.
1.1.1 SSL/TLS Development Timeline
Fig 1.SSL/TLS Development Timeline TLS
1.2 and 1.3 provide:
Confidentiality Symmetric key encryption for application data. Typically, Advanced
Encryption Standard (AES).
Integrity Authenticated Encryption with Additional Data (AEAD). Usually AES-GCM
(Galois/Counter Mode).
Authentication X509 certificates signed by a mutually trusted third party. Typically, server
authenticated only.
Protocols That Use TLS
HTTPS
Hyper Text Transfer Protocol is the most common TCP protocol that uses SSL/TLS
SMTPS
Simple Mail Transfer Protocol uses SSL/TLS to send secure messages from one mail server to
another
POP3S
Post Office Protocol allows mail to be stored on a server and downloaded to a recipient’s email
client on demand
2
A Survey on SSL/ TLS and their Vulnerabilities
IMAPS
Internet Message Access Protocol allows a user to access email messages remotely
FTPS
File Transfer Protocol is a network protocol used for the transfer of computer files from a server to
a client
SSL (Secure Sockets Layer) certificate is a digital certificate used to secure and verify the identity of a
website or an online service. The certificate is issued by a trusted third-party called a Certificate
Authority (CA), who verifies the identity of the website or service before issuing the certificate.
The SSL certificate has several important characteristics that make it a reliable solution for securing
online transactions:
1. Encryption: The SSL certificate uses encryption algorithms to secure the communication between
the website or service and its users. This ensures that the sensitive information, such as login
credentials and credit card information, is protected from being intercepted and read by
unauthorized parties.
2. Authentication: The SSL certificate verifies the identity of the website or service, ensuring that
users are communicating with the intended party and not with an impostor. This provides assurance
to users that their information is being transmitted to a trusted entity.
3. Integrity: The SSL certificate uses message authentication codes (MACs) to detect any tampering
with the data during transmission. This ensures that the data being transmitted is not modified in
any way, preserving its integrity.
4. Non-repudiation: SSL certificates provide non-repudiation of data, meaning that the recipient of the
data cannot deny having received it. This is important in situations where the authenticity of the
information needs to be established, such as in e-commerce transactions.
5. Public-key cryptography: SSL certificates use public-key cryptography for secure key exchange
between the client and server. This allows the client and server to securely exchange encryption
keys, ensuring that the encrypted information can only be decrypted by the intended recipient.
6. Session management: SSL certificates allow for the management of secure sessions, allowing for
the resumption of secure sessions after interruption. This helps to reduce the overhead of
establishing a new secure connection each time a user accesses a website or service.
7. Certificates issued by trusted CAs: SSL certificates are issued by trusted CAs, who are responsible
for verifying the identity of the website or service before issuing the certificate. This provides a
high level of trust and assurance to users that the website or service they are communicating with is
authentic and trustworthy.
3
A Survey on SSL/ TLS and their Vulnerabilities
In addition to these key characteristics, SSL certificates also come in various levels of validation,
including Domain Validation (DV), Organization Validation (OV), and Extended Validation (EV). The
level of validation determines the amount of information that is verified by the CA before issuing the
certificate, with EV certificates providing the highest level of assurance and trust to users. For more
information about SSL certificates for each Validation level type, please refer to Namecheap.
Overall, the SSL certificate is an important component of online security, providing encryption,
authentication, integrity, non-repudiation, and other key features that ensure the secure and reliable
transmission of sensitive information over the internet
2.0 Architecture
2.1 SSL Architecture
Provides security to the data that is transferred between web browser and server. SSL encrypts the link
between a web server and a browser which ensures that all data passed between them remain private
and free from attack. Secure Socket Layer Protocols:
SSL record protocol
Handshake protocol
Change-cipher spec protocol Alert protocol
Fig 2: SSL protocol stack
2.1.1 SSL Record Protocol:
SSL Record provides two services to SSL connection.
Confidentiality
Message Integrity
4
A Survey on SSL/ TLS and their Vulnerabilities
In the SSL Record Protocol application data is divided into fragments. The fragment is compressed and
then encrypted MAC (Message Authentication Code) generated by algorithms like SHA (Secure Hash
Protocol) and MD5 (Message Digest) is appended. After that encryption of the data is done and in last
SSL header is appended to the data.
Fig 2: SSL record protocol working principle
i. Compression Algorithms: Lossless compression techniques are called by the SSL record
protocol to squeeze the data without any loss. (e.g., Huffman codding, LZ77, GZIP etc.)
ii. Hash Algorithms: Secure hash functions are played major roles to provide confidentiality to
each segment of data. Most popular MD5 and SHA algorithms are used to International Journal
of Computer Applications (0975 8887) Volume 153 No5, November 2016 32 compute
MAC. (e.g., MD5, SHA-1, SHA-224, SHA-256 etc.)
iii. Encryption Algorithms: Symmetric stream or block cipher techniques are used to create SSL
payload. In case of stream cipher encryption, compressed chunk and MAC are encrypted
together. Padding bits are added along MAC to chunk before block cipher encryption.
Symmetric algorithms with their key sizes are listed in table 1 and table 2.
2.1.2 Handshake Protocol:
This is the most complex part of SSL and allows the server and client to authenticate each other and to
negotiate an encryption and MAC algorithm and cryptographic keys to be used to protect data sent in
an SSL record. This protocol is used before any application data is sent. It consists of a series of
messages exchanged by the client and server, all of which have the format shown in figure 11.5. Each
message has three fields:
1. Type (1 byte): Indicates one of 10 messages such as “hello request” (see figure 11.4).
5
A Survey on SSL/ TLS and their Vulnerabilities
2. Length (3 bytes): The length of the message in bytes.
3. Content(0 byte): The parameters associated with this message such version of SSL being used.
The Handshake Protocol .This consists of four phases:
1. Establish security capabilities including protocol version, session ID, cipher suite, compression
method and initial random numbers. This phase consists of the client hello and server hello
messages which contain the following (this is for the client however it’s a little different for the
server):
Version: The highest SSL version understood by client
Figure 3: SSL Handshake protocol message types.
Figure 4. SSL record protocol payload.
Random: 32-bit timestamp and 28 byte nonce.
Session ID: A variable length session identifier.
CipherSuite: List of cryptoalgorithms supported by client in decreasing or- der of
preference. Both key exchange and CipherSpec (this includes fields such as
6
A Survey on SSL/ TLS and their Vulnerabilities
CipherAlgorithm, MacAlgorithm, CipherType, HashSize, Key Ma- terial and IV Size) are
defined.
Compression Method: List of methods supported by client.
2. Server may send certificate, key exchange, and request certificate it also signals end of hello
message phase. The certificate sent is one of a chain of X.509 certificates discussed earlier in the
course. The server key exchange is sent only if required. A certificate may be requested from the
client if needs be by certificate request.
3. Upon receipt of the server done message, the client should verify that the server provided a valid
certificate, if required, and check that the server hello parameters are acceptable. If all is
satisfactory, the client sends one or more messages
back to the server. The client sends certificate if requested (if none available then it sends a no
certificate alert instead). Next the client sends client key exchange message . Finally, the client may
send certificate verification.
4. Change cipher suite and finish handshake protocol. The secure connection is now setup and the
client and server may begin to exchange application layer data.
7
A Survey on SSL/ TLS and their Vulnerabilities
Fig 4. SSL Handshake Protocol Phases diagrammatic representation
2.1.3 Change-cipher Protocol:
This protocol uses the SSL record protocol. Unless Handshake Protocol is completed, the SSL record
Output will be in a pending state. After the handshake protocol, the Pending state is converted into the
current state.
Change-cipher protocol consists of a single message which is 1 byte in length and can have only one
value. This protocol’s purpose is to cause the pending state to be copied into the current state.
2.1.4 Alert Protocol:
This protocol is used to convey SSL-related alerts to the peer entity. It consists of two bytes the first
of which takes the values 1 (warning) or 2 (fatal). If the level is fatal SSL immediately terminates the
connection. The second byte contains a code that indicates
Figure3: SSL record format.
the specific alert.
The level is further classified into two parts:
Warning (level = 1):
This Alert has no impact on the connection between sender and receiver. Some of them are:
8
A Survey on SSL/ TLS and their Vulnerabilities
Bad certificate: When the received certificate is corrupt.
No certificate: When an appropriate certificate is not available.
Certificate expired: When a certificate has expired.
Certificate unknown: When some other unspecified issue arose in processing the certificate,
rendering it unacceptable.
Close notify: It notifies that the sender will no longer send any messages in the connection.
Unsupported certificate: The type of certificate received is not supported.
Certificate revoked: The certificate received is in revocation list.
Fatal Error (level = 2):
This Alert breaks the connection between sender and receiver. The connection will be stopped, cannot
be resumed but can be restarted. Some of them are :
Handshake failure: When the sender is unable to negotiate an acceptable set of security
parameters given the options available.
Decompression failure: When the decompression function receives improper input.
Illegal parameters: When a field is out of range or inconsistent with other fields.
Bad record MAC: When an incorrect MAC was received.
Unexpected message: When an inappropriate message is received.
The second byte in the Alert protocol describes the error.
Salient Features of Secure Socket Layer:
The advantage of this approach is that the service can be tailored to the specific needs of the
given application.
Secure Socket Layer was originated by Netscape.
SSL is designed to make use of TCP to provide reliable end-to-end secure service.
This is a two-layered protocol.
Hellen Mukami
A Survey on SSL/ TLS and their Vulnerabilities
Security,
9
Students also viewed