首页 > 解决方案 > 黑客可以通过从客户端的信任库中提取证书来创建 MITM 攻击吗?

问题描述

我对 SSL 比较陌生,终于在 Java 中完成了 SSL 的代码实现后,我很好奇潜在的缺陷。

我的代码由两个组成SSLSockets(其中一个SSLServerSocket在服务器端),并且使用了单向 SSL 身份验证。服务器包含一个带有 CA 签名证书的 KeyStore,客户端有一个带有相同 CA 签名证书的 TrustStore。如果我的理解是正确的,那么 SSL 握手以及其他许多事情可以确保对等证书是合法的,并且它与客户端 TrustStore 中的证书相匹配。

有了这些知识,是否有人可以反编译我的客户端代码并从 TrustStore 文件中提取 CA 签名的证书,以创建带有包含 CA 签名证书的 KeyStore 的恶意服务器?如果我的逻辑是正确的,这将允许中间人攻击。

标签: javasecuritysslreverse-engineering

解决方案


信任库中的证书仅用于验证服务器证书是否有效,即本地受信任。无论如何,这些 CA 证书通常是公开的,即攻击者不需要从客户端信任库中提取它。

如果攻击者能够将新的 CA 证书注入客户端信任存储区,情况会有所不同。在这种情况下,客户端还将信任攻击者 CA 颁发的证书,这使得攻击者可以冒充 MITM 其他站点。


推荐阅读