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

dra*_*035 2 ssl curl openssl ssl-certificate

我知道在禁用CURLOPT_SSL_VERIFYHOST时可以从这个线程中发现什么攻击.我想知道在禁用VERIFYPEER而非_VERIFYHOST时可能发生的攻击.使用信用卡付款是否可以接受?

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

nne*_*neo 5

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

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