• 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相同,则证明为可信赖的证书
  • 相关阅读:
    springCloud本地镜像打包配置
    300页13万字新型智慧城市云平台中心及大数据平台建设方案
    美颜sdk在视频场景有哪些作用?
    PHP上网网址电影视频导航网站设计
    机器学习【二】 支持向量机
    java计算机毕业设计ssm宠物店管理系统element vue前后端分离
    js-算法题-移动0
    vue脚手架vue-cli可视化安装与介绍看完觉得很简单!
    MyBatis操作数据库实现
    openshift搭建Istio
  • 原文地址:https://blog.csdn.net/Wulawuba/article/details/126648422