第一章.SSL握手协议的研究..docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章.SSL握手协议的研究.

第一章. 对SSL的基本概念和框架的介绍 第二章.对SSL握手协议的研究(part-1) 第三章.对SSL握手协议的研究(part-2) 第四章.对SSL握手协议细节和实现的介绍 第五章.对SSL记录协议细节和实现的介绍 第六章.对SSL的安全性分析 第七章.举例一种将usbkey融入java JSSE框架的解决方案 SL握手过程即完成身份认证和建立加密通道的过程,分为四种。――Full Handshake : 全流程握手,C/S双方从无到有建立SSL连接; ――Resum session Handshake : C/S双方曾经建立过连接,但中途断了,SSL会话信息还有保留,只需要执行部分握手流程就可建立SSL连接; ――Server Re-negotiation Handshake : 已经建立了SSL连接,但server端为了某些原因(比如安全性)要求重新对密钥进行协商,也只需要执行部分握手流程; ――Client Re-negotiation Handshake : 已经建立SSL连接,但client端为了某些原因要求重新协商,只需执行部分握手流程。 Full Handshake 这里主要介绍全流程握手,握手步骤如下图所示,其他的握手过程都属于全流程的子集。SSL握手协议总共有10中消息类型,类型名和枚举值如下: hello_request(0), client_hello(1), server_hello(2),certificate(11), server_key_exchange (12), certificate_request(13),server_done(14), certificate_verify(15), client_key_exchange(16),finished(20)? 所有的握手消息有统一的结构:??struct { HandshakeType msg_type; /* 握手消息类型,如上所述的枚举值 */ uint24 length; /* 握手消息体的长度用24位表示,即最大长度不超过16M*/ HandShakeMsg payload /*握手消息的有效荷载,上面列的10类型之一*/} Handshake;?Client Hello 阶段 客户端首先发 Client Hello消息到服务器端,服务器端收到hello消息后再发Server hello消息回应客户端。 Client Hello和Server Hello消息结构如下:??struct {ProtocolVersion client_version;Random random;SessionID session_id;CipherSuite cipher_suites0..216-1;CompressionMethod compression_methods0..28-1;} ClientHello;struct {ProtocolVersion server_version;Random random;SessionID session_id;CipherSuite cipher_suite;CompressionMethod compression_method;} ServerHello;?选择SSL通信,当底层连接建立好 后会触发或调用SSL的初始化和握手,握手由Clinet端发出Client Hello消息开始。 Client Hello 消息 ProtocolVersion:消息中协议版本是两个byte长度分别表示主次版本,如若在JAVA中初始化SSLContext时候选择了SSLv3则主版本号是3,次版本号为0,若选择了TLSv1(TLSv1相当SSLv3的升级版)则主版本号是3,次版本号是1。Random:随机数结构,由两部分组成, ?struct { uint32 gmt_unix_time; opaque random_bytes[28];} Random;?一个4字节的系统当前时间,一个28位长的随机数,在后面计算所有消息的摘要或计算主密钥时候会用到。(疑惑1 : 在java的JSSE实现版本中貌似只有一个4字节的系统当前时间,没有28位的随机数,奇怪了,怎么和非JSSE 版本实现正确握手的啊… )Session ID : SSL会话ID标识一次会话用,可以重用。会话ID都是由服务器分配因此在全流程握手中client hello消息中的session id是空,用字节0表示。 CiphersuitList : 密钥套件列表,列表中包含了Client端支持的所有密钥套件。一个密钥套件定义了一个密钥规格,其中描述如下 内容:密钥交换算法,是否出口,对称加密算法,支持的最高对称密钥位数,MAC算法(或摘要算

文档评论(0)

d47fv82b5hI + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档