Transport Layer Security |
Transport Layer Security (TLS) was designed to provide security at the transport layer. |
TLS was derived from a security protocol called Secure Sockets Layer (SSL), designed by Netscape to provide security on the WWW. |
TLS is a nonproprietary version of SSL designed by IETF. For, transactions on the Internet, a browser need the following: |
1. The customer needs to be sure that the server belongs to the actual vendor, not an imposter. |
. For example, ; |
a customer does not want to give an imposter her credit card number. In other words, the server must be authenticated. |
2. The customer needs to be sure that the contents of the message are not modified during transition. |
A bill for $100 must not be changed to $1000. The integrity of the message must be preserved. |
3. The customer needs to be sure that an imposter does not intercept sensitive information such as a credit card number. There is a need for privacy. |
There are other optional security aspects that can be added to the above list. |
For example, |
the vendor may need to authenticate the customer. TLS can provide additional features to cover these aspects of security. |
Position of TLS |
TLS lies between the application layer and the transport layer (TCP), as shown in Figure |
The application layer protocol, in this case HTTP, uses the services of TLS, and TLS uses the services of the transport layer. |
Two Protocols |
TLS is actually two protocols: the handshake protocol and the data exchange (sometimes called the record) protocol. |
Handshake Protocol |
The handshake protocol is responsible for negotiating security, authenticating the server to the browser, and (optionally) defining other communication parameters. |
The handshake protocol defines the exchange of a series of messages between the browser and server. |
We discuss a simplified version, as shown in Figure |
1. The browser sends a hello message that includes the TLS version and some preferences. |
2. The server sends a certificate message that includes the public key of the server. |
The public key is certified by some certification authority, which means that the public key is encrypted by a CA private key. |
The browser has a list of CAs and their public keys. It uses the corresponding key to decrypt the certificate and finds the server public key. |
This also authenticates the server because the public key is certified by the CA. |
3. The browser generates a secret key, encrypts it with the server public key, and sends it to the server. |
4. The browser sends a message, encrypted by the secret key, to inform the server that handshaking is terminating from the browser side. |
5. The server decrypts the secret key using its private key and decrypts the message using the secret key. |
It then sends a message, encrypted by the secret key, to inform the browser that handshaking is terminating from the server side. |
Note that handshaking uses the public key for two purposes: to authenticate the server and to encrypt the secret key, which is used in the data exchange protocol. |
Data Exchange Protocol |
The data exchange (record) protocol uses the secret key to encrypt the data for secrecy and to e:1crypt the message digest for integrity. |
The details and specification of algorithms are agreed upon during the handshake phase. |
Thursday, February 5, 2009
Transport Layer Security
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment