【计算机网络】HTTPS

一、HTTPS如何实现加密传输的?

  1. 加密通信(防止窃听) 对称加密:传输实际数据(AES),速度快,适合大量数据。

    非对称加密:握手阶段(RSA)交换对称密钥,保证密钥传输的安全。

  2. 身份验证(防止冒充、防止中间人攻击) 数字证书:服务器通过 ​CA(证书颁发机构)​​ 签发的数字证书证明其身份。
    • 证书:
      • 服务器域名、公钥、有效信息
      • CA 的数字签名(用 CA 私钥生成,客户端用 CA 公钥验证)。
  3. 数据完整性(防篡改) 消息认证码(MAC)​​:TLS 协议通过哈希算法(如 SHA-256)生成消息摘要,确保数据在传输过程中未被篡改。
  4. 握手过程
    1. ClientHello:客户端发送支持的加密套件(如 ECDHE-RSA-AES256-GCM-SHA384)和随机数。
    2. ServerHello:服务器选择加密套件,返回随机数和数字证书。
    3. 密钥交换:
      • 服务器发送公钥(证书中的公钥)。
      • 客户端验证证书后,生成预主密钥(Pre-Master Secret),用服务器公钥加密后发送。
      • 双方通过 ECDHE 等算法生成相同的会话密钥(对称密钥)。
    4. 加密通信:后续数据均用会话密钥加密传输。

二、HTTPS绝对安全吗?

  1. HTTPS 不是绝对安全:它防止的是传输过程中的窃听和篡改,但无法防止: 用户主动泄露密码(如钓鱼网站)。

    服务器本身被入侵(如数据库泄露)。

相关推荐
网络小江5 小时前
上网第三十九课:TCP 的可靠性——滑动窗口、重传与拥塞控制
网络协议
91刘仁德7 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http
Lsetea8 小时前
Nginx加载证书时报SSL_CTX_use_PrivateKey_file失败:私钥配对与权限排查
nginx·https·ssl证书·私钥·证书部署
可乐鸡翅yeah_9 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
pt104311 小时前
CML网络仿真入门-2:使用CML模拟网络实验环境
运维·网络协议
熊文豪16 小时前
KingbaseES 数据加密全解:从 SSL 到全密态
网络·网络协议·ssl
网络小江17 小时前
上网第三十八课:TCP 三次握手与四次挥手——连接到底是怎么“谈“成的
网络协议
AIgorithmGEEK17 小时前
[Linux]HTTP 应用层协议全解(下篇)
linux·网络·网络协议·http·cookie·无连接·无状态
DP DPharness18 小时前
手机连不上 DSH 时的排错顺序:从 401 到 WebSocket 放行
websocket·网络协议·智能手机