6A文SSL协议分析和应用.docx

上传人:b****5 文档编号:4254394 上传时间:2022-11-28 格式:DOCX 页数:42 大小:148.31KB
下载 相关 举报
6A文SSL协议分析和应用.docx_第1页
第1页 / 共42页
6A文SSL协议分析和应用.docx_第2页
第2页 / 共42页
6A文SSL协议分析和应用.docx_第3页
第3页 / 共42页
6A文SSL协议分析和应用.docx_第4页
第4页 / 共42页
6A文SSL协议分析和应用.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

6A文SSL协议分析和应用.docx

《6A文SSL协议分析和应用.docx》由会员分享,可在线阅读,更多相关《6A文SSL协议分析和应用.docx(42页珍藏版)》请在冰豆网上搜索。

6A文SSL协议分析和应用.docx

6A文SSL协议分析和应用

摘要

随着近年来计算机技术的不断发展,计算机网络已经进入到了千家万户,日渐兴起的电子商务活动也越来越频繁。

在这样一个大环境下,计算机网络中电子商务交易的安全也随之成为现有计算机网络问题中最为突出的一个问题。

SSL即安全套接层协议,是一个用于在因特网上进行保密通信的安全协议,它位于TCP层和应用层之间,对信息传输起到了加密和认证的作用。

SSL协议采用数字签名及数字证书进行双端实体认证,用非对称加密算法进行密钥协商,用对称加密算法将数据加密后进行传输,并且通过计算数字摘要来验证数据在传输过程中是否被篡改和伪造,从而为敏感数据在Internet上的传输提供了一种安全保障手段。

本文大体从五个方面来讲述SSL协议:

SSL的概述,SSL密码学知识,SSL的工作过程,SSL的安全分析及其应用,文章重点讲的是SSL的应用。

SSL在电子支付中的应用的主要研究工作包括:

介绍了基于SSL支付体系的基本构成、基本特征以及安全电子支付的整个过程。

我的主要工作重心是通过对公开源代码工具OpenSSL进行分析,利用OpenSSL开发包编写建立在SSL上的Client/Server程序,利用SSL的特性保证通信双方能够互相验证对方身份及数据通信过程中的安全。

【关键词】安全套阶层协议加密技术安全性分析电子支付OpenSSL

 

ABSTRACT

Asinrecentyearsthecontinuousdevelopmentofcomputertechnology,computernetworks,hasenteredintothousandsofhouseholds,thegrowingemergenceofe-commerceactivitiesareincreasinglyfrequent.Insuchanenvironment,thecomputernetworksecurityine-commercetransactionshavealsobecomeaproblemoftheexistingcomputernetworks,themostprominentissue.SSLSecureSocketsLayerprotocolthatisusedontheInternetasecurecommunicationtothesecurityprotocol,whichislocatedinTCPlayerandapplicationlayerbetweenthetransmissionofinformationplayedaroleinencryptionandauthentication.SSLprotocolusingdigitalsignaturesanddigitalcertificatesfortwo-terminalentityauthentication,non-symmetricencryptionalgorithmusedforkeyagreement,symmetricencryptionalgorithmusedtoencryptdataaftertransmission,andbycalculatingthenumberofsummarydatatoverifywhetherthetransmissionhasbeentamperedwithandforgery,soastosensitivedatatransmittedontheInternetprovidesameansofsecurity.

Inthistext,generallyfromfivepartstointroduceSSLprotocol:

SSLoverview,SSLcryptographyknowledge,SSLworkingprocess,SSLsecurityanalysisanditsapplication.ThearticlestressesthatthefocusoftheapplicationofSSL.SSLintheelectronicpaymentapplicationsintheresearchinclude:

IntroducedSSLpaymentsystembasedonthebasiccomposition,thebasiccharacteristicsofelectronicpaymentandsecurityofthewholeprocess.MymainfocusisontheOpenSSLopen-sourcetoolstoanalyze,usingOpenSSLdevelopmentpackagebuiltontheSSLonthepreparationoftheClient/Serverprogram,useThecharacteristicsofSSLtoensurethatcommunicationsamongthepartiestoverifytheiridentityandintheprocessofdatacommunicationsecurity.

【Keywords】TheSSLprotocolencryptionSecurityanalysisElectronicpaymentOpenssl

 

目录

绪论1

第一章SSL协议概述3

第一节SSL协议的结构3

一、SSL握手协议4

二、SSL记录层协议7

第二章SSL协议的密码学基础8

第一节常用的加密算法8

一、对称加密算法8

二、非对称加密算法9

第二节消息摘要10

第三节数字签名11

第四节数字证书12

第三章SSL的工作过程14

第一节双方的身份认证14

第二节协商加密密钥15

第三节防黑客窃听16

第四节应用数据的传输17

第四章SSL协议的安全性分析18

第一节安全机制分析18

第二节脆弱性分析20

第三节SSL协议在电子商务应用中的漏洞分析21

第五章SSL协议的应用24

第一节SSL在电子支付中的应用24

一、电子支付环境的安全需求24

二、电子支付的安全问题24

三、简单安全支付系统的实现25

第二节用OpenSSL工具实现安全认证26

一、OpenSSL的简介26

二、OpenSSL应用示例28

工作总结和心得体会40

致谢41

参考文献42

附录43

一、英文原文43

二、英文翻译48

绪论

SSL安全协议是国际上最早应用于电子商务的一种网络安全协议,在传统的邮购活动中,客户首先寻找商品信息,然后汇款给商家,让商家阅读,商家将商品寄给客户,这里,商家是可以信赖的,所以客户先付款给商家。

在电子商务的开始阶段,商家也是担心客户购买后不付款,或使用过期的信用卡,因而希望银行给予认证,SSL安全协议正是在这种背景下产生的。

目前,国外著名的商用浏览器和Web服务器都内嵌地支持SSL协议,SSL己成为最流行的WWW安全协议。

安全协议是以密码学为基础的协议,它在网络和分布式系统中提供各种各样的安全服务,有着大量的应用,起着桥梁的作用,在信息系统安全中占据重要的位置。

由于SSL具有应用面广、实施成本低、安全高效、操作简单等优点,它已成为电子商务系统中应用得最广泛的协议,它融合了多种安全技术,实现安全的Web通信,必将在国内的安全电子交易领域得到广泛的应用。

目前几乎所有处理具有敏感度的资料,财务资料或者要求身分认证的网站都会使用SSL加密技术。

SSL是一种在浏览器跟网络服务器之间受密码保护的导管,也就是我们常说的安全通道。

这个安全通道把使用者以及网站之间往返的资料加密起来。

但是SSL并不会消除或者减弱网站所将受到的威胁性。

事实上,受到SSL防护的网页服务器同样还是会受到和其它网站服务器遭受攻击的威胁,受到SSL防护的网页服务器不一定是万无一失的。

因为SSL只是简单地在两方之间建立了安全连接,是面向连接的,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协调各方间的安全传输和信任关系。

不过对于安全要求不甚高的交易或认证,SSL还是一个相当不错的安全机制。

文章首先介绍了SSL协议的结构、SSL协议的工作原理、SSL协议的工作过程如双方的身份认证,协商加密公钥,如何防黑客窃听等;还介绍了密码学与信息安全的基础知识,包括对称加密和非对称加密,消息摘要和数字签名,数字证书等概念,详细分析了SSL协议的密码学基础。

然后分析了SSL协议所面临的各种攻击手段,安全性及工作性能,效率,还分析了SSL协议在电子商务应用中的漏洞,并给出了具体的实现方案。

文章重点讲的是SSL的应用。

SSL在电子支付中的应用的主要研究工作包括:

介绍了基于SSL支付体系的基本构成、基本特征以及安全电子支付的整个过程。

我的主要工作重心是通过对公开源代码工具OpenSSL进行分析,利用OpenSSL开发包编写建立在SSL上的Client/Server程序,利用SSL的特性保证通信双方能够互相验证对方身份及数据通信过程中的安全。

 

第一章SSL协议概述

第一节SSL协议的结构

SSL协议被设计成使用TCP协议提供端到端的安全服务,实际上,SSL有一组协议组成,而不是单个协议。

SSL的协议栈[1]如图2.1所示。

图1.1SSL的协议栈

SSL记录协议为不同的高层协议提供安全服务,HTTP、FTP等高层应用协议都可以在SSL协议上运行。

SSL握手协议、SSL修改密文协议和SSL告警协议也是SSL协议的一部分,它们的作用是用来管理与SSL有关的交换。

SSL协议中有两个重要的概念,即连接和会话。

连接是指两台主机之间提供特定类型服务的传输,是点对点的关系。

一般来说,连接是短暂的,每一个连接都与一个会话相关联。

会话是客户和服务器之间的关联,会话是通过握手协议进行创建的。

会话是加密安全参数的一个集合,包含了比如加密算法、临时加密密钥和初始向量等。

会话可以被多个连接所共享,这样可以避免为每个连接重新进行安全参数的协商而花费昂贵的时间代价。

任何一对服务器和客户之间可以存在多个安全SSL连接,这些连接可以共享一个会话,也可以共享不同的会话。

SSL记录协议为SSL连接提供了机密性和报文完整性两种服务。

机密性和报文完整性所需要的密钥都是在握手协议中协商提供的。

记录协议接受到传输的应用报文后,将数据分片成可管理的块,可选地压缩数据,应用MAC,加密和增加首部,然后使用TCP报文传输。

记录层接受到底层发来的数据后,进行解密、验证、解压和重新排序组合,然后交给上层的应用协议。

SSL修改密文协议是一个最简单的SSL相关协议,它只有一个报文,报文由值为1的单个字节组成。

这个协议的唯一作用就是将挂起状态被复制到当前状态,改变连接将要使用的密文族。

SSL告警协议是将SSL有关的告警信息传送给通信的对方实体。

SSL告警协议跟其它使用SSL的应用协议一样,报文安装当前状态的被压缩和加密。

SSL握手协议是SSL协议中最复杂的协议。

服务器和客户端使用这个协议相互鉴别对方的身份、协商加密算法和MAC算法以及在SSL记录协议中加密数据的加密密钥和初始向量。

握手协议是建立SSL连接首先应该执行的协议,必须在传输任何数据之前完成。

一、SSL握手协议

1、完全握手的信息流程如图1.2所示

图1.2握手协议工作流程

握手协议是关于客户和服务器如何协商它们在安全信道中要使用的安全参数,这些参数包括要采用的协议版本、加密算法和密钥。

另外,客户要认证服务器,服务器则可以选择认证/不认证客户。

2、完全握手的信息流程的具体工作过程描述

⑴、第一阶段:

建立起安全协商

客户端发送Hello信息,服务器端必须响应一个Hello信息,否则将会导致一个致命的错误,连接将失败。

客户端Hello信息和服务器端的Hello信息建立如下的属性:

协议版本、会话ID、密码组件和压缩算法。

此外,产生并交换两个随机数:

ClientHello.random和ServerHello.random。

实际上密钥交换使用了四个信息:

服务器证书、服务器密钥交换、客户端证书和客户端密钥交换。

可以通过为这些信息指定格式产生新的密钥交换方法,定义客户端和服务器端协商共享密钥使用的消息,密文应该足够长。

目前定义的密钥交换方法交换长度为48到128字节的范围内的密文。

⑵、第二阶段:

鉴别服务器和密钥交换

在Hello信息之后,如果要被验证的话,服务器发送自己的证书。

此外,如果要求,必须发送服务器密钥交换信息。

如果服务器被认证,它也可以要求客户端发送客户端证书,如果它适合于所选的密码组件。

现在服务器发送Hellodone信息,暗示握手协议的Hello信息阶段结束。

服务器等候客户端响应。

⑶、第三阶段:

鉴别客户和密钥交换

如果服务器发送了证书请求消息,客户端就必须要发送证书。

客户端的密钥交换信息此时发送,信息的内容依赖于客户端Hello信息和服务器Hello信息协商的密钥算法。

如果客户端发送了有签名能力的证书,则发送一个数字签名证书验证信息明确验证证书。

⑷、第四阶段:

结束

此时,客户端发送一个改变密码规范信息change_cipher_spec,客户端将密码规范的未决状态复制为当前密码规范。

客户端立即发送用协商的新的算法、密钥和密文加密的结束信息finished。

作为响应,服务器发送自己的改变密码规范信息change_cipher_spec,将未决状态改为当前密码规范状态,发送使用新的密码规范的结束信息finished。

至此,握手信息结束,客户端和服务器端开始交换应用层数据。

3、握手协议的作用

SSL中的握手协议,将公钥加密技术与对称密钥加密技术的应用有效、巧妙地结合在一起,有机地组成了互联网上信息安全传输的通道。

这种信息安全通道,有其实用价值。

比如,利用对称加密技术比公钥加密技术对大容量信息的加/解密速度要快,而公钥技术却提供了更好的身份认证技术。

SSL的握手协议可以非常有效地让客户与服务器之间完成身份认证。

通过SSL客户端与服务器传送自己的数字证书,互验合法性,特别是验证服务器的合法性,可以有效地防止互联网上虚假网站的网上钓鱼事件,同时,服务器端也可以严格验证客户端的真实身份。

其作用如下:

①客户端和服务器相互传送SSL协议的版本号、加密算法的种类、产生的

随机数,以及其他服务器和客户端之间通信所需要的各种信息。

②客户端利用服务器传过来的信息验证服务器的合法性。

服务器的合法性

包括:

证书是否过期,发行服务器证书的CA是否可靠,发行者证书的公钥能

否正确解开服务器证书的发行者的数字签名,服务器证书上的域名是否和服务

器的实际域名相匹配。

如果合法性验证没有通过,则通信将断开,如果合法性

验证通过,则将继续进行第③步。

③客户端随机产生一个用于后面通信的对称密码,然后用服务器的公钥

对其加密,再将加密后的预主密码传给服务器。

④如果服务器要求客户的身份认证,用户端则可以建立一个随机数,然后

对其进行数字签名,将这个含有签名的随机数和客户自己的证书,以及加密过

的预主密码一起传给服务器。

⑤如果服务器要求客户的身份认证,服务器则必须检验客户证书和签名随

机数的合法性。

具体的合法性验证包括:

客户的证书使用日期是否有效,为客

户提供证书的CA是否可靠,发行CA的公钥能否正确解开客户证书的发行CA

的数字签名,检查客户的证书是否在证书撤销列表中。

检验如果没有通过,则

通信立刻中断;如果验证通过,则服务器将用自己的私钥解开加密的预主密码,

然后执行一系列步骤来产生主通信密码。

⑥服务器和客户端有相同的密码,即主通信密码,用于SSL协议的安全数据通信的加/解密。

同时,在SSL通信过程中还要完成数据通信的完整性,以防止数据通信中的任何变化。

⑦客户端向服务器端发出信息,指明后面的数据通信将使用步骤⑥中的主

通信密码为对称密钥,同时通知服务器客户端的握手过程结束。

⑧服务器向客户端发出信息,指明后面的数据通信将使用步骤⑥中的主密

码为对称密钥,同时通知客户端服务器端的握手过程结束。

⑨SSL的握手部分结束,SSL安全通道的数据通信开始,客户和服务器开

始使用相同的对称密钥进行数据通信,同时进行通信完整性的检验。

二、SSL记录层协议

SSL记录层协议限定了所有发送和接收数据的打包,它提供了通信、身份认证功能,它是一个面向连接的可靠传输协议,为TCP/IP提供安全保护。

在SSL中,所有数据被封装在记录中。

一个记录由两部分组成:

记录头和非零长度的数据。

SSL握手层协议的报文要求必须放在一个SSL记录层的记录里,但应用层协议的报文允许占用多个SSL记录来传送。

1、SSL记录协议操作流程

①第一个步骤是分片。

每个上层应用数据被分成214字节或更小的数据块。

记录中包含类型、版本号、长度和数据字段。

②选择是否执行压缩的步骤。

压缩的过程中,必须是无损失压缩。

也就是

说解压缩后能够得到原本完整的消息。

经过压缩后的内容长度不能超过原有长

度1024字节以上。

③计算压缩数据的消息认证码。

为了达到这个目的,必须使用一把双方共

有的密钥。

④增加由内容类型、主要版本、次要版本和压缩长度组成的首部然后传输。

2、记录协议的作用

SSL记录协议为SSL连接提供了机密性和报文完整性两种服务。

机密性和报文完整性所需要的密钥都是在握手协议中协商提供的。

记录协议接受到传输的应用报文后,将数据分片成可管理的块,可选地压缩数据,应用MAC,加密和增加首部,然后使用TCP报文传输。

记录层接受到底层发来的数据后,进行解密、验证、解压和重新排序组合,然后交给上层的应用协议。

 

第二章SSL协议的密码学基础

第一节常用的加密算法

一、对称加密算法

所谓加密[3],就是用基于数学方法的程序和保密的密钥对信息进行编码,把明文信息变成一堆杂乱无章难以理解的字符串,也就是把明文变成密文。

对称加密过程:

发送方用自己的私有密钥对要发送的信息进行加密;发送方将加密后的信息通过网络传送给接收方;接收方用发送方进行加密的那把私有密钥对接收到的加密信息进行解密,得到信息明文。

对称密码体制,也叫做单钥密码体制或秘密密钥密码体制,即加密密钥与解密密钥相同的密码体制,这种体制中只要知道加(解)密算法,就可以反推解(加)密算法。

对称加密算法是应用较早的加密算法,技术成熟。

在对称加密算法中,数据发信方将明文和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。

收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。

在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。

不足之处是,交易双方都使用同样钥匙,安全性得不到保证。

此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。

对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。

在计算机专网系统中广泛使用的对称加密算法有DES、IDEA和AES。

DES算法[4]:

DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。

其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

DES加密算法特点:

分组比较短、密钥太短、密码生命周期短、运算速度较慢。

DES工作的基本原理是,其入口参数有三个:

key、data、mode。

key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。

当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。

实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。

二、非对称加密算法

SSL是利用非对称加密算法即公开密钥算法的加密技术来作为用户端与服务器端在传送机密资料时的加密通讯协定。

公钥密码的最大优点在于针对密钥管理方法的改进。

在公钥密码系统中,加密密钥是公开的,任何人都可以采用这些公开的加密密钥对自己准备传输的消息进行加密。

同时,只有正确的接受方才能够用自己所保管的解密密钥对密文进行解密,这些解密密钥须要妥善保存。

与对称密钥密码体制相比,公钥密码中的密钥在处理和发送上更为方便和安全。

在公钥密码体制中,RSA算法是第一个比较完善的公钥算法,不仅能够同时用于加密和数据签名,而且易于理解和操作。

RSA是被研究的最广泛的公钥算法,从提出到现在,经历了各种攻击的考验,逐渐成为人们接受的优秀的公钥算法之一,得到最广泛的使用。

RSA算法的安全性依赖于大数的因子分解,因此,一旦针对因子分解问题的研究取得了突破性进展,RSA公钥体制的安全性将受到极大的挑战。

下面介绍RSA算法的描述和如何使用RSA算法加密。

1、RSA密码算法描述

RSA算法的安全性建立在大数分解难题之上,该算法所用的公钥和私钥是一对足够大的奇素数的函数。

由公钥和密文恢复出明文的难度与分解两个足够大的奇素数的乘积具有同等的难度。

设这对足够大的奇素数为p和q,它们的乘积n=pq,记为Ф(n)=(p-1)(q-1)。

为保证算法的安全性,p和q的长度应相同。

选取适当的加密密钥e和解密密钥d,使之满足ed≡1modФ(n)。

公开n和e,保密p,q和d。

加密算法:

Ek(x)=xmodnx∈Zn。

解密算法:

Dk(y)=ymodnx∈Zn。

这里,加密过程和解密过程需满足:

Dk(Ek(x))=x,即事实上,在实际的应用中,在RSA算法的加密和解密过程中,被加密的是经过分组的数据段,数据段的长度相等,并且小于比n小的2的最大次幂(例如,对于两个长度为100位的素数p和q,n的长度则为200位,于是数据段的长度不应超过128位,此处的长度是二进制中的长度)。

分组长度不够时,可以补0。

解密过程也是针对这些被加密的分组。

RSA的缺点如下:

①产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。

②分组长度太大,为保证安全性,n至少也要600位以上,使得运算代价

很高,尤其是速度较慢,随着大数分解技术的发展,这个长度还在增加,不利

于数据格式的标准化。

2、RSA密码系统建立的步骤

①生成两个大素数p和q。

②计算n=pq,Ф(n)=(p-1)(q-1)。

③选择随机数e(即加密密钥),使之满足O≤e≤Ф(n),gcd(e,Ф(n))=1。

④计算解密密钥d=e-1modФ(n)。

⑤公布整数n和加密密钥e。

从RSA密码系统建立的步骤中可以看出,如果一个密码分析者能够成功地将n分解成素数p和q,那么通过计算Ф(n)=(p-1)(q-1),就能够通过加密密钥e计算出解密密钥d。

因此,为保证RSA算法的安全性,n=pq必须足够大。

由于RSA加密算法在n增加后,速度较慢,通常采用的方法是:

先用对称算法对大量用户数据进行加密,之后用RSA对对称加密算法的密钥进行加密,最后进行对称密钥的传输和交换。

第二节消息摘要

认证技术是保证电子商务安全的又一重要技术手段,是防止信息被篡改、删除、重放和伪造的一种有效方法,它使发送的消息具有被验证的能力,使接收者能够识别和确认消息的真伪。

认证的实现包括数字摘要、数字信封、数字签名、数字证书和智能卡等技术。

1、什么是消息摘要

一个消息摘要就是一个数据块的数字指纹,即对一个任意长度的一个数据块进行计算,产生一个唯一指印。

2、消息摘要算法的特点

①无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。

②不

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1