根据验证服务器证书的过程:
是什么让恶意服务器填写有效的服务器证书,因为它知道所有事情:
- 伪造的服务器公钥(中间人公钥而不是实际的服务器公钥)
- 证书序列号。(实际服务器)
- 证书有效期(实际服务器)
- 服务器的 DN(实际服务器……但我们位于 IP 路由的中间)
- Isser 的 DN
- 发行人的数字签名
这个问题类似于处理第 4 步的( SSL 服务器如何证明其身份?),但我对第 3 步感兴趣
根据验证服务器证书的过程:
是什么让恶意服务器填写有效的服务器证书,因为它知道所有事情:
这个问题类似于处理第 4 步的( SSL 服务器如何证明其身份?),但我对第 3 步感兴趣
证书中的“签名”字段不是抽象的签名;它是对其他字段内容的签名。您不能简单地将签名从证书复制到具有不同内容的另一个签名;它不会匹配。这就是数字签名的意义所在。
在中间人的情况下,攻击者可以用自己的公钥代替真正的服务器公钥,但客户端不会被愚弄,因为他的签名验证算法会告诉他签名现在无效。如果攻击者想要成功,那么他需要获得客户端信任的某个CA的新签名;这些 CA 之所以受信任,正是因为它们不会签署假证书。