当前位置: 首页 > news >正文

Linux网络的HTTPS

目录

1、HTTPS加密的相关概念

1.1 加密的概念

1.2 加密的原因

1.3 加密的常见方式

1.3.1 对称加密

1.3.2 非对称加密

1.4 数据摘要 && 数据指纹

1.5 数字签名

2、HTTPS的加密过程的探究

2.1 一个对称加密

2.2 一个非对称加密

2.3 两个非对称加密

2.4 一个非对称加密+一个对称加密

2.5 中间人攻击

2.5.1 破解两个非对称密钥

2.5.2 破解一个非对称密钥+一个对称密钥

2.6 一个证书认证+一个非对称加密+一个对称加密

2.6.1 CA证书

2.6.2 具体流程

2.7 HTTPS的握手流程


1、HTTPS加密的相关概念

1.1 加密的概念

  • 明文:指未经过加密处理原始数据
  • 密文:指明文经过加密算法处理后得到的不可直接读取乱码数据
  • 密钥:指用于加密或解密的 “钥匙”,是一串特定的字符串数字
  • HTTPS 也是一个应用层协议,是在HTTP协议的基础上引入了一个加密层

1.2 加密的原因

  • 因为HTTP的内容是明文传输的,明文数据会经过路由器、WIFI热点、通信服务运营商、代理服务器等多个物理节点,如果信息在传输过程中被劫持传输的内容就完全暴露了,这就是中间人攻击,所以我们需要对信息进行加密

1.3 加密的常见方式

1.3.1 对称加密
  • 对称加密(Symmetric Encryption)
  • 核心特点:加密解密使用同一把密钥(称为 “对称密钥”),就像用同一把钥匙锁门和开门。
  • 优点
    • 加密解密速度极,适合处理大量数据(如文件、视频)。
  • 缺点
    • 密钥需要在通信双方之间提前传递,一旦密钥泄露加密就会失效(密钥分发是难题)。
1.3.2 非对称加密
  • 非对称加密(Asymmetric Encryption)
  • 公钥:可以公开给任何人,用于加密数据或验证签名。
  • 私钥:必须严格保密,用于解密公钥加密的数据,或生成签名。
  • (规则:公钥加密的数据只能对应的唯一私钥解密私钥加密的数据只能对应的公钥解密
  • 优点
    • 无需传递私钥只需公开公钥解决了对称加密的密钥分发问题
  • 缺点
    • 加密解密速度,不适合处理大量数据。

1.4 数据摘要 && 数据指纹

  • 数据摘要(Data Digest):是一个更宽泛的概念,指通过哈希算法(如 MD5、SHA-1、SHA-256)对原始数据进行计算后,得到的一段固定长度唯一字符串
    • 它的核心作用是验证数据的完整性,即判断数据是否被篡改。只要原始数据有任何微小变化,其生成的摘要都会完全不同。
  • 数据指纹(Data Fingerprint):是数据摘要的一种实际应用场景,特指将数据摘要用于标识数据唯一性的情况
  • 以下用的是数据摘要判断数据是否被篡改

1.5 数字签名

  • 数据摘要经过加密就是数字签名

2、HTTPS的加密过程的探究

2.1 一个对称加密

  • Client直接发送对称密钥X中间人就知道对称密钥X对称密钥X就泄露了
  • 首次无法同步对称密钥X整体不安全

2.2 一个非对称加密

  • Client公钥XServer私钥X'自己留着
  • Server->Client
    • Server公钥X加密只有Client持有的对应唯一私钥X'能解密,所以Server->Client看起来安全
  • Client->Server
    • Client私钥X'加密持有对应公钥X中间人能解密,所以不安全
  • 整体不安全
  • 注意:Client自己也应该有公钥X,不过
    • 这个公钥加密,只有私钥能解密,但是只有自己有私钥,自己加密,最后自己解密?
    • 这个公钥解密,那么私钥就是加密,但是只有自己有私钥,自己先加密,最后自己解密?
  • 所以,非对称加密的密钥使用逻辑是 “单向配对”:一般是给别人公钥别人来进行加密自己私钥解密

2.3 两个非对称加密

  • 双方都有公钥和私钥

  • 公钥给对方对方公钥加密,只有另一方唯一私钥能够解密

  • 整体看起来安全,但是

2.4 一个非对称加密+一个对称加密

  • Server公钥ZClientClient公钥Z对称密钥X加密为YYY(密文数据),发送给ServerServer对应的唯一的私钥Z'YYY,解密为对称密钥X
  • 此后,双方用对称密钥X,进行加密解密
  • 整体看起来安全,且效率不错

2.5 中间人攻击

  • 讨论了这么多,目前只有第三种(两个非对称加密),第四种(一个非对称加密+一个对称加密),整体看起来安全。其实不安全中间人搞一套自己的公钥和私钥就能破解
2.5.1 破解两个非对称密钥
  • 对于两个非对称加密:
  • Client发送自己的公钥X,中间人将公钥X换成自己的公钥M,将公钥M发给ServerServer中间人的公钥M加密,发送加密的数据,中间人使用对应的唯一的私钥M'解密知道了明文信息明文信息用公钥X加密,发送给ClientClient私钥X'解密
  • 另一方向类似。
  • 这样,在双方都不知道的情况下中间人就破解了信息
2.5.2 破解一个非对称密钥+一个对称密钥
  • 对于一个非对称加密+一个对称加密:
  • Server发送自己的公钥Z,中间人将公钥Z换成自己的公钥M,将公钥M发给ClientClient中间人的公钥M对对称密钥X加密,发送加密的数据AAA中间人使用对应的唯一的私钥M'解密知道了对称密钥X对称密钥X用公钥Z加密BBB,发送给ServerServer私钥Z'解密对称密钥X
  • 此后,并且是在双方都不知道的情况下中间人知道了对称密钥双方使用对称密钥进行加密解密无效了。

2.6 一个证书认证+一个非对称加密+一个对称加密

  • 上面的方法四(一个非对称加密+一个对称加密),效率不错关键对方无法知道,传过来的公钥是否被中间人篡改,但是只要公钥给出去就只有对应的唯一的私钥能够解密了后续使用对称密钥加密就安全了
2.6.1 CA证书

  • 数字签名CA机构,将这些信息形成数据摘要,再用自己的私钥对这数据摘要进行加密,形成数字签名
  • 客户端内置全球公认CA 根证书(包含 CA 的公钥、数据摘要的hash算法)。
2.6.2 具体流程

  • Client第一次发起请求时,Server返回一个CA证书
    • 场景1:中间人只篡改CA公钥:
      中间人将CA机构的公钥篡改为自己的公钥
      ,那么ClientCA机构的公钥证书中的数字签名解密将得到数据摘要和重新形成的数据摘要,相比,对不上Client发现公钥被篡改
    • 场景2:中间人想同时篡改公钥和数字签名:
      中间人将CA机构的公钥篡改为自己的公钥+将证书中的数字签名用CA机构的公钥解密形成新的数据摘要再加密,等等?中间人没有CA机构的私钥,只能用自己的私钥机密,但是Client只认CA机构的公钥,发现用CA机构公钥解密解不了
  • Server自己的公钥成功 发给Client后,Client公钥Z对称密钥X加密为AAA(密文数据),发送给ServerServer对应的唯一的私钥Z'AAA,解密为对称密钥X
  • 此后,双方用对称密钥X,进行加密解密
  • 整体安全,且效率不错
  • 注意:
    • 为什么数据摘要CA机构的私钥加密数字签名?因为,中间人没有CA机构的私钥不能使用CA机构的密钥再加密,而Client只认CA机构的公钥
    • 为什么要用数据摘要?因为数据摘要短加密解密快方便验证信息是否被修改
    • 那么中间人能不能自己也搞一套CA证书?客户端根本不会信任“服务器发过来的 CA 公钥”,它只认自己操作系统/浏览器里预装的那一批根 CA 公钥

2.7 HTTPS的握手流程

http://www.dtcms.com/a/544345.html

相关文章:

  • 改进 shell 搜索
  • Rust异步并发:业务落地的三个关键细节
  • TDengine 数据函数 TAN 用户手册
  • 【数据结构】顺序结构二叉树详解
  • 魔法自助建站网站建设需要准备什么软件
  • 酒吧网站设计大连网站建设ewaylife
  • Oracle_E_Business 远程命令执行漏洞复现(CVE-2025-61882)
  • P1228 地毯填补问题(分治)
  • 苍穹外卖 —— 文件上传和菜品的CRUD
  • 高性能MySql阅读
  • 第3章、MySQL乱码的解决-字符集
  • Ubuntu 安装 Rancher
  • 什么是慢SQL
  • 【人工智能数学基础】多元高斯分布
  • 做网站加入广告联盟做网站的前端是做什么
  • 郑州网页网站制作汕头网站推广优化
  • python电影票房数据可视化分析系统 不同档期电影票房Flask框架 艺恩电影票房网站 requests爬虫(建议收藏)✅
  • webrtc弱网-VivaceUtilityFunction源码分析与算法原理
  • 科技行业ERP系统选择指南:Oracle NetSuite的全面解析
  • 第一个程序HelloWorld
  • 数据分析过程中,发现数值缺失,怎么办?
  • 电商网站设计图海口网站建设好
  • 【自动化测试函数 (上)】Web自动化测试实战精要:定位、操作与窗口管理三部曲
  • 超越传统管理:迈向无感衔接、全域协同的医美运营新范式
  • SUB设备电子狗加密狗开发
  • 1.1 神经网络基本组成
  • HarmonyOS 应用开发:Scroll滚动容器的深度性能优化
  • Java支付对接策略模式详细设计
  • 项目实践6—全球证件智能识别系统(Qt客户端开发+FastAPI后端人工智能服务开发)
  • 微软重磅发布开源引擎Microsoft Agent Framework