计算机网络——应用层 HTTPS 协议分析

计算机网络——应用层 HTTPS 协议分析

概述

  • HTTPS(HyperText Transfer Protocol Secure)是 HTTP 的安全版本,即安全的超文本传输协议
  • HTTPS 通过在 HTTP 协议基础上加入 SSL/TLS 加密层,确保数据在客户端(如浏览器)与服务器之间传输时的机密性、完整性和身份认证。
  • 同样也是基于 TCP 解封装。
  • 使用端口号为 443

加密算法

加密算法历史(简要)

  • 近代密码学的发展始于 20 世纪初电报和无线电的普及,在一战和二战期间,军事通信需求推动了密码技术的进步,如德国 Enigma 密码机和美军 纳瓦霍语密码 的应用,同时英国破译齐默尔曼电报等事件直接影响了战争走向,而 香农信息论Kerckhoffs 原则 为密码学奠定了理论基础。
  • 1976 年后,现代密码学迎来革命性发展,Diffie-Hellman 密钥交换和 RSA 算法 的提出开创了公钥密码学新时代,DESAES 成为对称加密标准,ECC 椭圆曲线密码 以更短的密钥实现高强度安全,同时中国也贡献了 ZUCSM4 等国际认可的密码算法。
  • 进入 21 世纪,随着 MD5 等哈希函数被破解和量子计算的出现,密码学面临新的挑战,后量子密码学成为研究重点,各国加速推进密码算法自主化与标准化,密码学已从军事保密工具演变为支撑数字社会的核心技术,其发展始终与计算技术、数学理论和安全需求紧密交织,未来将继续在保障信息安全方面发挥关键作用。

对称加密算法

概述

  • 对称加密算法(Symmetric Encryption)是一种加密技术,其核心特点是 加密和解密使用相同的密钥,常用的算法是 AESDES

[!tip]

这种算法速度快、效率高,适合加密大量数据,但密钥管理(如安全分发和存储)是其主要挑战。

算法运用

  • 客户端用对称密钥(如 AES)加密 HTTP 请求(明文 --> 密文)。
  • 服务器用相同密钥解密密文,处理请求后,再用该密钥加密响应。

https

主流对称加密算法汇总

算法分组大小 / 密钥长度特点安全性与应用场景
DES分组: 64 位, 密钥: 56 位最早广泛使用,速度快,但密钥太短不安全(易暴力破解)
3DES (Triple DES)分组: 64 位, 密钥: 112/168 位DES 的三重加密,安全性增强逐渐淘汰(效率低,仅兼容旧系统)
AES分组: 128 位, 密钥: 128/192/256 位现行国际标准,硬件加速支持(AES-NI),速度快安全(TLS、VPN、磁盘加密)
Blowfish分组: 64 位, 密钥: 32~448 位密钥长度灵活,适合软件实现安全但 64 位分组存在局限性
Twofish分组: 128 位, 密钥: 最大 256 位AES 竞赛候选算法,免费无专利安全(未普及,用于 TrueCrypt 等)
RC4流加密简单快速,曾用于早期 SSL/TLS已废弃(漏洞多,如 WEP 攻击)
ChaCha20流加密(基于 Salsa20 改进)抗侧信道攻击,移动端性能优于 AES安全(TLS 1.3、QUIC 协议)
IDEA分组: 64 位, 密钥: 128 位曾用于 PGP,专利限制多安全但基本被 AES 取代
Camellia分组: 128 位, 密钥: 128/192/256 位日本开发,性能与 AES 相当安全(嵌入式设备、日本系统)

哈希加密算法

概述

  • 哈希函数是一种将任意长度的输入(消息)映射为固定长度输出(哈希值)的数学函数,具有 不可逆性、确定性和抗碰撞性等核心特性。
  • 常用的哈希加密有 MD5,SHA256,CRC。
  • 哈希算法又称杂凑算法、摘要算法。

算法运用

https

主流哈希加密算法汇总

算法输出长度特点安全性
MD5128 位 (16 字节)速度快,曾用于文件校验、密码存储已攻破(碰撞攻击易实现)
SHA-1160 位 (20 字节)比 MD5 更安全,曾用于 SSL、Git已攻破(谷歌 2017 年碰撞演示)
SHA-256256 位 (32 字节)SHA-2 家族核心算法,比特币、TLS 标准安全(当前推荐)
SHA-512512 位 (64 字节)SHA-2 家族,适合 64 位系统安全(资源消耗较高)
SHA-3224/256/384/512 位基于 Keccak 的新标准,抗量子计算潜力安全(未来主流)
RIPEMD-160160 位 (20 字节)欧洲开发,比特币地址生成辅助未破解但已过时
BLAKE2256/512 位比 SHA-3 更快,被 Zcash、Argon2 采用安全(现代应用首选)
BLAKE3可变(默认 256 位)BLAKE2 升级版,速度提升 2 倍,支持并行计算安全(2020 年发布)
CRC3232 位用于网络校验、ZIP 文件,无密码学强度仅校验(非加密哈希)
HMAC依赖底层哈希(如 SHA256)基于密钥的哈希消息认证码,防篡改安全(需配合安全哈希)

非对称加密算法

概述

  • 非对称加密(又称公钥加密)是一种使用一对密钥(公钥和私钥)进行加密和解密的算法。
  • 公钥可公开分享,用于加密数据或验证签名;私钥必须保密,用于解密数据或生成签名。
  • 公钥和私钥是数学安全的,已知公钥,不可能推导出私钥;已知私钥,也不可能推导出公钥。

算法运用

https

主流非对称加密算法汇总

算法密钥长度特点安全性 (截至 2024)
RSA常见 2048 / 3072 / 4096 bit历史最悠久,应用最广(SSL、数字签名)安全(足够长密钥情况下),但慢
DSA1024 / 2048 / 3072 bit专用于数字签名,不加密数据安全,但较少新项目采用
ElGamal可变基于离散对数,主要用于加密和签名安全,但密文长,效率低
ECC常见 256 / 384 / 521 bit相同安全级别密钥更短,效率高安全,广泛推荐(例如 ECDSA, ECDH)
ECDSA常见 256 / 384 / 521 bit基于椭圆曲线,用于签名安全,高效
EdDSA256 bit现代签名算法,简单高效,抗侧信道攻击安全,越来越普及
Diffie-Hellman 可变密钥交换协议,不直接用于加密数据安全(大素数参数)
ECDH常见 256 / 384 / 521 bit椭圆曲线密钥交换,高效安全安全

协议分析

密钥分发

HTTPS 使用 RSA 公钥加密 AES 密码,服务器接收到加密后的 AES 密码,使用 RSA 私钥解密得到 AES 密码。

  • 服务器发送公钥:服务器将自己的 ​​RSA 公钥​​发送给客户端(实际通过数字证书传递,图中简化为直接发送)。
  • 客户端生成会话密钥:客户端随机生成一个 ​​AES 对称密钥​​(用于后续高效加密通信数据)。
  • 客户端加密 AES 密钥:使用服务器的 ​​RSA 公钥​​加密 AES 密钥,生成密文 {AES Key}_{pk},并发送给服务器。
  • 服务器解密获取密钥:服务器用自己的 ​​RSA 私钥​​解密 {AES Key}_{pk},得到原始的 AES 密钥。
  • 双向确认密钥:客户端和服务器均持有相同的 AES 密钥,完成密钥协商。
  • 通道加密就绪:双方约定后续所有通信数据均使用 ​​AES 对称加密。
  • 客户端发送加密请求:使用 AES 密钥加密应用数据(如 HTTP 请求),发送给服务器。
  • 服务器返回加密响应:服务器用 AES 密钥解密请求,处理后再加密响应数据,返回给客户端。
  • 循环通信:后续所有通信均重复上述加密/解密过程(图中以 loop 表示循环)。

https

HTTPS 防篡改

Chrome 预先内置了 RSA 公钥,并通过 AES 加密和哈希验证来确保数据完整性。

  • Chrome 浏览器内置百度服务器的 RSA 公钥。
  • Chrome 浏览器向百度服务器发起 HTTPS 请求(tieba.baidu.com)。
  • 浏览器生成 AES 密码(示例:123456)。
  • 使用 RSA 公钥加密 AES 密码,得到密文(示例:goosuih ihiUFgc)。
  • 对 AES 密码进行 MD5 哈希,得到哈希密文(示例:ev81984vs)。
  • 将加密后的密文和哈希密文一起发送给服务器。
  • 服务器使用 RSA 私钥解密获取 AES 密码。
  • 对解密后的 AES 密码进行 MD5 哈希,得到验证密文(示例:ev81984vs)。
  • 对比收到的哈希密文和计算出的验证密文。

https

CA 证书颁发机构

CA 证书颁发机构相当于公证处,证实了服务器 RSA 公钥的安全性和有效性。

  • 服务器生成 RSA 密钥对(包含公钥和私钥)。
  • 服务器向 CA 机构提交公钥和身份验证信息(如域名所有权证明)。
  • CA 机构验证服务器身份真实性。

  • CA 机构使用 CA 自己的 RSA 私钥对服务器公钥进行 数字签名

  • CA 机构颁发包含服务器公钥和 CA 签名的数字证书。

  • 浏览器向服务器发起 HTTPS 连接请求。

  • 服务器向浏览器返回数字证书(包含 CA 签名的服务器公钥)。

  • 浏览器使用内置的 CA 公钥解密数字签名。

  • 对比解密结果与证书中的服务器公钥。

  • 验证证书的有效期、域名匹配等附加信息。

  • 验证成功:

    • 信任该服务器公钥
    • 继续完成 TLS 握手流程
    • 建立安全加密通道
  • 验证失败:

    • 显示 "不安全连接" 警告
    • 阻止用户继续访问

https

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇