在GitLab和GitHub中存储代码是否存在风险?

26

将代码保存在GitLab和GitHub上是否存在危险?

我听说将我们的代码提交到GitLab和GitHub是非常安全的。

原因是每个代码都经过哈希处理,如果没有使用git工具,几乎不可能更改代码。

这是真的吗?


你所说的“hashed”是什么意思?你是指pggp签名吗? - Willem Van Onsem
2
这绝对不危险!它是安全、可靠和方便的。 - cn007b
请澄清您的意思。您是指危险,因为有人可能会窃取您的代码吗?是的,这是可能的。任何东西都可能被破解,之后就涉及到个人观点了。 - Sami Kuhmonen
嗯,让我澄清一下,我的意思是GitLab或GitHub的所有者可能会窃取我们的代码。 - Charles Brown
@JimmyLee,我已经更新了我的答案以回答您(澄清后的)问题。 - VonC
2个回答

26
正如我在“为什么Git使用加密哈希函数?”中提到的那样,从数据完整性方面来看,它是“安全的”(Linus Torvalds,2007):

我们检查被认为是具有密码学安全性的校验和。没有人能够破解SHA-1,但关键是,就Git而言,SHA-1甚至不是一个安全功能。这只是一种纯粹的一致性检查。 安全部分在其他地方。
很多人认为,由于Git使用SHA-1,并且SHA-1用于密码学安全的东西,所以他们认为它是一个巨大的安全功能。这与安全毫无关系,它只是你可以得到的最好的哈希。

拥有一个好的哈希对于信任您的数据是有好处的

这与以下内容无关:

OP补充道:

我的意思是gitlab或github的所有者可能会窃取我们的代码

这是一个关于信任的问题:如果您的代码在一个私人仓库中,Git托管服务器是否能够访问您的代码?技术上是可以的。
他们会访问你的私人代码吗?正如"第三方主机在闭源/私有源代码管理方面值得信赖吗?"中所提到的,没有任何阻止他们这样做的东西。
然而,许多初创公司将其私有代码放在GitHub等地

如果您真的担心保密问题,那么重要的是您保留整个代码库的所有权,包括存储它的服务器(这意味着拥有自己的Git仓库托管服务器)。


为了防止篡改,您可以对提交进行签名。 - Thilo
1
显然,如果恶意用户设法在您的托管系统上更改了您的 Git 存储库并执行新的 git clone,您将不会注意到这种恶意更改。只有在其他地方拥有安全的 SHA-1 校验和副本时,您才能检查数据完整性。 - Matthieu Moy
@MattieuMoy:或者签署的提交。这些不能被伪造(除非攻击者也窃取了私钥)。 - Thilo

3
重要的是要记住,即使git是最安全的版本控制工具,因为它在您执行每个命令时都进行哈希检查,但重要的做法是定期备份存储库... 有时是因为硬件或软件故障,但其他时候则是为了防止由于人为错误而丢失数据。个人克隆并不总是足够的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接