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是我国自主研发的国密算法,符合《网络安全法》等国内合规要求,能避免国外算法的潜在后门风险,保障金融数据的国家安全。

相关推荐
IT大白鼠21 分钟前
BGP多归属技术原理与应用实践
网络·网络协议·华为
AC赳赳老秦34 分钟前
OpenClaw 助力技术面试:自动生成面试题、模拟面试、整理面试知识点
开发语言·python·面试·职场和发展·自动化·deepseek·openclaw
林间码客1 小时前
智能旅行规划助手 — 实习面试问答手册
面试·职场和发展
自由路飞1 小时前
Trellis 从 0 到 1 实战指南:让 AI 从"随便聊聊"变成"项目协作者"
面试
浮午1 小时前
腾讯AI应用开发一面实录:13道硬核面试题全解析
人工智能·面试·职场和发展
忧云1 小时前
HTTP抓包工具:安装配置与使用教程
网络协议·网络抓包工具·http抓包
00后程序员张1 小时前
Jenkins 自动上传 IPA 到 App Store 把发布步骤融入 CI/CD
android·ios·小程序·https·uni-app·iphone·webview
serve the people1 小时前
Elasticsearch(5) i want to monitor the es health from a http api
大数据·http·elasticsearch
Mr -老鬼2 小时前
EasyClick 入门指南:HTTP 网络请求与 API 对接实战
网络·网络协议·http·自动化·#easyclick
Shacoray2 小时前
K8s 中 Ingress 的 HTTPS 证书 如何生成?
容器·https·kubernetes