如果某人窃取了我的keepass .kdbx 文件但从未获得主密码,那么该人 破解我的文件有多容易?
这是一个严重的威胁,还是蛮力攻击需要大量的计算时间?
假设密码长度超过 10 个字符,其中随机分布的字符包括所有字母、数字和大多数非字母数字键盘符号。
如果某人窃取了我的keepass .kdbx 文件但从未获得主密码,那么该人 破解我的文件有多容易?
这是一个严重的威胁,还是蛮力攻击需要大量的计算时间?
假设密码长度超过 10 个字符,其中随机分布的字符包括所有字母、数字和大多数非字母数字键盘符号。
KeePass 使用自定义密码派生过程,其中包括使用随机密钥(然后用作盐)的对称加密的多次迭代,如那里所述。默认迭代次数为 6000,因此处理一个密码需要 12000 次 AES 调用(加密是在 256 位值上完成的,AES 使用 128 位块,因此每一轮至少必须有两次 AES 调用)。使用最近的四核PC(带有漂亮的AES 指令的 PC ),您应该能够每秒测试大约 32000 个潜在密码。
在可以在键盘上键入的数百个字符中均匀选择十个随机字符,就有 10 20 个潜在密码,而暴力破解平均会尝试其中的一半。你存在 10 20 *0.5/32000 秒,也称为 5000 万年。但是用两台PC那也只有2500万年。
这假设密码派生过程在某些方面没有缺陷。在“自定义密码派生过程”中,“自定义”是一个可怕的词。此外,迭代次数是可配置的(6000 只是默认值)。
你是对的,这需要很长时间。但不要忘记,您不需要尝试所有密码组合。如果你打对了你就完成了。所以你真的不需要5000万年。与使用 2 台四核 PC 相比,您有更多选择。您可以使用基于 Amazon Cloud 的集群,并且可以启动 5000 个高 CPU 实例。当然这很贵,但您不需要购买 5000 台高端计算机,因此价格会大大降低。
但我不知道你会通过使用集群强行多久。当然,今天的普通 PC 需要很长时间才能完成。