我如何估计某台计算机猜测密码所需的时间?

我如何估计某台计算机猜测密码所需的时间?

随着网络安全及其利用变得越来越突出和重要,我发现以下网站https://howsecureismypassword.net/非常有趣。当用户输入密码时,它会向他们提供台式电脑猜测该密码所需的估计时间。我理解这个时间基于许多变量,例如频率、字符多样性、简单性等。

我非常有兴趣找到一个资料来源(讲座,书籍,演讲等)来详细描述估计这一时间的过程。

其他有用的想法是某种公式或算法,可以让我(和我的计算机)计算出理论上的密码猜测时间。

对于那些对硬件知识有足够了解的人来说,这个估计值基本上是基于处理器的频率吗?由于上述网站是根据台式电脑计算的,因此我认为它与 CPU 有关。

因此,如果有人有值得参考的资料、公式或算法,请分享。如果它与当前问题相关,我不会投反对票。

答案1

“我能否估计出攻击者使用特定已知硬件来猜测使用已知散列算法的密码所需的时间?”的答案是“你不能”。

这是因为硬件仅提供最大可能的速度。你可以看看oclHashcat进行一些基准测试。

然而,软件也取得了进步,这是至关重要且不可预测的。

更重要的是,它完全取决于密码的制定方式和攻击者的攻击方式的组合。

  • 几乎没有用户使用较长的加密随机密码,这种密码只有通过启动穷举密钥空间搜索才能进行合理攻击,即掩码或暴力攻击

  • 大多数用户使用的密码非常糟糕,这些密码极易受到攻击杂交种基于规则的词典排列或其他攻击

  • 而那些不是很糟糕,但不是密码随机的,在马尔可夫攻击和高级攻击下,仍然容易受到暴力破解的攻击。基于规则的词典或掩盖攻击

  • 对于 XKCD 粉丝来说,组合器攻击,这实际上取决于词语的选择……而大多数人类在这方面确实很糟糕。

    • 因此,攻击者并没有使用每个英语单词......他们使用的是前 5000 个,或者三个前 5000 个和一个前 20,000 个,或者两个前 5000 个,一个前 5000 个动词,等等......

    • 还有名言和台词的词典。

      • 作为基于规则的攻击的一部分。
  • 或者指纹攻击在某些使用模式下效果很好。

还要注意的是,那些“密码强度”网站几乎从未考虑过摩尔定律的任何变体,而摩尔定律在密码破解(一种可高度并行化的操作)中依然活跃,所以当他们说一千年时,他们的意思是十五年左右相同价格的硬件只会进行愚蠢、盲目、愚蠢的纯蛮力穷举密钥空间搜索。

尝试一下 - 这些都是可怕且毫无意义的密码:

  • 密码

    • “立即”——好吧,只要他们说你的密码不好,这不好
  • 密码

    • “立即”——好吧,只要他们说你的密码不好,这不好
  • 密码123

    • “412年”——真的吗?
  • 密码@$$w0rd123

    • “4 千年”——是的,没错……几乎所有形式的 leet 语言都只是另一套规则
  • 珍妮佛2007

    • “25 千年”——你在开玩笑吧?另一半/女儿的名字加上他们结婚/相遇/出生的年份?
  • B@$30亿@111

    • “275 天”......这是我们用棒球术语讲的棒球 1,我们对此进行了报道。
  • 小熊维尼小熊维尼

    • “3 亿亿年”——这是 John the Ripper 针对默认(可悲的)JtR password.lst 文件的默认巨型规则。
  • Ncc1701Ncc1701

    • “9800 万年”——你在开玩笑吧?再说一遍,这是 John the Ripper 针对默认(可怜的)JtR password.lst 文件制定的默认巨型规则。
  • a1b2c3123456

    • “37 年”——这是 John the Ripper 针对默认(可悲的)JtR password.lst 文件的默认巨型规则。
  • 雷鸟

    • “59 年”——这是 John the Ripper 针对默认(可悲的)JtR password.lst 文件的默认巨型规则。

另请参阅我的回答我应该拒绝明显较弱的密码吗?在 security.stackexchange.com 上,它还涵盖强度计和破解时间。

答案2

你应该尝试https://security.stackexchange.com/,他们可能更适合帮助你。

但据我所知,如果密码不在列表中或简单的算法中,它的组合/计算次数+每秒,x0=1;x1=X0+1;xn=x(n-1)+1.并且如果使用非英文字母,似乎有一个额外的时间因素

相关内容