SVN + Veracrypt + Dropbox?

标签 svn encryption dropbox

我正在开发一个私有(private)项目,并开始对有人窃取我的代码感到有点偏执,并且不想依赖当前源代码控制托管服务的诚实,尽管我没有任何理由不这样做信任他们。在可预见的 future ,我将是唯一从事该项目的人。

我正在考虑创建一个小型 Veracrypt 虚拟驱动器和一个 SVN 存储库,并将加密文件保存在 Dropbox 中以便自动同步。

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

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

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

最佳答案

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

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

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

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

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

最后一点:Linux 也有同样的问题,但 mount 命令有自动将数据写入文件系统的选项(即 -osync 或 -oflush)。 VeraCrypt 在内部使用 mount 命令,并且可以指定要传递给 mount 命令的其他选项:如果您使用 VeraCrypt 命令行,则可以使用开关 --fs-options (即 --fs-options=sync)如果您使用 GUI,只需单击密码对话框中的“选项”按钮:将出现新字段,并且在“安装选项”中您可以输入“同步”或“刷新”。

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

关于SVN + Veracrypt + Dropbox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25877910/

相关文章:

security - 为什么银行对 ATM 卡使用 4 针密码?

node.js - 开源程序中的加密?

web - 如何将统一网络播放器游戏上传到 Google Drive?

android - Gradle中返回的SVN版本号错误(org.tmatesoft.svn)

svn - 如何在 SVN 中为单个文件的单个修订设置属性

svn - 在jenkins上执行maven发布失败导致svn文件锁定

node.js - 使用 CryptoJS 解密 openssl AES

python - Dropbox 中的文件夹名称

sql-server - 如何更改保管箱文件夹的路径

svn - 如何自动更新SVN外部