SVN + Veracrypt + Dropbox?

big*_*cvs 4 svn encryption dropbox

我正在开展一个私人项目并且开始觉得有人偷了我的代码并且不想依赖当前源代码控制托管服务的诚实,尽管我没有任何理由不相信他们.在可预见的未来,我将是唯一一个参与这个项目的人.

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

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

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

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

小智 10

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

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

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

互联网上有免费工具,可以让您明确强制Windows清除特定驱动器上的所有待处理数据(例如来自Uwe Sieber主页的Sysinternals和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,只需单击密码对话框中的"选项"按钮:将出现新字段,在"挂载选项"中可以显示"同步"或"刷新".

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