824 B
824 B
Challenge 35: 实现带协商群组的 DH,并使用恶意的 "g" 参数进行破解
协议流程:
A->B
发送 "p", "g"
B->A
发送 ACK
A->B
发送 "A"
B->A
发送 "B"
A->B
发送 AES-CBC(SHA1(s)[0:16], iv=random(16), msg) + iv
B->A
发送 AES-CBC(SHA1(s)[0:16], iv=random(16), A's msg) + iv
再次进行中间人攻击,但这次操控 "g"。尝试以下情况会发生什么:
g = 1
g = p
g = p - 1
为每种情况编写攻击代码。
这种情况何时会发生?
老实说,在真实世界的系统中并不常见。如果你能操控 "g",很可能你能操控更严重的东西。大多数系统会预先约定一个静态的 DH 群组。但是相同的构造存在于椭圆曲线 Diffie-Hellman 中,在那里这变得更加相关。