做题家速成
以 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。
- 计算 Alice 的公钥 A
- 计算 Bob 的公钥 B
- 计算共享密钥 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。
- 求共享密钥 K
- 分析如果攻击者 Eve 截获了公钥,能否算出共享密钥?为什么?
- 如果 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。
- 计算模数 n n n 和欧拉函数 φ ( n ) \varphi(n) φ(n)
- 选取公钥 e = 7 e=7 e=7,验证 e e e 是否与 φ ( n ) \varphi(n) φ(n) 互素
- 计算对应的私钥 d d d
- 若明文 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 小时)。
- 到 t = 24 h t=24h t=24h 时,Phase 2 共进行多少次协商?
- 若 Phase 2 SA 还设置了流量限制 4GB,平均流量速率 100Mbps,实际 SA 多久更新?
- 分析为什么 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)
- 为什么不直接用 PreMaster Secret 做会话密钥?
- 为什么要混入 ClientRandom 和 ServerRandom?
- 从 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 层用户认证 |
为什么组合:
- L2TP 提供二层隧道:封装 PPP 帧,支持多种网络层协议,支持 PAP/CHAP/EAP 用户认证
- IPSec 提供安全保护:ESP 加密整个 L2TP 隧道,解决 L2TP 无加密的问题
- 互补关系: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:
- ESP 可同时提供加密+认证(如 AES-GCM AEAD)
- ESP+NAT-T 可穿越 NAT 设备
- 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):
- 配置 IKE 策略(Phase 1:加密/哈希算法、认证方式、DH 组、生命周期)
- 配置预共享密钥或证书
- 配置 IPSec 变换集(Phase 2:ESP/AH、加密/认证算法、隧道模式)
- 定义感兴趣流(ACL:哪些流量需加密,如
10.1.0.0/24 -> 10.2.0.0/24) - 创建加密映射(Crypto Map),绑定变换集、ACL、对端地址
- 将 Crypto Map 应用到接口
隧道模式优点:
- 地址隐藏:内部私有 IP 被封装在外层公网 IP 内部
- 全流量加密:整个原始 IP 包(含 TCP/UDP 头)均加密
- 策略灵活:通过 SPD 精确控制哪些流量加密
- 透明性:对端主机和应用无需任何修改
- 跨平台兼容:几乎所有操作系统和网络设备原生支持
- NAT 穿越:配合 NAT-T 可穿越 NAT 设备
- 应用无关:工作在 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 的机密性与完整性机制,并给出常见漏洞与防御方案。
解答:
机密性机制:
- 混合加密:握手时非对称交换 PreMaster Secret → 数据传输时对称加密
- 密钥派生 : 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) → 派生会话密钥
- 前向安全性:DHE/ECDHE 时即使长期私钥泄露,历史会话密钥也无法恢复
完整性机制:
- HMAC:HMAC-SHA256 计算 MAC
- AEAD:AES-GCM 加密+认证合一
- 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 五要素:
- groups(组):用户分配到组,组是访问控制基本单位
- securityLevel(安全级别):noAuthNoPriv / authNoPriv / authPriv
- contexts(上下文):命名 MIB 实例集合
- MIB views(视图):定义允许访问的 MIB 子树(include/exclude)
- 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@A 和 krbtgt/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 条。
解答:
- 最小权限原则:只授予完成任务所需的最小权限
- 纵深防御:多层安全机制,单层失效不影响整体
- 安全默认配置:默认启用最安全选项
- 前向安全性(PFS):长期密钥泄露不影响历史会话
- 密钥分离:不同用途使用不同密钥(加密密钥 ≠ MAC 密钥)
- 抗重放攻击:序列号、时间戳、Nonce
- 密码敏捷性:支持密码算法协商和替换
- 失败安全(fail-close):系统失效时默认进入安全状态
参考来源
- 网络安全协议设计与分析教材(1~7.pdf):概述、L2TP、IPSec、SSL/TLS、SSH、SOCKS、SNMPv3
- 华东师范大学 - 网络安全协议设计与分析课件(第 8-9 章)
- 华东师范大学 - 2025 春季学期网络安全协议及分析期末考试试卷(回忆版)
- Cloudflare - What happens in a TLS handshake? (https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/)
- Netstuts - IPsec Basics: ESP, AH, IKE Phases, Tunnel Mode (https://www.netstuts.com/ipsec-basics)
- RFC 4301/4302/4303 - IPsec Architecture, AH, ESP
- RFC 7296 - IKEv2
- RFC 5246/8446 - TLS 1.2 / TLS 1.3
- RFC 4251-4254 - SSH Protocol
- RFC 1928 - SOCKS Protocol Version 5
- RFC 3414/3415 - USM / VACM for SNMPv3
- RFC 4120 - Kerberos V5
- RFC 3193 - Securing L2TP using IPsec
- H3C - SNMP 配置指南 (https://www.h3c.com/)
- Atlas.org / AskFilo - Diffie-Hellman Calculation Problems