SSL(Secure Sockets Layer)安全套接层协议详解
SSL简介
SSL(Secure Sockets Layer 安全套接层)协议,及其继任者TLS(Transport Layer Security传输层安全)协议,是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密,用于保障网络数据传输安全,利用数据加密技术,确保数据在网络传输过程中不会被截取及窃听。SSL协议已成为全球化标准,所有主要的浏览器和WEB服务器程序都支持SSL协议,可通过安装SSL证书激活SSL协议。
SSL 证书就是遵守 SSL协议的服务器数字证书,由受信任的证书颁发机构(CA机构)
,验证服务器身份后颁发,部署在服务器上,具有网站身份验证和加密传输双重功能。
SSL历史发展
1.诞生
Netscape(网景通信公司)在1994年创建了SSL协议的原始范本,但是第一个SSL版本由于在创建时使用了弱加密的方式,因而被业界广泛质疑,所以从未公开发布。Netscape在1995年修订了规范,并发布了一个大幅改进的版本——SSL 2.0协议。SSL 2.0版本相较于之前的版本有很大的改进,但仍然存在不少漏洞。
2.更名
在1996年,由Netscape和Paul Kocher共同设计的版本SSL 3.0协议发布。SSL 3.0协议获得互联网广泛认可和支持,并将其重命名为传输层安全(TLS)协议。
TLS协议的第一个版本(RFC 2246)于1999年1月发布,但是该版本实际上就是SSL 3.0协议的适度改进版。
3.发展
2006年4月,IETF发布TLS 1.1版本(RFC4346),包含一些小的安全改进。2008年8月,TLS 1.2版本(RFC5246)发布,移除了老旧加密套件,增强了协议的安全性,TLS 1.2协议是目前主流的TLS协议版本。
2018年3月,TLS 1.3协议正式批准问世,成为了新一代TLS协议版本。TLS 1.3版本历经长达4年28次草案修改,是迄今为止改动最大的一次,既能提高互联网用户的访问速度,又能增强安全性,大大提升HTTPS连接的速度性能,用户的使用体验度得到明显的提升。
SSL协议结构
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:
SSL记录协议(SSL RecordProtocol):是通过将数据流分割成一系列的片段并加以传输来工作的,其中的每个片段都单独进行保护和传输。在传输数据片段之前,需要计算数据的MAC以保证数据的完整性。数据片段和MAC一起被加密并与头信息组成记录,记录是实际传输的内容。
SSL握手协议(SSL HandshakeProtocol):SSL握手协议指在SSL协议中,客户端和服务器首先通过握手过程来获得密钥,此后在记录集协议中使用这个密钥来加密客户端和服务器间的通信信息。握手过程首先采用非对称加密的方法来交换信息,使得服务器获得客户端提供的对称加密的密钥(pre_master_secret),然后服务器和客户端使用这个pre_master_secret来产生会话密钥。
SSL修改密文协议(SSL Change Cipher Spec Protocol):是使用SSL记录协议服务的SSL高层协议的3个特定协议之一,也是其中最简单的一个。协议由单个消息组成,该只包含一个值为1的单个字节。该消息的唯一作用就是使未决状态复制为当前状态,更新用于当前连接的密码组。为了保障SSL传输过程的安全性,双方应该每隔一段时间改变加密规范。
SSL警告协议:亦称SSL告警协议、SSL报警协议,是用来为对等实体传递SSL的相关警告。如果在通信过程中某一方发现任何异常,就需要给对方发送一条警示消息通告。
SSL协议实际上是SSL握手协议、SSL修改密文协议、SSL警告协议和SSL记录协议组成的一个协议族。
SSL协议结构详解
SSL记录协议为SSL连接提供两种服务:机密性和报文完整性。
在SSL协议中,所有的传输数据都被封装在记录中。记录是由记录头和记录数据(长度不为0)组成的。所有的SSL通信都使用SSL记录层,记录协议封装上层的握手协议、报警协议、修改密文协议。SSL记录协议包括记录头和记录数据格式的规定。
SSL记录协议定义了要传输数据的格式,它位于一些可靠的传输协议之上(如