SSL协议及其应用_李晓峰

李晓峰,赵海,周艳,宁宣杰

(东北大学信息科学与工程学院,辽宁 沈阳 110004)

【摘 要】SSL协议是在TCP/IP的IP套接层的安全协议,以补充TCP/IP协议安全的不足。SSL协议在网上银行、电子商务中得到广泛地应用,主要解决了数据的安全性、保密性。但其并不能证明交易的不可否认性,为此,文章在SSL原来的安全基础上,开发了安全控件或安全代理软件,以提高SSL协议的安全性。【关键词】SSL;网上银行;电子商务;不可否认性

【中图分类号】PT3-0 【文献标识码】A 【文章编号】1009-8054(2007) 10-0022-04

SSL Protocol and Its Application

LI Xiao-feng, ZHAO Hai, ZHOU Yan, NING Xuang-jie

(School of Information Science and Engineerig, Northeast University, Shenyang Liaoning 110004, China)

【Abstract 】SSL protocol is the security protocol used in IP socket layer of TCP/IP, which can fill up the deficiency of TCP/IP protocol. The SSL protocol is widely used in internet bank and electronic business to insure the security of data.However, it can not prove the non-repudiation of trading. We develop the security control or security agent software to improve the security of SSL protocol.

【Keywords 】SSL; Internet bank; Electronic business; Non-repudiation.

SSL协议及其应用

0 引言

目前,随着Internet的快速发展,互联网上的信息安全越来越引起人们的关注。特别是近年来基于互联网的网上银行、电子商务和电子政务的发展,如何保证传输信息,特别是网上交易信息的不可否认性、保密性、完整性已成为急待解决的问题。为此,人们发明了安全套接层SSL协议(Security Socket Layer Protocol,简称SSL),是Internet上使用广泛的保密通信的一种安全协议。

1 SSL协议概述

安全套接层协议SSL是网景公司(Netscape)提出的基于公钥密码算法机制的网络安全协议,用于在客户端浏览器软件与Web服务器之间建立一条安全通道,实现Internet上信息传送的保密性。它包括服务器认证、客户认证(可选)、SSL链路上的数据完整性和保密性。现在国内外一些对保密性要求较高的网上银行、电子商务和电子政务等系统大多数是以SSL协议为基础,以数字签名模块为补充而建立的,SSL协议已成为Web安全方面的工业标准。目前广泛采用的是SSL v3版。

SSL提供的面向连接的安全性作用具有以下三个基本

功能:

(1) 连接是秘密的。在初始握手定义、协商会话密钥后,用对称密码(例如用DES)加密数据。

(2) 连接是可认证的。实体的身份能够用交换公钥密码(例如RSA、DSS等)进行认证。

(3) 连接是可靠的。消息传输包括利用安全Hash函数产生的带密钥MAC(Message Authentication Code:报文鉴别码),保障SSL管道的封闭和安全。

2 SSL的组成

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

在图1中的每一层,三者可以包括长度、描述和内容字段。握手协议Handshak Protocol和记录协议Record Protocol是SSL协议的核心组成部分。其上是超文本协议HTTP、文件传输协议FTP和传输控制协议TELNET。它们控制文本的传

输。支撑握手、记录协议的低层通信是用户数据报文和TCP/IP协议。

SSL发出消息是将数据分为可管理的块、压缩、使用MAC和加密并发出加密的结果。接受消息需要解密、验证、解压和重组,再把结果发往更高一层的客户。以下是两个主要协议的论述和分析。

(1) 记录协议:具体实现压缩/解压缩、加密/解密、计算机MAC等与安全有关的操作。建立之上的还有:

—更改密码说明协议:此协议由一条消息组成,可由客户端或服务器发送,通知接收方后面的记录将被新协商的密码说明和密钥保护,接收方得此消息后,立即指示记录层把即将读状态变成当前读状态,发送方发送此消息后,应立即指示记录层把即将写状态变成当前写状态。

—警告协议:警告消息传达消息的严重性并描述警告。一个致命的警告将立即终止连接。与其他消息一样,警告消息在当前状态下被加密和压缩。警告消息有以下几种:关闭通知消息、意外消息、错误记录MAC消息、解压失败消息、握手失败消息、无证书消息、错误证书消息、不支持的证书消息、证书撤回消息、证收过期消息、证书未知和参数非法消息等等。

—应用数据协议:将应用数据直接传递给记录协议。(2) 握手协议:SSL握手协议是用来在客户端和服务器端传输应用数据而建立的安全通信机制。

—算法协商:首次通信时,双方通过握手协议协商密钥加密算法,包括数据加密算法和文摘算法。

—身份验证:在密钥协商完成后,客户端与服务器

端通过证书交换,互相验证对方的身份,一般通过目录服

务器的LDAP查询完成。

—确定密钥:最后使用协商好的密钥交换算法产生一个只有双方知道的秘密信息,客户端和服务器各自根据这个秘密信息确定数据加密算法的参数(一般是对称密钥)。由此可见,SSL协议是端对端的通信安全协议,即数字通信安全管道。

3 SSL协议工作过程

3.1 握手协议工作过程

SSL协议具体握手过程描述如下:

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

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

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

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

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

其完整的握手协议消息交换过程如图2所示。其中要说明的是带*号的命令是可选的,或依据状态而发的消息,而改换加密算法协议(Change Cipher

Spec)并不在实际的握手协议之中,它在第③步与第④步之

图1 SSL协议的组成及

其在TCP/IP中的位置

图2 握手协议的工作过程

间,用于Client与Server协商新的加密数据包时而改变原先的加密算法。

3.2 记录层协议组成

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

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

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

4 SSL协议的应用

4.1 单向认证

又称匿名SSL连接,这是SSL安全连接的最基本模式,它便于使用,主要的浏览器都支持这种方式,适合单向数据的安全传输应用。在这种模式下客户端没有数字证书,只是服务器端具有证书,认证用户访问的是自己要访问的站点。典型的应用就是用户进行网站注册时采用ID+口令的匿名认证,过去网上银行的所谓“大众版”就是这种简单的认证方式。这种认证的方式在互联网上极易被黑客用木马程序所窃取。微软公司安全执行官宣布:要在三至四年内在所有微软产品中取消ID+口令的安全认证方式。

实际上,近几年网上银行所出现的许多安全问题,都在于黑客十分了解ID+口令的脆弱性和易攻破性。所以,他们采用木马程序、“网上钓鱼”等手段轻易窃取用户的网上身份。单向认证用户要采用PKI证书的身份认证是目前最安全的电子认证机制,但是,证书一取此类“文件证书”,造成交易的风险。

4.2 双向认证

是对等的安全认证,这种模式通信双方都必须安装数字证书,他们可以发起和接收SSL连接请求。通信双方可以利用安全应用程序(控键)或安全代理软件,来完成双方对

等的安全认证。前者一般适合于B/S结构,而后者适用于C/S结构,安全代理相当于一个加密/解密的网关,这种模式双方皆需安装证书,进行双向认证。这就是网上银行的B2B的专业版等应用所采取的方式。在此要强调的是,证书介质也一定要安装在USBKEY安全智能介质中,千万不能以“文件证书”存放。

4.3 SSL协议在网上银行中的应用

网上银行是借助于互联网数字通信技术,向客户提供金融信息发布和金融交易服务的电子银行,是传统银行业务在互联网上的延伸,是一种电子虚拟世界的银行。

网上银行业务和运营模式与传统银行运营模式有很大区别,一是通过网络在线为客户提供办理结算、信贷服务的商业银行,它的服务对象和业务范围涵盖了所有银行业务,利用互联网的特点对传统银行业务有所创新。二是通过互联网和金融专网在线为客户提供办理除现金业务以外的全部结算、信贷服务的商业银行,它的服务对象和业务范围涵盖了整个对公业务(B2B)和对私业务(B2C)的所有银行业务,除此而外,它还利用互联网的特点对传统银行业务有所创新。

网上银行具有所谓 “3A”式的服务特点,即:Anytime (任何时间)

Anywhere (任何地点)Anyhow (任何方式)

网上银行是基于互联网的,采用SSL协议将客户与银行连接起来,实现了客户端与网银服务器网关的端对端的连接。这样,按上述SSL握手协议和记录协议的原理,客户与网上银行之间就形成了一个安全管道(见图3)。在这个安全管道中,进行客户与网银之间的证书交换,交易数据的加密,实现身份认证与交易的数字签名。

数字证书是可信的、权威的第三方认证机构CA所签发,是网上身份的证明,是虚拟世界的身份证明。证书的存放介质一定要采用USBKEY,它是一种CPU智能卡,内存密码算法、公钥证书及其对应的私钥,其内容是不可拷贝的。但是,存放在硬盘中的“文件证书”存在被黑客攻击的风险。

首先,利用它实现网上身份的认证,根据交易的模式

图3 SSL协议在网上银行中的应用

B2B或B2C进行单向或双向认证;在认证时,客户端与服务器端由安全应用软件,按需求分别向第三方认证机构CA的目录服务器,利用LDAP轻型查询协议去查询证书的有效期或黑名单CRL,以证明双方身份的真实性,即完成网上的身份识别与鉴别。

其次,利用数字证书完成网上交易数据的加密传输与数字签名。网上交易数据要经过客户与银行双方数字签名,才能达到交易的不可否认性,才能符合《电子签名法》的要求。所谓数字签名就是应用系统将交易的表单或交易数据变成数据电文,送入USBKEY中,利用USBKEY中的密码杂凑函数作杂凑运算,得杂凑值;再利用证书答应的私钥,对该杂凑值做RSA非对称加密运算,即得到交易表单或交易数据的数字签名。数据电文一旦被可靠地做了签名,就不可改动。对数字签名和被签名的内容如果被改变,是可被发现的,这就是数字签名的验签。

所谓数字签名的验签,就是接收方利用发方的公钥,解密用其私钥加密的交易数据电文的杂凑值;然后,收方再利用同样的杂凑算法,对交易原数据作杂凑运算,得出一个新的杂凑值。两个杂凑值作比较运算,比较结果相等,证明签字是可靠的,验证通过。

以上这些过程都是在SSL协议通道里进行的。网上银行只有这样进行身份认证和交易签名才能做到安全、可靠。

4.4 SSL协议在电子商务中的应用

国家发展和改革委员会、国务院信息化工作办公室联合发布了我国首部《电子商务发展“十一五”规划》。 《规划》明确提出了“十一五”时期我国电子商务发展的总体目标:到2010年,电子商务发展环境、支撑体系、技术服务和推广应用协调发展的格局基本形成。《规划》强调着力完善电子商务支撑环境。支撑环境包括电子安全认证、在线支付、现代物流、信用服务和标准规范体系。

电子商务与网上银行交易不同,因为参加的角色有商户参加,形成客户—商家—支付平台—银行,多次点对点的SSL连接。客户、商家、银行与支付平台都必须安装数字证书,多次点对点的双向认证,完成身份认证和交易支付。

在图4的电子商务应用中,为了支付的安全,客户、商家、银行与支付平台都必须具有数字证书。其支付流程是:当客户购物时,可先登录商家网站,通过SSL建立点对点的连接,客户浏览商品并下定单;商家将支付信息转发至第三方支付平台,经平台识别后,转发至相应客户的开户银行,这其中也是通过SSL建立起端对端的连接;银行的网关在接受平台转来的客户付款信息后,

进行通信格式的转换(8583格式),传向银行后台核心业务系统进行授权,当授权成功后,银行将客户买东西的金额,从客户的账号划入商家的账号,并回答平台授权完成,平台同时回答商家扣款成功的信息,商家回答客户交易成功。

在这个交易过程中,基于INTERNET的SSL协议起到了多次点对点的安全连接作用。交易中的身份认证和交易授权的数字签名,与上述的网上银行原理基本相同,在此不再赘述。

5 局限性及改进

SSL协议虽然在电子商务、网上银行、电子政务和其他网络应用系统中得到了广泛的实际应用,具有较好的通用性和安全性,但也存在如下的问题:

(1) 不能提供交易的不可否认性:SSL协议是基于Web应用的安全协议,它只能提供安全认证、SSL链路上的数据完整性和保密性。对于电子商务的交易应用层的信息不进行数据签名,因此,不能提供交易的不可否认性,这是SSL在电子商务中使用的最大缺陷。为此,各厂商纷纷推出“安全代理软件”、“安全应用控件”或“表单签名软件”等等,以弥补SSL不足。

(2) 服务器的处理速度问题:由于在网上交易时,一定要使用SSL加/解密用户数据,这样服务器占用了大量CPU的处理时间,增大了系统的开销,使SSL登录和传输数据的速度变慢。为此,有人研发出硬件SSL加/解密方案,即通称的SSL加速器,它可以转移大量占用CPU的SSL协商处理,提高SSL流量和改善Web服务器处理性能。 

图4 SSL在电子商务中的应用

本 栏 目 协 办 单 位

相关主题
相关文档
最新文档