使用 Git 时禁用 http.sslVerify 有哪些潜在的安全隐患?

Sim*_*aya 1 git ssl

关于如何禁用 git 的 http ssl 验证有多个问题(请检查How do I set GIT_SSL_NO_VERIFY for certain repos only?Unable to set the sslVerify to false)。

但是,我无法找到禁用验证的潜在安全影响的全面描述。

这种行为的风险有多大?为什么?

bk2*_*204 6

如果使用此选项禁用 TLS 验证,则没有安全性。任何能够拦截您的通信的攻击者都可以创建具有相同域名的自签名证书,冒充有问题的服务器,并窥探和篡改您的所有流量;这是典型的中间人攻击。对于与您在同一网络上的任何人或任何可以宣布 BGP 源的人来说,这都是微不足道的。众所周知,数据包可能由于国家行为者或有时只是错误而被路由到其他地方。

根据一组值得信赖的证书颁发机构验证 TLS 证书可以防止这种情况发生,因为这些证书颁发机构只会向能够证明他们控制相关域的人颁发给定域名的证书。攻击者将无法获取此类证书,因为他们无法证明该控制权,因此任何 MITM 攻击都会因证书无效而失败。

唯一安全禁用 TLS 验证的情况是您在受信任的计算机(例如您的笔记本电脑)上使用本地主机,在这种情况下,攻击者将无法插入自己。否则,禁用 TLS 验证相当于根本不使用加密,并且几乎任何人都可以在您不注意的情况下随意检查和篡改您的数据。