SSL 证书 - 签名验证失败漏洞

SSL 证书 - 签名验证失败漏洞

我们在我们的网站上运行了 PCI DSS 外部漏洞扫描,扫描失败,出现许多漏洞,所有漏洞都是 PCI 严重性:除一个中等和另一个高外,其余均为低。

较高的是:

威胁:SSL 证书将实体(个人、组织、主机等)与公钥关联起来。在 SSL 连接中,客户端使用服务器的证书对远程服务器进行身份验证,并提取证书中的公钥以建立安全连接。身份验证是通过验证证书中的公钥是否由受信任的第三方证书颁发机构签名来完成的。如果客户端无法验证证书,它可以中止通信或提示用户继续通信而无需身份验证。

影响:利用此漏洞,可能会发生中间人攻击和 DNS 缓存投毒。例外情况:如果服务器仅与拥有服务器证书或受信任 CA 证书的有限客户端进行通信,则服务器或 CA 证书可能无法公开,并且扫描将无法验证签名。

解决方案:请安装由受信任的第三方证书颁发机构签名的服务器证书。结果:证书 #0 CN=132123-server1 无法获取本地颁发者证书

当我重新运行扫描时,我不知道如何解决这个问题以通过这一点。有什么步骤可以遵循吗?

注意:
服务器是 IIS 8
网站使用来自 godaddy 的 SSL 通配符。

答案1

基本上,您从 SSL 签名验证获得的错误响应是:

无法获取本地发行者证书

發行人是收到您的证书签名请求 (CSR)、对其进行签名并返回服务器证书(您将其与使用 CSR 生成的私钥一起安装)的签名机构。服务器证书是一个带有.cer.crt扩展名的 PEM 文件。它是一个文本文件,证书以以下块的形式编码:

-----BEGIN CERTIFICATE-----

     gibberish not copied

-----END CERTIFICATE-----

错误文本解释:

通过验证证书中的公钥是否由受信任的第三方证书颁发机构签名来完成身份验证。

但要进行此验证,至少需要另一个证书,即發行人,也可能是证书根颁发机构 (CA)

计数1grep -c BEGIN /etc/pki/tls/certs/yourserver.crt显示,当您有这样的本地颁发者时,其证书不可用。至少需要 2 个证书才能验证。

扫描仪(例如 PCI DSS 外部漏洞扫描)需要了解这些附加证书。它们可以是众所周知/内置的 CA,如 Verisign 或 Thawte,但很可能是未知的,因为 CA 可能是贵公司的。输出中的规范名称 (CN=) 和(缺失的)域组件表明证书不是由供应商内置在扫描仪中的 CA 签名的。

通常的做法是将颁发者证书和根 CA 证书(按此顺序)附加到服务器证书,以便告知 SSL 客户端有关信任链的信息。

cat issuer.cer root_ca.cer >> etc/pki/tls/certs/yourserver.crt

但这并不能建立信任。扫描仪和 SSL 客户端通常需要拥有发行者的根 CA 证书。如果您的公司有自己的 CA,那么您需要在任何地方安装它。

相关内容