跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言大前端算法

HTTPS 协议原理详解:加密机制与证书认证

HTTPS 协议通过引入加密层解决 HTTP 明文传输的安全隐患。文章阐述了加密解密原理,对比了对称与非对称加密的优劣,分析了单纯使用某一种加密方式的缺陷。最终介绍了结合非对称加密、对称加密及 CA 证书认证的混合方案,解释了数字签名、数据摘要的作用及中间人攻击的防御机制。该方案确保了公钥合法性,实现了高效安全的通信。

技术博主发布于 2026/3/15更新于 2026/10/21108 浏览
HTTPS 协议原理详解:加密机制与证书认证

HTTP 已普及,为何仍需 HTTPS?

HTTPS 是 HTTP 协议基础上引入的加密层。由于 HTTP 内容按文本明文传输,传输过程中可能被篡改。

一、什么是加密和解密

加密是将明文(要传输的信息)进行变换生成密文;解密是将密文还原为明文。此过程需要密钥辅助。

案例:古代奏折中夹带挖洞的纸作为密钥,可隐藏关键字信息。

现代密码学已成为独立学科,奠基人包括艾伦·麦席森·图灵和冯·诺依曼。图灵在二战中破解德军 Enigma 机,奠定了计算机、人工智能及密码学基础,其名字被用于计算机领域最高荣誉'图灵奖'。

二、为什么需要加密

技术往往在实践中暴露问题并寻求新方案。

运营商劫持示例: 下载应用时,若未被劫持,点击按钮弹出正确下载链接;若被劫持,则弹出其他软件(如浏览器)的下载链接。

原因: 数据包经过运营商网络设备(路由器、交换机等),设备可解析并篡改数据内容。客户端向服务端发送请求,服务端响应被截取后,攻击者将目标替换为恶意地址。

风险:

  1. 隐私信息暴露。
  2. 响应被篡改。
  3. 中间人攻击(监视和攻击)。因此 HTTP 需通过 SSL/TLS 加密方案解决,统称为 HTTPS。

注:大多数截获旨在获利,若成本高于收益通常不会发生。但黑客也可利用类似方法(如钓鱼 WiFi)窃取支付密码等敏感信息,明文传输非常危险。

SSL 安全性: SSL 并非绝对安全。随着算力增强,攻破难度降低,需持续维护更新。自行编写加密协议风险更高。

三、常见的加密方式

3.1 对称加密

采用单钥密码系统,同一密钥同时用于加密和解密。

  • 特征: 加解密密钥相同。
  • 常见算法: DES、3DES、AES、Blowfish 等。
  • 特点: 算法公开、计算量小、速度快、效率高。
  • 示例: 按位异或运算。明文 a=1234,密钥 key=8888,密文 b=a^key=9834;再次运算 b^key 还原明文。

3.2 非对称加密

需要两个密钥:公钥(public key)和私钥(private key)。

  • 特点: 算法复杂、安全性高,但速度慢于对称加密。
  • 常见算法: RSA、DSA、ECDSA。
  • 配对关系: 公钥给谁都行,私钥仅持有者可用。
  • 场景:
    1. 公钥加密,私钥解密(保密通信)。
    2. 私钥加密,公钥解密(数字签名/验证身份)。
  • 生活示例: A 给 B 送文件,B 提供锁(公钥)和钥匙(私钥)。A 用锁锁住盒子,B 用钥匙打开。

四、加密过程中用到的技术

4.1 数据摘要与指纹

利用单向散列函数(Hash 函数)生成固定长度的数字摘要,用于判断数据是否被篡改。

  • 常见算法: MD5、SHA1、SHA256 等。
  • 特征: 不可逆,无法从摘要反推原信息,用于数据对比。
  • 应用场景:
    1. Session ID:将用户名和密码转化为唯一标识存储,登录时比对摘要确认合法性。
    2. 资源上传:生成文件摘要,服务端查重,避免重复上传相同文件。

4.2 数字签名

将数字摘要进行加密即为数字签名,用于后期证书验证。

五、HTTPS 方案探究

5.1 方案 1:只使用对称加密

双方持有同一密钥 X。即使数据被截获,黑客无密钥无法解密。

  • 问题: 服务器需为每个客户端维护不同密钥,管理麻烦;修改密钥需强制客户端同步;密钥协商过程若明文传输会被窃听。

5.2 方案 2:只使用非对称加密

服务器发送公钥给浏览器,浏览器用公钥加密数据。

  • 问题: 服务器到浏览器的路径若未加密,且公钥被中间人劫持,则不安全。

5.3 方案 3:双方都使用非对称加密

交换公钥,各自保留私钥。中间人无法解析信息。

  • 问题: 效率太低。

5.4 方案 4:非对称加密 + 对称加密

结合两者优势。

  1. 服务端拥有非对称公钥 S 和私钥 S'。
  2. 客户端发起请求获取公钥 S。
  3. 客户端本地生成对称密钥 C,用公钥 S 加密后发送。
  4. 服务器用私钥 S' 解密得到 C。
  5. 后续通信均使用对称密钥 C。
  • 优点: 初始密钥协商用非对称加密保证安全,后续传输用对称加密保证效率。

5.5 中间人攻击 (MITM)

上述方案若在握手阶段被攻击则无效。

  • 攻击流程: 中间人劫持服务器公钥,替换为自己的公钥 M。客户端用 M 加密密钥发送给中间人,中间人解密后再用真实服务器公钥转发。双方以为安全,实则通信被监听。
  • 核心问题: 客户端无法确认收到的公钥确实来自目标服务器。需保证公钥合法性。

5.6 引入 CA 证书

CA(Certificate Authority)作为第三方机构颁发数字证书,证明服务端公钥的权威性。

  • 申请流程: 确认域名、主体等信息,生成公私钥对及 CSR 请求文件,向 CA 申请审核。通过后颁发证书。
  • 证书构成: 包含认证信息和数字签名。CA 对证书明文 Hash 形成摘要,再用 CA 私钥加密形成签名。签名与认证信息组成证书。
  • 验证流程:
    1. 客户端内置受信任 CA 公钥。
    2. 用 CA 公钥解密签名,得到摘要 hash1。
    3. 计算证书明文 hash2。
    4. 对比 hash1 和 hash2,相等则证书未被篡改。
  • 防篡改能力: 中间人无 CA 私钥,无法伪造有效签名。

5.7 最终方案:非对称加密 + 对称加密 + 证书认证

  1. 客户端校验证书有效期、发布机构可信度、是否被篡改。
  2. 浏览器设置中可查看受信任证书发布机构。

5.8 基于 HTTPS 的思考

  • 中间人攻击方式: ARP 欺骗、ICMP 重定向、假 WiFi 等。
  • 密钥总结:
    1. 第一组(非对称):校验证书合法性,服务器持私钥,客户端持 CA 公钥。
    2. 第二组(非对称):协商生成对称密钥,客户端用证书公钥加密,服务器用私钥解密。
    3. 第三组(对称):后续数据传输加密。
  • 安全性思考: HTTPS 防止了中间人攻击,但客户端仍可能成为攻击入口,服务端需二次加密防护。
  • 应用层实现: 应用层涉及序列化、协议、加密等定制需求,难以在内核统一实现,故置于用户层。

目录

  1. 一、什么是加密和解密
  2. 二、为什么需要加密
  3. 三、常见的加密方式
  4. 3.1 对称加密
  5. 3.2 非对称加密
  6. 四、加密过程中用到的技术
  7. 4.1 数据摘要与指纹
  8. 4.2 数字签名
  9. 五、HTTPS 方案探究
  10. 5.1 方案 1:只使用对称加密
  11. 5.2 方案 2:只使用非对称加密
  12. 5.3 方案 3:双方都使用非对称加密
  13. 5.4 方案 4:非对称加密 + 对称加密
  14. 5.5 中间人攻击 (MITM)
  15. 5.6 引入 CA 证书
  16. 5.7 最终方案:非对称加密 + 对称加密 + 证书认证
  17. 5.8 基于 HTTPS 的思考

更多推荐文章

查看全部
  • 告别 SQL 恐惧症:用自然语言轻松搞定数据库查询
  • 单 Agent 与多 Agent 架构对比及选型指南
  • Hugging Face:不仅是 AI 的 GitHub,更是开发者的开源生态家园
  • 设计支持万人并发抢购的秒杀系统架构方案
  • 论文 AIGC 检测率过高?八种优化策略与实战建议
  • 《Agent Runtime 工程化》第九章 可观测与 Trace:9.1 Agent trace 的基本结构
  • GitHub 汉化插件安装与配置指南
  • LeetCode 116. 填充每个节点的下一个右侧节点指针
  • C++ 继承进阶:友元、静态成员与菱形继承底层逻辑
  • Python 反爬核心:人机验证、设备指纹、频率限制全绕过
  • MySQL 分组查询、聚合查询与联合查询
  • TCP Socket 网络编程详解:API、多线程与守护进程
  • 数据结构:快速排序与归并排序的深入优化
  • Python 动态图表制作指南:基于 Matplotlib FuncAnimation
  • 前端 WebSocket 实时通信:替代轮询的实践指南
  • Java 反射机制详解:从原理到实战
  • OpenAI 国会指控 DeepSeek“非法蒸馏”,字节发布 Seedance 2.0,Java 26 预览版来了
  • Webnovel Writer:基于 Claude Code 的长篇网文 AI 创作系统
  • 前端 Base64 格式文件上传详解:原理、实现与最佳实践
  • 鸣潮 QQ 机器人部署指南:GsCore 核心与 NoneBot 插件配置

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online