https机制

HTTPS的整套认证体系,最终归结为**"我凭什么信任这把公钥是真的?"**

答案就是:因为它在我的操作系统出厂时就已经存在,而我相信我的操作系统厂商和那些CA机构经过了足够严格的审核。 可以理解为:我们把对物理世界的信任(对微软/Apple/Google等商业实体的信任)投射到了数字世界。只要这个初始条件成立,后面的密码学运算就牢不可破。这就是你所说的"基础"。

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

在客户端和服务器刚一建立连接的时候, 服务器给客户端返回一个 证书,证书包含了之前服务端的公钥, 也包含了网站的身份信息.

客户端进行认证

client第一次请求,得到返回结果,不仅仅得到了公钥,实际上client得到的是一个"证书",CA机构签发的证书。

客户端获取到这个证书之后, 会对证书进行校验(防止证书是伪造的).

  • 判定证书的有效期是否过期
  • 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构).
  • 验证证书是否被篡改: 从操作系统中拿到该证书发布机构的公钥, 对签名解密, 得到一个hash 值(称为数据摘要), 设为 hash1. 然后计算整个证书的 hash 值, 设为 hash2. 对比 hash1 和 hash2 是否相等. 如果相等, 则说明证书是没有被篡改过的

注意:

在验证证书是否被篡改这一步,从操作系统中拿到的公钥,绝不是从返回的证书里面取出的网站公钥 ,而是CA(证书颁发机构)的公钥

我把这两把完全不同的公钥做一个对比,你就清楚了:

公钥来源 在哪个证书里 谁持有对应的私钥 在本步骤中的用途
CA的公钥 操作系统内置的根证书 CA机构自己 用来解密 网站证书上的数字签名,从而得到 hash1
网站的公钥 网站返回的站点证书 网站服务器持有 后续建立TLS加密会话 时用于协商密钥,不是用来验证签名的
常见问题:
中间人有没有可能篡改该证书?

由于中间人没有 CA 机构的私钥,所以无法 hash 之后用私钥加密形成签名,那么也就没法办法对篡改后的证书形成匹配的签名,这个世界上只有CA机构有私钥,也就意味着,只有CA机构才有对数据进行签名的能力!

中间人整个掉包证书?
  • 因为中间人没有 CA 私钥,所以无法制作假的证书
  • 所以中间人只能向 CA 申请真证书,然后用自己申请的证书进行掉包
  • 这个确实能做到证书的整体掉包,但是别忘记,证书明文中包含了域名等服务端认证信息,如果整体掉包,客户端依旧能够识别出来。
  • 永远记住:中间人没有 CA 私钥,所以对任何证书都无法进行合法修改,包括自己的
为什么签名不直接加密,而是要先 hash 形成摘要?

缩⼩签名密文的⻓度,加快数字签名的验证签名的运算速度

HTTPS通信的完整流程:

总结 HTTPS 工作过程中涉及到的密钥有三组:

  • 第一组(非对称加密): 用于校验证书是否被篡改. 服务器持有私钥(私钥在形成 CSR 文件与申请证书时获得), 客户端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥). 服务器在客户端请求时,返回携带签名的证书. 客户端通过这个公钥进行证书验证, 保证证书的合法性,进一步保证证书中携带的服务端公钥权威性。
  • 第二组(非对称加密): 用于协商生成对称加密的密钥. 客户端用收到的 CA 证书中的公钥(是可被信任的)给随机生成的对称加密的密钥加密, 传输给服务器, 服务器通过私钥解密获取到对称加密密钥.
  • 第三组(对称加密): 客户端和服务器后续传输的数据都通过这个对称密钥加密解密.

其实一切的关键都是围绕这个对称加密的密钥. 其他的机制都是辅助这个密钥工作的!

相关推荐
AKA__Zas2 小时前
初识多线程(初初识)
java·服务器·开发语言·学习方法
小夏子_riotous2 小时前
Docker学习路径——10、Docker Compose 一站式编排:从入门到生产级部署
linux·运维·服务器·docker·容器·centos·云计算
断问天2 小时前
Faq:Fedora44 Kernel升级后WIFI和声卡都不能使用了
linux·运维·服务器
zjeweler2 小时前
云服务器部署 Claude Code 实战指南
运维·服务器·claude code
neo33013 小时前
debian MEDIATEK Corp. Device 7925 无线网卡驱动安装
运维·服务器·debian
Danileaf_Guo3 小时前
Ubuntu 26.04桌面版部署
linux·运维·服务器·ubuntu
IMPYLH3 小时前
Linux 的 sync 命令
linux·运维·服务器·python·bash·运维开发
胡图图不糊涂^_^3 小时前
网络原理笔记
java·网络·笔记·学习·tcp/ip·http·https
上海云盾安全满满3 小时前
高防服务器与云防产品都适用哪些情况
运维·服务器