Chinaunix首页 | 论坛 | 博客
  • 博客访问: 79259
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-17 11:15
个人简介

The important thing in life is not how long you will live, but whom you are living with.

文章分类

全部博文(21)

文章存档

2022年(1)

2021年(6)

2016年(1)

2015年(2)

2014年(11)

我的朋友

分类: 网络与安全

2021-03-28 15:52:01

握手阶段分成五步。


第一步,爱丽丝给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。


第二步,鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。


第三步,爱丽丝确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发给鲍勃。


第四步,鲍勃使用自己的私钥,获取爱丽丝发来的随机数(即Premaster secret)。


第五步,爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数,生成"对话密钥"(session key),用来加密接下来的整个对话过程。


数字证书:
由证书机构颁发,用户验证服务器是否是合法服务器,客户端向服务器发送请求后收到数字证书,由CA机构私钥签名,包含服务端公钥,有效期等,拿到后用数字证书机构的公钥解密(安装浏览器时自带),得到服务器端公钥,使用随机数或或DH算法参数根据协商的加密算法生成秘钥,以后可以进行对称加密传输


数字签名:
用来验证发送的消息是否被修改,一般用来附在发送消息后,用发送方私钥加密发送消息的hash(使用MD5防止恢复数据)后的值,接收方用发送方公钥解密,解密成功,解密后的内容,与接收到内容做hash后相同,则可以确定没有修改,因为第三方没有发送方私钥,加密后用发送方公钥不能解开


session id与session ticket区别:


握手阶段用来建立SSL连接。如果出于某种原因,对话中断,就需要重新握手。


这时有两种方法可以恢复原来的session:一种叫做session ID,另一种叫做session ticket。


session ID的思想很简单,就是每一次对话都有一个编号(session ID)。如果对话中断,下次重连的时候,只要客户端给出这个编号,且服务器有这个编号的记录,双方就可以重新使用已有的"对话密钥",而不必重新生成一把。省去继续握手-》用来生成秘钥。客户端给出session ID,服务器确认该编号存在,双方就不再进行握手阶段剩余的步骤,而直接用已有的对话密钥进行加密通信。session ID是目前所有浏览器都支持的方法,但是它的缺点在于session ID往往只保留在一台服务器上。所以,如果客户端的请求发到另一台服务器,就无法恢复对话。session ticket就是为了解决这个问题而诞生的,目前只有Firefox和Chrome浏览器支持。


session ticket方式,客户端不再发送session ID,而是发送一个服务器在上一次对话中发送过来的session ticket。这个session ticket是加密的,只有服务器才能解密,其中包括本次对话的主要信息,比如对话密钥和加密方法。当服务器收到session ticket以后,解密后就不必重新生成对话密钥
了。



阅读(582) | 评论(0) | 转发(0) |
0

上一篇:性能测试之TPS RPS

下一篇:Base64编码

给主人留下些什么吧!~~