SSL出现之前的互联网可谓是妖魔鬼怪横空乱行,一堆网络安全问题层出不穷,根本解决不完。
为了整治互联网乱象,SSL横空出世,应声而出,解决了很多的安全问题。那么SSL是什么呢?
SSL是一种安全套接层协议,是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。
SSL协议的三个特性
① 保密:在握手协议中定义了会话密钥后,所有的消息都被加密;
② 鉴别:可选的客户端认证,和强制的服务器端认证;
③ 完整性:传送的消息包括消息完整性检查(使用MAC)。
SSL为什么厉害?我们都知道计算机网络中,我们有OSI七层模型。我们所有的请求都要先经过七层模型才能抵达我们的服务器。
SSL在七层模型的位置,就是TCP的上面,应用层的下面。
如图所示:
那么SSL是怎么工作的呢?
SSL有三种协议模式:握手协议(Handshake protocol,记录协议(Record protocol,警报协议(Alert protocol)。
现在让我们认识一下他们三种分别是怎么做的;
1.握手协议:
握手协议是客户机和服务器用SSL连接通信时使用的个子协议,握手协议包括客户机与服务器之间的一系列消息。SSL中复杂的协议是握手协议。该协议允许服务器和客户机相互验证,协商加密和MAC算法以及保密密钥,用来保护在SSL记录中发送的数据。握手协议是在应用程序的数据传输之前使用的。
每个握手协议包含以下3个字段
(1)Type:表示10种消息类型之一
(2)Length:表示消息长度字节数
(3)Content:与消息相关的参数
1.1 建立安全能力
SSL握手的阶段启动逻辑连接,建立这个连接的安全能力。首先客户机向服务器发出client hello消息并等待服务器响应,随后服务器向客户机返回server hello消息,对client hello消息中的信息进行确认。
Client hello消息包括Version,Random,Session id,Cipher suite,Compression method等信息。
2、记录协议
记录协议在客户机和服务器握手成功后使用,即客户机和服务器鉴别对方和确定安全信息交换使用的算法后,进入SSL记录协议,记录协议向SSL连接提供两个服务:
3、警报协议
客户机和服务器发现错误时,向对方发送一个警报消息。如果是致命错误,则算法立即关闭SSL连接,双方还会先删除相关的会话号,秘密和密钥。每个警报消息共2个字节,第1个字节表示错误类型,如果是警报,则值为1,如果是致命错误,则值为2;第2个字节制定实际错误类型。