加密技术的石器时代:现代加密工具的现实困境

本文深入探讨了现代加密工具在实际应用中的挑战,对比了三种加密模型的特点,分析了BoxCryptor等工具的技术实现和局限性,揭示了加密技术在易用性和功能性之间的平衡难题。

引言

首先,祝大家新年快乐!我希望2016年将是一个美好、健康的一年,充满乐趣、快乐、活力和许多愉快的惊喜。

我记得我所有的数据都可以装在一张软盘里。10次。第一批笔记本电脑看起来(感觉起来)像带轮子的大型机,整个互联网可能都可以存储在一个硬盘上。

事情已经改变。技术让我们真正实现了移动化。移动性不再是一个设备,而是一个概念,一种生活方式。我们已经习惯了能够随时随地访问任何东西;因此,“将软盘锁在桌子里以保持安全"对我们大多数人来说不再是一个可行的选择。数字化和便携性的增加伴随着暴露和风险的增加。这是2016年,幸运的是我们找到了保护我们物品安全的方法,对吗?

人们说"加密你的东西"就行了。加密你的通信,加密你的数据。加密加密加密。我们已经听了好几年了,所以技术一定也准备好了,对吗?

随着数据量和数据重要性的增加,作为一个经常旅行的人,我几年前决定开始使用"云"存储作为我的主要备份形式。需要明确的是,我认为"云"是"别人的电脑”,因此——根据定义——是一个我不信任的位置。此外,使用云存储不一定是我频繁旅行的结果,而只是一种存储数据(和备份)的简便方式。它解决了许多问题,但也带来了新的挑战:解决"信任"问题。

当然,我使用的是全硬盘加密。小菜一碟。几乎所有的操作系统都允许你开箱即用地做到这一点,在某些情况下,你的硬盘甚至原生支持它。

猜猜看,当我的数据同步到云端时,它并不能真正保护我的数据。除此之外,一旦我的笔记本电脑运行,硬盘加密除了减慢我的机器速度之外,并没有做更多的事情(叹气)。总的来说,这可能是一个明智的做法(分层防御等等),但一旦你想使用你的设备,它就没有解决任何问题。

要求

所以我发现我需要额外的加密软件。我卷起袖子(好吧,不是真的),然后打开了谷歌。我的要求很简单:

  • 我有各种数据集。我想为每个数据集使用不同的密钥/密码,并且希望能够在我想要的时候打开/关闭一个数据集。我觉得这是一个重要的功能,因为我不想一直"打开"我所有的数据。此外,每个数据集都值得并且需要自己的密码。(即使你的机器上没有存储客户数据和个人数据,我相信你能想到不使用相同密码的原因。)
  • 当我的数据备份/同步到云端并返回到我的第二台笔记本电脑时,我想确保同步过程尽可能高效。(也就是说,不要浪费带宽,快速同步)
  • 我使用的是Windows和Mac(OSX)设备的组合。
  • 虽然我懂一点点技术,但我更喜欢用户友好且尽可能透明的东西。(即,当我打开一个"数据集"时,我只希望它能与系统的其余部分集成,而不需要我施展黑魔法、巫术、做两个后空翻或肛门插入光剑才能使用数据。)
  • 并非我所有的数据都需要同步到云端。事实上,有些数据我根本不想同步到任何地方。
  • 我不介意为工具付费。天下没有免费的午餐。

选项

查看可用的应用程序,我发现了主要有3个选项或模型:

  1. 基于单一容器:应用程序创建一个单一(大)的加密文件,并允许我打开(解密)该文件。解密后,这个大文件被挂载为一个虚拟驱动器,我可以以透明的方式使用它。
  2. 基于文件:该工具与文件系统上的现有文件交互,我必须手动加密和解密每个文件。
  3. 基于文件的容器:也许有更好的术语来描述这种模型,但类似于基于容器的模型,应用程序创建一个虚拟驱动器,允许我以透明的方式访问我的数据。主要区别在于,每个文件和文件夹都由应用程序在后台单独加密(而不是存储在一个大文件中),因此所有加密的文件和文件夹都作为单独的文件存储在文件系统上。

哪个最好?嗯,这取决于你如何看待它。让我们暂时把加密部分从等式中去掉。让我们假设(只是为了简单起见)没有后门,隐私和加密方面都得到了正确实施和信任……当然,我这么说只是为了避免一场我赢不了、不能赢甚至不想赢的讨论,因为你们所有的论点可能都是对的。既然这些论点可能对所有应用程序都成立,我们也可以对它们进行抽象。

所以——让我们纯粹关注功能需求和工具的可用性。(毕竟,这些是决定人们是否会使用它的标准,不管我们喜欢与否)。我决定尝试一堆工具,测试所有3种模型,并试图找到满足我简单要求的最佳模型。

单一容器

基于容器的方法(TrueCrypt, VeraCrypt, …)效果很好。它允许我创建单独的容器,每个容器都有自己的密钥,并且可以在Windows、OSX等系统上运行。挂载容器后,会创建一个虚拟驱动器,允许我以非常简单的方式与我的数据交互。太好了。

不幸的是,由于所有内容都存储在一个单一的大(巨大)文件中,“同步到云端"的备份过程并不那么美好。每次我对其中一个文件进行更改时,都必须将一个10GB的文件同步到云端,这并不友好。除此之外,我(艰难地)发现,使用云备份和恢复功能来恢复已删除的文件也不是那么用户友好。

基于文件

也许基于文件的方法可以解决同步问题。我尝试了几种工具,允许我在需要时加密和解密单个文件。效果不错,但我厌倦了每次都必须手动加密/解密。不太用户友好。此外,我发现找到一个跨平台且相对易于使用的优秀工具并不容易。

基于文件的容器

在进行了一些基本的谷歌搜索后,我找到了一个名为BoxCryptor(现在称为BoxCryptor Classic)的工具。在使用该工具后,我发现它做得很好,满足了我所有的要求。太棒了。根据谷歌结果,它似乎也是唯一满足要求的工具()。无论如何,我非常乐意支付许可证费用,以(希望)支持未来的开发,避免工具消亡,并让开发人员能够支付他们的账单。

从加密的角度来看,BoxCryptor Classic基于encFS,默认使用以下设置:

  • 密码算法:ssl/aes
  • 密码密钥大小:256
  • 密码块大小:4096
  • PBKDF2迭代次数:5000
  • 盐大小:20
  • 每块HMAC:否
  • 唯一IV:否
  • 链式IV:否
  • 外部IV:否

(我将让专家来判断这有多安全,但最后4个设置没有启用,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实现,使用可能不稳定/不受支持的端口……这并不完全是能够说服任何人使用该解决方案的用户友好性和可靠性。“它是开源的,所以你可以改进它"并不重要。

加密技术在现代环境中准备好使用了吗?也许吧。(我不够聪明,无法真正回答这个问题)工具准备好了吗?根据我的经验:不太行。(或者至少,没有那么多)

从概念上讲,加密技术是有效的,工具也能完成工作。但除非我遗漏了什么,否则在现代/混合的"随时随地任何事物"社会中,当前的组合实现状态似乎将我们带回了石器时代的现实。

也许其中一个原因是基于没有足够的人在使用它。再者,使用这些工具可能首先就太困难了。或者这些工具可能缺乏在当前技术演进和行为状态下所需的重要功能。

能做到吗?当然可以。我相信这"只是"一个用户界面和功能集的问题。只需要将加密人员与用户界面设计师和构建功能丰富应用程序的人员聚集在一起,构建一些人们可以使用的东西,而不仅仅是能完成工作的东西。

为什么这没有发生(或者没有更频繁地发生)?我不知道。BoxCryptor团队曾经做对了,而且我不是唯一这么认为的人。向他们致敬。可惜他们没有完全意识到他们放弃了一颗原钻。我坚信(并希望)其他人会采纳这些想法并继续发展。

好消息是,没有什么能阻止任何人制作出可以以简单方式使用的东西,并在需要时以更高级的方式使用。Whisper Systems是一个如何正确做事的完美例子。人们谈论Signal,人们使用它,因为它非常好用。

此外,没有什么能阻止任何人为他们的工作收取少量费用。如果东西好用,人们会购买你的东西。即使它是开源的。

我需要你的帮助!

我想用一些问题来结束这个故事/抱怨:

  • 需要什么才能让某人构建出能够改变现状、弥合技术与人们实际使用之间的差距的东西?
  • 一个好的激励会是什么?
  • 需要什么才能让我们的社区从大声建议转变为真正使遵循建议成为可能?
  • 如果我们不能联合起来并说服更多人可用性很重要,我们真的是一个社区吗?

我期待着看到你的回答、问题、评论、建议。我也期待着支持能够改善我们生活的倡议。

黑客弯曲规则并寻求改进……成为一个黑客。

© 2016, Peter Van Eeckhoutte (corelanc0d3r)。保留所有权利。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计