禁用CURLOPT_SSL_VERIFYPEER(libcurl / openssl)的安全后果

时间:2013-02-16 19:38:08

标签: ssl curl openssl ssl-certificate

我从this thread知道当CURLOPT_SSL_VERIFYHOST被禁用时可能发生的攻击。我想知道在禁用VERIFYPEER而非_VERIFYHOST时可能发生的攻击。使用信用卡付款是否可以接受?

(我问的原因是因为我的code只能禁用_VERIFYPEER,但似乎没有人知道原因)

1 个答案:

答案 0 :(得分:5)

如果禁用CURLOPT_SSL_VERIFYPEER,curl将不会检查证书是否由受信任的机构实际签名。 这非常危险!在没有VERIFYPEER的MITM情况下,攻击者只需将自己的“自签名”证书替换为真实证书,并且只要主机名匹配(他可以随时做,因为他正在制作证书),你的应用程序会接受它。

您的代码可能会失败,因为您没有设置CA证书存储区,并且您正在与之通信的服务器由CA签署,而不是在curl的默认存储库中。请考虑使用CURLOPT_CAINFOCURLOPT_CAPATH指定要验证的证书,并确保您可以访问用于验证的证书并与目标服务器的证书相匹配。