DVCS(Github,BitBucket等)如何确保私有项目代码的完整性?
当然,当您将代码上传到其在线存储库时,这些公司声称没有知识产权,但是如何确保项目的隐私,以便只有具有写入/提交访问权限的人才能实际查看< / strong>数据?
如果您决定将项目移至私人服务器或其他主机,会发生什么?您的项目是否会被“删除”或仅从公共索引“删除”?
您如何确定您托管项目的公司的首席执行官无法查看您的数据?
这些公司是否经过某种定期认证?或者整个交易基于信任和理解?
答案 0 :(得分:5)
除非这些提供商明确提到提供加密 repos(Assembla alludes to here,但它只能引用https加密),否则您没有100%保证。
添加这种安全级别的唯一方法是采用用户控制的端到端加密,利用git的涂抹/清除filter driver:
请参阅“Transparent Git Encryption”:
用户控制的端到端加密解决了这个问题:
在将数据推送到远程存储库进行存储之前,会使用加密密钥对数据进行加密,加密密钥仅为数据所有者本身所知。加密密钥和加密/解密过程的管理总是乏味且容易出错 在下文中,我们将演示如何以对最终用户透明的方式使用Git加密。
答案 1 :(得分:2)
正如VonC所说,除了向您承诺只有管理员才能访问您的数据之外,他们不能保证更多。
某些托管网站可能会谈论他们如何加密磁盘上的数据。如果我们谈论的是一台笔记本电脑可能最终落入坏人手中,那么这是有道理的,但对于坐在数据中心的磁盘来说却没什么意义。问题是在计算机上运行的服务必须能够访问未加密的数据,因此通常在服务运行时挂载卷。因此加密不再能保护数据,而是恢复正常的操作系统访问控制。
如果您真的想要,您当然可以通过decode/encode filters for Mercurial运行所有数据或使用equivalent filters for Git。这意味着您在托管站点保存加密数据,但失去了GitHub或Bitbucket等网站的大部分优势。你不能再
了所以我不推荐这样的方法 - 如果您的数据太敏感而无法在线托管,那么您应该设置自己的内部服务器。在那里,我可以推荐支持Git和Mercurial的Kallithea。
答案 2 :(得分:0)
据我所知,整个交易都是基于信任,理解以及你不要起诉他们的愿望。