【问题标题】:Security consequences of disabling CURLOPT_SSL_VERIFYPEER (libcurl/openssl)禁用 CURLOPT_SSL_VERIFYPEER (libcurl/openssl) 的安全后果
【发布时间】:2013-02-01 14:04:51
【问题描述】:

我从this thread 知道禁用 CURLOPT_SSL_VERIFYHOST 时可能会发生哪些攻击。我想知道禁用 VERIFYPEER 而不是 _VERIFYHOST 时可能会发生哪些攻击。使用信用卡付款的风险是否可接受?

(我问的原因是因为我的code 只能在禁用 _VERIFYPEER 的情况下工作,尽管似乎没有人知道为什么)

【问题讨论】:

  • 如果您阅读了我链接的答案,它会显示“为了将其与真实场景进行比较,VERIFYPEER 就像检查 ID 的形式是否是您识别的形式(即您信任的国家/地区的护照,您认识的公司的员工卡,...)。VERIFYHOST 就像检查卡上的实际姓名是否匹配您想与之交谈的人。“。抱歉,如果措辞不够清楚,但如果您甚至不检查是否信任您获得的证书,那么很明显您根本不能依赖该证书所说的内容。

标签: ssl curl openssl ssl-certificate


【解决方案1】:

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

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

【讨论】:

  • 它确实有效,谢谢!实际上我确实有 CURLOPT_CAINFO => dirname(FILE) 。 '/cacert.pem' 在我的代码中,只有 cacert.pem 文件在我的文件夹中不存在。于是我在curl.haxx.se/docs/caextract.html下载并复制到文件夹中,现在可以了!
猜你喜欢
  • 2012-11-24
  • 2021-05-25
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
相关资源
最近更新 更多