Https加密过程

Https加密过程

1、Https采用混合加密过程

Https加密分为建立连接前的连接阶段,和建立连接后的通信阶段。

在连接阶段,Https采用非对称加密方式进行连接,公钥加密,私钥解密

2、Https通过摘要算法和数字签名

为了保证数据传输的安全性,发送方==>根据内容计算出一个指纹,和内容一起发送, 接收方===>根据内容生成一个指纹,然后根据指纹进行比对。若不一样,内容则被修改过。

指纹的实现就是通过摘要算法实现的。 摘要算法计算内容的哈希值,这个哈希值是唯一的,而且不能通过哈希值反推内容。

==========>但是并不能证明发送方的内容是客户端发送的,有可能恶意攻击,为了证明指纹是客户端的,

==========>采用非对称加密算法,一个公钥,一个是私钥。公钥和私钥是双向加解密的,

若是公钥加密,私钥解密====》保证传输内容的安全性,只有持有私钥的人才能解密出内容

若是私钥加密,公钥解密====》保证消息不会被冒充,只有持有私钥的人才能对内容生成指纹

数字签名算法辨识采用私钥加密内容的哈希值,公钥解密。

3、数字证书

摘要算法保证和数据的完整性

数字签名保证消息来源的可靠性

但是还是缺少身份认证的环节,有可能伪造出一对 公钥私钥,当进行私钥加密,公钥解密的时候,用自己的私钥做成数字签名。

====》既然公钥私钥可以 成对伪造,那就把公钥向权威机构进行校验合法性,如果公钥能解密数字证书,那就是真的公钥

Https的连接过程

Https建立连接的流程是在三次握手之后,再加上一次SSL校验

SSL协议基本流程:

  • 客户端向服务器索要并验证服务器的公钥

  • 双方协商生产会话秘钥

  • 双方使用回话密钥进行加密通信

详细流程:

  • 客户端向服务器发送加密通信请求:客户端支持的SSL版本,客户端生成的随机数,客户端支持的密码套件列表
  • 服务端确认SSL/TLS协议版本,如果不支持,则关闭加密通信; 服务端生成随机数,服务端确认密码套件列表,服务端数字证书
  • 客户端确认数字证书真实性,证书没问题,则取出公钥,进行加密报文===》客户端加密随机数,发送给服务端; 加密通信算法改变通知,表示后续的信息将用私钥通信。

有了这三个随机数,客户端和服务端使用双方协商的算法,各自生成本次会话的秘钥

  • 服务端生成会话密钥之后,向客户端发送:随后的通信将用会话秘钥进行通信,服务端握手结束,返回数据供客户端校验

数字证书的生成过程;

  • 首先CA会将持有者的公钥、信息、有效时间等信息打成一个包,然后对这些信息进行Hash计算,得到一个Hash值

  • CA使用自己的私钥将Hash值加密,生成数字签名

  • 最后将数字签名添加在文件证书上,形成数字证书

客户端校验数字证书:

  • 客户端使用同样的Hash算法获取证书的Hash值H1
  • 浏览器收到证书后使用CA的公钥解密数字签名内容,得到一个Hash值H2
  • 如果H1与H2相同,则证明为可信赖的证书
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值