在保护对本地加密文件或设备的访问免受确定的(和有能力的)对手的情况下,是否有任何理由相信使用密钥文件实际上是强(伪随机,长)密码的重大障碍才不是?
我自己使用它们作为穷人的两因素身份验证方案已经有一段时间了,但是在阅读了最近的一些安全新闻之后,我开始怀疑它们是否真的增加了任何有意义的价值——所以我做了一些快速的数学,我研究得越多,我就越不相信他们比一个简单的脚本小子拥有更多资源或才华的人会增加任何价值。我想得越多,我就越认为任何可以破解或以其他方式获得我用来加密文件或驱动器的很长密码之一的人都不会很难拿到我的密钥文件,并确定通过蛮力攻击和良好的 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 年前开始。如今,它们具有屏幕捕获功能,我不认为可以将恶意代码放到给定机器上的人在出于身份验证目的访问密钥文件时将无法复制密钥文件,即使它们处于脱机状态并且完全无法物理访问其余时间。
那么,我是否遗漏了某些东西,做错了数学,或者密钥文件作为第二个身份验证因素对于确定的对手而言无效,并且本地加密受安全密码保护?