HTTPS 学习笔记 (1)

HTTPS

两个阶段

一 握手阶段 [四次通信]

  1. Client -> Server
1. 随机数, 稍后用于生成 "对话密钥"
2. 支持的"SSL/TLS协议"的版本, 如"TLS 1.2"
3. 支持的加密方法, 如: "RSA公钥加密"
4. 支持的压缩方法
  1. Server -> Client
1. 随机数, 稍后用于生成 "对话密钥"
2. 确认通信加密的协议版本, 如不一致关闭通信
3. 确认要使用的加密方法
4. 服务端证书
  1. Client -> Server
1. 加密的随机数, 防止窃听
2. 编码改变通知, 表示随后的信息都将用双方商定的加密方法和密钥发送
3. 客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时
也是前面发送的所有内容的hash值,用来供服务器校验。
  1. Server -> Client
1. 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。
2. 服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也
是前面发送的所有内容的hash值,用来供客户端校验。

握手阶段需要注意一下三点

1. 生成对话密钥一共需要三个随机数。
2. 握手之后的对话使用"对话密钥"加密(对称加密),服务器的公钥和私
钥只用于加密和解密"对话密钥"(非对称加密),无其他作用。
3. 服务器公钥放在服务器的数字证书之中。

为什么要用 3 个随机数

"不管是客户端还是服务器,都需要随机数,这样生成的密钥才不会每次都一样。
由于SSL协议中证书是静态的,因此十分有必要引入一种随机因素来保证协商出
来的密钥的随机性。

对于RSA密钥交换算法来说,pre-master-key本身就是一个随机数,再加上hello
消息中的随机,三个随机数通过一个密钥导出器最终导出一个对称密钥。

pre master的存在在于SSL协议不信任每个主机都能产生完全随机的随机数,
如果随机数不随机,那么pre master secret就有可能被猜出来,那么仅适用
pre master secret作为密钥就不合适了,因此必须引入新的随机因素,那么
客户端和服务器加上pre master secret三个随机数一同生成的密钥就不容易
被猜出了,一个伪随机可能完全不随机,可是是三个伪随机就十分接近随机了
,每增加一个自由度,随机性增加的可不是一。"

二 通讯阶段

正常的http通讯过程, 只不过原文是"会话密钥"加密的

Q&A

证书

证书标准: 证书的格式是由X.509标准定义

种类:

根据用途不同大致有以下几种:
1. SSL证书,用于加密HTTP协议,也就是HTTPS。
2. 代码签名证书,用于签名二进制文件,比如Windows内核驱动,Firefox插件,Java代码签名等等。
3. 客户端证书,用于加密邮件。
4. 双因素证书,网银专业版使用的USB Key里面用的就是这种类型的证书。

SSL证书负责传输公钥,是一种PKI(Public Key Infrastructure,公钥基础结构)证书。

私钥与公钥的区别

私钥与公钥可以是一对一或一对多关系
即私钥唯一对而公钥可以多个

私钥与公钥都以及加解密
所有公钥加密的数据只有私钥能解
私钥加密的数据所有公钥都可以解
其他情况都不能解

HTTPS中的对称加密/非对称加密/HASH算法用途

算法种类用途
非对称加密算法RSA, DSA/DSS握手阶段
对称加密算法AES, RC4, 3DES对称加密算法
HASH算法MD5, SHA1, SHA256验证数据完整性

证书不被浏览器信任的原因

1. 证书过期
2. 证书域名与访问域名不一致
3. 根证书颁发机构不被系统信任

SSL/TLS

SSL(Secure Sockets Layer)
安全套接层

TSL(Transport Security Layer)
传输安全协议层

区别:
由网景发明SSL在广泛应用后99年被IETF标准化成TSL协议,因此合称SSL/TSL表示不同的发展阶段

网络通信协议层的七个部分

wangluoceng.png

物理层
网络链路层
网络层
传输层
会话层
表示层
应用层

数据在各层之间的单位都是不一样的,在物理层数据的单位称为比特(bit);在数据链路层,数据的单位称为帧(frame);在网络层,数据的单位称为数据包(packet);传输层,数据的单位称为数据段(segment)

证书申请过程
1-20170328114351936-31312572.png

转载于:https://www.cnblogs.com/dongyanglv/p/6650574.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值