忽略 SSL 证书验证有什么影响?

What are the implications of ignoring SSL certificate verification?

我有一个关于 Python 的请求库中的 SSL 验证的问题,但我认为它对我来说更普遍。

我目前正在忽略证书验证,因为我需要连接的第三方API正在使用自签名证书。

在请求中关闭 SSL 验证有什么影响?在现实世界中不验证 SSL 证书的含义是什么。我可以保证传输的数据是 secure/encrypted 吗?

这是一个安全问题,因为任何人都可以伪造此证书并拦截您的流量。您应该只将自签名证书添加到使用 API 的机器的受信任证书链中。 具体操作方式取决于操作系统和特定设置,但快速 google 将指导您找到正确的解决方案。

Can I gaurantee the data transported is secure/encrypted?

数据已加密(这是 TLS 机密性保证)但由于您没有对远程部分进行身份验证(如果您禁用证书验证或绕过所有错误),您也可以发送 encrypted 任何人的内容,包括攻击者,当然他这边会明明白白地阅读它,因为如果您不验证远程方,TLS 握手就会成功。

TLS 提供多种功能,其中两个主要功能是身份验证和机密性。它们是正交的(你可以有一个没有另一个)但是没有所有它们可能没有那么有用。

与自然思维相反,身份验证比机密性更重要,因为如果您无法确定对方是谁,那么通过加密发送有什么好处呢?没有。