SSL协议及其应用

网上银行、电子商务和电子政务的发展,如何保证传输信息,特别是交易信息的保密性、完整性已成为继续解决的问题。安全套接层协议(Security Socket Layer Protocol , 简称SSL)Internet上进行保密通信的一个安全协议。 

一、 SSL协议概述
  安全套接层协议SSL是网景公司(Netscape)提出的基于公钥密码机制的网络安全协议,用于在客户端浏览器软件与Web服务器之间建立一条安全通道,实现Internet上信息传送的保密性。它包括服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上数据保密性。现在国内外一些对保密性要求较高的网上银行、电子商务和电子政务等系统大多数是以SSL协议为基础建立的,SSL协议已成为Web安全方面的工业标准。目前广泛采用的是SSL v3版。SSL提供的面向连接的安全性作用,具有以下三个基本功能:(1)连接是秘密的,在初始握手定义会话密钥后,用对称密码(例如用DES)加密数据。(2)连接是可认证的,实体的身份能够用公钥密码(例如RSADSS等)进行认证。(3)连接是可靠的,消息传输包括利用安全Hash函数产生的带密钥MACMessage Authentication Code :报文鉴别码) 

二、SSL的组成
  SSL协议由两层组成,分别是握手协议层和记录协议层,握手协议建立在记录协议之上,此外还有警告协议,更改密码说明协议和应用数据协议等对话协议和管理提供支持的子协议。其组成如图一所示:


 
图一:SSL协议的组成及其在TCP/IP中的位置

  在上图中的每一层,三者可以包括长度、描述和内容字段。SSL发出消息是将数据分为可管理的块、压缩、使用MAC和加密并发出加密的结果。接受消息需要解密、验证、解压和重组,再把结果发往更高一层的客户。 

1、记录协议: 
具体实现压缩/解压缩、加密/解密,计算机MAC等与安全有关的操作。建立之上的还有: 
――更改密码说明协议:此协议由一条消息组成,可由客户端或服务器发送,通知接收方后面的记录将被新协商的密码说明和密钥保护,接收方得此消息后,立即指示记录层把即将读状态变成当前读状态,发送方发送此消息后,应立即指示记录层把即将写状态变成当前写状态。 
――警告协议:警告消息传达消息的严重性并描述警告。一个致命的警告将立即终止连接。与其他消息一样。警告消息在当前状态下被加密和压缩。警告消息有以下几种: 
关闭通知消息,意外消息,错误记录MAC消息,解压失败消息,握手失败消息,无证书消息,错误证书消息,不支持的证书消息,证书撤回消息,证收过期消息,证书未知和参数非法消息等等。 
――应用数据协议:将应用数据直接传递给记录协议。 

2、握手协议 
SSL握手协议是用来在客户端和服务和服务器端传输应用数据而建立的 安全通信机制 
――算法协商:首次通信时,双方通过握手协议协商密钥加密算法。数据加密算法和文摘算法。 
――身份验证:在密钥协商完成后,客户端与服务器端通过证书互相验证对方的身份。 
――确定密钥:最后使用协商好的密钥交换算法产生一个只有双方知道的秘密信息,客户端和服务器各自根据这个秘密信息确定数据加密算法的参数(一般是密钥) 
由此可见,SSL协议是端对端的通信安全协议。 

三.SSL协议工作过程 
1.握手协议工作过程 
SSL协议具体握手过程描述如下:

客户client端发送Client Hello信息给服务器Server端,Server回答Server Hello。这个过程建立的安全参数包括协议版本,佳话标识,加密算法,压缩方法。另外,还交换2个随机数:Client Hello. RandomServer Hello. random.用以计算机会话主密钥

Hello消息发送完后,Server会发送它的证书和密钥交换信息,如果Server端被认证,它就会请求Client端的证书,在验证以后,Server就发送Hello-done消息以示达成了握手协议,即双方握手接通

Server请求Client证书时,Client要返回证书或返回没有证书的指示,这种情况用于单向认证,即客户端不装有证书。然后Client发送密钥交换消息。

服务器Server此时要回答握手完成消息(Finished),以示完整的握手消息交换,已经全部完成。

握手协议完成后,Client端即可与Server端传输应用加密数据,应用数据加密一般是用第(2)步密钥协商时确定的对称加/解密密钥。如DES3DE等等,目前商用加密强度为128位。非对称密钥一般为RAS,商用强度1024位,用于证书的验证。

其完整的握手协议消息交换过程如图所示 

  
  其中要说明的时带*号的命令是可选的,或依据状态而发的消息,而改换加密算法协议(Change Cipher Spec)并不在实际的握手协议之中,它在第(3)步与第(4)步之间,用于ClientServer协商新的加密数据包时而改变原先的加密算法。 

3、记录层协议组成 
记录层协议规定了即有发送和接收数据的打包形式,该协议提供了通信,身份认证等功能,它是一个面向连接的可靠传输协议。 
SSL中,即有数据被打装在记录中,一个记录由两部份组成,记录和非零长度的数据。SSL的握手协议和报文要求必须放在一个SSL记录层协议的记录中,而应用层报文允许占用多个SSL记录来传递。 

1SSL记录头格式 
SSL的记录头可以是两个或三个字节长的编码。SSL记录头包含的信息有记录头的长度、记录数据的长度、记录数据中是否有填充数据。其中填充数据是在使用块加密算法时,填充实际数据,使其长度恰好是块的整数倍,以便利传输和加/解密。 

2SSL记录数据格式 
SSL记录数据部份含有三个分量 
――MAC数据:用于数据完整性检查 
――ACTUAL数据:是被传送的应用数据 
――PADDING数据:是当采用分组码时即需要的填充数据 

四.SSL的应用 
1.单向认证:又称匿名SSL连接,这是SSL安全连接的最基本模式,它便于使用,主要的浏览器都支持这种方式,适合单向数据安全传输应用。在这种模式下客户端没有数字证书,只是服务器端具有证书,以不在认用户访问的是自己要访问的站点。典型的应用就是用户进行网站注册时彩ID+口令的匿名认证,过去网上银行的所谓大众版就是这种?? 因子认证。 
2.双方认证:是对等的安全认证,这种模式通信双方都可以发起和接收SSL连接请求。通信双方可以利用安全应用程序(控键)或安全代理软件,前者一般适合于B/S结构,而后者适用于C/S结构,安全代理相当于一个加密/解密的网关,这种模式双方皆需安装证书,进行双向认证。这就是网上银行的B2B的专业版等应用。 
3.电子商务中的应用。电子商务与网上银行交易不同,因为有商户参加,形成客户――商家――银行,两次点对点的SSL连接。客户,商家,银行,都必须具证书,两次点对点的双向认证。 
 
如图三所示 



五.SSL协议在实际应用中的几个问题 
1.不能提供交易的不可否认性,SSL协议是基于Web应用的安全协议,它只能提供安全认证,SSL链路上的数据完整性和保密性。对于电子商务的交易应用层的信息不进行数据签名,因此,不能提供交易的不可否认性,这是SSL在电子商务中使用的最大缺欠。为此,各公司纷纷推出安全代理软件安全应用控制表单签名软件等等,以弥补SSL不足。 
2服务器的处理速度问题,由于在网上交易时,一定要使用SSL/解密用户数据,这样服务器就占用了大量CPU的处理时间,增大了系统的开销,使SSL登陆和传输数据的速度变慢。为此,有的公司研发出硬件SSL/解密方案,即通称的SSL加速器,它可以转移大量占用CPUSSL协商处理,提高SSL流量和改善Web服务器处理性能。 

你可能感兴趣的:(WEB开发)