1、SSL简介:
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。SSH协议结构体:
SSL位于应用层和传输层之间,它能够为不论什么基于TCP等可靠连接的应用层协议提供安全性保证。SSL协议本身分为两层,上层为:SSL握手协议(SSL handshake protocol)、SSLpassword变化协议(SSL change cipher spec protocol)和SSL警告协议(SSL alert protocol)。底层为:SSL记录协议(SSL record protocol)。
(1)SSL握手协议:是SSL协议很重要的组成部分,用来协商通信过程中使用的加密套件(加密算法、密钥交换算法和MAC算法等)、在server和client之间安全地交换密钥、实现server和client的身份验证。(2)SSLpassword变化协议:client和server端通过password变化协议通知对端。随后的报文都将使用新协商的加密套件和密钥进行保护和传输。
(3) SSL警告协议:用来向通信对端报告告警信息,消息中包括告警的严重级别和描写叙述。
(4)SSL记录协议:主要负责对上层的数据(SSL握手协议、SSLpassword变化协议、SSL警告协议和应用层协议报文)进行分块、计算并加入MAC值、加密。并把处理后的记录块传输给对端。
2、SSL握手过程:
SSL通过握手过程在client和server之间协商会话參数,并建立会话。会话包括的主要參数有会话ID、对方的证书、加密套件(密钥交换算法、数据加密算法和MAC算法等)以及主密钥(master secret)。通过SSL会话传输的数据,都将採用该会话的主密钥和加密套件进行加密、计算MAC等处理。不同情况下,SSL握手过程存在差异。
以下将分别描写叙述以下三种情况下的握手过程: 仅仅验证server的SSL握手过程、验证server和client的SSL握手过程、恢复原有会话的SSL握手过程。
(1)仅仅验证server的SSL握手过程
如图所看到的,仅仅须要验证SSLserver身份,不须要验证SSLclient身份时,SSL的握手过程为: