git 协议可能被中间人攻击吗?

2022-09-24 20:11:47 +08:00
 x199ian

今天看到个项目用到 git clone git://git.busybox.net/busybox ,不太了解 git 协议,这有被中间人攻击的风险吗?

4519 次点击
所在节点    git
27 条回复
lambdaq
2022-09-24 22:27:22 +08:00
@x199ian git 的「协议」只是一种格式,可以通过 ssh 传输,也可以通过 https 传输,当你用 http 协议传输肯定能被容易中间人的。
keith1126
2022-09-24 22:29:13 +08:00
@timpaik #20

并没有吧,反正据我观察,用 GPG 签名的人并不多。

而且另一方面,由于 GPG 签名不是强制的+普及度不高,当你遇到一个没有签名的 commit ,大概率只会觉得是对方没签名,而不是被篡改了。
Tobias747
2022-09-24 23:22:41 +08:00
GitHub 官方八月份已经支持显示 SSH commit verification, 建议开启[SSH commit verification now supported | GitHub Changelog]( https://github.blog/changelog/2022-08-23-ssh-commit-verification-now-supported/)
Greenm
2022-09-24 23:29:25 +08:00
git 不关注应用层的安全性,所以原则上是有风险的。

主流的 SaaS 服务商部署的 git 都是走的 SSH 或者 https ,这两个协议能够较好的防止中间人,如 github, gitlab 等。 但你如果自建 git 服务器,那就无法避免被中间人。
zk8802
2022-09-25 03:54:27 +08:00
Git 被中间人攻击之后可能被用来直接攻击客户端,而不仅仅是修改 commit 历史。参见 CVE-2018-11233 和 CVE-2018-11235 。

不应该在不安全的网络环境下使用 Git (尤其很多人习惯性忽略 SSH host key 不匹配的提示)。
kkeep
2022-09-25 21:38:03 +08:00
@keith1126 防篡改不是高强度的 hash 区块链也可以从第一个开始伪造,但是别人不认。

我记得是这样?
forcecharlie
2022-09-26 10:11:19 +08:00
git 协议与 Git Over SSH/ Git Over HTTP 不一样,git 协议是非安全协议,传输流没有加密环节,公网传输可能是不安全的,Git Over SSH (ssh:// or git@github.com:some/some.git) 走的是 SSH 安全通道,Git Over HTTP 可以走 https 。

很多代码托管平台并不开放 git 协议,但可以使用 git 协议作为内部存储节点之间的传输协议。

利益相关:从事 git 代码托管开发多年。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/882664

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX