是否可以加密存储在SVN中的内容?

是否可以加密存储在SVN中的内容?,svn,Svn,如果我将我的源代码存储在共享主机公司的SVN中,是否可以对内容进行加密,以便即使有人可以访问repo,他们也无法在普通视图中看到源代码 有这个插件吗?否则我会认为自己实现这一点是疯狂的 Mathew的帖子是针对托管提供商必须提供的加密文件系统的。这可能是唯一简单的方法。您想要的插件必须位于客户端(显然,如果您不信任有权访问托管存储库的人)。任何强大的密码算法都会从非常相似的输入中产生巨大的输出变化(由于其高熵) 这意味着即使您有一个解决方案: 从性能、计算时间和存储空间要求以及网络带宽使用等方

如果我将我的源代码存储在共享主机公司的SVN中,是否可以对内容进行加密,以便即使有人可以访问repo,他们也无法在普通视图中看到源代码


有这个插件吗?否则我会认为自己实现这一点是疯狂的

Mathew的帖子是针对托管提供商必须提供的加密文件系统的。这可能是唯一简单的方法。

您想要的插件必须位于客户端(显然,如果您不信任有权访问托管存储库的人)。任何强大的密码算法都会从非常相似的输入中产生巨大的输出变化(由于其高熵)

这意味着即使您有一个解决方案:

  • 从性能、计算时间和存储空间要求以及网络带宽使用等方面来看,这将是一场灾难
  • 功能丢失中的灾难:服务器端差异将被破坏。例如,您必须在客户端对完全解密的文件执行所有操作
弱加密(例如,破坏字符集,这将使diffs再次可用)是不安全的,尤其是对于源代码,大括号和方括号以及由此产生的循环和任何其他字母都可以非常快速地解码


我希望这证明,这样做不会导致任何可行的解决办法。也许我错过了什么。我期待着阅读有关我答案的有趣评论!:-)

这里的正确答案是:

  • 找一家您信任的托管提供商(如果存在监管问题,则找一家合规的托管提供商)
  • 自己主持吧
  • 如果主要关注的是有一个安全的异地备份,那么您可以自己托管存储库,并使用类似的地方来处理备份(它们是/兼容的)。每15分钟对所有内容进行rsyncs的cron作业应该足够了。cron作业可以在推送备份之前对其进行加密。不要丢失钥匙/密码

    这样,Subversion就不需要了解任何有关加密方案的信息,而且您可以继续工作,而不必担心偏执狂会妨碍工作效率

    附录


    既然你在做共享主机,那么共享主机就一文不值了:找一个专用的源代码管理主机。不要使用共享主机进行源代码管理。共享主机因丢失数据、谎称数据安全和备份而臭名昭著。专用源代码管理主机的好例子:,

    它很旧,但我找到了其他解决方案,可能会帮助其他人

    今天,你可以得到一些虚拟验证服务器(VP)非常便宜。(5元/月)

    为什么是副总裁?你可以安装你想要的! (Bob Aman的回答对共享主机的安全性有很好的说明)

  • 安装TrueCrypt或其他加密系统
  • 安装SVN
  • 将SVN存储库创建到TrueCrypt驱动器/文件中
  • 将SVN配置为使用SSH或其他安全数据传输方法
  • 我使用本文配置了所有内容:


    如何(4)

    不仅如此,它还在存储库中存储加密的blob,在这个过程中丢失所有有用的版本跟踪。我还要补充一点,分布式版本控制的一个好的副作用是存储库的每个克隆本质上都是一个备份。此外,我对GitHub的信任几乎与我写的每一件事完全一致。另请参见:github是否允许加密回购?好问题。我不知道。你应该问问GitHub的伙计们。:-)这应该是可能的(在某些版本控制系统上,取决于它们内部的工作方式):如果版本控制系统存储增量(而不是版本),并且您不介意泄漏有多少版本。然后可以加密这些增量,然后将它们签入另一个存储库。现在,我可以查看历史记录(可能签入注释,取决于策略),而无需键。但你需要钥匙才能看到更多。差异将很好地工作,并且存储库大小不会受到不利影响,因为存储库压缩在加密之前仍然可以在本地进行。