代码之家  ›  专栏  ›  技术社区  ›  soey

测试SSL攻击-是否可能在SSLException之后提取服务器的证书?

  •  2
  • soey  · 技术社区  · 7 年前

    对于一个项目,我想测试是否有人在篡改SSL连接。 这个 HttpsUrlConnection 正在使用 SSLContext 用别针固定证书。

    我的问题是:如果我 S异常 ,例如,有人试图伪造错误的证书,

    在计算机上,使用浏览器(取决于浏览器和版本)我会收到证书警告,并可以选择查看有关证书的详细信息。

    我想知道,是否有任何方法可以使用 HttpsUrlConnection连接 getServerCertificates() 此时将不起作用,因为连接尚未建立,我看不到其他选项。。

    1 回复  |  直到 7 年前
        1
  •  1
  •   soey    7 年前

    事实证明,从Android SDK 22开始,抛出的异常已经包含了有关证书的详细信息。

    我可以看到运行Android 21的设备会抛出一个 IOException (主机名未验证),而Android 22正在抛出 SSLPeerUnverifiedException ,还提供了证书的详细信息。