- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
请调研SSL中使用的认证协议,以本讲的示例形式给出SSL连接中的认证过程。SSL消息按如下顺序发送:?1.Client Hello?客户发送服务器信息,包括它所支持的密码组。密码组中有密码算法和钥匙大小;?2.Server Hello?服务器选择客户和服务器都支持的密码组到客户。?3.Certificate?服务器发送一个证书或一个证书链到客户端,一个证书链开始于服务器公共钥匙证书并结束于证明权威的根证书。这个消息是可选的,但服务器证书需要时,必须使用它。?4.Certificate request?当服务器需要鉴别客户时,它发送一个证书请求到客户端。在网络程序中,这个消息很少发送。?5.Server key exchange?服务器当发送来的公共钥匙对钥匙交换不是很充分时,发送一个服务器钥匙交换消息。?6.Server hello done?服务器告诉客户完成它的初始化流通消息。?7.Certificate?假如服务器需要一个客户证书时,客户端发送一个证书链。(只有在服务器需要客户证书时)?8.Client key exchange?客户产生用于对称算法的一个钥匙。对RSA客户用服务器公共钥匙加密这个钥匙信息并把它送到服务器。?9.Certificate verify?在网络程序中,这个消息很少发送,它主要是用来允许服务器结束对客户的鉴别处理。当用这个消息时,客户发送用密码函数的数字签名的信息到服务端,当服务端用公共钥匙解密这个消息时,服务器能够鉴别客户。?10.Change cipher spec?客户发送一个消息告诉服务器改变加密模式。?11.Finished?客户告诉服务器它已准备安全数据通信。?12.Change cipher spec?服务器发送一个消息到客户端并告诉客户修改加密模式。?13.Finished?服务器告诉客户端它已准备好安全数据通信。这是client-server握手协议最后一步。?14.Encrypted data?客户同服务器用对称加密算法和密码函数,并用客户发送到服务器的秘密钥匙加密通信。?SSL握手过程:?目的:? 1. 客户端与服务器需要就一组用于保护数据的算法达成一致;?2. 它们需要确立一组由那些算法所使用的加密密钥;?3. 握手还可以选择对客户端进行认证。?过程:?1. 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;?2. 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;?3. 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加/解密),并将加密后的信息发送给服务器;?4. 客户端与服务器端根据pre_master_secret以及客户端与服务器的随机数值独立计算出加密和MAC密钥(参考DH密钥交换算法)。?5. 客户端将所有握手消息的MAC值发送给服务器;?6. 服务器将所有握手消息的MAC值发送给客户端。第5与第6步用以防止握手本身遭受篡改。设想一个攻击者想要控制客户端与服务器所使用的算法。客户端提供多种算法的情况相当常见,某些强度弱而某些强度 强,以便能够与仅支持弱强度算法的服务器进行通信。攻击者可以删除客户端在第1步所提供的所有高强度算法,于是就迫使服务器选择一种弱强度的算法。第5步 与第6步的MAC交换就能阻止这种攻击,因为客户端的MAC是根据原始消息计算得出的,而服务器的MAC是根据攻击者修改过的消息计算得出的,这样经过检 查就会发现不匹配。由于客户端与服务器所提供的随机数为密钥产生过程的输入,所以握手不会受到重放攻击的影响。这些消息是首个在新的加密算法与密钥下加密 的消息。刚才所描述的每一步都需要通过一条或多条握手消息来实现。在此先简要地描述哪些消息与哪几步相对应,然后详细描述每条消息的内容。下图描述了各条消息:?第1步对应一条单一的握手消息,ClientHello.?第2步对应一系列SSL握手消息,服务器发送的第一条消息为ServerHello,其中包含了它所选择的算法,接着再在Certificate消息中发 送其证书。最后,服务器发送ServerHelloDone消息以表示这一握手阶段的完成。需要ServerHelloDone的原因是一些更为复杂的握 手变种还要在Certifacate之后发送其他一些消息。当客户端接收到ServerHelloDone消息时,它就知道不会再有其他类似的消息过来 了,于是就可以继续它这一方的握手。?第3步对应ClientKeyExchange消息
文档评论(0)