安全协议设计与分析(5)

做题家速成

以 PPT为主体,覆盖:概述、L2TP、IPSec、SSL/TLS、SSH、SOCKS、SNMPv3

辅以 Kerberos、应用安全等补充内容

参考:课件、2025春季学期期末考试回忆版、网络公开资料


第一部分:计算题

题目 1 --- Diffie-Hellman 密钥交换(基础)

已知 Diffie-Hellman 参数:素数 p=23,生成元 g=5。Alice 选择私钥 a=6,Bob 选择私钥 b=15。

  1. 计算 Alice 的公钥 A
  2. 计算 Bob 的公钥 B
  3. 计算共享密钥 K,并验证双方计算结果一致

解答

公式:

  • 公钥: A = g a   m o d   p A = g^a \bmod p A=gamodp, B = g b   m o d   p B = g^b \bmod p B=gbmodp
  • 共享密钥: K = B a   m o d   p = A b   m o d   p K = B^a \bmod p = A^b \bmod p K=Bamodp=Abmodp

步骤 1:计算 A = 5 6   m o d   23 A = 5^6 \bmod 23 A=56mod23

5 1 = 5 5 2 = 25 ≡ 2 ( m o d 23 ) 5 3 = 2 × 5 = 10 ( m o d 23 ) 5 4 = 10 × 5 = 50 ≡ 4 ( m o d 23 ) 5 5 = 4 × 5 = 20 ≡ 20 ( m o d 23 ) 5 6 = 20 × 5 = 100 ≡ 100 − 4 × 23 = 100 − 92 = 8 ( m o d 23 ) \begin{aligned} 5^1 &= 5 \\ 5^2 &= 25 \equiv 2 \pmod{23} \\ 5^3 &= 2 \times 5 = 10 \pmod{23} \\ 5^4 &= 10 \times 5 = 50 \equiv 4 \pmod{23} \\ 5^5 &= 4 \times 5 = 20 \equiv 20 \pmod{23} \\ 5^6 &= 20 \times 5 = 100 \equiv 100 - 4 \times 23 = 100 - 92 = 8 \pmod{23} \end{aligned} 515253545556=5=25≡2(mod23)=2×5=10(mod23)=10×5=50≡4(mod23)=4×5=20≡20(mod23)=20×5=100≡100−4×23=100−92=8(mod23)

A = 8 A = 8 A=8

步骤 2:计算 B = 5 15   m o d   23 B = 5^{15} \bmod 23 B=515mod23

使用快速幂: 15 = 8 + 4 + 2 + 1 15 = 8+4+2+1 15=8+4+2+1,即 5 15 = 5 8 × 5 4 × 5 2 × 5 1 5^{15} = 5^8 \times 5^4 \times 5^2 \times 5^1 515=58×54×52×51

由上已知: 5 1 = 5 5^1=5 51=5, 5 2 = 2 5^2=2 52=2, 5 4 = 4 5^4=4 54=4

5 8 = ( 5 4 ) 2 = 4 2 = 16 ( m o d 23 ) 5^8 = (5^4)^2 = 4^2 = 16 \pmod{23} 58=(54)2=42=16(mod23)

B = 16 × 4 × 2 × 5   m o d   23 = 16 × 4 = 64 ≡ 64 − 2 × 23 = 18 ( m o d 23 ) = 18 × 2 = 36 ≡ 36 − 23 = 13 ( m o d 23 ) = 13 × 5 = 65 ≡ 65 − 2 × 23 = 19 ( m o d 23 ) \begin{aligned} B &= 16 \times 4 \times 2 \times 5 \bmod 23 \\ &= 16 \times 4 = 64 \equiv 64 - 2 \times 23 = 18 \pmod{23} \\ &= 18 \times 2 = 36 \equiv 36 - 23 = 13 \pmod{23} \\ &= 13 \times 5 = 65 \equiv 65 - 2 \times 23 = 19 \pmod{23} \end{aligned} B=16×4×2×5mod23=16×4=64≡64−2×23=18(mod23)=18×2=36≡36−23=13(mod23)=13×5=65≡65−2×23=19(mod23)

B = 19 B = 19 B=19

步骤 3:计算共享密钥

Alice 计算: K = B a   m o d   p = 19 6   m o d   23 K = B^a \bmod p = 19^6 \bmod 23 K=Bamodp=196mod23

19 2 = 361 ≡ 361 − 15 × 23 = 361 − 345 = 16 ( m o d 23 ) 19 4 = 16 2 = 256 ≡ 256 − 11 × 23 = 256 − 253 = 3 ( m o d 23 ) 19 6 = 19 4 × 19 2 = 3 × 16 = 48 ≡ 2 ( m o d 23 ) \begin{aligned} 19^2 &= 361 \equiv 361 - 15 \times 23 = 361 - 345 = 16 \pmod{23} \\ 19^4 &= 16^2 = 256 \equiv 256 - 11 \times 23 = 256 - 253 = 3 \pmod{23} \\ 19^6 &= 19^4 \times 19^2 = 3 \times 16 = 48 \equiv 2 \pmod{23} \end{aligned} 192194196=361≡361−15×23=361−345=16(mod23)=162=256≡256−11×23=256−253=3(mod23)=194×192=3×16=48≡2(mod23)

Bob 计算: K = A b   m o d   p = 8 15   m o d   23 K = A^b \bmod p = 8^{15} \bmod 23 K=Abmodp=815mod23

8 2 = 64 ≡ 18 ( m o d 23 ) 8 4 = 18 2 = 324 ≡ 324 − 14 × 23 = 324 − 322 = 2 ( m o d 23 ) 8 8 = 2 2 = 4 ( m o d 23 ) 8 15 = 8 8 × 8 4 × 8 2 × 8 1 = 4 × 2 × 18 × 8   m o d   23 = 4 × 2 = 8 ,    8 × 18 = 144 ≡ 6 ,    6 × 8 = 48 ≡ 2 ( m o d 23 ) \begin{aligned} 8^2 &= 64 \equiv 18 \pmod{23} \\ 8^4 &= 18^2 = 324 \equiv 324 - 14 \times 23 = 324 - 322 = 2 \pmod{23} \\ 8^8 &= 2^2 = 4 \pmod{23} \\ 8^{15} &= 8^8 \times 8^4 \times 8^2 \times 8^1 = 4 \times 2 \times 18 \times 8 \bmod 23 \\ &= 4 \times 2 = 8, \; 8 \times 18 = 144 \equiv 6, \; 6 \times 8 = 48 \equiv 2 \pmod{23} \end{aligned} 828488815=64≡18(mod23)=182=324≡324−14×23=324−322=2(mod23)=22=4(mod23)=88×84×82×81=4×2×18×8mod23=4×2=8,8×18=144≡6,6×8=48≡2(mod23)

K = 2 K = 2 K=2,双方计算结果一致。


题目 2 --- Diffie-Hellman 密钥交换(进阶)

已知参数: p = 467 p=467 p=467, g = 2 g=2 g=2

(1) 若 a = 3 a=3 a=3, b = 5 b=5 b=5,求公钥 A A A、 B B B 和共享密钥 K K K

(2) 若 a = 400 a=400 a=400, b = 134 b=134 b=134,求公钥 A A A、 B B B 和共享密钥 K K K

解答 (1) a = 3 a=3 a=3, b = 5 b=5 b=5

A = 2 3   m o d   467 = 8 A = 2^3 \bmod 467 = 8 A=23mod467=8

B = 2 5   m o d   467 = 32 B = 2^5 \bmod 467 = 32 B=25mod467=32

K = B a   m o d   p = 32 3   m o d   467 32 2 = 1024 ≡ 1024 − 2 × 467 = 90 ( m o d 467 ) 32 3 = 90 × 32 = 2880 ≡ 2880 − 6 × 467 = 2880 − 2802 = 78 ( m o d 467 ) \begin{aligned} K &= B^a \bmod p = 32^3 \bmod 467 \\ 32^2 &= 1024 \equiv 1024 - 2 \times 467 = 90 \pmod{467} \\ 32^3 &= 90 \times 32 = 2880 \equiv 2880 - 6 \times 467 = 2880 - 2802 = 78 \pmod{467} \end{aligned} K322323=Bamodp=323mod467=1024≡1024−2×467=90(mod467)=90×32=2880≡2880−6×467=2880−2802=78(mod467)

验证: K = A b   m o d   p = 8 5   m o d   467 = 32768   m o d   467 = 78 K = A^b \bmod p = 8^5 \bmod 467 = 32768 \bmod 467 = 78 K=Abmodp=85mod467=32768mod467=78 ✓

A = 8 A=8 A=8, B = 32 B=32 B=32, K = 78 K=78 K=78

解答 (2) a = 400 a=400 a=400, b = 134 b=134 b=134

利用 Fermat 小定理: p = 467 p=467 p=467 是素数, 2 466 ≡ 1 ( m o d 467 ) 2^{466} \equiv 1 \pmod{467} 2466≡1(mod467)

计算 A = 2 400   m o d   467 A = 2^{400} \bmod 467 A=2400mod467:

逐步计算 2 2 2 的各次幂 mod 467:

2 1 = 2 2^1=2 21=2, 2 2 = 4 2^2=4 22=4, 2 4 = 16 2^4=16 24=16, 2 8 = 256 2^8=256 28=256

2 16 = 256 2 = 65536 ≡ 156 2^{16}=256^2=65536\equiv156 216=2562=65536≡156, 2 32 = 156 2 = 24336 ≡ 52 2^{32}=156^2=24336\equiv52 232=1562=24336≡52

2 64 = 52 2 = 2704 ≡ 369 2^{64}=52^2=2704\equiv369 264=522=2704≡369, 2 128 = 369 2 = 264 2^{128}=369^2=264 2128=3692=264

400 = 256 + 128 + 16 400 = 256+128+16 400=256+128+16

2 256 = 264 2 = 69696 ≡ 69696 − 149 × 467 = 113 2^{256} = 264^2 = 69696 \equiv 69696-149 \times 467 = 113 2256=2642=69696≡69696−149×467=113

A = 2 256 × 2 128 × 2 16 = 113 × 264 × 156   m o d   467 A = 2^{256} \times 2^{128} \times 2^{16} = 113 \times 264 \times 156 \bmod 467 A=2256×2128×216=113×264×156mod467

113 × 264 = 29832 ≡ 411 ,    411 × 156 = 64116 ≡ 137 113 \times 264 = 29832 \equiv 411,\; 411 \times 156 = 64116 \equiv 137 113×264=29832≡411,411×156=64116≡137

A = 137 A = 137 A=137

计算 B = 2 134   m o d   467 B = 2^{134} \bmod 467 B=2134mod467:

134 = 128 + 4 + 2 134 = 128+4+2 134=128+4+2

B = 2 128 × 2 4 × 2 2 = 264 × 16 × 4 = 264 × 64 = 16896 ≡ 16896 − 36 × 467 = 16896 − 16812 = 84 B = 2^{128} \times 2^4 \times 2^2 = 264 \times 16 \times 4 = 264 \times 64 = 16896 \equiv 16896-36 \times 467 = 16896-16812 = 84 B=2128×24×22=264×16×4=264×64=16896≡16896−36×467=16896−16812=84

B = 84 B = 84 B=84

计算 K K K:

K = g a b   m o d   p = 2 400 × 134 = 2 53600   m o d   467 K = g^{ab} \bmod p = 2^{400 \times 134} = 2^{53600} \bmod 467 K=gabmodp=2400×134=253600mod467

由 Fermat: 2 466 ≡ 1 2^{466} \equiv 1 2466≡1, 53600   m o d   466 = 53600 − 115 × 466 = 10 53600 \bmod 466 = 53600 - 115 \times 466 = 10 53600mod466=53600−115×466=10

K ≡ 2 10 = 1024 ≡ 1024 − 2 × 467 = 90 ( m o d 467 ) K \equiv 2^{10} = 1024 \equiv 1024 - 2 \times 467 = 90 \pmod{467} K≡210=1024≡1024−2×467=90(mod467)

K = 90 K = 90 K=90


题目 3 --- Diffie-Hellman 安全性分析

已知参数 p = 17 p=17 p=17, g = 3 g=3 g=3,Alice 的公钥 A = 5 A=5 A=5,Bob 的公钥 B = 7 B=7 B=7。

  1. 求共享密钥 K
  2. 分析如果攻击者 Eve 截获了公钥,能否算出共享密钥?为什么?
  3. 如果 p 取值很小(如 p = 17 p=17 p=17),DH 是否安全?应如何选择 p?

解答

1. 求共享密钥 K

由 A = 5 A=5 A=5,即 3 a ≡ 5 ( m o d 17 ) 3^a \equiv 5 \pmod{17} 3a≡5(mod17),枚举: 3 1 = 3 3^1=3 31=3, 3 2 = 9 3^2=9 32=9, 3 3 = 10 3^3=10 33=10, 3 4 = 13 3^4=13 34=13, 3 5 = 5 → 3^5=5 \to 35=5→ a = 5 a=5 a=5

由 B = 7 B=7 B=7,即 3 b ≡ 7 ( m o d 17 ) 3^b \equiv 7 \pmod{17} 3b≡7(mod17),枚举得出 b = 11 b=11 b=11 ( 3 11 = ( 3 5 ) 2 × 3 = 5 2 × 3 = 8 × 3 = 24 ≡ 7 3^{11} = (3^5)^2 \times 3 = 5^2 \times 3 = 8 \times 3 = 24 \equiv 7 311=(35)2×3=52×3=8×3=24≡7)

K = 3 a × b   m o d   17 = 3 55   m o d   17 由 Fermat 小定理: 3 16 ≡ 1 ( m o d 17 ) ,    55   m o d   16 = 7 K ≡ 3 7 ≡ 11 ( m o d 17 ) \begin{aligned} K &= 3^{a \times b} \bmod 17 = 3^{55} \bmod 17 \\ \text{由 Fermat 小定理:} 3^{16} &\equiv 1 \pmod{17},\; 55 \bmod 16 = 7 \\ K &\equiv 3^7 \equiv 11 \pmod{17} \end{aligned} K由 Fermat 小定理:316K=3a×bmod17=355mod17≡1(mod17),55mod16=7≡37≡11(mod17)

K = 11 K = 11 K=11

2. Eve 能否算出?

理论上需要求解离散对数问题。当 p = 17 p=17 p=17 很小时,离散对数可通过枚举轻松求解(如上)。因此 Eve 可以算出 a a a、 b b b 进而求出 K K K。

对于大素数 p p p( ≥ 2048 \ge 2048 ≥2048 位),离散对数在计算上不可行,这就是 DH 安全性的基础。

3. p p p 的安全选择

  • p p p 必须是足够大的素数(至少 2048 位)
  • p − 1 p-1 p−1 应有一个大的素因子(防止 Pohlig-Hellman 攻击)
  • g g g 应为 p p p 的原根
  • 实际 IKE 中使用的 DH 组:Group 14(2048-bit)、Group 15(3072-bit)、Group 16(4096-bit)、Group 19(256-bit ECP 椭圆曲线)

题目 4 --- RSA 密钥计算

在 RSA 算法中,选择两个素数 p = 11 p=11 p=11, q = 13 q=13 q=13。

  1. 计算模数 n n n 和欧拉函数 φ ( n ) \varphi(n) φ(n)
  2. 选取公钥 e = 7 e=7 e=7,验证 e e e 是否与 φ ( n ) \varphi(n) φ(n) 互素
  3. 计算对应的私钥 d d d
  4. 若明文 m = 5 m=5 m=5,计算密文 c c c,并验证解密正确

解答

1. 计算 n n n 和 φ ( n ) \varphi(n) φ(n)

n = p × q = 11 × 13 = 143 φ ( n ) = ( p − 1 ) ( q − 1 ) = 10 × 12 = 120 \begin{aligned} n &= p \times q = 11 \times 13 = 143 \\ \varphi(n) &= (p-1)(q-1) = 10 \times 12 = 120 \end{aligned} nφ(n)=p×q=11×13=143=(p−1)(q−1)=10×12=120

2. 验证 e = 7 e=7 e=7

gcd ⁡ ( 7 , 120 ) = 1 \gcd(7, 120) = 1 gcd(7,120)=1( 120 = 7 × 17 + 1 120 = 7 \times 17 + 1 120=7×17+1),互素,可以使用。

3. 求私钥 d d d

满足 e × d ≡ 1 ( m o d φ ( n ) ) e \times d \equiv 1 \pmod{\varphi(n)} e×d≡1(modφ(n)),即 7 d ≡ 1 ( m o d 120 ) 7d \equiv 1 \pmod{120} 7d≡1(mod120)

扩展欧几里得: 120 = 7 × 17 + 1 → 1 = 120 − 7 × 17 120 = 7 \times 17 + 1 \to 1 = 120 - 7 \times 17 120=7×17+1→1=120−7×17

d ≡ − 17 ≡ 103 ( m o d 120 ) d \equiv -17 \equiv 103 \pmod{120} d≡−17≡103(mod120)

验证: 7 × 103 = 721 = 6 × 120 + 1 7 \times 103 = 721 = 6 \times 120 + 1 7×103=721=6×120+1 ✓ d = 103 d = 103 d=103

4. 加密和解密验证

加密: c = m e   m o d   n = 5 7   m o d   143 c = m^e \bmod n = 5^7 \bmod 143 c=memodn=57mod143

5 2 = 25 ,    5 4 = 25 2 = 625 ≡ 625 − 4 × 143 = 53 5 7 = 5 4 × 5 2 × 5 = 53 × 25 × 5 = 53 × 125 = 6625 6625   m o d   143 = 6625 − 46 × 143 = 6625 − 6578 = 47 \begin{aligned} 5^2 &= 25,\; 5^4 = 25^2 = 625 \equiv 625 - 4 \times 143 = 53 \\ 5^7 &= 5^4 \times 5^2 \times 5 = 53 \times 25 \times 5 = 53 \times 125 = 6625 \\ 6625 \bmod 143 &= 6625 - 46 \times 143 = 6625 - 6578 = 47 \end{aligned} 52576625mod143=25,54=252=625≡625−4×143=53=54×52×5=53×25×5=53×125=6625=6625−46×143=6625−6578=47

c = 47 c = 47 c=47

解密:利用中国剩余定理(CRT)

m ′ ≡ c d   m o d   11 m' \equiv c^d \bmod 11 m′≡cdmod11: 47 ≡ 3 47 \equiv 3 47≡3, 3 103   m o d   11 3^{103} \bmod 11 3103mod11。由 Fermat: 3 10 ≡ 1 3^{10} \equiv 1 310≡1, 103 ≡ 3 ( m o d 10 ) 103 \equiv 3 \pmod{10} 103≡3(mod10), 3 3 = 27 ≡ 3^3 = 27 \equiv 33=27≡ 5 5 5 ( m o d 11 ) \pmod{11} (mod11)

m ′ ≡ c d   m o d   13 m' \equiv c^d \bmod 13 m′≡cdmod13: 47 ≡ 8 47 \equiv 8 47≡8, 8 103   m o d   13 8^{103} \bmod 13 8103mod13。 8 12 ≡ 1 8^{12} \equiv 1 812≡1, 103 ≡ 7 ( m o d 12 ) 103 \equiv 7 \pmod{12} 103≡7(mod12), 8 7 ≡ 8^7 \equiv 87≡ 5 5 5 ( m o d 13 ) \pmod{13} (mod13)

CRT 求解 m ′ ≡ 5 ( m o d 11 ) m' \equiv 5 \pmod{11} m′≡5(mod11), m ′ ≡ 5 ( m o d 13 ) m' \equiv 5 \pmod{13} m′≡5(mod13),显然 m ′ = 5 m' = 5 m′=5 = 原始明文 ✓


题目 5 --- RSA 公钥密码攻击分析

已知 RSA 公钥 ( n = 187 , e = 7 ) (n=187, e=7) (n=187,e=7),截获密文 c = 4 c=4 c=4。请解密还原明文 m m m。

解答

步骤 1:因数分解 n n n

n = 187 = 11 × 17 n = 187 = 11 \times 17 n=187=11×17,所以 p = 11 p=11 p=11, q = 17 q=17 q=17

步骤 2:计算 φ ( n ) \varphi(n) φ(n)

φ ( n ) = ( 11 − 1 ) ( 17 − 1 ) = 10 × 16 = 160 \varphi(n) = (11-1)(17-1) = 10 \times 16 = 160 φ(n)=(11−1)(17−1)=10×16=160

步骤 3:求私钥 d d d

7 d ≡ 1 ( m o d 160 ) 7d \equiv 1 \pmod{160} 7d≡1(mod160),用扩展欧几里得:

160 = 7 × 22 + 6 160 = 7 \times 22 + 6 160=7×22+6, 7 = 6 × 1 + 1 7 = 6 \times 1 + 1 7=6×1+1, 6 = 1 × 6 + 0 6 = 1 \times 6 + 0 6=1×6+0

1 = 7 − 6 = 7 − ( 160 − 7 × 22 ) = 7 × 23 − 160 1 = 7 - 6 = 7 - (160 - 7 \times 22) = 7 \times 23 - 160 1=7−6=7−(160−7×22)=7×23−160

d ≡ 23 ( m o d 160 ) d \equiv 23 \pmod{160} d≡23(mod160)

步骤 4:解密

m = c d   m o d   n = 4 23   m o d   187 m = c^d \bmod n = 4^{23} \bmod 187 m=cdmodn=423mod187

4 1 = 4 ,    4 2 = 16 ,    4 4 = 16 2 = 256 ≡ 69 4 8 = 69 2 = 4761 ≡ 4761 − 25 × 187 = 4761 − 4675 = 86 4 16 = 86 2 = 7396 ≡ 7396 − 39 × 187 = 7396 − 7293 = 103 \begin{aligned} 4^1 &= 4,\; 4^2 = 16,\; 4^4 = 16^2 = 256 \equiv 69 \\ 4^8 &= 69^2 = 4761 \equiv 4761 - 25 \times 187 = 4761 - 4675 = 86 \\ 4^{16} &= 86^2 = 7396 \equiv 7396 - 39 \times 187 = 7396 - 7293 = 103 \end{aligned} 4148416=4,42=16,44=162=256≡69=692=4761≡4761−25×187=4761−4675=86=862=7396≡7396−39×187=7396−7293=103

23 = 16 + 4 + 2 + 1 23 = 16+4+2+1 23=16+4+2+1: m = 103 × 69 × 16 × 4 m = 103 \times 69 \times 16 \times 4 m=103×69×16×4

103 × 69 = 7107 ≡ 1 103 \times 69 = 7107 \equiv 1 103×69=7107≡1, 1 × 16 × 4 = 1 \times 16 \times 4 = 1×16×4= 64 64 64

m = 64 m = 64 m=64 (验证: 64 7   m o d   187 = 4 64^7 \bmod 187 = 4 647mod187=4 ✓)


题目 6 --- IKE SA 生命周期计算

在 IPSec VPN 中,Phase 1 SA 默认生命周期 86400 秒(24 小时),Phase 2 IPsec SA 默认生命周期 3600 秒(1 小时)。

  1. 到 t = 24 h t=24h t=24h 时,Phase 2 共进行多少次协商?
  2. 若 Phase 2 SA 还设置了流量限制 4GB,平均流量速率 100Mbps,实际 SA 多久更新?
  3. 分析为什么 Phase 2 SA 生命周期(3600s)远短于 Phase 1(86400s)。

解答

1. 24 小时内: Phase 2 每 1h 重新协商,初始 + 24 次更新 = 共 25 次

2. 流量限制: 4 GB = 32 Gb 4\text{GB} = 32\text{Gb} 4GB=32Gb, 100 Mbps = 0.1 Gbps 100\text{Mbps} = 0.1\text{Gbps} 100Mbps=0.1Gbps, 32 / 0.1 = 320 s ≈ 5.3 32 / 0.1 = 320\text{s} \approx 5.3 32/0.1=320s≈5.3 分钟 < 3600 s < 3600\text{s} <3600s → 实际每 320s 更新

3. 生命周期不同原因:

  • Phase 2 SA 直接加密数据流量,密钥使用频繁,频繁更换可限制单密钥加密的数据量
  • Phase 1 SA 仅保护控制平面(IKE 协商),数据量远小于数据平面
  • 这是前向安全性(PFS)的补充:即使 Phase 2 密钥泄露,也只影响一个短窗口内的数据

题目 7 --- TLS 密钥派生

TLS 1.2 主密钥派生公式:

复制代码
Master Secret = PRF(PreMaster Secret, "master secret", ClientRandom + ServerRandom)
  1. 为什么不直接用 PreMaster Secret 做会话密钥?
  2. 为什么要混入 ClientRandom 和 ServerRandom?
  3. 从 Master Secret 派生会话密钥时,一共需要几个密钥?

解答

1. 需要派生的原因:

  • PreMaster Secret 长度和熵值不一定满足所有加密组件需求
  • 通过 PRF 可扩展为固定长度 48 字节
  • 分层派生增强了安全性(单向性),即使会话密钥泄露也无法反推 Master Secret

2. 混入随机数的原因:

  • 每次握手随机数都是新的,确保不同会话密钥不同
  • 防止重放攻击:攻击者重放旧 ClientHello,服务器生成新 ServerRandom,密钥不一致
  • 双方贡献性:任一方都无法完全控制最终密钥

3. 密钥数量:

常规模式(如 AES-CBC+HMAC)需要 6 个参数:

  • Client Write MAC Key / Server Write MAC Key(2 个)
  • Client Write Encryption Key / Server Write Encryption Key(2 个)
  • Client Write IV / Server Write IV(2 个)

AEAD 模式(如 AES-GCM)需要 4 个:加密和认证合一,不需要单独 MAC Key。


第二部分:问答题

第1章 概述(1.pdf)

题 1-1:网络安全协议的安全需求 ★

请列出网络安全协议需要满足的基本安全需求,并结合具体协议举例说明。

解答:

安全需求 含义 协议举例
机密性 数据不能被未授权者读取 IPSec ESP 加密、TLS 加密
完整性 数据不能被未授权篡改 AH/ESP 的 HMAC、TLS 的 MAC
身份认证 验证通信双方身份 TLS 证书认证、SSH 公钥认证
不可否认性 发送方不能否认发送过数据 数字签名
访问控制 限制未授权用户访问资源 SNMPv3 VACM、SSH 用户认证
可用性 保证合法用户可访问 抗 DoS 攻击机制

附加安全属性:

  • 抗重放攻击:IPSec ESP 序列号、Kerberos Authenticator 时间戳
  • 前向安全性(PFS):使用临时 DH 密钥交换(DHE/ECDHE),长期密钥泄露也不影响历史会话

题 1-2:对称加密与非对称加密的使用场景 ★

分析对称加密和非对称加密各自的特点,说明它们分别用于什么场景?为什么 TLS 要采用混合加密?

解答:

对比维度 对称加密 非对称加密
密钥 一个共享密钥 一对(公钥+私钥)
速度 慢(100-1000倍差距)
密钥分发 需要安全信道 公钥可公开
典型算法 AES, 3DES, ChaCha20 RSA, ECC, DH

使用场景:

  • 对称加密:数据加密传输(IPSec ESP、TLS 记录层、SSH 传输层),适合大量数据
  • 非对称加密:密钥交换(RSA 传 PreMaster Secret、DH 协商)、数字签名(证书)、身份认证

TLS 混合加密原因:

  • 握手阶段用非对称加密(RSA/DH)安全协商出对称密钥
  • 数据传输阶段用对称加密(如 AES)保护数据
  • 结合两者优势:非对称解决密钥分发,对称保证传输效率

题 1-3:TCP/IP 模型中各层的安全协议

请按照 TCP/IP 参考模型层次,列出各层对应的安全协议。

解答:

TCP/IP 层 安全协议 作用
网络接口层(L2) L2TP+IPSec、PPP(PAP/CHAP)、802.1X 二层隧道与认证
网络层(L3) IPSec (AH/ESP)、IKE IP 层加密和认证
传输层(L4) SSL/TLS、DTLS 端到端安全通信
会话层(L5) SOCKS5、SSH 代理转发、安全远程登录
应用层(L7) HTTPS、SNMPv3(USM)、S/MIME、PGP 各应用的安全增强

协议层次位置:

复制代码
应用层:   HTTP  SNMP
            |    |
安全层:    TLS  (USM)
            |
传输层:    TCP ------ UDP
            |        |
网络层:    IP  <-- IPSec (AH/ESP)
            |
链路层:    L2TP+IPSec, PPP (PAP/CHAP)

第2章 链路层扩展 L2TP(2.pdf)

题 2-1:为什么 IPSec 要与 L2TP 一起使用? ★

分析 L2TP 和 IPSec 各自的优缺点,解释为什么它们经常组合使用(L2TP over IPSec)。

解答:

L2TP IPSec
层次 数据链路层 (L2) 网络层 (L3)
提供的能力 隧道封装、PPP 会话、多协议支持 加密、认证、完整性
不足之处 无加密能力 不提供 PPP 层用户认证

为什么组合:

  1. L2TP 提供二层隧道:封装 PPP 帧,支持多种网络层协议,支持 PAP/CHAP/EAP 用户认证
  2. IPSec 提供安全保护:ESP 加密整个 L2TP 隧道,解决 L2TP 无加密的问题
  3. 互补关系:L2TP 负责"隧道+认证",IPSec 负责"加密+保护"

L2TP over IPSec 工作流程:

复制代码
Phase 1: IKE Phase 1 -> 建立 ISAKMP SA
Phase 2: IKE Phase 2 -> 建立 IPsec SA(传输模式 ESP)
Phase 3: 在 IPsec 保护下建立 L2TP 隧道(UDP 1701)
Phase 4: 数据传输(PPP -> L2TP -> UDP -> ESP 加密)

题 2-2:PAP 与 CHAP 的区别与优缺点 ★★

针对 PPP 认证协议,从握手次数、安全性、传输内容、抗重放等方面分析 PAP 与 CHAP。

解答:

对比维度 PAP CHAP
握手次数 2 次 3 次
认证发起方 被认证方 认证方(服务器)
传输内容 用户名+密码明文 密码绝不传输,仅传 MD5 哈希
安全性
抗重放 无保护 随机 Challenge + 递增 Identifier
认证时机 仅链路建立时认证一次 初始 + 链路建立后可随时重复挑战
密码存储 服务器可存储哈希 服务器须存明文(计算 Response 需要)

PAP 流程(2 次握手):

复制代码
客户端 --[用户名, 密码(明文)]--> 服务器
客户端 <--[ACK / NAK]---------- 服务器

CHAP 流程(3 次握手):

复制代码
服务器 --[Challenge(随机数 + ID)]--------------------------> 客户端
客户端 --[Response = Hash(ID || 密码 || Challenge)]--------> 服务器
客户端 <--[Success / Failure]----------------------------- 服务器

优缺点:

  • PAP:实现简单,兼容性好。但密码明文传输、无抗重放保护
  • CHAP:密码不直接传输,Challenge-Response 防重放,支持周期性再认证。但服务器须存明文密码,大规模部署扩展性有限

第3章 IP 层安全 IPSec(3.pdf)

题 3-1:IPSec 隧道模式与传输模式的区别 ★★

比较 IPSec 隧道模式和传输模式在封装方式、安全保护范围、应用场景等方面的区别。

解答:

对比维度 传输模式 隧道模式
封装方式 在原 IP 头后插入 IPSec 头,保留原 IP 头 新建外层 IP 头,原 IP 包整体封装
原 IP 头 保留,明文可见 被加密(ESP 中)
适用场景 端到端通信(主机到主机) 网关到网关(Site-to-Site VPN)、远程访问
NAT 兼容性 一般 更好(外层 IP 头可被 NAT 修改)
路由能力 依赖原 IP 头地址 使用外层 IP 头网关地址路由

封装结构对比:

传输模式 (ESP):

复制代码
[原IP头] [ESP头] [TCP/UDP] [数据] [ESP尾] [ESP认证]
           |------- 加密 ------|
                  |--- 认证 ----|

隧道模式 (ESP):

复制代码
[新IP头] [ESP头] [原IP头] [TCP/UDP] [数据] [ESP尾] [ESP认证]
                  |------------ 加密 -------------|
                         |--------- 认证 ----------|

各模式保护范围汇总:

模式 协议 加密范围 认证范围
传输 AH 无加密 整个 IP 包(可变字段除外)
传输 ESP IP 载荷 ESP 头+载荷+ESP 尾
隧道 AH 无加密 整个新 IP 包
隧道 ESP 整个原 IP 包 ESP 头+原 IP 包+ESP 尾

题 3-2:AH 和 ESP 协议的区别 ★

比较 IPSec 的 AH(协议号 51)和 ESP(协议号 50)。

解答:

对比维度 AH ESP
加密 不提供 提供(可选)
完整性认证 提供(范围更广,含 IP 头) 提供(不保护外层 IP 头)
抗重放 提供 提供
NAT 兼容 与 NAT 不兼容 兼容(配合 NAT-T, UDP 4500)
部署现状 几乎不再单独使用 主流,VPN 首选

AH 与 NAT 不兼容原因: AH 对 IP 头不可变字段计算 ICV(含源 IP 地址),NAT 会修改源 IP → 接收方 ICV 校验失败 → 丢包。

为什么现在几乎都用 ESP:

  1. ESP 可同时提供加密+认证(如 AES-GCM AEAD)
  2. ESP+NAT-T 可穿越 NAT 设备
  3. AH 额外保护(IP 头完整性)实际很少需要,且与 NAT 冲突

题 3-3:IKE 两阶段的协商内容 ★

描述 IKE Phase 1 和 Phase 2 各自的目的、协商内容及产生的 SA。

解答:

IKE Phase 1(ISAKMP SA):

  • 目的:建立安全的控制信道,保护 Phase 2 协商
  • 模式
    • 主模式(Main Mode):6 条消息,保护身份,更安全
    • 野蛮模式(Aggressive Mode):3 条消息,快但身份暴露
  • 协商:加密算法、哈希算法、认证方式、DH 组、SA 生命周期(默认 86400s)
  • 结果1 个双向 ISAKMP SA

IKE Phase 2(IPsec SA):

  • 目的:协商实际加密数据的 IPsec SA 参数
  • 模式快速模式(Quick Mode),3 条消息,由 ISAKMP SA 加密保护
  • 协商:IPsec 协议(ESP/AH)、加密/哈希算法、封装模式、感兴趣流、生命周期(默认 3600s)
  • 结果2 个单向 IPsec SA(入向和出向)

IKE Phase 1 主模式 6 条消息过程:

复制代码
消息1-2: SA 提案/选择 + Cookie(明文)
消息3-4: DH 公钥交换 + Nonce(明文)
消息5-6: 身份信息 + 认证(加密)
-> ISAKMP SA

题 3-4:什么是 SA(Security Association)?★

SA 由什么三元组唯一标识?SA 包含哪些参数?SPD 和 SAD 的作用是什么?

解答:

SA 定义: SA 是 IPSec 通信双方就安全参数达成的单向协定。"单向"意味着双向通信需要两个 SA。

SA 三元组唯一标识:

复制代码
(SPI, 目的IP地址, 安全协议[AH/ESP])

SA 包含的参数:

  • SPI(安全参数索引,32 位)
  • IP 目的地址
  • 安全协议标识符(AH/ESP)
  • 加密算法及密钥(ESP)
  • 认证算法及密钥
  • SA 生命周期(时间/流量)
  • IPSec 模式(传输/隧道)
  • 抗重放窗口(序列号计数器)

SPD 与 SAD:

  • SPD(安全策略数据库):定义哪些流量如何处理 → BYPASS(跳过)/ PROTECT(加密)/ DISCARD(丢弃)
  • SAD(安全关联数据库):存储当前活跃 SA 的参数,接收方通过三元组查表确定如何解密/验证

题 3-5:IPSec VPN 隧道模式配置与优点 ★

对于 VPN 应用场景,使用 IPSec 隧道模式如何进行配置?有哪些优点?

解答:

配置步骤(Site-to-Site VPN):

  1. 配置 IKE 策略(Phase 1:加密/哈希算法、认证方式、DH 组、生命周期)
  2. 配置预共享密钥或证书
  3. 配置 IPSec 变换集(Phase 2:ESP/AH、加密/认证算法、隧道模式)
  4. 定义感兴趣流(ACL:哪些流量需加密,如 10.1.0.0/24 -> 10.2.0.0/24
  5. 创建加密映射(Crypto Map),绑定变换集、ACL、对端地址
  6. 将 Crypto Map 应用到接口

隧道模式优点:

  1. 地址隐藏:内部私有 IP 被封装在外层公网 IP 内部
  2. 全流量加密:整个原始 IP 包(含 TCP/UDP 头)均加密
  3. 策略灵活:通过 SPD 精确控制哪些流量加密
  4. 透明性:对端主机和应用无需任何修改
  5. 跨平台兼容:几乎所有操作系统和网络设备原生支持
  6. NAT 穿越:配合 NAT-T 可穿越 NAT 设备
  7. 应用无关:工作在 IP 层,任何基于 IP 的应用均可被保护

第4章 传输层安全 SSL/TLS(4.pdf)

题 4-1:SSL/TLS 握手流程 ★★

简述 TLS 1.2 完整握手流程,说明每条消息作用。与 TLS 1.3 有何区别?

解答:

TLS 1.2 完整握手:

复制代码
客户端                                    服务器
  |--(1) ClientHello ---------------------->|
  |  (TLS版本、密码套件列表、ClientRandom)     |
  |<-(2) ServerHello -----------------------|
  |  (选定版本、选定密码套件、ServerRandom)     |
  |<-(3) Certificate -----------------------|
  |  (服务器证书链,含公钥)                    |
  |<-(4) ServerKeyExchange (可选) ----------|
  |  (DHE/ECDHE 时的 DH 参数+签名)            |
  |<-(5) ServerHelloDone -------------------|
  |--(6) ClientKeyExchange ---------------->|
  |  (RSA:加密PreMaster; DH:客户端公钥)       |
  |--(7) ChangeCipherSpec ----------------->|
  |--(8) Finished (加密) ------------------->|
  |<--(9) ChangeCipherSpec -----------------|
  |<-(10) Finished (加密) ------------------|
  |======= 应用数据加密传输 ==================|

各消息作用:

步骤 方向 作用
ClientHello C->S 支持的 TLS 版本、密码套件、客户端随机数
ServerHello S->C 选定的 TLS 版本和密码套件、服务器随机数
Certificate S->C 服务器证书(含公钥),身份验证
ServerKeyExchange S->C DHE/ECDHE 的 DH 参数(签名后发送)
ClientKeyExchange C->S 密钥交换材料
ChangeCipherSpec 双向 通知后续消息用协商密钥加密
Finished 双向 验证密钥协商成功(整个握手消息哈希)

TLS 1.3 改进(1-RTT):

  • 移除不安全密码套件(RSA 密钥交换、CBC 模式、SHA-1 等)
  • ClientHello 中发送 KeyShare(DH 公钥),减少一轮往返
  • 大部分握手消息加密
  • 支持 0-RTT 恢复(重连场景)

题 4-2:SSL/TLS 的机密性与完整性机制及漏洞 ★★

简述 TLS 的机密性与完整性机制,并给出常见漏洞与防御方案。

解答:

机密性机制:

  1. 混合加密:握手时非对称交换 PreMaster Secret → 数据传输时对称加密
  2. 密钥派生 : M a s t e r S e c r e t = P R F ( P r e M a s t e r , " m a s t e r s e c r e t " , C l i e n t R a n d o m + S e r v e r R a n d o m ) Master\ Secret = PRF(PreMaster,\ "master\ secret",\ ClientRandom + ServerRandom) Master Secret=PRF(PreMaster, "master secret", ClientRandom+ServerRandom) → 派生会话密钥
  3. 前向安全性:DHE/ECDHE 时即使长期私钥泄露,历史会话密钥也无法恢复

完整性机制:

  1. HMAC:HMAC-SHA256 计算 MAC
  2. AEAD:AES-GCM 加密+认证合一
  3. Finished 消息:含整个握手过程哈希,防篡改

常见漏洞与防御:

漏洞 描述 防御
POODLE CBC 模式 Padding 不验证 禁用 SSL 3.0、禁用 CBC
BEAST CBC 模式 IV 可预测 使用 TLS 1.1+、GCM 模式
Heartbleed OpenSSL 心跳扩展缓冲区越界 升级 OpenSSL、TLS 1.3
降级攻击 攻击者强制降级到弱版本 禁用旧版本
CRIME/BREACH 压缩导致信息泄漏 禁用 TLS 压缩
MITM 伪造证书 HSTS、证书透明度(CT)、证书固定

题 4-3:HTTPS 与 S-HTTP 的区别 ★

比较 HTTPS 与 S-HTTP 两种 Web 安全协议。

解答:

对比维度 HTTPS S-HTTP
全称 HTTP over TLS/SSL Secure Hypertext Transfer Protocol
安全层 HTTP 之下、TCP 之上插入 TLS HTTP 消息层面扩展
保护粒度 整个通信信道(会话级) 单个消息(消息级)
工作方式 先建 TLS 连接,再传输 HTTP 标准 HTTP 消息上增加安全头部
使用端口 443 80(与 HTTP 共用)
加密范围 所有传输数据加密 可选择只加密敏感消息
部署情况 广泛使用 已被废弃

关键区别: HTTPS 是会话级安全,建立 TLS 加密隧道后所有 HTTP 数据都在隧道中加密;S-HTTP 是消息级安全,每个 HTTP 消息独立加密/签名。S-HTTP 因复杂度高、性能差最终被 HTTPS 取代。


第5章 会话安全 SSH(5.pdf)

题 5-1:SSH 端口转发 ★★

解释 SSH 三种端口转发的原理和应用场景。

解答:

1. 本地端口转发(-L)

复制代码
ssh -L 本地端口:目标主机:目标端口 user@SSH服务器
  • 数据流:本地应用 → SSH 客户端(加密)→ SSH 服务器(解密)→ 目标主机
  • 场景:访问远程内网数据库、绕过防火墙访问内部 Web 服务

2. 远程端口转发(-R)

复制代码
ssh -R 远程端口:目标主机:目标端口 user@SSH服务器
  • 数据流:外部访问 → SSH 服务器端口 → SSH 隧道 → SSH 客户端 → 目标主机
  • 场景:暴露内网服务给外部测试、内网穿透、远程协助

3. 动态端口转发(-D)

复制代码
ssh -D 本地端口 user@SSH服务器
  • 在本地创建 SOCKS 代理,通过 SSH 服务器转发任意 TCP 连接
  • 场景:加密浏览网页、绕过网络审查
类型 监听端 命令 典型场景
本地转发 客户端 ssh -L 访问远端数据库
远程转发 服务器 ssh -R 暴露内网服务
动态转发 客户端 ssh -D SOCKS 代理

题 5-2:SSH 协议架构

SSH 协议分哪几层?各层的功能是什么?

解答:

层次 名称 功能
传输层 Transport Layer 服务器认证、密钥交换、数据加密和完整性(RFC 4253)
用户认证层 User Auth Layer 客户端向服务器身份认证,支持密码/公钥/键盘交互等(RFC 4252)
连接层 Connection Layer 在加密隧道上复用多个逻辑通道,实现会话、端口转发、X11 转发等(RFC 4254)
复制代码
+-----------------------+
|   Connection Layer    | <- 端口转发、多路复用
+-----------------------+
|   Auth Layer          | <- 用户认证
+-----------------------+
|   Transport Layer     | <- 加密、完整性、服务器认证
+-----------------------+
|   TCP                 |
+-----------------------+

第6章 代理安全 SOCKS(6.pdf)

题 6-1:SOCKS 代理如何实现跨协议支持? ★

解释 SOCKS5 如何实现跨协议代理,并与 HTTP 代理对比。

解答:

核心机制: SOCKS 工作在 OSI 会话层(Layer 5),不解析应用层协议内容,只透明转发 TCP/UDP 字节流。

SOCKS5 工作流程:

复制代码
1. TCP 连接代理(默认 1080)
2. 方法协商(认证方式选择)
3. 认证(用户名/密码 或 GSSAPI)
4. 请求转发(目标地址支持 IPv4/IPv6/域名)
5. 代理建立到目标的连接
6. 双向透明中继

支持的命令:

命令 含义 用途
CONNECT 建立 TCP 连接 HTTP、SSH、FTP 等绝大多数应用
BIND 绑定端口等入站连接 FTP 主动模式
UDP ASSOCIATE UDP 中继 DNS、VoIP、游戏

与 HTTP 代理对比:

SOCKS5 HTTP 代理
OSI 层次 会话层 (L5) 应用层 (L7)
支持协议 任意 TCP/UDP 仅 HTTP/HTTPS
工作原理 透明转发字节流 解析 HTTP 请求
UDP 支持 支持 不支持
认证 用户名/密码、GSSAPI Basic、Digest

跨协议关键: SOCKS 不对应用层数据解释或修改,像"哑管道",这正是支持任意协议的原因。


第7章 网管安全 SNMPv3(7.pdf)

题 7-1:SNMPv3 的 USM 安全模型 ★

解释 SNMPv3 的 USM 安全模型,它提供了哪些安全服务?

解答:

USM(User-based Security Model)是 SNMPv3 核心安全组件,为 SNMP 消息提供消息级安全保护。

USM 安全服务:

安全服务 实现机制
数据完整性 HMAC-MD5 或 HMAC-SHA 认证
数据源认证 基于用户密钥的消息认证
消息机密性 DES 或 AES 加密(可选)
消息时效性 时间窗口检查(snmpEngineBoots + snmpEngineTime

USM 安全级别:

级别 认证 加密 安全性
noAuthNoPriv 最低(等同于 v1/v2c)
authNoPriv HMAC-MD5/SHA 中等
authPriv HMAC-MD5/SHA DES/AES 最高

密钥本地化(Key Localization):

  • 每个 SNMP 引擎使用不同的本地化密钥
  • 同一用户在不同 SNMP 引擎上密钥不同
  • 一个引擎密钥泄露不会影响其他引擎
  • 密钥派生:用户密码 → 本地化密钥 Ku → 认证密钥 + 加密密钥

题 7-2:SNMPv3 如何实现访问控制? ★

解释 SNMPv3 的 VACM(View-based Access Control Model)。

解答:

VACM 五要素:

  1. groups(组):用户分配到组,组是访问控制基本单位
  2. securityLevel(安全级别):noAuthNoPriv / authNoPriv / authPriv
  3. contexts(上下文):命名 MIB 实例集合
  4. MIB views(视图):定义允许访问的 MIB 子树(include/exclude)
  5. access policy(访问策略):关联组+安全级别+上下文 → 读/写/通知视图

访问控制决策流程:

复制代码
用户请求 -> 查询所属组 -> 检查安全级别 -> 匹配上下文
-> 查找访问策略 -> 根据读/写/通知视图 -> 允许/拒绝

USM 与 VACM 关系:

USM VACM
作用 消息级安全(认证+加密) 访问控制(权限管理)
回答 "你是谁?消息被篡改了吗?" "你能访问什么?能做什么?"

补充:其他重要内容

题 S-1:Kerberos 协议中票据的作用 ★

(本章内容来自第 8 章课件 / Kerberos 为补充章节)

解答:

票据的作用: 票据是 Kerberos 用于身份认证和授权访问的核心凭证,是加密数据结构,包含客户端身份、会话密钥等信息,用于证明客户端有权访问特定服务。

TGT vs 服务票据:

TGT 服务票据
颁发者 AS(认证服务器) TGS(票据授予服务器)
加密密钥 TGS 密钥 K_TGS 服务密钥 K_Service
用途 向 TGS 请求服务票据 向服务证明身份
有效期 较长(8-10h) 较短(~5min)

Kerberos 三阶段:

复制代码
AS  Exchange: 获取 TGT + TGS 会话密钥
TGS Exchange: 获取服务票据 + 服务会话密钥
CS  Exchange: 向服务证明身份

题 S-2:Kerberos 跨域信任链 ★

(本章内容来自第 8 章课件 / Kerberos 为补充章节)

解答:

跨域信任建立: 两个域 A 和 B 互相注册主体 krbtgt/B@Akrbtgt/A@B,使用相同的密钥(密码)。默认为单向信任。

跨域认证流程(域 A 用户访问域 B 服务):

复制代码
1. 客户端在域 A 完成 AS Exchange,获取 TGT_A
2. 向域 A TGS 请求域 B 的 TGT -> 获得 TGT_B(域间密钥加密)
3. 向域 B TGS 请求服务票据 -> 获得服务票据(服务密钥加密)
4. 向域 B 服务发起访问

传递信任: 若域 A 信任域 B,域 B 信任域 C,则域 A 也信任域 C(A→B→C)。


题 S-3:Diffie-Hellman 密钥协商原理

(本章内容来自第 9 章课件 / 应用安全 补充章节)

解答:

算法步骤:

复制代码
1. 公开参数:大素数 p,生成元 g(公开)
2. Alice 选私钥 a(保密),计算 A = g^a mod p(公开)
3. Bob 选私钥 b(保密),计算 B = g^b mod p(公开)
4. 交换公钥 A 和 B
5. K = B^a mod p = A^b mod p = g^(ab) mod p

安全性基础: 离散对数问题------已知 g g g、 p p p、 g a   m o d   p g^a \bmod p gamodp,求 a a a 对大素数 p p p 计算上不可行。

可能攻击与防御:

攻击 防御
中间人攻击 数字签名/证书认证公钥(认证的 DH)
小群攻击 验证公钥不为 1 或 p − 1 p-1 p−1,使用安全素数
Logjam 禁用 Export 级密码,使用 ≥ 2048 \ge 2048 ≥2048-bit DH
量子计算机 Shor 算法可破解 → 需后量子密码

补充:协议设计分析题

题 D-1:协议设计原则

设计安全网络协议需要遵循哪些基本原则?至少列出 5 条。

解答:

  1. 最小权限原则:只授予完成任务所需的最小权限
  2. 纵深防御:多层安全机制,单层失效不影响整体
  3. 安全默认配置:默认启用最安全选项
  4. 前向安全性(PFS):长期密钥泄露不影响历史会话
  5. 密钥分离:不同用途使用不同密钥(加密密钥 ≠ MAC 密钥)
  6. 抗重放攻击:序列号、时间戳、Nonce
  7. 密码敏捷性:支持密码算法协商和替换
  8. 失败安全(fail-close):系统失效时默认进入安全状态

参考来源

  1. 网络安全协议设计与分析教材(1~7.pdf):概述、L2TP、IPSec、SSL/TLS、SSH、SOCKS、SNMPv3
  2. 华东师范大学 - 网络安全协议设计与分析课件(第 8-9 章)
  3. 华东师范大学 - 2025 春季学期网络安全协议及分析期末考试试卷(回忆版)
  4. Cloudflare - What happens in a TLS handshake? (https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/)
  5. Netstuts - IPsec Basics: ESP, AH, IKE Phases, Tunnel Mode (https://www.netstuts.com/ipsec-basics)
  6. RFC 4301/4302/4303 - IPsec Architecture, AH, ESP
  7. RFC 7296 - IKEv2
  8. RFC 5246/8446 - TLS 1.2 / TLS 1.3
  9. RFC 4251-4254 - SSH Protocol
  10. RFC 1928 - SOCKS Protocol Version 5
  11. RFC 3414/3415 - USM / VACM for SNMPv3
  12. RFC 4120 - Kerberos V5
  13. RFC 3193 - Securing L2TP using IPsec
  14. H3C - SNMP 配置指南 (https://www.h3c.com/)
  15. Atlas.org / AskFilo - Diffie-Hellman Calculation Problems