一套能够保证认证性,机密性 完整性以及完整性的密码学通信协议,该协议需采用形式化定

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
几类安全协议的设计与分析.pdf56页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:200 &&
你可能关注的文档:
中国人民解放军信息工程大学
硕士学位论文
几类安全协议的设计与分析
申请学位级别:硕士
专业:密码学
指导教师:周玉洁
安全协议的研究历经二十余年,已经发展为信息安全领域的主流研究方向。同时,移
动通信和计算机网络技术渗入到我们生活中的方方面面,各种应用不胜枚举,相关的安全
问题也越来越受到人们的关注。本文针对和移动电子商务中的安全支付以及内网数
据安全三个领域中存在的实际问题,从安全协议的角度给出解决方案。
首先,详细分析了存在的安全缺陷。总结和借鉴认证协议已有的改进方案,
利用算法构建了新的认证方案,并采用逻辑,对新方案进行了分析。新方案具
有很好的安全性,解决了原有协议存在的安全问题,较已有的改进方案有更高的实现效率,
同时具有前向安全性和防跟踪性。
其次,详细介绍和分析了几种典型的微支付机制,借鉴其中的优秀思想,结合移动电
子商务的特点提出一套适用于移动电子商务平台的安全支付机制。应用逻辑和
逻辑的改进模型对新方案的非否认性、可追究性与公平性进行了形式化分析,在实现效率
上与五种典型的微支付方案进行了量化比较。新方案在用户端的存储量和计算量方面具有
较大优势,解决了微支付中的税收问题,具有较好的匿名性,可以有效防止用户和商家的
欺诈,实现了用户与任何商家的无差别交易,使小额支付和微支付更加高效、灵活。
最后,本文针对中小企业内网数据安全的需要,给出了一个使用普通盘实现的双
因素身份认证方案。该方案简单、高效、实施成本低,安全性较传统的口令认证方式有极
大的提高,实现了单一登录,不需要系统时钟同步。在此基础上,提出了中小企业内网数
据安全系统建设的基本构想。
正在加载中,请稍后...【图文】安全协议复习课件_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
安全协议复习课件
上传于||文档简介
&&安​全​协​议​复​习​课​件​,​最​全​的
大小:4.61MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢信息系统安全复习题 (1)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
信息系统安全复习题 (1)
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩25页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢安全协议复习整理_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
安全协议复习整理
||文档简介
思科网络认证工程师|
总评分4.3|
浏览量39889
&&安​全​协​议​复​习​整​理
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩17页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢图11-8& SSL协议的位置
SSL标准的关键是要解决以下几个问题。
(1)客户对服务器的身份确认:SSL服务器允许客户的浏览器使用标准的公钥加密技术和一些可靠的认证中心(CA)的证书,来确认服务器的合法性(检验服务器的证书和ID的合法性)。对于用户服务器身份的确认与否是非常重要的,因为客户可能向服务器发送自己的信用卡密码。
(2)服务器对客户的身份确认:允许SSL服务器确认客户的身份,SSL协议允许客户服务器的软件通过公钥技术和可信赖的证书来确认客户的身份(客户的证书)。对于服务器客户身份的确认与否是非常重要的,因为网上银行可能要向客户发送机密的金融信息。
(3)建立起服务器和客户之间安全的数据通道:SSL要求客户和服务器之间所有的发送数据都被发送端加密,所有的接收数据都被接收端解密,这样才能提供一个高水平的安全保证。同时SSL协议会在传输过程中检查数据是否被中途修改。
2.SSL协议的目标
按它们的优先级,SSL协议的目标如下。
(1)在通信双方之间利用加密的SSL消息建立安全的连接。
(2)互操作性。通信双方的程序是独立的,即一方可以在不知道对方程序编码的情况下,利用SSL成功地交换加密参数。
注意:并不是所有的SSL实例(甚至在同一应用程序内)都可以成功地连接。例如,如果服务器支持一特定的硬件令牌(token),而客户端不能访问此令牌,则连接不会成功。
(3)可扩展性。SSL寻求提供一种框架结构,在此框架结构中,在不对协议进行大的修改的情况下,可以在必要时加入新的公钥算法和单钥算法。这样做还可以实现两个子目标:
— 避免产生新协议的需要,因而进一步避免了产生新的不足的可能性;
— 避免了实现一完整的安全协议的需要。
相对于有效性加密操作,尤其是公钥加密,对CPU来说是一种很耗时的事,因此SSL协议引入一个可选的对话缓存(Cache)来减少从头开始的连接数目。同时,它还注意减少网络的活动。
3.SSL主要组成
SSL协议由两层组成,分别是握手协议层和记录协议层。握手协议建立在记录协议之上,此外,还有警告协议、更改密码说明协议和应用数据协议等对话协议和管理提供支持的子协议。SSL协议的组成及其TCP/IP中的位置如图11-9所示。
图11-9& SSL协议的组成及其在TCP/IP中的位置
在图11-9中的每一层,可以包括长度、描述和内容字段。SSL发出消息是将数据分为可管理的块、压缩、使用MAC和加密并发出加密的结果。接受消息需要解密、验证、解压和重组,再把结果发往更高一层的客户。
(1)记录协议
具体实现压缩/解压缩、加密/解密、计算机MAC等与安全有关的操作。建立之上的还有:
— 更改密码说明协议:此协议由一条消息组成,可由客户端或服务器发送,通知接收方后面的记录将被新协商的密码说明和密钥保护;接收方获得此消息后,立即指示记录层把即将读状态变成当前读状态;发送方发送此消息后,应立即指示记录层把即将写状态变成当前写状态。
— 警告协议:警告消息传达消息的严重性并描述警告。一个致命的警告将立即终止连接。与其他消息一样,警告消息在当前状态下被加密和压缩。警告消息有以下几种:
关闭通知消息、意外消息、错误记录MAC消息、解压失败消息、握手失败消息、无证书消息、错误证书消息、不支持的证书消息、证书撤回消息、证书过期消息、证书未知和参数非法消息等。
— 应用数据协议:将应用数据直接传递给记录协议。
(2)握手协议
SSL握手协议是用来在客户端和服务器端传输应用数据而建立的安全通信机制。
— 算法协商:首次通信时,双方通过握手协议协商密钥加密算法、数据加密算法和文摘算法。
— 身份验证:在密钥协商完成后,客户端与服务器端通过证书互相验证对方的身份。
— 确定密钥:最后使用协商好的密钥交换算法产生一个只有双方知道的秘密信息,客户端和服务器端各自根据这个秘密信息确定数据加密算法的参数(一般是密钥)。由此可见,SSL协议是端对端的通信安全协议。
11.6.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中的服务器数远少于客户机数,因此能否处理签字及密钥管理的业务量是很重要的,并且与客户联系比给商家以同样保证更重要。
SSL协议提供的服务可以归纳为如下3个方面。
(1)用户和服务器的合法性认证
使得用户和服务器能够确信数据将被发送到正确的客户机和服务器上。客户机和服务器都有各自的识别号,由公开密钥编排。为了验证用户,安全套接层协议要求在握手交换数据中做数字认证,以此来确保用户的合法性。
(2)加密数据以隐藏被传送的数据
安全套接层协议采用的加密技术既有对称密钥,也有公开密钥。具体来说,就是客户机与服务器交换数据之前,先交换SSL初始握手信息。在SSL握手信息中采用了各种加密技术,以保证其机密性和数据的完整性,并且经数字证书鉴别,这样就可以防止非法用户破译。
(3)维护数据的完整性
安全套接层协议采用密码杂凑函数和机密共享的方法,提供完整信息性的服务,来建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务,在传输过程中都能完整、准确无误地到达目的地。
11.6.3& SSL记录层协议
SSL记录层协议限定了所有发送和接收数据的打包,它提供了通信、身份认证功能,它是一个面向连接的可靠传输协议,如TCP/IP提供安全保护。
在SSL中,所有数据被封装在记录中。一个记录由两部分组成:记录头和非零长度的数据。记录头可以是2字节或3字节(当有填充数据时使用)。SSL握手层协议的报文要求必须放在一个SSL记录层的记录里,但应用层协议的报文允许占用多个SSL。记录来传送。
1.SSL记录头格式
SSL记录头可以是2个或3个字节长的编码。SSL记录头包含的信息有记录头的长度、记录数据的长度,以及记录数据中是否有填充数据,其中填充数据是在使用块加密(blocken-cryption)算法时,填充实际数据,使其长度恰好是块的整数倍。最高位为1时,不含有填充数据,记录头的长度为2个字节,记录数据的最大长度为32767个字节;最高位为0时,含有填充数据,记录头的长度为3个字节,记录数据的最大长度为16383个字节。
SSL记录层结构如图11-10所示。
图11-10& SSL记录层结构
当数据头长度是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.记录协议的作用
记录协议层封装了高层协议的数据,协议数据采用SSL握手协议中协商好的加密算法及MAC算法来保护。记录协议传送的数据包括一个序列号,这样就可以检测消息的丢失、改动或重放。如果协商好了压缩算法,那么SSL记录协议还可以执行压缩功能。
SSL V3版的高层由记录传递的消息组成,这包括改变密码规范协议、警报协议和握手协议。改变密码规范协议指明对使用的密码规范的改变,协议中还包括了一个用当前密码规范加密的单独消息。客户和服务器都要发送改变密码规范消息来表明它们准备使用一个新的密码规范和密钥。警报协议传送与事件相关的消息,包括事件严重性及事件描述。这里的事件主要是指错误情形,如错误的MAC码、证书过期或是非法参数。警报协议也用于共享有关预计连接终止的信息。
11.6.4& SSL握手协议
握手协议是关于客户和服务器如何协商它们在安全信道中要使用的安全参数,这些参数包括要采用的协议版本、加密算法和密钥。另外,客户要认证服务器,服务器则可以选择认证/不认证客户。PKI在客户-服务器认证阶段就开始运作了,这就是握手协议的实质。
1.握手协议工作过程
SSL握手协议的具体工作过程描述如下。
① 客户(client)端发送ClientHello信息给服务器(Server)端,Server回答ServerHello。这个过程建立的安全参数包括协议版本、“佳话”标识、加密算法、压缩方法。另外,还交换两个随机数:C1ientHello.Random和ServerHello.Random,用于计算机“会话主密钥”。
② Hello消息发送完后,Server端会发送它的证书和密钥交换信息。如果Server端被认证,它就会请求Client端的证书,在验证以后,Server就发送HelloDone消息,以示达成了握手协议,即双方握手接通。
③ Server请求Client证书时,Client要返回证书或返回没有证书的指示,这种情况用于单向认证,即客户端不装有证书。然后,Client发送密钥交换消息。
④ 服务器Server此时要回答“握手完成”消息(Finished),以示完整的握手消息交换已经全部完成。
⑤ 握手协议完成后,Client端即可与Server端传输应用加密数据,应用数据加密一般是用第②步密钥协商时确定的对称加/解密密钥,如DES、3DE等。目前,商用加密强度为128位,非对称密钥一般为RAS,商用强度为1024位,用于证书的验证。
完整的握手协议消息交换过程如图11-11所示。
图11-11& 完整的握手协议消息交换过程
其中,带*号的命令是可选的,或依据状态而发的消息,而改变加密算法协议(ChangeCipherSpec)并不在实际的握手协议之中,它在第③步与第④步之间,用于Client与Server协商新的加密数据包时而改变原先的加密算法。
2.握手协议的作用
SSL中的握手协议,将公钥加密技术与对称密钥加密技术的应用有效、巧妙地结合在一起,有机地组成了互联网(或其他网络)上信息安全传输的通道。这种信息安全通道,有其实用价值,比如,利用对称加密技术比公钥加密技术对大容量信息的加/解密速度要快,而公钥技术却提供了更好的身份认证技术。SSL的握手协议可以非常有效地让客户与服务器之间完成身份认证。
通过SSL客户端与服务器传送自己的数字证书,互验合法性,特别是验证服务器的合法性,可以有效地防止互联网上虚假网站的网上钓鱼事件;同时,服务器端也可以严格验证客户端的真实身份。其作用如下:
① 客户端的浏览器向服务器传送客户端SSL协议的版本号、加密算法的种类、产生的随机数,以及其他服务器和客户端之间通信所需要的各种信息。
② 服务器向客户端传送SSL协议的版本号、加密算法的种类、随机数及其他相关信息,同时,服务器还将向客户端传送自己的证书。
③ 客户利用服务器传过来的信息验证服务器的合法性。服务器的合法性包括:证书是否过期,发行服务器证书的CA是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,则通信将断开;如果合法性验证通过,则将继续进行第④步。
④ 客户端随机产生一个用于后面通信的“对称密码”,然后用服务器的公钥(从步骤②中服务器的证书中获得)对其加密,再将加密后的“预主密码”传给服务器。
⑤ 如果服务器要求客户的身份认证(在握手过程中为可选),用户则可以建立一个随机数,然后对其进行数字签名,将这个含有签名的随机数和客户自己的证书,以及加密过的“预主密码”一起传给服务器。
⑥ 如果服务器要求客户的身份认证,服务器则必须检验客户证书和签名随机数的合法性。具体的合法性验证包括:客户的证书使用日期是否有效,为客户提供证书的CA是否可靠,发行CA的公钥能否正确解开客户证书的发行CA的数字签名,检查客户的证书是否在证书撤销列表(CRL)中。检验如果没有通过,则通信立刻中断;如果验证通过,则服务器将用自己的私钥解开加密的“预主密码”,然后执行一系列步骤来产生主通信密码(客户端也将通过同样的方法产生相同的主通信密码)。
⑦ 服务器和客户端用相同的主密码,即“通话密码”,一个对称密钥用于SSL协议的安全数据通信的加/解密通信。同时,在SSL通信过程中还要完成数据通信的完整性,以防止数据通信中的任何变化。
⑧ 客户端向服务器端发出信息,指明后面的数据通信将使用步骤⑦中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。
⑨ 服务器向客户端发出信息,指明后面的数据通信将使用步骤⑦中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。
⑩ SSL的握手部分结束,SSL安全通道的数据通信开始,客户和服务器开始使用相同的对称密钥进行数据通信,同时进行通信完整性的检验。
11.6.5& SSL协议的安全性分析
SSL协议所采用的加密算法和认证算法使它具有较高的安全性,但也存在一些问题。
1.SSL协议采用的加密算法和认证算法
(1)加密算法和会话密钥
SSL V2协议和SSL V3协议支持的加密算法包括RC4、RC2、IDEA和DES,而加密算法所用的密钥由消息散列函数MD5产生。RC4、RC2是由RSA定义的,其中RC2适用于块加密,RC4适用于流加密。
(2)认证算法
认证算法采用X.509电子证书标准,是通过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 V3.0基本上可阻止这种攻击。
(4)报文重发式攻击
报文重发式攻击比较容易阻止,SSL通过在MAC数据中包含“系列号”来防止该攻击。
3.SSL协议存在的问题
(1)密钥管理问题
设计一个安全秘密的密钥交换协议是很复杂的,因此,SSL的握手协议也存在一些密钥管理问题。SSL的问题表现在:
— 客户机和服务器在互相发送自己能够支持的加密算法时,是以明文传送的,存在被攻击修改的可能。
—& SSL V3.0为了兼容以前的版本,可能降低安全性。
— 所有的会话密钥中都将生成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完整的安全服务体系。
发表评论:
TA的最新馆藏[转]&[转]&}

我要回帖

更多关于 机密性 完整性 可用性 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信