版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机网络安全之SSL协议计算机科学与技术090532郭双顶[摘要]目前,随着Internet的快速发展,互联网上的信息安全越来越引起人们的关注。特别是近年来网上银行、电子商务和电子政务的发展,如何保证传输信息,特别是交易信息的保密性、完整性已成为继续解决的问题。安全套接层协议(SecuritySocketLayerProtocol,简称SSL)是Internet上进行保密通信的一个安全协议。[关键词]1.前言传输层在TCP/IP协议族中具有重要地位,它加强和弥补了IP层的服务。从服务类型看,IP层是点到点的,而传输层提供端到端的服务;从服务质量看,传输层提高了可靠性,使得高层应用不必关注可靠性问题,而仅需解决与自身应用功能相关的问题;从协议依赖关系看,应用层协议直接构建于传输层之上。应用层协议直接与用户交互,因此它们的安全性也会受到最直接的关注。举个直观的例子,电子商务系统通常采用B/S结构,用户通过浏览器访问电子商务网站、购买商品并进行网上支付。在这类应用中,机密性、完整性、服务器身份认证、不可否认性和可用性都是用户所需的。此外,在进行文件和邮件传输时,用户也有类似的安全需求。遗憾的是,常用的HTTP、FTP等协议都无法满足这些安全需求。虽然HTTP、FTP和Telnet等协议提供了基于口令的身份认证机制,但在互联网这个开放的环境中,这种简单的保护显得微不足道。改变这种现状的途径之一就是为每个应用层协议都增加安全功能。对于应用设计者而言,这是一个并不轻松的工作;对于应用使用者而言,部署多个安全应用时,势必会消耗大量的系统资源。另一种途径就是从传输层人手。既然高层应用都是基于传输层的,那么增强这个层次的安全性显得更具备通用性。它可以把高层应用从安全性这个复杂的命题中解放出来,使用者也可用较小的开销获得所需的安全服务。SSL和TLS就是第二种途径的实例,它们分别是安全套接层(SecureSocketLayer)和传输层安全(TransportLayerSecurity)的缩写。SSL首先由网景公司提出,最初是为了保护Web安全,最终却为提高传输层安全提供了一个通用的解决方案。在SSL获得了广泛应用之后,IETF斟于SSLv3,制定了TLS标准。TLSv1与SSLv3几乎完全一致。SSL介绍(SecuresocketLayer&SecuritySocketLayer)1.2SSL的设计目标电子商务应用催生了SSL。如前所述,电子商务通常采用B/S结构,客户可以通过浏览器访问商务网站,获取商品列表、下定单并进行网上支付。网景公司最为知名的产品就是其同名的Web浏览器,所以其最初把目标定位于增强Web安全性也就很容易理解了。Web的后台是HTTP,因此,从协议设计的角度看就是要增强HTTP的安全性。由于各类Web应用的安全要求并不完全相同,比如普通Web页面浏览的安全需求就远不及电子商务那么明显,所以SSL的设计目标也包括要让普通的HTTP协议和增强安全性的协议之间具有良好的互操作性。从安全的角度看,电子商务应用中的客户端会有以下考虑:首先,如果页面提示用户输入支付金额和支付密码,这个页面是不是真正的经销商给出的呢?或者输入这些信息后是发送给真正的经销商吗?其次,支付密码是关键信息,不能被泄露;最后,支付的金额值不能在传输过程中被篡改,否则客户可能会蒙受损失。从上述考虑出发,SSL要满足机密性、完整性安全需求,同时应实现服务器身份认证。在大多数应用环境下,服务器并不关心客户的身份,但有的经销商只和特定的客户交互,或者为某些用户提供特殊的服务,这时就会有客户端认证的需求。因此,SSL提供的安全服务可概括为:机密性、完整性、服务器认证以及可选的客户端认证。除了访问Web服务器,利用浏览器也可以访问邮箱和新闻组,所以SSL也应该满足这些应用的安全需求,它应该是一种通用的解决方案。这些应用基于TCP,因此SSL的设计者并没有更改高层应用,而是在TCP和应用之间加入了SSL,以便以一种通用而透明的模式提供安全服务。1.3SSLv3协议流程从协议栈层次关系看,SSL位于应用层和传输层之间。使用SSL保护的高层应用报文需要封装在SSL报文中投递,而所有SSL报文最终仍要封装在传输层报文中投递。SSLv3是一个协议套件,它由4个协议组成,即:握手协议(Handshake)、记录协议(Record)、更改密码规范协议(ChangeCipherSpec)以及警告协议(Alert)。握手协议用于安全机制的协商,它的功能包括:(1)必选的服务器认证,即客户端认证服务器的身份。(2)可选的客户端谁,即服务器可以选择认证客户端的身份,也可以放弃该功能。(3)算法协商,即客户端和服务器协定采用的压缩算法、加密算法和消息验证码算法。码算法。 压缩数据有利于提高通信效率,某些网络接口(数据链路(层协议具有数据压缩功能。但经过加密处理后,SSL报文成为随机数,压缩产生的优化并不显著,因此必须在加密之前对数据进行压缩。SSL加入了压缩算法,但并未规定可以使用的压缩算法。算法协商由客户端发起,客户端把息己支持的所有算法发送给服务器,并由服务器选中最终使用的算法。(4)密钥生成,即生成客户端和服务器共享的会话密钥。SSLv3提多种密钥生成方式,比如基于RSA的密钥传输和基于D-H的密钥协商方式。在保护数据时,SSLv3要使用四个密钥,由共享密钥推导得出,以用于加密、计算MAC两个功能以及两个通信方向。更改密码规范协议只包括一条消息。在安全协商完成后,客户端和服务器交换这条消息,以通告对方启用协商好的安全参数,随后的消息都将用这些参数保护。警告协议包括两种功能:一是提供了报错机制,即通信过程中若某一方发现了问题,便会利用该协议通告对等端;二是提供了安全断连机制,即以一种可认证的方式关闭连接。TCP是面向连接的,使用不加认证的断连方式会面临“截断”攻击的威胁,安全断连用于解决该问题。记录协议是SSLv3的数据承载协议,规定了SSLv3的报文格式以及对报文的处理过程。握手报文及应用数据都要封装成“记录”的形式投递。2SSL协议工作过程
SSL握手协议:SSL握手协议包含两个阶段,第一个阶段用于建立私密性通信信道,第二个阶段用于客户认证。1)第一阶段:第一阶段是通信的初始化阶段,通信双方都发出HELLO消息。当双方都接收到HELLO消息时,就有足够的信息确定是否需要一个新的密钥。若不需要新的密钥,双方立即进入握手协议的第二阶段。否则,此时服务器方的SERVER-HELLO消息将包含足够的信息使客户方产生一个新的密钥。这些信息包括服务器所持有的证书、加密规约和连接标识。若密钥产生成功,客户方发出CLIENT-MASTER-KEY消息,否则发出错误消息。最终当密钥确定以后,服务器方向客户方发出SERVER-VERIFY消息。因为只有拥有合适的公钥的服务器才能解开密钥。下图为第一阶段的流程:客户方发出CLIENT-HELLO消息需要新密钥?Y产生新的密钥发出CLIENT-MASTER-KEY消息等待SERVER-HELLO消息等待SERVER-VERIFY消息第二阶段N服务器方等待CLIENT-HELLO消息发出SEVER-HELLO消息需要新密钥?客户方发出CLIENT-HELLO消息需要新密钥?Y产生新的密钥发出CLIENT-MASTER-KEY消息等待SERVER-HELLO消息等待SERVER-VERIFY消息第二阶段N服务器方等待CLIENT-HELLO消息发出SEVER-HELLO消息需要新密钥?等待CLIENT-MASTER-KEY消息解开密钥发出SERVER-VERIFY消息第二阶段YN需要注意的一点是每一通信方向上都需要一对密钥,所以一个连接需要四个密钥,分别为客户方的读密钥、客户方的写密钥、服务器方的读密钥、服务器方的写密钥。2)
第二阶段:第二阶段的主要任务是对客户进行认证,此时服务器已经被认证了。服务器方向客户发出认证请求消息:REQUEST-CERTIFICATE。当客户收到服务器方的认证请求消息,发出自己的证书,并且监听对方回送的认证结果。而当服务器收到客户的认证,认证成功返回SERVER-FINISH消息,否则返回错误消息。到此为止,握手协议全部结束。消息名方向内容不需要新密钥CLIENT-HELLOC->Schallenge,session_id,cipher_specsSERVER-HELLOS->Cconnection-id,session_id_hitCLIENT-FINISHC->SEclient_write_key[connection-id]SERVER-VERIFYS->CEserver_write_key[challenge]SERVER-FINISHS->CEserver_write_key[session_id]需要新密钥CLIENT-HELLOC->Schallenge,cipher_specsSERVER-HELLOS->Cconnection-id,server_certificate,cipher_specsCLIENT-MASTER-KEYC->SEserver_public_key[master_key]CLIENT-FINISHC->SEclient_write_key[connection-id]SERVER-VERIFYS->CEserver_write_key[challenge]SERVER-FINISHS->CEserver_write_key[new_session_id]需要客户认证CLIENT-HELLOC->Schallenge,session_id,cipher_specsSERVER-HELLOS->Cconnection-id,session_id_hitCLIENT-FINISHC->SEclient_write_key[connection-id]SERVER-VERIFYS->CEserver_write_key[challenge]REQUEST-CERTIFICATES->CEserver_write_key[auth_type,challenge']CLIENT-CERTIFICATEC->SEclient_write_key[cert_type,client_cert,response_data]SERVER-FINISHS->CEserver_write_key[session_id]表2.2典型的协议消息流程2.3记录层协议组成记录层协议规定了即有发送和接收数据的打包形式,该协议提供了通信,身份认证等功能,它是一个面向连接的可靠传输协议。在SSL中,即有数据被打装在记录中,一个记录由两部份组成,记录和非零长度的数据。SSL的握手协议和报文要求必须放在一个SSL记录层协议的记录中,而应用层报文允许占用多个SSL记录来传递。(1)SSL记录头格式SSL的记录头可以是两个或三个字节长的编码。SSL记录头包含的信息有记录头的长度、记录数据的长度、记录数据中是否有填充数据。其中填充数据是在使用块加密算法时,填充实际数据,使其长度恰好是块的整数倍,以便利传输和加/解密。(2)SSL记录数据格式SSL记录数据部份含有三个分量――MAC数据:用于数据完整性检查――ACTUAL数据:是被传送的应用数据――PADDING数据:是当采用分组码时即需要的填充数据3与SET协议的比较在当今的电子商务中使用最为广泛的两种安全协议是SSL协议和SET协议。以下就两种协议在电子商务方面的应用作一比较。3.1SET协议概述:SET协议(SecureElectronicTransaction,安全电子交易)是由VISA和MasterCard两大信用卡公司于1997年5月联合推出的规范。SET主要是为了解决用户、商家和银行之间通过信用卡支付的交易而设计的,以保证支付信息的机密、支付过程的完整、商户及持卡人的合法身份、以及可操作性。SET中的核心技术主要有公开密匙加密、电子数字签名、电子信封、电子安全证书等。SET能在电子交易环节上提供更大的信任度、更完整的交易信息、更高的安全性和更少受欺诈的可能性。SET协议用以支持BtoC(BusinesstoConsumer)这种类型的电子商务模式,即消费者持卡在网上购物与交易的模式。SET交易分三个阶段进行:在购买请求阶段,用户与商家确定所用支付方式的细节;在支付的认定阶段,商家会与银行核实,随着交易的进展,他们将得到付款;在受款阶段,商家向银行出示所有交易的细节,然后银行以适当方式转移货款。如果不是使用借记卡,而直接支付现金,商家在第二阶段完成以后的任何时间即可以供货支付。第三阶段将紧接着第二阶段进行。用户只和第一阶段交易有关,银行与第二、三阶段有关,而商家与三个阶段都要发生关系。每个阶段都涉及到RSA对数据加密,以及RSA数字签名。使用SET协议,在一次交易中,要完成多次加密与解密操作,故要求商家的服务器有很高的处理能力。3.2协议比较:事实上,SET和SSL除了都采用RSA公钥算法以外,二者在其他技术方面没有任何相似之处。而RSA在二者中也被用来实现不同的安全目标。SET协议比SSL协议复杂,因为SET不仅加密两个端点间的单个会话,它还非常详细而准确地反映了卡交易各方之间存在的各种关系。SET还定义了加密信息的格式和完成一笔卡支付交易过程中各方传输信息的规则。事实上,SET远远不止是一个技术方面的协议,它还说明了每一方所持有的数字证书的合法含义,希望得到数字证书以及响应信息的各方应有的动作,与一笔交易紧密相关的责任分担。SET实现起来非常复杂,商家和银行都需要改造系统以实现互操作。另外SET协议需要认证中心的支持。SET是一个多方的报文协议,它定义了银行、商家、持卡人之间的必须的报文规范,与此同时SSL只是简单地在两方之间建立了一条安全连接。SSL是面向连接的,而SET允许各方之间的报文交换不是实时的。SET报文能够在银行内部网或者其他网络上传输,而SSL之上的卡支付系统只能与Web浏览器捆绑在一起。两者相比最不安全的可以说是SSL,实际上当初它并不是为支持电子商务而设计的,后来为了克服其局限性在其基础上发展了PKI。然而就当初的设计目的而言,SSL和它的继任者——传输层安全协议(thetransportlayersecurityprotocol)的功能完成的非常圆满。很多银行和电子商务解决方案提供商还在谈论着使用SSL构建更多的安全支付系统,但是如果没有经裁剪的客户方软件的话,基于SSL的系统是不能到像SET这种专用银行卡支付协议所能达到的安全性的。4.SSL的应用1.单向认证:又称匿名SSL连接,这是SSL安全连接的最基本模式,它便于使用,主要的浏览器都支持这种方式,适合单向数据安全传输应用。在这种模式下客户端没有数字证书,只是服务器端具有证书,以不在认用户访问的是自己要访问的站点。典型的应用就是用户进行网站注册时彩ID+口令的匿名认证,过去网上银行的所谓“大众版”就是这种??因子认证。2.双方认证:是对等的安全认证,这种模式通信双方都可以发起和接收SSL连接请求。通信双方可以利用安全应用程序(控键)或安全代理软件,前者一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度特制城乡规划设计合同
- 专属内参信息提供合同版
- 新苏教版一年级数学下册期末复习第4课时《数据分类》教案
- 新苏教版一年级数学下册第一单元第5课时《6、5、4、3、2加几及其相应的减法》教案
- 二零二五年艺术品抵押物担保借款合同模板3篇
- 2024版全面照护型带小孩保姆服务合同协议3篇
- 2025年华东师大版七年级生物下册阶段测试试卷含答案
- 医药学检验岗位工作计划
- 2025年沪教新版七年级物理下册阶段测试试卷
- 二零二五年快递企业客户关系管理合同汇编3篇
- Unit 3 We should obey the rules. Lesson15(说课稿)-2023-2024学年人教精通版英语五年级下册
- 绵阳市高中2022级(2025届)高三第二次诊断性考试(二诊)语文试卷(含答案)
- 2024年聊城市东昌府区中医院招聘备案制工作人员考试真题
- 2025年极兔速递有限公司招聘笔试参考题库含答案解析
- 一般固废处理流程
- 人力资源许可证制度(服务流程、服务协议、收费标准、信息发布审查和投诉处理)
- 建设工程监理费计算器(免费)
- JJG 517-2016出租汽车计价器
- JJF 1914-2021金相显微镜校准规范
- GB/T 32045-2015节能量测量和验证实施指南
- 2022高三英语一模-黄浦区解析
评论
0/150
提交评论