在存在强密码的情况下,密钥文件是否真的增加了任何有意义的安全性?

信息安全 加密 密码学 验证 多因素
2021-09-02 22:39:26

在保护对本地加密文件或设备的访问免受确定的(和有能力的)对手的情况下,是否有任何理由相信使用密钥文件实际上是强(伪随机,长)密码的重大障碍才不是?

我自己使用它们作为穷人的两因素身份验证方案已经有一段时间了,但是在阅读了最近的一些安全新闻之后,我开始怀疑它们是否真的增加了任何有意义的价值——所以我做了一些快速的数学,我研究得越多,我就越不相信他们比一个简单的脚本小子拥有更多资源或才华的人会增加任何价值。我想得越多,我就越认为任何可以破解或以其他方式获得我用来加密文件或驱动器的很长密码之一的人都不会很难拿到我的密钥文件,并确定通过蛮力攻击和良好的 GPU 装备,其余的密钥文件是可能的。

就数学而言,包含 4 个标准字符集的 20 个字符的伪随机密码产生 95 20或 3.58*10 39种可能性,这比 128 位熵(产生 3.40*10 38种可能性)。为了获得与密钥文件相似程度的熵,如果顺序无关紧要,我需要从 100,000 个列表中选择 9 个文件(2.75*10 39种可能性),如果顺序无关紧要,我需要从 100,000 个列表中选择 8 个文件确实很重要(9.997*10 39种可能性)。

即使忽略获取和维护如此庞大的可用作潜在密钥文件的静态文件列表的实际困难,并掩盖哪些是实际存在的文件,在我看来,密钥文件方法比提交另一个约 20 个随机文件需要更多的努力字符记忆。

我可以从使用密钥文件中看到的唯一优势是防止键盘记录器......从 10 年前开始。如今,它们具有屏幕捕获功能,我不认为可以将恶意代码放到给定机器上的人在出于身份验证目的访问密钥文件时将无法复制密钥文件,即使它们处于脱机状态并且完全无法物理访问其余时间。

那么,我是否遗漏了某些东西,做错了数学,或者密钥文件作为第二个身份验证因素对于确定的对手而言无效,并且本地加密受安全密码保护?

4个回答

是的,密钥文件增加了一些安全性。根据具体情况,增加的安全性可能有用也可能没用,但它就在那里。

(正确随机生成的)密钥文件至少有 128 位熵。这不仅仅是一个好记的密码通过适当的散列,无法在合理的时间内以合理的成本破解足够长但仍然令人难忘的密码。但是,密钥文件比难忘的密码更具前瞻性。

更重要的是,将密码与密钥文件结合起来意味着您有两个身份验证因素(假设您键入密码而不是将其存储在同一台机器上的文件中,否则密码和密钥文件扮演相同的角色。)密码是“您知道的东西”,而密钥文件是“您拥有的东西” -您拥有包含密码的存储媒体。

多因素身份验证很有用,因为不同的因素会受到不同的威胁。在您使用凭证的机器上运行的恶意软件是最坏的情况:它可以窥探您以任何方式输入的任何凭证 - 并且无论如何它都可以冒充或破坏应用程序,因此无论您的计算机发生什么,您都已经输了证书。许多其他攻击只影响一个向量。例如,窃取备份磁带的攻击者可以获得密钥文件,但不能获得密码。相反,有许多攻击可以泄露密码但不能泄露密钥文件,例如肩部冲浪(可能由摄像头帮助)、硬件键盘记录器或任何其他形式的物理窥探(例如通过声音或无线电发射)。

  1. GPU 在攻击密钥文件时没有用处。GPU 通常用于执行每个哈希需要相对较少内存的攻击,密钥文件显然需要更多。
  2. 没有理由必须将密钥文件保存在计算机上,以便攻击者可以访问。密钥文件可以很容易地保存在闪存驱动器上,因此更难通过恶意软件进行检索。(是的,专门的恶意软件可以寻找密钥文件,但这可能必须专门针对您。)
  3. 大多数用户没有好的密码。是的,如果你的密码确实有 128 位熵,那么密钥文件可能不会增加太多,但你会是个例外。

是的,密钥文件有很大的不同。该人必须:

  1. 知道您首先使用了密钥文件
  2. 了解您为密钥文件选择的文件的位置
  3. 知道你选择了多少文件
  4. 然后同时破解密码

这使得破解变得更加困难。

通过将密钥文件存储在其他地方,也许是在 SD 卡上,您可以使其变得更加复杂,并且任何人都不太可能了解您的密钥文件。我建议使用您还使用隐藏卷加密的辅助驱动器。

外卷可以包含“成人主题”视频(我不确定我们是否可以在此处使用“p-word”)和/或您“想要加密”的其他文件。

在隐藏卷中,您可以存储音乐库或您喜欢的任何大型文件集。您可以创建 20 个包含无数数组 .pdf 和文本文件的演出。因为您可以一次选择和使用多个密钥文件,攻击者必须访问加密的隐藏卷,找出您选择用于密钥文件集的确切文件(我建议一次为您的密钥文件使用 10 个或更多文件),然后显然一起破解您的密码。

我强烈建议使用这种方法,因为它有助于确保您的加密文件不会过时。我可能错了,但就个人而言,我毫不怀疑,在 20 年内,即使是最好的密码(意味着大多数加密软件允许的最多 60 个包)也将成为可能。30 年后,密码可能会成为过去。然而,即使将来有人很可能能够相当容易地破解密码,但通过必须获得正确的 10 个或更多文件的集合来破解密钥文件即使不是不可能也将非常困难,尤其是在他们甚至不知道的情况下在哪里可以找到您的密钥文件。

所以,是的,是的,是的。密钥文件绝对可以提高您的安全性。但是,即使他们只增加了 20%,难道不值得多花 20 秒来加载您的密钥文件集吗?我认同。这样做可能是您的文件被破解与否的区别。