当前位置: 首页 > news >正文

HTTPS详解:原理 + 加解密过程 + 面试问答

一、HTTP 与 HTTPS 的区别

项目HTTPHTTPS
全称HyperText Transfer ProtocolHyperText Transfer Protocol Secure
端口80443
协议层应用层应用层 + TLS(安全层)
加密方式明文传输加密传输(TLS)
安全性易被劫持、中间人攻击可加密、防篡改、防伪装
是否需证书是(由 CA 机构颁发)

二、HTTPS 的核心安全保障

HTTPS 基于 TLS(或旧版 SSL)实现以下三个目标:

  1. 机密性(防监听):使用对称加密加密数据内容
  2. 身份认证(防伪装):通过数字证书验证服务器身份
  3. 完整性校验(防篡改):使用摘要算法保证数据未被修改

三、HTTPS 加密通信原理(TLS 握手过程)

混合加密机制:

加密方式使用目的特点
非对称加密握手阶段传输密钥安全但慢
对称加密正文传输快但需安全传递密钥
摘要 + MAC校验完整性防止数据被篡改

TLS 1.2 握手步骤:

Client Server 1. Client Hello(支持算法、随机数) 2. Server Hello(选定算法、证书、随机数) 3. 验证证书 → 生成密钥 → 加密发送 4. 解密密钥 → 会话密钥建立 5. 用对称密钥加密通信开始 Client Server

四、数字证书与身份认证

数字证书包含:

  • 公钥
  • 服务器域名
  • 颁发机构(CA)
  • 有效期
  • 签名算法(SHA256)

验证方式:

客户端浏览器内置 根证书列表,通过链式验证服务器的证书是否被信任。


五、TLS 1.3 对比 TLS 1.2

特性TLS 1.2TLS 1.3
握手轮次至少 2 次 RTT最快 1 次 RTT(支持 0-RTT)
加密套件多(含部分弱算法)默认强加密(去除 RSA 握手)
会话恢复使用 Session ID/Ticket使用 PSK
前向保密可选默认启用

六、HTTPS 常见问题总结

1. HTTPS 为什么比 HTTP 安全?

答: HTTPS 使用 TLS 实现加密通信、防监听、防篡改和身份认证,相比 HTTP 明文传输更安全。


2. HTTPS 使用哪些加密算法?

类型说明示例算法
非对称加密握手阶段传输密钥RSA、ECDHE
对称加密加密通信内容AES、ChaCha20
摘要算法校验完整性SHA-256、HMAC

3. HTTPS 全程使用非对称加密吗?

答: 否。
握手阶段使用非对称加密交换对称密钥,之后的通信使用对称加密(更高效)。


4. 数字证书是什么?客户端如何验证?

答: 证书由 CA 签发,包含服务器公钥、域名等信息。客户端通过浏览器预置的根证书验证其合法性(链式信任模型)。


5. TLS 握手过程简述?

答: 客户端发送 Hello → 获取服务器证书 → 验证后生成对称密钥 → 使用公钥加密密钥传输 → 建立安全通道。


6. 中间人攻击是什么?HTTPS 如何防止?

答: 中间人伪装成服务端窃听数据。HTTPS 使用证书认证 + 加密通信,确保客户端只能与真正的服务器通信,防止中间人。


7. TLS 1.2 vs TLS 1.3 的主要区别?

  • TLS 1.3 性能更优,握手更快(支持 0-RTT)
  • 移除不安全算法,默认启用前向保密
  • 加密元数据更强,防止探测

七、总结

特性HTTPS 优势
保密性数据加密,防止监听
身份认证数字证书,防止伪造
完整性摘要校验,防止数据被篡改
性能(TLS 1.3)握手更快,资源更节省
应用场景登录、支付、传输隐私数据的所有 Web 应用场景
http://www.dtcms.com/a/265223.html

相关文章:

  • SpringBoot:整合quartz实现定时任务-基础篇
  • 从零用java实现 小红书 springboot vue uniapp (12)实现分类筛选与视频笔记功能
  • uniapp 滚动tab
  • autoware calar 联合运行,自动驾驶虚拟仿真器
  • ESP32S3开发:实现WiFi扫描与连接功能
  • 插值与拟合(3):B样条曲线
  • MySQL 用户管理与权限控制
  • 进阶向:Django框架深度解析各核心组件的作用与协作
  • Spring生态在Java开发
  • 自动驾驶行业向端到端架构转型
  • ArrayList剖析
  • 买卖股票的最佳时机--js 算法
  • linux LAMP 3
  • 开疆智能CCLinkIE转CANopen网关连接GBS20机器人配置案例
  • 第四章 网络传输介质与综合布线基础
  • 04-动态规划
  • OpenHarmony 5.0 解决点击导航栏切换后台按钮再切换到前台导航栏可能覆盖输入法问题,导致输入法下沉,最下面的显示不全
  • day046-tomcat与部署war包、jar包
  • 为什么星敏感器(Star Tracker)需要时间同步?—— 从原理到应用的全解析
  • Day04:玩转标准库中的数据处理与日志记录
  • pytest fixture基础大全详解
  • 爬虫反爬策略实战:UserAgent代理池简明指南
  • 电磁场有限元方法EX2.2-里兹法求解泊松方程控制的边值问题
  • 二刷 苍穹外卖day11
  • 讲解视频:分布滞后非线性模型DLNM​​专题:从基础到进阶学习路径
  • 记录一个QT中pro文件换行需要注意的问题
  • 第29篇:Linux审计系统深度解析:基于OpenEuler 24.03的实践指南
  • 【中文核心期刊推荐】《电子测量技术》
  • RabbitMQ使用topic Exchange实现微服务分组订阅
  • 基于SEP3203微处理器的嵌入式最小硬件系统设计