ssl20协议Word文档下载推荐.docx

上传人:b****5 文档编号:15744885 上传时间:2022-11-15 格式:DOCX 页数:6 大小:20.42KB
下载 相关 举报
ssl20协议Word文档下载推荐.docx_第1页
第1页 / 共6页
ssl20协议Word文档下载推荐.docx_第2页
第2页 / 共6页
ssl20协议Word文档下载推荐.docx_第3页
第3页 / 共6页
ssl20协议Word文档下载推荐.docx_第4页
第4页 / 共6页
ssl20协议Word文档下载推荐.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

ssl20协议Word文档下载推荐.docx

《ssl20协议Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ssl20协议Word文档下载推荐.docx(6页珍藏版)》请在冰豆网上搜索。

ssl20协议Word文档下载推荐.docx

  openssl使用指南

  openssl建立ssl连接例子程序

  openssl重大漏洞——心脏流血,那是什么,如何补救

  心脏出血漏洞,如果网站配置了一项名为“perfectforwardsecrecy”的功能,那么这一漏

  洞的影响将被大幅减小。

该功能会改变安全密钥,因此即使某一特定密钥被获得,攻击者无法解密以往和未来的加密数据。

  openssl漏洞补救办法详解(图文)

  具体修补方式为:

  openssl版本升级到最新的1.0.1g重新生成你的私钥

  请求和替换ssl的证书

  也可以使用-dopenssl_no_heaRtbeats参数重新编译低版本的openssl以禁用

  heartbleed模块,最新版本升级地址为:

https:

//www.openssl.org/source/.(openssl官方)

  ssl/tls

  如果服务端只设置了一种加密套件,那么客户端要么接受要么返回错误。

加密套件的选择是由服务端做出的。

  用openssl编写ssl,tls程序

(1)

  【winlinkopenssl实现】

  应用到模块:

  服务器之间通讯tcpmodule,web通讯clientproxy,托管服务器通讯dataproxysocketserver侧。

  协议通讯与调用过程图示:

  官网:

  ssl版本,1.0,2.0,3.0

  openssl版本,1.0.2a(可能不稳定,20xx-3-19),1.0.1m(最新稳定版本,20xx-3-19)

  篇二:

第一章.ssl握手协议的研究

  1.第一章.对ssl的基本概念和框架的介绍

  2.第二章.对ssl握手协议的研究(part-1)

  3.第三章.对ssl握手协议的研究(part-2)

  4.第四章.对ssl握手协议细节和实现的介绍

  5.第五章.对ssl记录协议细节和实现的介绍

  6.第六章.对ssl的安全性分析

  7.第七章.举例一种将usbkey融入javajsse框架的解决方案

  sl握手过程即完成身份认证和建立加密通道的过程,分为四种。

  ――Fullhandshake:

全流程握手,c/s双方从无到有建立ssl连接;

  ――Resumsessionhandshake:

c/s双方曾经建立过连接,但中途断了,ssl会话信息还有保留,只需要执行部分握手流程就可建立ssl连接;

  ――serverRe-negotiationhandshake:

已经建立了ssl连接,但server端为了某些原因(比如安全性)要求重新对密钥进行协商,也只需要执行部分握手流程;

  ――clientRe-negotiationhandshake:

已经建立ssl连接,但client端为了某些原因要求重新协商,只需执行部分握手流程。

  Fullhandshake

  这里主要介绍全流程握手,握手步骤如下图所示,其他的握手过程都属于全流程的子集。

  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{

  handshaketypemsg_type;

/*握手消息类型,如上所述的枚举值*/uint24length;

/*握手消息体的长度用24位表示,即最大长度不超过16m*/

  handshakemsgpayload/*握手消息的有效荷载,上面列的10类型之一*/

  }handshake;

  clienthello阶段

  客户端首先发clienthello消息到服务器端,服务器端收到hello消息后再发serverhello消息回应客户端。

  clienthello和serverhello消息结构如下:

  protocolVersionclient_version;

  Randomrandom;

  sessionidsession_id;

  ciphersuitecipher_suites;

  compressionmethodcompression_methods;

  }clienthello;

  protocolVersionserver_version;

  ciphersuitecipher_suite;

  compressionmethodcompression_method;

  }serverhello;

  选择ssl通信,当底层连接建立好后会触发或调用ssl的初始化和握手,握手由clinet端发出clienthello消息开始。

  clienthello消息

  protocolVersion:

消息中协议版本是两个byte长度分别表示主次版本,如若在jaVa中初始化sslcontext时候选择了sslv3则主版本号是3,次版本号为0,若选择了tlsv1(tlsv1相当sslv3的升级版)则主版本号是3,次版本号是1。

Random:

随机数结构,由两部分组成,

  uint32gmt_unix_time;

  opaquerandom_bytes[28];

  }Random;

  一个4字节的系统当前时间,一个28位长的随机数,在后面计算所有消息的摘要或计算主密钥时候会用到。

(疑惑1:

在java的jsse实现版本中貌似只有一个4字节的系统当前时间,没有28位的随机数,奇怪了,怎么和非jsse版

  本实现正确握手的啊…)

  sessionid:

ssl会话id标识一次会话用,可以重用。

会话id都是由服务器分配因此在全流程握手中clienthello消息中的sessionid是空,用字节0表示。

  ciphersuitlist:

密钥套件列表,列表中包含了client端支持的所有密钥套件。

一个密钥套件定义了一个密钥规格,其中描述如下内容:

密钥交换算法,是否出口,对称加密算法,支持的最高对称密钥位数,mac算法(或摘要算法)。

一个ciphersuit用2个字节表示,下面列举jsse支持的几个套件:

  ssl_Rsa_with_Rc4_128_md5=0x0004/*非对称加密算法或密钥交换算法为Rsa,采用高强度128位对称加密算法Rc4,摘要或mac算法为md5,不支持出口*/

  ssl_dhe_Rsa_expoRt_with_des40_cbc_sha=0x0014/*非对称加密算法或密钥交换算法支持Rsa和dh,采用40位对称加密算法des,摘要或mac算法为sha,可以出口*/

  关于出口,美帝国主义要求要用他们的加密算法比如jdk中的jsse,对称加密密钥长度不能超过40,非对称密钥长度不超过512,在国内只能使用这种低强度的玩意,赤裸裸的技术封锁啊。

  这个加密套件列表长度不超过128k。

  compressionmethods:

客户端支持的压缩算法列表,填0表示空,jsse会有默认算法。

  clienthello承载着这些信息被发送到server端。

  serverhello阶段

  serverhello消息

  服务端服务器拿出消息中的版本号,再看看自己支持的版本列表,选个两者都支持的最高版本号定为这次协商出来的ssl协议使用的版本。

比如c端发过来

  ssl

  3.0,而s端发现自己只支持ssl2.0,server就会选择ssl2.0作为这次协商版本,反之若server支持ssl2.0,ssl3.0,tls1.0,选两者都支持的最高版本ssl3.0。

  Random:

产生的方式和clienthello中相同。

服务端检测到传过来的sessionid是空或者检索session列表没有发现传过来的sessionid就会新建一个,jsse中sessionid是取系统时间的前32位(系统时间是long类型64位,只取其中32位)。

  ciphersuit:

server端收到密钥套件列表后,将密钥套件一个个拿出来,经过几道检查,选择第一个通过检查的套件。

jsse实现的ssl协议中的检查项目有如下几项:

检查服务端是否也支持这个套件,检查这个套件是不是被禁用(的确是支持某个套件,但出于某些原因被禁用了),检查套件是否符合出口限制,比如在国内加密强度128或256位的对称密钥在检查时候就会被认为不合法pass掉;

若server端启用了双向认证,某些不支持双向认证的套件就会被pass掉。

层层选拔,第一个通过的幸运儿光荣的成为密钥协商的成果,被放入serverhello消息中。

  这样serverhello消息组装好了,发出去告诉客户端协商的ssl版本和加密套件,并创建了一个会话,hello阶段结束。

  服务发送证书(servercertificates可选)消息

  在服务器发送完hello消息后接下来可以发送3个可选消息,服务器证书消息,服务器证书交换消息,客户端证书请求消息。

服务器证书消息在全流程握手中一般是必须发的(疑惑2:

不知道除了session重用外在什么情况下服务器端不需要发送证书过去?

),但是在会话重用的消息中就不需要再发。

  服务器证书中包含公钥,发给客户端用来验证签名或在密钥交换时候给消息加密。

证书消息是紧跟着serverhello消息发送,证书消息中就是一个证书列表,证书应该转换成asn.1deR格式,不支持pkcs7格式。

证书链中的证书挨个取下来放入列表中,按照次序服务器自己的证书放列表最前头,根ca证书放列表最后,证书链长度不超过16m。

  服务端密钥交换消息(serverkeyexchange可选)

  说到这个不得不介绍下ssl密钥交换方式。

安全加密通信是发送方将信息加密,接收方将信息解密,加解密用的密钥分两类:

对称和非对称加密(具体概念google之)。

  非对称加密的最大优点是可以将一部分密钥公开,叫公钥(publickey),这样通信双方交换密钥很简单,a和b通信,a有一个密钥对pri-a和pub-a,b也有一个密钥对pri-b和pub-b,ab互相交换自己公钥,a用pub-b加密要发给b的

  篇三:

sslVpn入门之ssl协议

  sslVpn入门之

  ssl协议

  华为赛门铁克科技有限公司

  版权所有不得复制

  二零一一年

  20xx-2-6

  华赛机密,未经许可不得扩散

  第1页,共15页

  目录

  第1章概述........................................................................

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1