SVN + Veracrypt + Dropbox?

时间:2014-09-16 20:31:34

标签: svn encryption dropbox

我正在开展一个私人项目,并开始对某人窃取我的代码感到有点偏执,并且不想依赖当前源代码管理托管服务的诚实,尽管我没有&#39 ;你有任何理由不相信他们。在可预见的未来,我将是唯一一个参与这个项目的人。

我想在其上创建一个小型Veracrypt虚拟驱动器和SVN存储库,并将加密文件保存在Dropbox中以进行自动同步。

我仍然偶尔使用Truecrypt(意思是迁移到Veryacrypt)并在Dropbox中保留其小型加密虚拟驱动器。我没有在SVN存储库中使用它,但其他想法是类似的。问题是我必须卸载要同步的文件的驱动器,所以我猜测文件的内容和时间戳只会更新。据我了解,Truecrypt开发已经停止,而Veracrypt是一个正在进行维护和开发的分支。

有没有办法配置Veracrypt进行自动刷新以确保文件每次都同步?

有没有更好的方法来做到这一点,也许SVN托管服务可以保证偏执客户的安全性?

2 个答案:

答案 0 :(得分:10)

我是VeraCrypt背后的主要开发者,我刚刚在CodePlex的VeraCrypt论坛上回答了您的类似问题:https://veracrypt.codeplex.com/discussions/568126。我正在这里复制它以备记录。

实际上,每次进行更改时,我们都无法强制自动将数据刷新到容器中。为了解释原因,我将以USB闪存驱动器为例。当您将数据写入插入的USB密钥时,无法保证它会立即被写入:相反,Windows出于性能原因使用缓存机制来存储您的数据或修改,并且它们将在一些延迟后写入设备,这取决于多种因素。确保数据已写入USB密钥的唯一方法是“安全弹出”它。

Windows以相同的方式处理VeraCrypt虚拟驱动器:当您更改驱动器的内容时​​,未加密的数据不会立即写入,因此我们的设备驱动程序不会收到任何可加密并写回的内容加密的容器。我们必须等待Windows将数据刷新到虚拟驱动器,然后我们才能加密它们。 当您卸载虚拟驱动器时,Windows的反应方式与USB闪存驱动器的弹出方式相同:它将待处理数据刷新到存储器中,从而在我们的设备驱动程序中触发加密,这使得VeraCrypt将加密数据存储在加密中容器

互联网上有免费工具,可让您明确强制Windows清除特定驱动器上的所有待处理数据(如来自Sysinternals的Sync和来自Uwe Sieber主页的FFB)。但它们必须以管理权限运行。

在您的具体情况下,我有一个解决方案:您可以使用 SVN Hook脚本。创建一个Post-commit钩子脚本,您可以使用正确的参数调用上面列出的工具之一,以便在每次提交后刷新所需虚拟驱动器上的数据。 不要忘记将exe程序配置为始终以管理员身份运行,方法是修改其兼容性属性(此链接说明如何:http://technet.microsoft.com/en-us/magazine/ff431742.aspx

最后一点:Linux有同样的问题,但mount命令有自动将数据写入文件系统的选项(即-o sync或-o flush)。 VeraCrypt在内部使用mount命令,它提供了指定传递给mount命令的其他选项的可能性:如果使用VeraCrypt命令行,则可以使用switch -fs-options(即--fs-options = sync)如果您使用GUI,只需单击密码对话框中的“选项”按钮:将出现新字段,在“挂载选项”中,您可以将“同步”或“刷新”。

我希望这些元素可以帮助您解决同步问题。

答案 1 :(得分:0)

  

有没有更好的方法来做到这一点,也许是一个SVN托管服务   保证偏执客户的安全?

这部分令人困惑。您对代码库的机密性存在偏执,同时您接受使用托管服务作为其存储。 "是wissen zwei,是最好的Schwein"。

安装您的私有Subversion服务器。您可以在本地服务器,某些专用主机或Windows Azure / Amazon EC2计算机上设置Subversion服务器。