加密技术的石器时代困境
引言
首先祝大家新年快乐!我希望2016年将是充满乐趣、欢乐、能量和惊喜的美好健康之年。
还记得我所有数据都能装进一张软盘的时代吗?甚至能装十次。第一批笔记本电脑看起来(感觉起来)就像带轮子的主机,整个互联网可能只需一个硬盘就能存储。
时代已经改变。技术让我们真正实现了移动化。移动性不再是一个设备,而是一种概念、一种生活方式。我们已经习惯随时随地访问任何内容;因此对大多数人来说,“将软盘锁在桌子里以保证安全"不再可行。数字化和便携性的提升伴随着暴露风险和风险的增加。现在是2016年,幸运的是我们已经找到了保护数据的方法,对吧?
人们常说"加密你的数据”。加密通信,加密数据。加密再加密。多年来我们一直听到这样的建议,所以技术应该已经准备好了,对吧?
随着数据量和数据重要性的增加,作为一个经常旅行的人,我几年前决定开始使用"云"存储作为主要备份方式。需要明确的是,我认为"云"就是"别人的电脑",因此从定义上来说是一个我不信任的地方。使用云存储并非因为我频繁旅行,而只是一种方便的异地存储数据(和备份)的方式。它解决了许多问题,但也带来了新挑战:解决"信任"问题。
当然我使用了全盘加密。这很简单。几乎所有操作系统都支持开箱即用的全盘加密,某些情况下硬盘甚至原生支持。但猜猜看,当数据同步到云端时,这并不能真正保护我的数据。更重要的是,只要我的笔记本电脑在运行,全盘加密除了让机器变慢外作用有限(叹气)。总的来说,这可能是明智之举(分层防御等),但一旦你想使用设备,它并不能解决任何问题。
需求
所以我意识到需要额外的加密软件。我卷起袖子(好吧,并没有),打开了Google。我的需求很简单:
- 我有不同的数据集。我希望每个数据集使用不同的密钥/密码,并能够随时打开/关闭数据集。我认为这是一个重要功能,因为我不希望所有数据一直处于"打开"状态。此外,每个数据集都应该有自己独特的密码。
- 由于数据会备份/同步到云端并同步到我的第二台笔记本电脑,我希望同步过程尽可能高效(即不浪费带宽且快速同步)。
- 我使用Windows和Mac(OSX)设备。
- 虽然我懂一点技术,但我更喜欢用户友好且尽可能透明的解决方案。
- 并非所有数据都需要同步到云端。事实上,有些数据我根本不想同步到任何地方。
- 我不介意为工具付费。天下没有免费的午餐。
可选方案
查看可用应用程序后,我发现主要有三种选项或模型:
- 单容器模式:应用程序创建单个(大)加密文件,并允许我打开(解密)该文件。解密后,这个大文件会挂载为虚拟驱动器,我可以透明地使用它。
- 文件模式:工具与文件系统上的现有文件交互,我需要手动加密和解密每个文件。
- 文件级容器模式:也许有更好的术语来描述这种模型,但与容器模式类似,应用程序创建虚拟驱动器,允许我透明地访问数据。主要区别在于,每个文件和文件夹在后端由应用程序单独加密(而不是存储在一个大文件中),因此所有加密的文件和文件夹都作为单独文件存储在文件系统上。
哪种最好?这取决于你的视角。让我们暂时抛开加密部分。假设(为简单起见)没有后门,隐私和加密方面都得到正确实施和信任…当然,我这么说只是为了避免一场我无法赢也不想赢的讨论,因为你们的所有论点可能都是正确的。既然所有应用程序的论点可能都正确,我们也可以抽象掉它们。
所以——让我们纯粹关注功能需求和工具的可用性。(毕竟,这些是决定人们是否使用它的标准,无论我们喜欢与否)。我决定尝试一堆工具,测试所有三种模型,并找到满足我简单需求的最佳模型。
单容器模式
容器方法(TrueCrypt、VeraCrypt等)效果很好。它允许我创建单独的容器,每个容器都有自己的密钥,并在Windows、OSX等系统上运行。挂载容器时,会创建虚拟驱动器,让我可以非常轻松地交互数据。很好。
不幸的是,由于所有内容都存储在一个单个大文件中,“同步到云端"的备份过程并不理想。每次修改其中一个文件时都必须将10GB的文件同步到云端并不方便。此外,我(艰难地)发现使用云备份和恢复功能恢复已删除文件也不太用户友好。
文件模式
也许基于文件的方法可以解决同步问题。我尝试了几种工具,允许我在需要时加密和解密单个文件。效果不错,但我厌倦了每次手动加密/解密。不太用户友好。此外,我发现很难找到跨平台且相对易用的好工具。
文件级容器模式
经过基本搜索后,我找到了一个名为BoxCryptor(现称为BoxCryptor Classic)的工具。使用该工具后,我发现它做得很好,满足了我所有需求。基于Google结果,它似乎是唯一满足需求的工具。无论如何,我很乐意支付许可证费用,以支持未来开发,避免工具消亡,并让开发人员能够支付账单。
从加密角度来看,BoxCryptor Classic基于encFS,默认使用以下设置:
- 密码算法:ssl/aes
- 密码密钥大小:256
- 密码块大小:4096
- PBKDF2迭代次数:5000
- 盐大小:20
- 每块HMAC:否
- 唯一IV:否
- 链式IV:否
- 外部IV:否
(我让专家判断这有多安全,但最后四个设置未启用,PBKDF2迭代次数设置为5000,且无法更改这些值,看起来是选择了性能而非隐私。再次声明,我不是加密专家)。
时间流逝,“未来开发"确实发生了。版本2发布,并决定放弃BoxCryptor Classic版本。我升级到v2…发现它不再满足需求。我无法判断新架构的安全性,我相信他们仔细听取了客户的需求以确定新功能集;但对我来说,新版本(且更昂贵)缺乏使其产品脱颖而出、与众不同且是我最初购买许可证原因之一的"创新"功能。
更具体地说,他们取消了拥有单独数据集(每个数据集使用自己的密钥/密码保护)的能力。新模式是"单数据集,单密码"模式。
令人沮丧,但至少BoxCryptor Classic版本仍然稳定运行。暂时如此。
几个月前,苹果发布了"El Capitan”。像你们中的一些人一样,我有推迟系统重大更新的习惯,直到事情稳定下来。果然,人们开始抱怨各种问题,包括BoxCryptor Classic的使用。我在BoxCryptor论坛找到了这个帖子:https://forums.boxcryptor.com/topic/boxcryptor-classic-mac-os-x-1011-el-capitan#post-7948 简而言之:BoxCryptor Classic不再工作;且不再支持任何新操作系统。是的,有一个临时解决方法,但可能在未来的OSX升级中失效。我与他们的支持团队交流,他们确认将坚持只在新系统上支持v2的决定,并且恢复原始功能太复杂。
真糟糕。
回到起点。(不,我没有预料到这一点)
所以——接下来怎么办?我不知道。有人告诉我要加密加密再加密,我也一直告诉别人这样做。但我不知道如何让它真正工作。我的意思是,如何让它可用。也许我的需求太超前或纯粹愚蠢?我也不知道。我不声称自己比别人聪明,但我能想象很多人有同感。
目前,我暂不升级到El Capitan,但这感觉更像是治标不治本。我讨厌这样做。我试图找到可行的替代方案。毕竟,自从我开始使用BoxCryptor以来已经过去几年,所以我确信会有其他工具做同样的事情(从加密和可用性角度)。简而言之:没有。唯一的"类似"替代方案涉及构建自定义encFS实现,使用可能不稳定/不受支持的端口…这并不完全是能够说服任何人使用该解决方案的用户友好性和可靠性。“它是开源的,所以你可以改进它"并不重要。
加密技术在现代环境中准备好使用了吗?也许。(我不够聪明,无法真正回答这个问题)工具准备好了吗?根据我的经验:不太多。(或者至少,没有那么多)
从概念上讲,加密技术有效,工具也能完成工作。但除非我遗漏了什么,否则在现代/混合"随时随地任何事物"社会中,当前的组合实现状态似乎将我们带回了石器时代的现实。
也许其中一个原因是使用它的人不够多。但话说回来,可能首先使用工具太困难。或者工具可能缺乏当前技术演进和行为状态所需的重要功能。
能做到吗?当然可以。我相信这"只是"一个UI和功能集问题。只需要将加密人员与UI设计师和构建功能丰富应用程序的人员聚集在一起,构建人们可以使用的东西,而不仅仅是完成工作的东西。
为什么这没有发生(或没有更频繁地发生)?我不知道。BoxCryptor团队做对了,我不是唯一这么认为的人。向他们致敬。可惜他们没有完全意识到自己放弃了一颗原钻。我坚信(并希望)其他人会采纳这些想法并继续发展。
好消息是,没有什么能阻止任何人制作出可以简单使用的东西,并在需要时以更高级的方式使用。Whisper Systems是如何正确做事的完美例子。人们谈论Signal并使用它,因为它效果很好。
此外,没有什么能阻止任何人为他们的工作收取少量费用。如果工具有效,人们会购买你的东西。即使是开源的。
我需要你的帮助!
我想用一些问题结束这个故事/抱怨:
- 需要什么才能有人构建出能够改变现状、弥合技术与人们实际使用之间差距的东西?
- 什么是好的激励?
- 需要什么才能让我们的社区从喊建议转变为真正使遵循建议成为可能?
- 如果我们不能联合力量并说服更多人可用性很重要,我们真的是一个社区吗?
我期待看到你的答案、问题、评论和建议。我也期待支持能够改善我们生活的倡议。
黑客改变规则并寻求改进…成为黑客。
© 2016, Peter Van Eeckhoutte (corelanc0d3r)。保留所有权利。