安全套接层SSL协议简介_第1页
安全套接层SSL协议简介_第2页
安全套接层SSL协议简介_第3页
安全套接层SSL协议简介_第4页
安全套接层SSL协议简介_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

..平安套接层SSL协议简介SSL〔SecureSocketsLayer〕协议最先是由著名的Netscape公司开发的,现在被广泛用于Internet上的身份认证与Web效劳器和用户端浏览器之间的数据平安通信。制定SSL协议的宗旨是为通信双方提供平安可靠的通信协议效劳,在通信双方间建立一个传输层平安通道。SSL使用对称加密来保证通信性,使用消息认证码〔MAC〕来保证数据完整性。SSL主要使用PKI在建立连接时对通信双方进展身份认证。IETF的传输层平安〔TLS〕协议〔RFC22461999〕及无线访问协议〔WAP〕论坛的无线传输层平安协议〔WTIS〕都是SSI的后续开展。协议包括两个层次:其较低的SSL记录层协议位于传输协议TCP/IP之上。SSL记录协议用来对其上层的协议进展封装。握手协议就在这些被封装的上层协议之中,它允许客户端与效劳器彼此认证对方;并且在应用协议发出或收到第一个数据之前协商加密算法和加密密钥。这样做的原因就是保证应用协议的独立性,使低级协议对高级协议是透明的。目前,Internet上对7层网络模型的每一层都已提出了相应的加密协议。在所有的这些协议中,会话层的SSL和应用层的SET与电子商务的应用关系最为密切。因此,SSL已成为用户与Internet之间进展通信的事实标准,支持SSL也已经成为每个浏览器的置功能。SSL包括握手和记录两个子协议。这两个子协议均可以提供与应用尤其是与HTTP的连接。这种连接经过了认证和,可以防止篡改。SSL可以嵌入Internet的处理栈,位于TCP/IP之上和应用层之下,而不会对其他协议层造成太大影响。SSL同样能够与其他Internet应用一起使用,如Intranet和Extranet访问、应用平安、无线应用及Web效劳等。通过对离开浏览器的数据进展加密,并在其进入数据中心之后进展解密,SSL实现对Internet的数据通信进展保护。SSL对话是由连接和应用组成的。在连接对话期间,客户机和效劳器交换证书并就平安参数进展磋商。如果客户机承受效劳器的证书,就会建立一个主密钥,这个主密钥将被用来对随后进展的通信进展加密。在应用对话期间,客户机和效劳器之间可以平安地传递信息,如信用卡号、股票交易数据、个人医疗数据以及其他敏感数据。SSL提供以下三种机制以确保平安:认证,能够对效劳器或连接各端的客户机和效劳器进展认证;,能够对信息进展加密,只有交流信息的双方才能访问并理解加密信息;完整性,可以防止信息容在未经检测的情况下被修改,接收方可以确信他们收到的是无法进展修改的信息。通信过程中的一个关键步骤就是对双方身份进展认证。SSL握手子协议就具有之一功能。效劳器与客户机之间的以下举动可以使认证动作变得更快捷:客户机对效劳器进展认证;让客户机和效劳器选择所需要的密码算法和平安水平;效劳器有选择地对客户机进展认证;使用公共密钥密码生成可以共享的密钥,随后利用这些密钥传输真正的数据;建立SSL连接。SSL记录子协议负责加密数据的传送。以下动作可以使数据传送变得更快捷:数据被分解成小的可以使用的块,称作片断;通过一个具有完整性的“包装纸”使数据不被修改;数据加密后就可以贴上“包装纸”了。以往,电子商务的许多应用是不进展客户机认证的。不过,目前各公司都将SSL作为一项协议供数据中心里的新应用使用。对于基于SSL的VPN,以及那些需要对终端用户进展额外认证的应用而言,客户机认证正在成为一种趋势。客户机认证使得效劳器可以使用与允许客户机对效劳器进展认证一样的技术,在协议之对用户身份进展确认。尽管两者认证的信息流极为不同,但是从概念上来看,其过程与效劳器认证是一样的。这一过程同样也会在SSL握手子协议之进展。在这种情况下,客户机必须向效劳器提供有效的证书。效劳器可以通过使用公共密钥密码学的标准技术对终端用户的有效性进展认证。SSL所具有的灵活性和强劲的生命力使其无所不在。可以预言的是,在SSL成为企业应用、无线访问设备、Web效劳以及平安访问管理的关键性协议的同时,SSL的应用将继续大幅度增长。下面论述SSL原理和工作过程。11.6.1SSL协议概述1.SSL协议的作用SSL是提供Internet上的通信隐私性的平安协议。该协议允许客户端/效劳器应用之间进展防窃听、防消息篡改及防消息伪造的平安的通信。TCP/IP是整个Internet数据传输和通信所使用的最根本的控制协议,在它之上还有HTTP〔HypertextTransferProtocol〕、LDAP〔LightweightDirectoryAccessProtoco1〕、IMAP〔InternetMessagingAccessProtocol〕等应用层传输协议。而SSL是位于TCP/IP和各种应用层协议之间的一种数据平安协议〔如图1l-8所示〕。SSL协议可以有效地防止网上信息的偷听、篡改及信息的伪造。图11-8SSL协议的位置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-9SSL协议的组成及其在TCP/IP中的位置在图11-9中的每一层,可以包括长度、描述和容字段。SSL发出消息是将数据分为可管理的块、压缩、使用MAC和加密并发出加密的结果。承受消息需要解密、验证、解压和重组,再把结果发往更高一层的客户。〔1〕记录协议具体实现压缩/解压缩、加密/解密、计算机MAC等与平安有关的操作。建立之上的还有:—更改密码说明协议:此协议由一条消息组成,可由客户端或效劳器发送,通知接收方后面的记录将被新协商的密码说明和密钥保护;接收方获得此消息后,立即指示记录层把即将读状态变成当前读状态;发送方发送此消息后,应立即指示记录层把即将写状态变成当前写状态。—警告协议:警告消息传达消息的严重性并描述警告。一个致命的警告将立即终止连接。与其他消息一样,警告消息在当前状态下被加密和压缩。警告消息有以下几种:关闭通知消息、意外消息、错误记录MAC消息、解压失败消息、握手失败消息、无证书消息、错误证书消息、不支持的证书消息、证书撤回消息、证书过期消息、证书未知和参数非法消息等。—应用数据协议:将应用数据直接传递给记录协议。〔2〕握手协议SSL握手协议是用来在客户端和效劳器端传输应用数据而建立的平安通信机制。—算法协商:首次通信时,双方通过握手协议协商密钥加密算法、数据加密算法和文摘算法。—身份验证:在密钥协商完成后,客户端与效劳器端通过证书互相验证对方的身份。—确定密钥:最后使用协商好的密钥交换算法产生一个只有双方知道的秘密信息,客户端和效劳器端各自根据这个秘密信息确定数据加密算法的参数〔一般是密钥〕。由此可见,SSL协议是端对端的通信平安协议。11.6.2SSL的工作原理SSL的工作原理:当一个使用者在Web上用Netscape浏览器漫游时,浏览器利用HTTP协议与Web效劳器沟通。例如,浏览器发出一个HTTPGET命令给效劳器,想下载一个首页的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.3SSL记录层协议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-10SSL记录层构造当数据头长度是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记录协议还可以执行压缩功能。SSLV3版的高层由记录传递的消息组成,这包括改变密码规协议、警报协议和握手协议。改变密码规协议指明对使用的密码规的改变,协议中还包括了一个用当前密码规加密的单独消息。客户和效劳器都要发送改变密码规消息来说明它们准备使用一个新的密码规和密钥。警报协议传送与事件相关的消息,包括事件严重性及事件描述。这里的事件主要是指错误情形,如错误的MAC码、证书过期或是非法参数。警报协议也用于共享有关预计连接终止的信息。11.6.4SSL握手协议握手协议是关于客户和效劳器如何协商它们在平安信道中要使用的平安参数,这些参数包括要采用的协议版本、加密算法和密钥。另外,客户要认证效劳器,效劳器那么可以选择认证/不认证客户。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.5SSL协议的平安性分析SSL协议所采用的加密算法和认证算法使它具有较高的平安性,但也存在一些问题。1.SSL协议采用的加密算法和认证算法〔1〕加密算法和会话密钥SSLV2协议和SSLV3协议支持的加密算法包括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协议为监听者提供了很多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论