• 总结 HTTPS 的加密流程


    与HTTP一样,属于应用层协议;相当于HTTP协议再套一个TSL/SSL协议。

    HTTP协议是超文本传输协议,信息是明文传输;在互联网上, 明文传输是比较危险的事情。

    所以我们采用 HTTP+TSL/SSL 来组成HTTPS,Https则是具有安全性的ssl加密传输协议。

    加密:

    加密就是把 明文 (要传输的信息)进行一系列变换, 生成 密文 .
    解密就是把 密文 再进行一系列变换, 还原成 明文 .
    在这个加密和解密的过程中, 往往需要一个或者多个中间的数据, 辅助进行这个过程, 这样的数据称为 密钥 (正确发音 yue 四声, 不过大家平时都读作 yao 四声)

    对称加密:

    加密和解密使用同一把密钥。

    但是如果直接把密钥明文传输, 那么黑客也就能获得密钥了~~ 此时后续的加密操作就形同虚设了.因此密钥的传输也必须加密传输!

    但是要想对密钥进行对称加密, 就仍然需要先协商确定一个 "密钥的密钥". 这就成了 "先有鸡还是先有蛋"的问题了. 此时密钥的传输再用对称加密就行不通了.
    就需要引入非对称加密.

    非对称加密:

    非对称加密要用到两个密钥, 一个叫做 "公钥", 一个叫做 "私钥".
    公钥和私钥是配对的. 最大的缺点就是运算速度非常慢,比对称加密要慢很多.

    • 客户端在本地生成对称密钥, 通过公钥加密, 发送给服务器.
    • 由于中间的网络设备没有私钥, 即使截获了数据, 也无法还原出内部的原文, 也就无法获取到对称密钥
    • 服务器通过私钥解密, 还原出客户端发送的对称密钥. 并且使用这个对称密钥加密给客户端返回的响应数据.
    • 后续客户端和服务器的通信都只用对称加密即可. 由于该密钥只有客户端和服务器两个主机知道, 其他主机/设备不知道密钥即使截获数据也没有意义

    引入证书

    在客户端和服务器刚一建立连接的时候, 服务器给客户端返回一个 证书.

    这个证书包含了刚才的公钥, 也包含了网站的身份信息

    HTTPS 的工作过程

    1.握手阶段:基于非对称加密,生成密钥。

    2.数据传输阶段:基于对称加密,使用1中生成的密钥来进行加密解密。

    第一组(非对称加密): 用于校验证书是否被篡改. 服务器持有私钥(私钥在注册证书时获得), 客户端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥). 服务器使用这个私钥对证书的。签名进行加密. 客户端通过这个公钥解密获取到证书的签名, 从而校验证书内容是否是篡改过.

    第二组(非对称加密): 用于协商生成对称加密的密钥. 服务器生成这组 私钥-公钥 对, 然后通过证书把公钥传递给客户端. 然后客户端用这个公钥给生成的对称加密的密钥加密, 传输给服务器, 服务器通过私钥解密获取到对称加密密钥.

    第三组(对称加密): 客户端和服务器后续传输的数据都通过这个对称密钥加密解密
     

  • 相关阅读:
    聚焦AI丨车企如何用AI服务争夺市场话语权
    渗透测试-一次完整的渗透测试流程
    详解 Flink CDC 的介绍和入门案例
    leetcode 收集垃圾的最少总时间
    Spark SQL数据源 - Parquet文件
    Spire.Cloud 私有化部署教程(三) - Windows 系统
    Unity3D占用内存太大怎么解决呢? -补
    【SetpNumber计数器StepNumber详解,购物车制作(呆),五星好评制作Starjs详解】
    Ignite实战
    10倍加速LLM计算效率:消失的矩阵乘
  • 原文地址:https://blog.csdn.net/TheDevice/article/details/125473011