目前,随着Internet的快速发展,互联网上的信息安全越来越引起人们的关注。特别是近年来网上银行、电子商务和电子政务的发展,如何保证传输信息,特别是交易信息的保密性、完整性已成为继续解决的问题。安全套接层协议(Security Socket Layer Protocol , 简称SSL)是Internet上进行保密通信的一个安全协议。 一、 SSL协议概述 安全套接层协议SSL是网景公司(Netscape)提出的基于公钥密码机制的网络安全协议,用于在客户端浏览器软件与Web服务器之间建立一条安全通道,实现Internet上信息传送的保密性。它包括服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上数据保密性。现在国内外一些对保密性要求较高的网上银行、电子商务和电子政务等系统大多数是以SSL协议为基础建立的,SSL协议已成为Web安全方面的工业标准。目前广泛采用的是SSL v3版。SSL提供的面向连接的安全性作用,具有以下三个基本功能:(1)连接是秘密的,在初始握手定义会话密钥后,用对称密码(例如用DES)加密数据。(2)连接是可认证的,实体的身份能够用公钥密码(例如RSA、DSS等)进行认证。(3)连接是可靠的,消息传输包括利用安全Hash函数产生的带密钥MAC(Message Authentication Code :报文鉴别码) 二、SSL的组成 SSL协议由两层组成,分别是握手协议层和记录协议层,握手协议建立在记录协议之上,此外还有警告协议,更改密码说明协议和应用数据协议等对话协议和管理提供支持的子协议。其组成如图一所示: 图一:SSL协议的组成及其在TCP/IP中的位置 在上图中的每一层,三者可以包括长度、描述和内容字段。SSL发出消息是将数据分为可管理的块、压缩、使用MAC和加密并发出加密的结果。接受消息需要解密、验证、解压和重组,再把结果发往更高一层的客户。 1、记录协议: 具体实现压缩/解压缩、加密/解密,计算机MAC等与安全有关的操作。建立之上的还有: ――更改密码说明协议:此协议由一条消息组成,可由客户端或服务器发送,通知接收方后面的记录将被新协商的密码说明和密钥保护,接收方得此消息后,立即指示记录层把即将读状态变成当前读状态,发送方发送此消息后,应立即指示记录层把即将写状态变成当前写状态。 ――警告协议:警告消息传达消息的严重性并描述警告。一个致命的警告将立即终止连接。与其他消息一样。警告消息在当前状态下被加密和压缩。警告消息有以下几种: 关闭通知消息,意外消息,错误记录MAC消息,解压失败消息,握手失败消息,无证书消息,错误证书消息,不支持的证书消息,证书撤回消息,证收过期消息,证书未知和参数非法消息等等。 ――应用数据协议:将应用数据直接传递给记录协议。 2、握手协议 SSL握手协议是用来在客户端和服务和服务器端传输应用数据而建立的 安全通信机制 ――算法协商:首次通信时,双方通过握手协议协商密钥加密算法。数据加密算法和文摘算法。 ――身份验证:在密钥协商完成后,客户端与服务器端通过证书互相验证对方的身份。 ――确定密钥:最后使用协商好的密钥交换算法产生一个只有双方知道的秘密信息,客户端和服务器各自根据这个秘密信息确定数据加密算法的参数(一般是密钥) 由此可见,SSL协议是端对端的通信安全协议。 三.SSL协议工作过程 1.握手协议工作过程 SSL协议具体握手过程描述如下: