【计算机网络】详解SSL协议
目录
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。
一、SSL简介
SSL和TLS:
SSL (Secure Sockets Layer)安全套接层。是由Netscape公司于1990年开发,用于保障Word Wide Web(WWW)通讯的安全。主要任务是提供私密性,信息完整性和身份认证。1994年改版为SSLv2,1995年改版为SSLv3.
TLS(Transport Layer Security)安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。该标准协议是由IETF于1999年颁布,整体来说TLS非常类似SSLv3,只是对SSLv3做了些增加和修改。
二、SSL协议介绍
SSL是一个不依赖于平台和运用程序的协议,位于TCP/IP协议与各种应用层协议之间,为数据通信提高安全支持。
SSL协议提供的安全通道有以下三个特性:
- 机密性:SSL协议使用**加密通信数据。
- 可靠性:服务器和客户都会被认证,客户的认证是可选的。
- 完整性:SSL协议会对传送的数据进行完整性检查。
SSL加密知名协议:
HTTP over SSL:
简写https,加密网页浏览是设计SSL的初衷,HTTP也是第一个使用SSL保障安全的应用层协议。
当Netscape在它的Navigator里面运用HTTP over SSL的时候,使用https://来标识HTTP over SSL,因此我常见的https的全称就是HTTP over SSL。后来HTTPS在RFC2818被标准化。HTTPS工作在443端口,而HTTP默认工作在80端口。
Email over SSL:
类似于HTTP over SSL,邮件协议例如:
- SMTP,POP3、IMAP也能支持SSL。
- SMTP over TLS的标准文档在RFC2487
- POP3和IMAP over TLS的标准化文档在RFC2595.
三、SSL提供服务
(1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
(2)加密数据以防止数据中途被窃取;
(3)维护数据的完整性,确保数据在传输过程中不被改变。
四、SSL原理详解
SSL协议结构:
中间蓝色部分就是SSL协议格式
SSL的体系结构中包含两个协议子层,其中高层是SSL握手协议层(SSL HandShake Protocol Layer);底层是SSL记录协议层(SSL Record Protocol Layer)。
SSL协议主要分为两层:
- SSL握手协议层包括SSL握手协议(SSL HandShake Protocol)、SSL密码参数修改协议(SSL Change Cipher Spec Protocol)和SSL告警协议(SSL Alert Protocol)。握手层的这些协议用于SSL管理信息的交换,允许应用协议传送数据之间相互验证,协商加密算法和生成**等。
- SSL记录协议层的作用是为高层协议提供基本的安全服务。SSL纪录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运行。纪录封装各种高层协议,具体实施压缩解压缩、加密解密、计算和校验MAC等与安全有关的操作。
SSL握手协议的作用是协调客户和服务器的状态,使双方能够达到状态的同步。
其中最重要的是握手协议和记录协议:
- SSL握手协议:它建立在SSL记录协议之上,用于在实际的数据传输开始之前,通讯双方进行身份认证、协商加密算法、交换加***等。
- SSL记录协议:它建立在可靠的传输(如TCP)之上,为高层协议提供数据分块、数据封装、压缩、解压缩、加密、解密等基本功能。
SSL工作流程
1、服务器认证阶段:
(1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
(2)服务器根据客户的信息确定是否需要生成新的主**,如需要则服务器在响应客户的“Hello”信息时将包含生成主**所需的信息;
(3)客户根据收到的服务器响应信息,产生一个主**,并用服务器的公开**加密后传给服务器;
(4)服务器回复该主**,并返回给客户一个用主**认证的信息,以此让客户认证服务器。
2、用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开**,从而向服务器提供认证。