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

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

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

4186 次点击
所在节点    git
27 条回复
kkeep
2022-09-24 20:24:10 +08:00
有意思,你这个是基于 ssh 的?
yankebupt
2022-09-24 20:24:37 +08:00
The downside of the Git protocol is the lack of authentication.
应该是有的
charlie21
2022-09-24 20:27:15 +08:00
commit 是可以在提交之前签名并在 origin 作 verified 的,用 gpg
https://stackoverflow.com/questions/10077996/sign-git-commits-with-gpg
x199ian
2022-09-24 20:42:40 +08:00
@kkeep 应该不是
@yankebupt 我也觉得有,但是好像资料比较少,我没找到更具体的描述
@charlie21 但是协议本身是不是不保证安全呢
dem0ns
2022-09-24 20:46:30 +08:00
git:// 就是基于 ssh 协议的,中间人攻击 /防御和 ssh 是一致的,首次连接的时候会进行指纹确认,指纹信息会保存到 known_hosts 文件,下次连接的时候系统会对比指纹的,只有指纹一致才会进行数据传输
Trim21
2022-09-24 20:47:32 +08:00
会,git 协议是没加密的 tcp ,作为本地和服务器 git 命令之间的 pipe 进行远程代码同步。所以是有可能被中间人的。
moen
2022-09-24 20:52:20 +08:00
https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols 就知道,git 协议是为「公开的大型项目」而设计的,它不需要 HTTP 协议的各种限制,也不需要 SSH 的加密和认证机制,git 协议和 SSH 都是建立在同一层的。简单说 git 协议就是明文传输的,可以被中间人攻击
x199ian
2022-09-24 20:53:43 +08:00
@dem0ns #5 但是我之前试过,应该没有确认指纹
@Trim21 #6 明白了,谢谢
dem0ns
2022-09-24 20:55:22 +08:00
@x199ian 你可以检查下你的 known_hosts 文件是否有 git.busybox.net
crab
2022-09-24 20:55:27 +08:00
@x199ian 免密码首次登陆有公钥指纹提示的啊。
x199ian
2022-09-24 20:57:06 +08:00
@moen #7 谢谢,那么似乎目前应该避免使 git 协议
Trim21
2022-09-24 20:58:36 +08:00
@dem0ns 你把 git@和 git://弄混了吧,前者是 ssh 协议只不过省略了
dem0ns
2022-09-24 21:01:58 +08:00
@Trim21 确实 =.= 一直以为是做了个 alias
x199ian
2022-09-24 21:08:32 +08:00
@dem0ns #9
@crab #10 确实没有确认指纹,known_hosts 里也没有
dem0ns
2022-09-24 21:11:59 +08:00
抓了个包,发现就是明文的,我在前面说的错了,误以为是 ssh


部分流量
003dgit-upload-pack /busybox.host=<请不要在每一个回复中都包括外链,这看起来像是在 spamming>.version=2.000eversion 2
0015agent=git/2.31.1
0013ls-refs=unborn
0012fetch=shallow
0012server-option
0017object-format=sha1
00000014command=ls-refs
0024agent=git/2.37.0.(Apple.Git-136)0016object-format=sha100010009peel
000csymrefs
000bunborn
0014ref-prefix HEAD
001bref-prefix refs/heads/
001aref-prefix refs/tags/
00000052c8c1fcdba163f264a503380bc63485aacd09214c HEAD symref-target:refs/heads/master
0044267b925bb46d53472d28e88edc7d837c5918612b refs/heads/0_60_stable
00442f8880d2333c0ff9229a2b386eb652952010d7e6 refs/heads/1_00_stable
004a1fb759908f0cc38fd0b763fb7908eef515f4af33 refs/heads/1_00_stable_10817
0044e9f8b2f830bf0273d0d51f56d24da84b955e0df5 refs/heads/1_10_stable
00444a81fe4173bf5029058253cf0be194c23a5ad369 refs/heads/1_11_stable
00449b8f810d38a720bca94af864e2960de91aae3a29 refs/heads/1_12_stable
00448f0c89e05a7b52f8c5ae7b451de6fd50732aeb45 refs/heads/1_13_stable
0044757e46252c004c9170dfc748a78f42abd416cf50 refs/heads/1_14_stable
004475919134e1fbd0c4dc60cab8fb5a7746c241123b refs/heads/1_15_stable
00446b5656e9bbc8c202dc323aecf54592185f9e129a refs/heads/1_16_stable
0044db4171d842e9bdc1c2903a9d5cfea053aceb35a2 refs/heads/1_17_stable
00442e79bc6c77560d4460847a459857039774de004a refs/heads/1_18_stable
0044f99811908419608e3ab81393d0177cc456101e4b refs/heads/1_19_stable
0043bdea7807b1f045a230a2efab8d85fa21a9aa3e48 refs/heads/1_1_stable
0044b1cec5003b73080a8aa7ea277621bf1c71c3e8d6 refs/heads/1_20_stable
0044e73f3c1d3d83699b723251f7e6a981021ce75475 refs/heads/1_21_stable
004428dd64a0e1a9cffcde7799f2849b66c0e16bb9cc refs/heads/1_22_stable
0044be947c4d97c0dacb703a6f24dd813ff6dd3a33b6 refs/heads/1_23_stable
dem0ns
2022-09-24 21:13:18 +08:00
002d.Compressing objects: 100% (28643/28643)
0034.Compressing objects: 100% (28643/28643), done.
2004.PACK..........x...AN.0.@..O1{h.x.'..b.
....qj.........Hl....1.O!"y.-.l..&.lFD..A28.y....m.:.@a.uL.q".>Q...<.8;.....kEG......;|V....^.......m.Y*.T.9..
.s.Y...O.h.~.Zz..!..........J/.v.M.... DI..Jm.]...4N'.........L.l..-x..R.j.0...+tl .%...J.....k.Kc[D..$g..:IO=%..0.Yx.a&.D*.......]7..F..U......!AK.j.....RH).N.9.....U). ..e.....q$0...........n...A...7.........Q~z.|!.EU....`.,....."!........F38Hs.-.....)R<%t.x..Qe.e....t..a@B...t.x...Wtx\.F...f{
.z.P..."...aQ^q.%...!..r8+..nX5?D......h.....[.2F...Y..q....0.3..nI..=......K.v......b...........7...h..x....n. .D{....Z...j.m.2J.)....d...I...6.Rmy..3.."0\.R;g..};z.........j..J"J....
.+C.w..F...T^89..G.v...h..m}...7..&x.j...x.&..Z.J..G.. :.uZ....3..%.+.x..Wx.X).........}.r."-.bs..%ZI#.? ..Z{....uE7CH...b..c.T...SNqg.5L........]._.......}S..x...Mj.0...:....lG.TJ..7(t.B.I#[T..-7..k.BW.....x..0e".. .dm......;a.kC.
o.ip..v..p.T..l.rBH-P........;......Q..2. ^(]gx.8Sz....p.CZ..}



PACK 开始是压缩信息
x199ian
2022-09-24 21:30:53 +08:00
@dem0ns #15 谢谢 看来应该避免使用 git 协议
agagega
2022-09-24 21:32:11 +08:00
Git 存数据的方式有点像区块链,一环套一环,所以即使被中间人攻击了,发现 hash 对不上很容易就发现了
keith1126
2022-09-24 21:38:36 +08:00
@agagega #18

区块链之所以防篡改并不是因为用了哈希,而是用了计算复杂度高的哈希。Git 用的哈希毫无密码学强度可言,完全可以在篡改后从第一个 commit 开始全部重算一遍哈希。
timpaik
2022-09-24 22:22:40 +08:00
@keith1126 所以 git 的 commit 一般会用 gpg 签名啊

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

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

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

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

© 2021 V2EX