第 8 章 · 网络安全基础

安全横切所有层(窃听、伪造、欺骗、入侵),核心四件事:机密性(加密)、完整性(签名)、身份认证(证书)、TLS/HTTPS。

8.1 对称加密 vs 非对称加密

维度对称加密非对称加密
密钥一把,双方共享一对(公钥 + 私钥)
速度慢(数学运算昂贵)
密钥分发难(如何安全共享)易(公钥可公开)
典型算法AES、ChaCha20RSA、ECC(如 ECDSA)
用途加密大量数据密钥交换、数字签名

对比:对称加密同一把密钥加解密、快但密钥分发难;非对称用公钥加密私钥解、私钥签名公钥验,解决分发但慢(慢上千倍)。

实践中混合:用非对称安全协商出会话密钥,再用对称加密传大数据——TLS 正是这么干。

8.2 数字签名与证书

数字签名:发送方用私钥对消息哈希加密,接收方用公钥解密验证。提供完整性(没被篡改)和不可否认性(确是私钥持有者发的),不提供机密性。

证书:解决「公钥是谁的」——证书 = 公钥 + 持有者信息 + CA 的签名。浏览器内置受信任 CA 公钥,验证服务器证书签名,信任链成立(CA 签服务器证书,根 CA 自签)。

8.3 TLS 握手

TLS 在 TCP 之上(见第 4 章)、HTTP 之下,握手协商会话密钥。简化流程(TLS 1.2 RSA):

客户端                                 服务器
  │ ── ClientHello(支持的版本/算法/随机数)──→ │
  │ ←─ ServerHello + 证书 + 随机数 ────────── │
  │ 验证证书 → 生成 PreMaster,用公钥加密 ────→ │
  │         双方用 随机数+PreMaster 派生会话密钥│
  │ ←────────  Finished(对称加密开始)────→  │
  • 握手阶段用非对称(密钥交换 + 认证),数据传输阶段用对称(性能)。
  • TLS 1.3:握手 2-RTT → 1-RTT(甚至 0-RTT 恢复),淘汰 RSA 密钥交换,改用 ECDHE 提供前向保密

8.4 HTTP vs HTTPS

维度HTTPHTTPS
默认端口80443
加密明文传输TLS 加密
身份认证服务器证书
中间人攻击易受可防
性能略快(无握手开销)握手 + 加密有开销(TLS1.3/HTTP2 已大幅缓解)
适用非敏感内容登录、支付等一切敏感内容

对比:HTTPS = HTTP + TLS,补上 HTTP 三大短板:机密性(明文变密文)、完整性(防篡改)、身份认证(防中间人)。