我想在服务器上存储一些文件,但需要对它们进行加密,以便加密/解密只在客户端发生。
一个显而易见的选择是像通过 webdav/ftp 访问的 truecrypt 卷之类的东西...但这里的问题是,每次对卷内的任何文件进行更改时,都需要传输整个卷(两次)。
还有其他解决方案吗?也许像 truecrypt 一样具有内置远程访问功能?或者是一种类似于 webdav/ftp 的协议,具有更细粒度的块级访问,而不是文件级访问?
或者我应该从一个完全不同的角度来解决这个问题?
答案1
我认为你的理想解决方案是BoxCryptor。它会单独加密每个文件,因此如果只有一个文件被更改,您无需传输整个卷,并且如果文件的总大小小于 2GB,它是免费的。文件名也被加密。我将它与 Dropbox 一起使用,效果很好。
答案2
iSCSI 将文件或磁盘分区作为块设备公开给远程系统。如果您的远程主机支持 iSCSI 或可以运行 iSCSI 服务器(iet
在 Linux 上,不确定 Windows 上有哪些选项),那么这将可行。
(请注意:我使用了在 Linux 上运行的 iSCSI 服务器 [又名“目标”] 和在 Windows XP 上运行的 iSCSI 客户端 [又名“启动器”] 的组合,效果非常好。Vista 和 7 内置了 iSCSI 启动器支持,可以为 XP 下载/安装)
Windows 和 Linux 都支持安装 iSCSI 卷(又名 iSCSI 目标),您应该能够像任何其他磁盘分区/块设备一样将其设为 Truecrypt 分区。
Truecrypt 在写入块设备之前加密,在读取之后解密。因此远程 iSCSI 服务器最终只是接收和发送加密数据,而它不可能知道如何处理这些数据,所有加密/解密都在您这边完成。
您可能还想了解一下 Tahoe-LAFS,它是专门为此目标和冗余而设计的。
答案3
你可以使用TrueCrypt卷,并使用 UNIX 的同步仅移动增量(即使对于二进制文件也可以工作)。