安全协议工程
题 目: SSL 协议分析
系 别:
专 业:
学生姓名:
学 号:
指导教师:
2011 年 6 月 23 日
摘 要
目前,随着 Internet 的快速发展,人们在使用互联网的场地越来越多,范围
越来越广泛,互联网上的信息安全越来越引起人们的关注。特别是近年来网上银
行、电子商务和电子政务的快速发展,如何保证用户的传输信息,特别是交易信
息的保密性、完整性已成为迫切需要解决的问题。为此人们研究越来越多的措施
来保护用户的信息,所以有了很多的安全协议,其中安全套接层协议(Security
Socket Layer Protocol , 简称 SSL)是 Internet 上进行保密通信的一个安全协议。
关键词:Internet;信息安全;保密性;完整性;安全套阶层协议
目 录
引言 …………………………………………………………………4
1. SSL 简介 …………………………………………………………4
2. SSL 工作原理 ……………………………………………………4
3. SSL 协议提供的服务 ………………………………………………5
4. SSL 记录层协议 ……………………………………………………5
5. SSL 握手协议 ………………………………………………………7
6. SSL 的应用 …………………………………………………………10
7. SSL 的安全性分析 …………………………………………………11
引言
网络的迅速发展,逐渐普及到各个领域,但是有利也有弊,发展越快,出现
的问题也就越多。而最终的的还是信息方面的安全保证,特别是在传输过程中,
为此诸多杰出的人员也加入到这个研究中,研究怎么样最大程度保护信息的安全
传输。
传输层在 TCP/IP 协议族中具有重要地位,它加强和弥补了 IP 层的服务。从
服务类型看,IP 层是点到点的,而传输层提供端到端的服务;从服务质量看,
传输层提高了可靠性,使得高层应用不必关注可靠性问题,而仅需解决与自身应
用功能相关的问题;从协议依赖关系看,应用层协议直接构建于传输层之上。
应用层协议直接与用户交互,因此它们的安全性也会受到最直接的关注。举个直
观的例子,电子商务系统通常采用 B/S 结构,用户通过浏览器访问电子商务网站、
购买商品并进行网上支付。在这类应用中,机密性、完整性、服务器身份认证、
不可否认性和可用性都是用户所需的。此外,在进行文件和邮件传输时,用户也
有类似的安全需求。遗憾的是,常用的 HTTP、FTP 等协议都无法满足这些安全
需求。虽然 HTTP、FTP 和 Telnet 等协议提供了基于口令的身份认证机制,但在
互联网这个开放的环境中,这种简单的保护显得微不足道。
改变这种现状的途径之一就是为每个应用层协议都增加安全功能。对于应用
设计者而言,这是一个并不轻松的工作;对于应用使用者而言,部署多个安全应
用时,势必会消耗大量的系统资源。另一种途径就是从传输层人手。既然高层应
用都是基于传输层的,那么增强这个层次的安全性显得更具备通用性。它可以把
高层应用从安全性这个复杂的命题中解放出来,使用者也可用较小的开销获得所
需的安全服务。
1. SSL 简介
SSL 和 TLS,它们分别是安全套接层( Secure Socket Layer)和传输层安全
(Transport Layer Security)的缩写,是为网络通信提供安全及数据完整性的一种
安全协议 TLS 与 SSL,在传输层对网络连接进行加密。SSL 首先由网景公司提
出,最初 是为了保护 Web 安全,最终 却为提高传输层安全提供了一个通用的
解决方案。在 SSL 获得了广泛应用 之后,IETF 斟于 SSLv3,制定 TLS 标准。
TLSv1 与 SSLv3 几乎完全一致。
SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支
持。SSL 协议可分为两层: SSL 记录协议(SSL Record Protocol):它建立在可
靠的传输协议(如 TCP)之上,为高层协议提供数据封装、压缩、加密等基本功
能的支持。 SSL 握手协议(SSL Handshake Protocol):它建立在 SSL 记录协议
之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、
交换加密密钥等。
2. SSL 工作原理
SSL的工作原理:当一个使用者在Web上用Netscape浏览器漫游时,浏览器
利用HTTP协议与Web服务器沟通。例如,浏览器发出一个HTTP GET命令给服务
器,想下载一个首页的HTML档案,而服务器会将档案的内容传送给浏览器来响
应。GET这个命令的文字和HTML档案的文字会通过会话层(Socket)的连接来
传送,Socket使两台远程的计算机能利用Internet来通话。通过SSL,资料在传送
出去之前就自动被加密了,它会在接收端被解密。对没有解密钥的人来说,其中
的资料是无法阅读的。
SSL采用TCP作为传输协议提供数据的可靠传送和接收。SSL工作在Socket层
上,因此独立于更高层应用,可为更高层协议,如Telnet、FTP和HTTP提供安全
业务。SSL提供的安全业务和TCP层一样,采用了公开密钥和私人密钥两种加密
体制对Web服务器和客户机(选项)的通信提供保密性、数据完整性和认证。在
建立连接过程中采用公开密钥,在会话过程中使用私人密钥。加密的类型和强度
则在两端之间建立连接的过程中判断决定。在所有情况下,服务器通过以下方法
向客户机证实自身:给出包含公开密钥的、可验证的证明;演示它能对用此公开
密钥加密的报文进行解密。
为了支持客户机,每个客户机都要拥有一对密钥,这要求在 Internet 上通过
Netscape 分配。由于 Internet 中的服务器数远少于客户机数,因此能否处理签字
及密钥管理的业务量是很重要的,并且与客户联系比给商家以同样保证更重要。
3. SSL 协议提供的服务
(1)用户和服务器的合法性认证
使得用户和服务器能够确信数据将被发送到正确的客户机和服务器上。客户
机和服务器都有各自的识别号,由公开密钥编排。为了验证用户,安全套接层协
议要求在握手交换数据中做数字认证,以此来确保用户的合法性。
(2)加密数据以隐藏被传送的数据
安全套接层协议采用的加密技术既有对称密钥,也有公开密钥。具体来说,
就是客户机与服务器交换数据之前,先交换 SSL 初始握手信息。在 SSL 握手信
息中采用了各种加密技术,以保证其机密性和数据的完整性,并且经数字证书鉴
别,这样就可以防止非法用户破译。
(3)维护数据的完整性
安全套接层协议采用密码杂凑函数和机密共享的方法,提供完整信息性的服
务,来建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的
业务,在传输过程中都能完整、准确无误地到达目的地。
4. SSL 记录层协议
SSL 记录层协议限定了所有发送和接收数据的打包,它提供了通信、身份认
证功能,它是一个面向连接的可靠传输协议,如 TCP/IP 提供安全保护。
在 SSL 中所有数据被封装在记录中。一个记录由两部分组成:记录头和非
零长度的数据。记录头可以是 2 字节或 3 字节(当有填充数据时使用)。SSL 握
手层协议的报文要求必须放在一个 SSL 记录层的记录里,但应用层协议的报文
允许占用多个 SSL 记录来传送。
1.SSL 记录头格式
SSL 记录头可以是 2 个或 3 个字节长的编码。SSL 记录头包含的信息有记录
头的长度、记录数据的长度,以及记录数据中是否有填充数据,其中填充数据是
在使用块加密(blocken-cryption)算法时,填充实际数据,使其长度恰好是块的
整数倍。最高位为 1 时,不含有填充数据,记录头的长度为 2 个字节,记录数据
的最大长度为 32767 个字节;最高位为 0 时,含有填充数据,记录头的长度为 3
个字节,记录数据最长为 16383 个字节。
记录头类型 记录长度
2
字
节
头
记
录
当数据头长度是 3 个字节时,次高位有特殊的含义。次高位为 1 时,表示所
传输的记录是普通的数据记录;次高位为 0 时,表示所传输的记录是安全空白记
录(被保留用于将来协议的扩展)。
记录头中数据长度编码不包括数据头所占用的字节长度。记录头长度为 2 个字节
时,记录长度的计算公式为:记录长度?((Byte[0]&0x7f)<<8)|Byte[1]。其
中 Byte[0]、Byte[1]分别表示传输的第一个、第二个字节。
记录头长度为 3 个字节时,记录长度的计算公式是:记录长
((Byte[0]&0x3f<<8))
|Byte[1]。其中 Byte[0]、Byte[1]的含义同上。判断是否是安全空白记录的计算公
式是:(Byte[0]&0x40)!?0。填充数据的长度为传输的第三个字节。
2.SSL 记录数据格式
SSL 记录数据部分有 3 个分量:MAC-DATA、ACTUAL-DATA 和
PADDING-DATA。
MAC 数据用于数据完整性检查。计算 MAC 所用的散列函数由握手协议中的
CIPHER-CHOICE 消息确定。若使用 MD2 和 MD5 算法,则 MAC 数据长度是 16
个字节。MAC 的计算公式为:MAC 数据=Hash[密钥, 实际数据, 填充数据, 序
号]。
当会话的客户端发送数据时,密钥是客户的写密钥(服务器用读密钥来验证 MAC
数据);而当会话的客户端接收数据时,密钥是客户的读密钥(服务器用写密钥
来产生 MAC 数据)。序号是一个可以被发送和接收双方递增的计数器,每个通
信方向都会建立一对计数器,分别被发送者和接收者拥有。计数器有 32 位,计
数值循环使用,每发送一个记录,计数值递增一次,序号的初始值为 0。
ACTUAL-DATA 是被传送的应用数据,PADDING-DATA 是当采用分组码时所
需要的填充数据,在明文传送下只有第二项。
3.记录协议的作用
MAC 数据
3
字
节
头
记
录
记录头类型 EScape 位 记录长度 填充长度
MAC 数据 填充数据
SSL 记录层结构
记录协议层封装了高层协议的数据,协议数据采用 SSL 握手协议中协商好的
加密算法及 MAC 算法来保护。记录协议传送的数据包括一个序列号,这样就可
以检测消息的丢失、改动或重放。如果协商好了压缩算法,那么 SSL 记录协议
还可以执行压缩功能。SSL V3 版的高层由记录传递的消息组成,这包括改变密
码规范协议、警报协议和握手协议。改变密码规范协议指明对使用的密码规范的
改变,协议中还包括了一个用当前密码规范加密的单独消息。客户和服务器都要
发送改变密码规范消息来表明它们准备使用一个新的密码规范和密钥。警报协议
传送与事件相关的消息,包括事件严重性及事件描述。这里的事件主要是指错误
情形,如错误的 MAC 码、证书过期或是非法参数。警报协议也用于共享有关预
计连接终止的信息。
5. SSL 握手协议
握手协议是关于客户和服务器如何协商它们在安全信道中要使用的安全参
数,这些参数包括要采用的协议版本、加密算法和密钥。另外,客户要认证服务
器,服务器则可以选择认证/不认证客户。PKI 在客户—服务器认证阶段就开始
运作了,这就是握手协议的实质。
1.握手协议工作过程
① 客户(client)端发送 ClientHello 信息给服务器(Server)端,Server 回
答 ServerHello。这个过程建立的安全参数包括协议版本、“佳话”标识、加密算法、
压缩方法。另外,还交换两个随机数: 和
,用于计算机“会话主密钥”。
① Hello 消息发送完后,Server 端会发送它的证书和密钥交换信息。如果 Server
端被认证,它就会请求 Client 端的证书,在验证以后,Server 就发送 HelloDone
消息,以示达成了握手协议,即双方握手接通。
① Server 请求 Client 证书时,Client 要返回证书或返回没有证书的指示,这
种情况用于单向认证,即客户端不装有证书。然后,Client 发送密钥交换消息。
① 服务器 Server 此时要回答“握手完成”消息(Finished),以示完整的握手
消息交换已经全部完成。
① 握手协议完成后,Client 端即可与 Server 端传输应用加密数据,应用数据
加密一般是用第①步密钥协商时确定的对称加/解密密钥,如 DES、3DE 等。目
前,商用加密强度为 128 位,非对称密钥一般为 RAS,商用强度为 1024 位,用
于证书的验证。
其中,带*号的命令是可选的,或依据状态而发的消息,而改变加密算法协
议(ChangeCipherSpec)并不在实际的握手协议之中,它在第①步与第①步之间,
用于 Client 与 Server 协商新的加密数据包时而改变原先的加密算法。
2.握手协议的作用
SSL 中的握手协议,将公钥加密技术与对称密钥加密技术的应用有效、巧妙
地结合在一起,有机地组成了互联网(或其他网络)上信息安全传输的通道。这
种信息安全通道,有其实用价值,比如,利用对称加密技术比公钥加密技术对大
容量信息的加/解密速度要快,而公钥技术却提供了更好的身份认证技术。SSL
的握手协议可以非常有效地让客户与服务器之间完成身份认证。
通过 SSL 客户端与服务器传送自己的数字证书,互验合法性,特别是验证
服务器的合法性,可以有效地防止互联网上虚假网站的网上钓鱼事件;同时,服
务器端也可以严格验证客户端的真实身份。其作用如下:
① 客户端的浏览器向服务器传送客户端 SSL 协议的版本号、加密算法的种
类、产生的随机数,以及其他服务器和客户端之间通信所需要的各种信息。
① 服务器向客户端传送 SSL 协议的版本号、加密算法的种类、随机数及其
ClientHello
Certificate
ClientKeyExchange *
CertificateVerify
(ChangeCipherSpec)
Finished
Application Data
ServerHello
Certificate
ServerKeyExchange
Certificate Verify
ServerHello Done
Finished
Application Data
完整的握手协议消息交换过程
他相关信息,同时,服务器还将向客户端传送自己的证书。
① 客户利用服务器传过来的信息验证服务器的合法性。服务器的合法性包
括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正
确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的
实际域名相匹配。如果合法性验证没有通过,则通信将断开;如果合法性验证通
过,则将继续进行第①步。
① 客户端随机产生一个用于后面通信的“对称密码”,然后用服务器的公钥
(从步骤①中服务器的证书中获得)对其加密,再将加密后的“预主密码”传给服
务器。
① 如果服务器要求客户的身份认证(在握手过程中为可选),用户则可以建
立一个随机数,然后对其进行数字签名,将这个含有签名的随机数和客户自己的
证书,以及加密过的“预主密码”一起传给服务器。
① 如果服务器要求客户的身份认证,服务器则必须检验客户证书和签名随
机数的合法性。具体的合法性验证包括:客户的证书使用日期是否有效,为客户
提供证书的 CA 是否可靠,发行 CA 的公钥能否正确解开客户证书的发行 CA 的
数字签名,检查客户的证书是否在证书撤销列表(CRL)中。检验如果没有通过,
则通信立刻中断;如果验证通过,则服务器将用自己的私钥解开加密的“预主密
码”,然后执行一系列步骤来产生主通信密码(客户端也将通过同样的方法产生
相同的主通信密码)。
① 服务器和客户端用相同的主密码,即“通话密码”,一个对称密钥用于 SSL
协议的安全数据通信的加/解密通信。同时,在 SSL 通信过程中还要完成数据通
信的完整性,以防止数据通信中的任何变化。
① 客户端向服务器端发出信息,指明后面的数据通信将使用步骤①中的主密
码为对称密钥,同时通知服务器客户端的握手过程结束。
① 服务器向客户端发出信息,指明后面的数据通信将使用步骤①中的主密码
为对称密钥,同时通知客户端服务器端的握手过程结束。
① SSL 的握手部分结束,SSL 安全通道的数据通信开始,客户和服务器开
始使用相同的对称密钥进行数据通信,同时进行通信完整性的检验。
证书各部分的含义
Version 证书版本号,不同版本的证书格式不同
Serial Number 序列号,同一身份验证机构签发的证书序列号唯一
Algorithm Identifier 签名算法,包括必要的参数 Issuer 身份验证机构的标识
信息
Period of Validity 有效期
Subject 证书持有人的标识信息
Subject’s Public Key 证书持有人的公钥
Signature 身份验证机构对证书的签名
证书的格式 认证中心所发放的证书均遵循 V3 标准,其基本格式
如下:
证书版本号(Certificate Format Version) 含义:用来指定证书格式采用的
版本号。
证书序列号(Certificate Serial Number) 含义:用来指定证书的唯一序列号,
以标识 CA 发出的所有公钥证书。
签名(Signature) 算法标识(Algorithm Identifier) 含义:用来指定 CA
签发证书所用的签名算法。
签发此证书的 CA 名称(Issuer ) 含义:用来指定签发证书的 CA 的
唯一名称(DN, Distinguished Name)。
证书有效期(Validity Period) 起始日期(notBefore) 终止日期(notAfter)
含义:用来指定证书起始日期和终止日期。
用户名称(Subject) 含义:用来指定证书用户的 唯一名称(DN,
Distinguished Name)。
用户公钥信息(Subject Public Key Information) 算法(algorithm) 算法标
识(Algorithm Identifier) 用户公钥(subject Public Key) 含义:用来标识
公钥使用的算法,并包含公钥本身。
证书扩充部分(扩展域)(Extensions) 含义:用来指定额外信息。
V3 证书的扩充部分(扩展域)及实现方法如下: CA 的公钥标识
(Authority Key Identifier) 公钥标识(SET 未使用)(Key Identifier) 签
发证书者证书的签发者的甄别名(Certificate Issuer) 签发证书者证书的序列号
(Certificate Serial Number)
V3 证书的扩充部分(扩展域)及实现 CA 的公钥标识(Authority Key
Identifier) 公钥标识(SET 未使用)(Key Identifier) 签发证书者证书的签发
者的甄别名(Certificat 签发证书者证书的序列号(Certificate Serial N 含义:CA
签名证书所用的密钥对的唯一标识用户的公钥标识(Subject Key Identifier)
含义:用来标识与证书中公钥相关的特定密钥进行解密。 证书中的公钥用途(Key
Usage) 含义:用来指定公钥用途。
用户的私钥有效期(Private Key Usage Period) 起始日期(Note Before)
终止日期(Note After) 含义:用来指定用户签名私钥的起始日期和终止日期。
CA 承认的证书政策列表(Certificate Policies) 含义:用来指定用户证书所适用
的政策,证书政策可由对象标识符表示。 用户的代用(Substitutional Name)
含义:用来指定用户的代用名。 CA 的代用名(Issuer Alt Name) 含义:用
来指定 CA 的代用名。 基本制约(Basic Constraints) 含义:用来表明证书
用户是最终用户还是 CA。 在 SET 系统中有一些私有扩充部分(扩展域)Hashed
Root Key 含义:只在根证书中使用,用于证书更新时进行回溯。 证书类型
(Certificate Type) 含义:用来区别不同的实体。该项是必选的。 商户数据
(Merchant Data) 含义:包含支付网关需要的所有商户信息。 持卡人证书需
求(Card Cert Required) 含义:显示支付网关是否支持与没有证书的持卡人
进行交易。 SET 扩展(SETExtensions) 含义:列出支付网关支持的支付命令
的 SET 信息扩展。 CRL 数据定义版本(Version) 含义:显示 CRL 的版本
号。
CRL 的签发者(Issuer) 含义:指明签发 CRL 的 CA 的甄别名。 CRL
发布时间(this Update) 预计下一个 CRL 更新时间(Next Update) 撤销
证书信息目录(Revoked Certificates) CRL 扩展(CRL Extension) CA 的
公钥标识(Authority Key Identifier) CRL 号(CRL Number)
6. SSL 的应用
1.单向认证:又称匿名 SSL 连接,这是 SSL 安全连接的最基本模式,它便
于使用,主要的浏览器都支持这种方式,适合单向数据安全传输应用。在这种模
式下客户端没有数字证书,只是服务器端具有证书,以不在认用户访问的是自己
要访问的站点。典型的应用就是用户进行网站注册时彩 ID+口令的匿名认证,
过去网上银行的所谓“大众版”就是这种?? 因子认证。
2.双方认证:是对等的安全认证,这种模式通信双方都可以发起和接收 SSL
连接请求。通信双方可以利用安全应用程序(控键)或安全代理软件,前者一般
适合于 B/S 结构,而后者适用于 C/S 结构,安全代理相当于一个加密/解密的网
关,这种模式双方皆需安装证书,进行双向认证。这就是网上银行的 B2B 的专
业版等应用。
3.电子商务中的应用。电子商务与网上银行交易不同,因为有商户参加,
形成客户――商家――银行,两次点对点的 SSL 连接。客户,商家,银行,都
必须具证书,两次点对点的双向认证,如图所示。
7. SSL 协议的安全性分析
SSL 协议所采用的加密算法和认证算法使它具有较高的安全性,但也存在一
些问题。
1.SSL 协议采用的加密算法和认证算法
(1)加密算法和会话密钥
SSL V2 协议和 SSL V3 协议支持的加密算法包括 RC4、RC2、IDEA 和
DES,
加密一般分三类:对称加密、非对称加密和单向散列函数;
对称加密:分组密码(DES,RC5,IDEA)和序列密码(RC4),其中 CBC(cipher
block chaining)是分组密码的一类,是指一个明文分组在被加密之前要与前一个
的密文分组进行异或运算,当加密算法用于此模式的时候除密钥外,还需协商一
个初始化向量(IV),这个 IV 没有实际意义,只是在第一次计算的时候需要用
到而已,采用这种模式的话安全性会有所提高;
单向散列函数:由于信道的破坏,一个通用的方法就是加入校验码。单向散
列函数可用于此用途,一个典型的例子是 MD5,它产生 128 位的摘要,在现实
中用的更多的是安全散列算法(SHA),SHA 的早期版本存在问题,目前用的实
际是 SHA-1,它可以产生 160 位的摘要,因此比 128 位散列更能有效抵抗穷举攻
击。由于单向散列的算法是公开的,所以其它人可以先改动原文,再生成另外一
份摘要,解决这个问题的方法可以通过 HMAC,它包含了一个密钥,只有拥有
相同密钥的人才能鉴别这个散列
(2)认证算法
认证算法采用 电子证书标准,是通过 RSA 算法进行数字签名来实现
的。
服务器的认证
在上述的两对密钥中,服务器方的写密钥和客户方的读密钥、客户方的写密
钥和服务器方的读密钥分别是一对私有、公有密钥。对服务器进行认证时,只有
用正确的服务器方写密钥加密,ClientHello 消息形成的数字签名才能被客户正确
地解密,从而验证服务器的身份。
若通信双方不需要新的密钥,则它们各自所拥有的密钥已经符合上述条件。
若通信双方需要新的密钥,首先服务器方在 ServerHello 消息中的服务器证书中
商家顾客 银行
提供了服务器的公有密钥,服务器用其私有密钥才能正确地解密由客户方使用服
务器的公有密钥加密的 MASTER-KEY,从而获得服务器方的读密钥和写密钥。
客户的认证
同上,只有用正确的客户方写密钥加密的内容才能被服务器方用其读密钥正
确地解开。当客户收到服务器方发出的 REQUEST-CERTIFICATE 消息时,客户
首先使用 MD5 消息散列函数获得服务器方信息的摘要,服务器方的信息包括:
KEY-MATERIAL-0、KEY-MATERIAL-1、KEY-MATERIAL-2、
CERTIFICATE-CHALLENAGE-DATA(来自于 REQUEST-CERTIFICATE 消
息)、服务器所赋予的证书(来自于 ServerHello)消息。
其中 KEY-MATERIAL-l、KEY-MATERIAL-2 是可选的,与具体的加密算法
有关。然后客户使用自己的读密钥加密摘要形成数字签名,从而被服务器认证。
2.SSL 安全优势
(1)监听和中间人式攻击
SSL 使用一个经过通信双方协商确定的加密算法和密钥,对不同的安全级别
应用都可找到不同的加密算法,从而用于数据加密。它的密钥管理处理比较好,
在每次连接时通过产生一个密码杂凑函数生成一个临时使用的会话密钥,除了不
同连接使用不同密钥外,在一次连接的两个传输方向上也使用各自的密钥。尽
管 SSL 协议为监听者提供了很多明文,
但由于采用 RSA 交换密钥具有较好的密钥保护性能,以及频繁更换密钥的
特点,因此对监听和中间人式攻击而言,具有较高的防范性。
(2)流量数据分析式攻击
流量数据分析式攻击的核心是通过检查数据包的未加密字段或未加保护的
数据包属性,试图进行攻击。在一般情况下该攻击是无害的,SSL 无法阻止这种
攻击。
(3)截取再拼接式攻击
对需要较强的连接加密,需要考虑这种安全性。SSL 基本上可阻止这
种攻击。
(4)报文重发式攻击
报文重发式攻击比较容易阻止,SSL 通过在 MAC 数据中包含“系列号”来防
止该攻击。
3.SSL 协议存在的问题
(1)密钥管理问题
设计一个安全秘密的密钥交换协议是很复杂的,因此,SSL 的握手协议也存
在一些密钥管理问题。SSL 的问题表现在:
客户机和服务器在互相发送自己能够支持的加密算法时,是以明文传送的,
存在被攻击修改的可能。
SSL 为了兼容以前的版本,可能降低安全性。
所有的会话密钥中都将生成 MASTER-KEY,握手协议的安全完全依赖于对
MASTER-KEY 的保护,因此在通信中要尽可能少地使用 MASTER-KEY。
(2)加密强度问题
Netscape 依照美国内政部的规定,在它的国际版的浏览器及服务器上使用
40 位的密钥。以 SSL 所使用的 RC4 演绎法所命名的 RC4 法规,对多于 40 位长
的加密密钥产品的出口加以限制,这项规定使 Netscape 的 128 位加密密钥在美
国之外的地方变成不合法。一个著名的例子是一个法国的研究生和两个美国柏克
莱大学的研究生破译了一个 SSL 的密钥,才使人们开始怀疑以 SSL 为基础的系
统安全性。
Microsoft 公司想利用一种称为私人通信技术(PCT,Private Communication
Technology)的 SSLsuperset 协议来改进 SSL 的缺点。PCT 会衍生出第二个专门
为身份验证用的密钥,这个身份验证并不属于 RC4 规定的管辖范围。PCT 加入
比目前随机数产生器更安全的产生器,因为它也是 SSL 安全链中的一个弱环节。
这个随机数产生器提供了产生加密密钥的种子数目(Seed Number)。
(3)数字签名问题
SSL 协议没有数字签名功能,即没有抗否认服务。若要增加数字签名功能,
则需要在协议中打“补丁”。这样做,在用于加密密钥的同时又用于数字签名,这
在安全上存在漏洞。后来 PKI 体系完善了这种措施,即双密钥机制,将加密密
钥和数字签名密钥二者分开,成为双证书机制。这是 PKI 完整的安全服务体
参考文献:
[1]罗新星等 :电子支付系统的安全性研究及其设计[J].武汉理工大学学
报,2003,25(1)
[2]代晓红:基于 SSL 协议的电子商务安全性分析[J].工业技术经济,2004,23(6)
[3]黄劲潮:SSL 安全通信在电子商务中的应用[J].中国科技信息,2007(12)
[4]姜庆娜:基于 Internet 的电子商务安全支付系统的研究[D].山东师范大
学,2005
[5]寇晓蕤:网络安全协议[J].高等教育出版社,2009(1)