加密工具在现代化环境中的困境:从BoxCryptor Classic到加密可用性挑战
引言
首先,祝大家新年快乐!我希望2016年是一个精彩、健康、充满乐趣、喜悦、能量和许多愉快惊喜的一年。
我记得我所有的数据都可以装在一张软盘上。十次。第一台笔记本电脑看起来(感觉也像)是带轮子的大型机,整个互联网可能都可以存储在一个硬盘上。
事情已经改变了。技术让我们真正实现了移动化。移动性不再是一个设备,而是一个概念,一种生活方式。我们已经习惯了随时随地访问任何东西;因此,“将软盘锁在桌子里以保持安全”对大多数人来说不再是一个可行的选择。数字化和便携性的增加带来了暴露和风险的增加。这是2016年,幸运的是,我们找到了保护我们东西安全的方法,对吧?
人们说,“加密你的东西”。加密你的通信,加密你的数据。加密加密加密。我们多年来一直听到这个,所以技术一定也准备好了,对吧?
随着数据量和数据重要性的增加,作为一个经常旅行的人,我几年前决定开始使用“云”存储作为我的主要备份形式。为了明确起见,我认为“云”是“别人的电脑”,因此——根据定义——是一个我不信任的位置。此外,使用云存储不一定是我频繁旅行的结果,而只是一种简单的存储数据(和备份)的异地方式。它解决了许多问题,但也带来了新的挑战:解决“信任”问题。
当然,我使用了全硬盘加密。小菜一碟。几乎所有的操作系统都允许你开箱即用地做到这一点,在某些情况下,你的硬盘甚至原生支持它。猜猜看,当我的数据同步到云时,它并没有真正保护我的数据。除此之外,一旦我的笔记本电脑运行,硬盘加密除了减慢我的机器速度之外,并没有做太多(叹气)。总的来说,这可能是一个聪明的做法(分层防御等等),但一旦你想使用你的设备,它并没有解决任何问题。
要求
所以我发现我需要额外的加密软件。我卷起袖子(好吧,不是真的),并打开了Google。我的要求很简单:
- 我有各种数据集。我想为每个数据集使用不同的密钥/密码,并且希望能够在我想要的时候打开/关闭一个数据集。我觉得这是一个重要的功能,因为我不想让我的所有数据一直“打开”。此外,每个数据集都值得并且需要自己的密码。(即使你的机器上没有存储客户数据和个人数据,我相信你可以想到不为所有东西使用相同密码的原因。)
- 当我的数据备份/同步到云并返回到我的第二台笔记本电脑时,我想确保同步过程尽可能高效。(也就是说,不要浪费带宽,快速同步)
- 我使用Windows和Mac(OSX)设备的组合。
- 虽然我有一点技术 savvy,但我更喜欢用户友好和尽可能透明的东西。(即,当我打开一个“集合”时,我只希望它与我的系统的其余部分集成,而不需要我施展黑魔法、伏都教、做两个后空翻或肛门插入光剑才能首先使用数据。)
- 并非我所有的数据都需要同步到云。事实上,我不想让一些数据同步到任何地方。
- 我不介意为工具付费。没有免费的午餐。
选项
查看可用的应用程序,我发现主要有3个选项或模型:
- 单容器基于:应用程序创建一个单个(大)加密文件,并允许我打开(解密)该文件。解密后,大文件被挂载为虚拟驱动器,我可以以透明的方式使用它。
- 文件基于:工具与文件系统上的现有文件交互,我必须手动加密和解密每个文件。
- 文件基于容器:也许这个模型有更好的术语,但类似于容器基于模型,应用程序创建一个虚拟驱动器,允许我以透明的方式访问我的数据。主要区别在于,每个文件和文件夹在后端由应用程序单独加密(而不是存储在一个大文件中),因此所有加密的文件和文件夹都作为单独的文件存储在文件系统上。
哪个最好?嗯,这取决于你如何看待它。让我们暂时把加密部分从等式中拿出来。让我们假设(只是为了简单起见)没有后门,隐私和加密方面得到了正确实施和信任……当然,我只是做出这个声明,以避免一场我不会赢、不能赢甚至不想赢的讨论,因为你们所有的论点可能都是对的。既然论点可能对所有应用程序都是正确的,我们也可以对它们进行抽象。
所以——让我们纯粹关注功能要求和工具的可用性。(毕竟,这些是决定人们是否会使用它的标准,无论我们喜欢与否。)我决定尝试一堆工具,测试所有3个模型,并尝试找到满足我简单要求的最佳模型。
单容器
容器基于的方法(TrueCrypt、VeraCrypt等)效果很好。它允许我创建单独的容器,每个容器都有自己的密钥,并在Windows、OSX等上运行。挂载容器后,会创建一个虚拟驱动器,允许我以非常容易的方式与我的数据交互。太好了。
不幸的是,由于所有东西都存储在一个单个大(巨大)文件中,“同步到云”备份过程并不那么好。每次我对其中一个文件进行更改时,都必须将一个10Gb的文件同步到云,这并不那么好。除此之外,我发现(艰难的方式)使用云备份和恢复功能恢复已删除的文件也不是那么用户友好。
文件基于
也许文件基于的方法可以解决同步问题。我尝试了几个工具,允许我在需要时加密和解密单个文件。效果很好,但我厌倦了每次手动加密/解密。不是那么用户友好。此外,我发现找到一个跨平台且相对易于使用的良好工具并不那么容易。
文件基于容器
经过一些基本的Google搜索,我找到了一个叫做BoxCryptor(现在叫BoxCryptor Classic)的工具。在玩了这个工具之后,我发现它做得很好,并满足了我所有的要求。w00t。根据Google结果,它似乎也是唯一满足要求的工具()。无论如何,我非常乐意支付许可证费用,以(希望)支持未来的开发,避免工具死亡,并让开发人员支付他们的账单。
从加密的角度来看,BoxCryptor Classic基于encFS,并默认使用以下设置:
- 密码算法:ssl/aes
- 密码密钥大小:256
- 密码块大小:4096
- PBKDF2迭代次数:5000
- 盐大小:20
- 每块HMAC:否
- 唯一IV:否
- 链式IV:否
- 外部IV:否
(我会让专家判断这有多安全,但没有启用最后4个设置,PBKDF2迭代次数设置为5000,并且没有选项更改这些值,看起来做出了优先性能而不是隐私的选择。再次,我不是加密专家。)
时间过去了,“未来开发”肯定发生了。版本2发布了,并决定放弃BoxCryptor Classic版本。我升级到v2……并发现它不再满足要求。我没有资格判断新架构的安全性,我确信他们仔细听取了客户的要求来确定新功能集;但对我来说,新的(更昂贵的)版本缺乏“创新”功能,这些功能使他们的产品脱颖而出,与众不同,并且是我最初购买许可证的部分原因。
更具体地说,他们决定取消拥有单独数据集的能力,每个数据集都用自己的密钥/密码保护。新模型是“单集,单密码” only模型。
悲伤的消息,但至少BoxCryptor Classic版本仍然稳定且良好地工作。暂时如此。
几个月前,Apple发布了“El Capitan”。就像你们中的一些人一样,我有一个习惯,推迟对我的系统进行重大更新,直到事情稳定下来。果然,人们开始抱怨各种各样的事情,包括使用BoxCryptor Classic。
我在BoxCryptor论坛上找到了这个线程:https://forums.boxcryptor.com/topic/boxcryptor-classic-mac-os-x-1011-el-capitan#post-7948 TL;DR:BoxCryptor Classic不再工作;并且不再在任何更新的操作系统上支持。是的,有一个肮脏的变通方法,但它可能会在未来的OSX升级中死亡。
我与他们的支持团队接触,他们确认他们将坚持他们的决定,只在新系统上支持v2,并且将原始功能放回太复杂了。
真糟糕。
回到起点。(不,我没有预料到这一点)
所以——接下来是什么?我不知道。我被告诉加密加密加密,我也一直告诉人们做同样的事情。但我不知道如何让它真正工作。我的意思是,如何让它可用。也许我的要求太进步或只是 plain stupid?我也不知道。我不声称比任何人都聪明,但我可以想象很多人有同样的感觉。
目前,我暂缓升级到El Capitan,但这感觉更像是治标不治本。我讨厌这样做。我试图找到一个可行的替代方案。毕竟,自从我开始使用BoxCryptor以来,几年已经过去了,所以我确信会有其他工具做同样的事情(从加密和可用性的角度)。
TL;DR:不。唯一“类似”的替代方案将涉及构建自定义encFS实现,使用可能不稳定/不受支持的端口……并不是 exactly 用户友好性、可靠性,这将说服任何人使用该解决方案。“它是开源的,所以你可以改进它”并不重要。
加密在现代环境中准备好使用了吗?也许。(我不够聪明,无法真正回答这个问题)工具准备好了吗?根据我的经验:不太多。(或者至少,没有那么多)
概念上,加密工作,工具完成任务。但除非我错过了什么,当前在现代/混合“随时随地任何东西”社会中的组合实现状态,似乎将我们带回了石器时代的现实。
也许其中一个原因是基于没有足够的人在使用它。然后 again,可能首先使用工具太困难。或者工具可能缺乏在当前技术进化