HTTPS 常用密钥交换算法解析

一、 算法分类逻辑:按 "是否依赖临时密钥" 划分

HTTPS 常用密钥交换算法可分为 2 大类,核心区别是是否使用临时密钥对(决定是否支持前向保密):

基于长期密钥的算法:依赖服务器长期公钥 / 私钥,无临时密钥,不支持前向保密

基于临时密钥的算法:使用一次性临时密钥对,支持前向保密

二、 常用算法深度解析(面试高频)

1. RSA算法(最经典,无临时密钥)

核心流程

  • 客户端生成 Pre-Master Secret (随机数),用服务器证书公钥加密后发送给服务器;
  • 服务器用长期私钥解密,得到 Pre-Master Secret ;
  • 双方用 Pre-Master Secret + 客户端随机数Rc + 服务器随机数Rs 生成会话密钥。

特点

  • 优点:实现简单,兼容性强(老设备/老浏览器均支持);
  • 缺点:不支持前向保密(长期私钥泄露则历史会话可被破解);加密 Pre-Master Secret 的计算成本较高。

适用场景

  • 老系统、兼容性要求极高的场景(如部分传统行业内网)。
2. ECDHE-RSA算法(现代主流,临时密钥)

核心流程(前文重点讲解的算法)

  • 服务器生成临时密钥对 (ks, Ps=ks×G) ,用证书长期私钥给 Ps 签名后发送;
  • 客户端验签通过后,生成临时密钥对 (kc, Pc=kc×G) 并发送;
  • 双方基于椭圆曲线交换律,计算出同一共享密钥 Secret ;
  • 用 Secret + Rc + Rs 生成会话密钥。

特点

  • 优点:支持前向保密;椭圆曲线计算效率高,密钥长度短(256位≈RSA 3072位安全强度);
  • 缺点:对老设备兼容性略差(但现代浏览器均支持)。

适用场景

  • 高并发公网场景(电商、网站)、对安全性要求高的场景(支付、金融)。
3. DHE-RSA算法(临时密钥,非椭圆曲线)

核心流程

  • 与ECDHE逻辑一致,但基于传统离散对数问题(而非椭圆曲线)生成临时密钥对;
  • 服务器生成 (ks, Ps=g^ks mod p) ,客户端生成 (kc, Pc=g^kc mod p) ( g/p 是公开参数);
  • 双方计算共享密钥 Secret=Pc^ks mod p=Ps^kc mod p 。

特点

  • 优点:支持前向保密,兼容性比ECDHE略好;
  • 缺点:计算效率低,需要更长的密钥(1024位以上)才能达到与椭圆曲线相当的安全强度,服务器资源消耗大。

适用场景

  • 对椭圆曲线算法有合规限制的场景,或部分老设备兼容场景。
4. PSK算法(预共享密钥,无证书)

核心流程

  • 客户端与服务器提前约定好预共享密钥(PSK);
  • 客户端发送 ClientHello ,携带PSK标识;
  • 服务器确认PSK后,双方用 PSK + Rc + Rs 生成会话密钥。

特点

  • 优点:无证书校验,握手仅需2轮,速度极快;计算量小,资源消耗低;
  • 缺点:PSK需提前安全分发,泄露则所有会话可被破解;仅适合封闭场景。

适用场景

  • IoT设备(智能手表、传感器)、企业内网设备(机房服务器)等算力弱、封闭环境。
5. SM2算法(国密算法,临时密钥)

核心流程

  • 我国自主研发的椭圆曲线算法,逻辑与ECDHE一致,但使用国密标准的椭圆曲线参数;
  • 支持前向保密,流程与ECDHE-RSA完全对应。

特点

  • 优点:符合国内合规要求(《网络安全法》),无国外算法后门风险;
  • 缺点:仅国内场景使用,国际兼容性差。

适用场景

  • 国内政务系统、银行APP、国企内网等合规要求高的场景。

三、算法对比表

算法 前向保密 计算效率 兼容性 适用场景
RSA ❌ 不支持 老系统、强兼容场景
ECDHE-RSA ✅ 支持 高并发公网、高安全场景
DHE-RSA ✅ 支持 椭圆曲线受限、老设备兼容场景
PSK ❌ 不支持 IoT、封闭内网、算力弱设备
SM2 ✅ 支持 仅限国内 国内合规场景(政务、金融)

四、 场景面试题(算法选型类)

  1. 电商网站选ECDHE-RSA还是RSA?为什么?

    答:选ECDHE-RSA。理由:① 支持前向保密,安全性更高;② 椭圆曲线计算效率高,适配电商高并发场景;③ 现代浏览器均支持,兼容性足够。

  2. IoT设备为什么选PSK而不是ECDHE?

    答:因为IoT设备算力弱、内存小:PSK无证书校验,握手仅2轮,计算量极小,更适合资源受限的设备;而ECDHE需要生成临时密钥对,计算成本相对更高。

  3. 国内银行APP为什么必须用SM2算法?

    答:因为SM2是我国自主研发的国密算法,符合《网络安全法》等国内合规要求,能避免国外算法的潜在后门风险,保障金融数据的国家安全。

相关推荐
..过云雨1 小时前
五种IO模型与非阻塞IO
网络·网络协议·tcp/ip
源远流长jerry2 小时前
dpdk之kni处理dns案例
linux·网络·网络协议·ubuntu·ip
無森~2 小时前
HBase优化面试题
java·面试·hbase
2501_915106323 小时前
当 Perfdog 开始收费之后,我重新整理了一替代方案
android·ios·小程序·https·uni-app·iphone·webview
db_murphy5 小时前
知识篇 | net.ipv4.ip_forward 参数
网络·网络协议·tcp/ip
Vect__5 小时前
TCP Socket编程详解
网络协议·tcp/ip·php
2501_915918416 小时前
中小团队发布,跨平台 iOS 上架,证书、描述文件创建管理,测试分发一体化方案
android·ios·小程序·https·uni-app·iphone·webview
B2_Proxy6 小时前
如何使用代理服务解决“您的 ASN 被阻止”错误:全面策略分析
网络·爬虫·网络协议·tcp/ip·安全·代理模式
Hello.Reader7 小时前
Rocket 0.5 响应体系Responder、流式输出、WebSocket 与 uri! 类型安全 URI
websocket·网络协议·安全·rust·rocket
JoySSLLian7 小时前
IP SSL证书是什么?为何它是保障IP通信安全的关键?
网络协议·tcp/ip·https·ssl