3

DVCS(Github、BitBucket 等)如何确保私有项目代码的完整性?

当然,当您将代码上传到他们的在线存储库时,这些公司声称没有知识产权,但是如何确保项目的隐私,以便只有对此类存储库具有写入/提交访问权限的人才能真正查看数据?

如果您决定,比如说,将您的项目移动到私有服务器或其他主机,会发生什么?您的项目会从公共索引中“删除”还是仅“删除”?

您如何确定项目所在公司的 CEO 无法查看您的数据?

这些公司是否通过某种常规认证?还是基于信任和理解的整个交易?

4

3 回答 3

5

除非这些提供商明确提到提供加密的存储库(Assembla 在此处提到,但它只能指 https 加密),否则您没有 100% 的保证。

增加这种安全级别的唯一方法是追求用户控制的端到端加密,利用 git 的 smudge/clean过滤器驱动程序

涂抹清洁过滤器驱动程序

请参阅“透明 Git 加密”:

用户控制的端到端加密解决了这个问题:
在将数据推送到远程存储库进行存储之前,使用只有数据所有者自己知道的加密密钥对其进行加密。加密密钥和加密/解密过程的管理总是乏味且容易出错。
在下文中,我们将演示如何以对最终用户透明的方式使用带有加密的 Git。

于 2012-05-13T09:53:13.737 回答
2

正如 VonC 所说,除了向您保证只有管理员可以访问您的数据之外,他们并不能确保任何事情。

一些托管站点可能会谈论他们如何加密磁盘上的数据。如果我们谈论的是可能最终落入坏人手中的笔记本电脑,这是有道理的,但对于位于数据中心的磁盘来说,它就没有意义了。问题是在机器上运行的服务必须能够访问未加密的数据,因此通常会在服务运行时安装卷。因此加密将不再保护数据,您将恢复正常的操作系统访问控制。

如果你真的想要,你当然可以通过Mercurial 的解码/编码过滤器运行所有数据,或者使用Git 的等效过滤器。这意味着您将加密数据保存在托管站点,但您会失去 GitHub 或 Bitbucket 等站点的大部分优势。你不能再

  • 以有意义的方式在线浏览代码
  • 审查拉取请求
  • 提供 tarball 下载
  • 等等

所以我不会推荐这种方法——如果你的数据非常敏感以至于你不能在线托管它们,那么你应该设置你自己的内部服务器。在那里我可以推荐支持 Git 和 Mercurial 的Kallithea 。

于 2012-05-13T10:18:47.820 回答
0

据我所知,整个交易是基于信任、理解和你不起诉他们致死的愿望。

于 2012-05-13T08:04:47.043 回答