【Http专题】Https

基础知识

HTTPS

也称作HTTP over TLS。TLS的前身是SSL,TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。本文着重描述TLS协议的1.2版本 下图描述了在TCP/IP协议栈中TLS(各子协议)和HTTP的关系

共享密钥也叫对称密钥:

服务器和客户端加解密共用同一个密钥 。

公开密钥也叫非对称密钥:

有两个密钥,一个私有密钥,一个公开密钥:公开密钥是公开的,一般用来加密数据,但只能用私有密钥进行解密。

公开密钥加密与共享密钥相比,处理速度慢,所以充分利用两者的优势,将多重方法组合起来用于通信。
* 在交换密钥环节使用公开密钥加密方式.
* 之后的建立通信交换报文阶段则使用共享密钥加密方式。

这里写图片描述

HTTPS和HTTP协议相比提供了

数据完整性:内容传输经过完整性校验
数据隐私性:内容经过对称加密,每个连接生成一个唯一的加密密钥
身份认证:第三方无法伪造服务端(客户端)身份
其中,数据完整性和隐私性由TLS Record Protocol保证,身份认证由TLS Handshaking Protocols实现。

使用RSA算法的SSL握手过程

这里写图片描述

1.[明文] 客户端发送随机数client_random和支持的加密方式列表
2.[明文] 服务器返回随机数server_random,选择的加密方式和服务器证书链
3.[RSA] 客户端验证服务器证书,使用证书中的公钥加密premaster secret发送给服务端
5.服务端使用私钥解密premaster secret
6.两端分别通过client_random,server_random和premaster secret生成master secret,用于对称加密后续通信内容

证书(Digital certificate)

证书中包含什么信息

这里写图片描述

证书信息:过期时间和序列号
所有者信息:姓名等
所有者公钥

为什么服务端要发送证书给客户端

互联网有太多的服务需要使用证书来验证身份,以至于客户端(操作系统或浏览器等)无法内置所有证书,需要通过服务端将证书发送给客户端。

客户端为什么要验证接收到的证书

中间人攻击
客户端<—–伪造证书 ——-攻击者<—–拦截请求——-服务端

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值