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

use*_*427 12 ssl curl openssl libcurl ssl-certificate

启用CURLOPT_SSL_VERIFYPEER和禁用CURLOPT_SSL_VERIFYHOST的安全后果是什么?

Bru*_*uno 26

为了将其与现实生活场景进行比较,VERIFYPEER就像检查身份证的形式是您认可的(即来自您信任的国家的护照,来自您认识的公司的员工卡,......).VERIFYHOST就像检查卡片上的实际名字一样,你想与谁交谈.

如果您不使用VERIFYHOST(正确的值是2,而不是1,顺便说一句),您将禁用主机名验证并打开MITM攻击的大门:任何拥有您信任的ID形式的人都可以冒充您身份证中的任何人信任,例如任何拥有有效护照的人都可以假装他们是拥有有效护照的其他人.

  • 感谢您详细的回答。这让我想到了另一个简单的问题:我有一个带有有效 SSL 证书的网站 https://www.example.com (cn=www.example.com ,因为它应该)。当我通过 IP 地址访问该网站时,它会显示证书错误(因为 cn 不匹配),删除 SSL_VERIFYHOST 可以解决该问题,但会导致 MiTM 攻击。处理这个问题的正确解决方案是什么?(允许通过 IP 地址连接而不显示错误)。使用 CURLOPT_SSL_CTX_FUNCTION 替换整个验证方法只是为了验证特定 IP 地址是否与 CN 匹配? (2认同)