SSL原理详解.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SSL原理详解

SSL工作原理 第一章 概要 一、什么是SSL? SSL采用TCP作为传输协议提供数据的可靠传送和接收。SSL工作在Socket层上,因此独立于更高层应用,可为更高层协议,如Telnet、FTP和HTTP提供安全业务。SSL提供的安全业务和TCP层一样,采用了公开密钥和私人密钥两种加密体制对Web服务器和客户机(选项)的通信提供保密性、数据完整性和认证。在建立连接过程中采用公开密钥,在会话过程中使用私人密钥。加密的类型和强度则在两端之间建立连接的过程中判断决定。在所有情况下,服务器通过以下方法向客户机证实自身:给出包含公开密钥的、可验证的证明;演示它能对用此公开密钥加密的报文进行解密。 为了支持客户机,每个客户机都要拥有一对密钥,这要求在Internet上通过Netscape分配。由于Internet中的服务器数远少于客户机数,因此能否处理签字及密钥管理的业务量是很重要的,并且与客户联系比给商家以同样保证更重要。 二、SSL提供的服务 SSL协议提供的服务可以归纳为如下3个方面。 (1)用户和服务器的合法性认证 使得用户和服务器能够确信数据将被发送到正确的客户机和服务器上。客户机和服务器都有各自的识别号,由公开密钥编排。为了验证用户,安全套接层协议要求在握手交换数据中做数字认证,以此来确保用户的合法性。 (2)加密数据以隐藏被传送的数据 安全套接层协议采用的加密技术既有对称密钥,也有公开密钥。具体来说,就是客户机与服务器交换数据之前,先交换SSL初始握手信息。在SSL握手信息中采用了各种加密技术,以保证其机密性和数据的完整性,并且经数字证书鉴别,这样就可以防止非法用户破译。 (3)维护数据的完整性 安全套接层协议采用密码杂凑函数和机密共享的方法,提供完整信息性的服务,来建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务,在传输过程中都能完整、准确无误地到达目的地。 第二章 SSL工作流程概述 SSL 的工作分为两个阶段:握手阶段和数据传输阶段,若通信期间检测到不安全因素,比如握手时候发现另一端无法支持选择的协议或加密算法,或者发现数据被篡改,这时通信一方会发送警告消息,不安全因素影响比较大两端之间的通信就会终止,必须重新协商建立连接。 SSL协议分成三个子协议:HandShake( 握手) ChangeCipherSpec ( 更改密钥规格 ), Alert( 告警 ) 。 SSL 的告警协议是用来为通信对方发送一条告警消息,告警分为两个层次: fatal 和 warning, 如果是 fatal 级别的如 MAC 计算出错或协商密钥算法失败则马上断开连接,要建立连接的话需要重新握手; warning 类型的消息一般只会记录日志,并不会断开连接。 具体的工作流程图如下所示: (1)Client Hello 握手阶段从客户端发送“Client Hello”消息为起点。“Client Hello”消息中包含了协议的版本号(Protocol Version)、会话的ID(Session ID)、表明了客户端加密能力的密钥套件列表(Cipher Suite)、客户端支持的压缩算法(Compression Methods)以及一个28位长的随机数(该随机数将用于所有的消息摘要和会话密钥的生成)。 (2)Server Hello 服务器端收到客户端发来的请求,在内部协商之后,确定了协议版本号、之后所要使用到的加密套件列表和压缩算法、生成一个新的会话ID,并产生一个28位长的随机数。封装在“Server Hello”中发送给客户端。 服务器与客户端之间的协商必须确定出一个公共密钥对,如果无法确定,则握手失败。 (3)服务器发送数字证书(Server Certificates) SSL采用X.509数字证书标准,证书中包含验证服务器身份的证书消息和服务器端的公开密钥。 (4)服务端密钥交换信息(Server Key Exchange) 这条消息本来是可选的,视不同情况而定,服务器端发送将用在密钥交换过程的信息(依据使用的密钥交换算法的不同,可能发送公钥,也可能发送一个经过签名的整数) (5)请求客户端证书消息(Client Certificate Request) 如果所用的SSL版本是3.0以上的,服务器端可以要求客户端发送数字证书,以实现对客户端的认证。消息中会包含服务端支持的证书类型和所有Server端信任的证书发行机构的DN(Distinguished Name)列表。 (6)Server Hello Done 客户端收到这个消息,客户端会先对服务器端发送过来的消息做如下处理: ①Server Hello 客户端会先收到服务器端的“Se

文档评论(0)

kaiss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档