Keepassx允许您决定需要运行多少次转换才能解锁Keepass数据库。在我的Keepassx (2.0.3)版本中,最大值似乎是999,999,999。在这种情况下,我的笔记本电脑大约需要22秒才能解锁数据库。我想,一个结实的工作站所需的时间会比这短。考虑到这一点,假设其他人能够访问数据库,这个设置能阻止其他人访问数据库吗?让我们简单地说,一个人(而不是一个组织)拥有一台电脑来完成这种工作。你可以假设他们每一次都要做多少工作,与他们20年后所能获得的计算能力有关?
发布于 2020-01-06 03:24:17
密码管理器数据库中的密码可以是任意长的,因为用户不需要记住它们,他只需从密码管理器中复制它们。但是*主密码没有存储在数据库中。它应该被记住或存储在其他地方(例如在Yubikey或Titan密钥之类的硬件中)。你能记得多少长度的密码?10个字符?12个?
人类可读的12个字符的密码意味着大约72位的熵。这是很容易被强暴的。为了减缓野蛮人的压力,Keepass使用转换。
需要多慢?
假设您的密码为12个字符,每个字符的范围为“人类友好型”字符(A、A、0-9 ->62个字符)。有62^12个可能的密码,这大约是10^22。
假设密码转换需要1s。假设攻击者有1000个CPU。他将能够检查1000个密码/S。
一年中大约有3x10^7秒。攻击者将每年检查3x10^7x1000 000 =3x10^13密码。
要检查所有10^22密码,他需要10^22 /(3x10^13) ~= 3x10^8年。
如果使用较少的迭代,所以转换O1s需要0.001s,那么攻击者将需要3x108x0.001=3x10^5=30万年。
不仅要花很长时间。这也要花钱:购买这些CPU,供电等等,谁会租一个1000多年的CPU集群只是为了破解你的密码?
安装一些硬件,如摄像机或密钥记录器,并在短时间内获得密码,成本要低得多。
对于您的问题:即使转换0.001和12个随机字符的密码,也会在数千年内阻止攻击者。
https://security.stackexchange.com/questions/223730
复制相似问题