0


任何密码都算出来,只是时间问题,不是很不安全吗?

针对题目对有限位数的密码解密仅是时间问题,iPhone表示压力不大。

一部锁屏密码未知的iPhone的手机,如何盲猜出其6位数的密码?

由于密码只有6位数,理论上最多需要106= 1000000次即可猜出正确的密码。概率意义上需要0.5 * 106= 500000次可以大概率盲猜出正确密码。按照题主的预设,盲猜出密码应该仅仅是时间问题。

可是,iPhone显然不给大家钻空子的时间!

6次盲猜密码错误,iPhone立马会警觉起来,不光记忆你错误了6次,而且还提示你,由于错误次数太多,请1分钟后再重试。

如果1分钟后又输错了,记录一共错了7次,同时提醒你5分钟后再试。

下次如果再错,会一直记录错误的次数,同时拉大重试的时间。

尽管时间越拉越长,如果一直可以这样重试,破解密码也仅仅是时间问题,不是嘛?

可是iPhone一旦发现错误到达10次,直接就永久锁屏了,不给你重试的机会了。

把iPhone手机重启,是否可以让iPhone忘记掉失败的次数?

重启无法抹掉iPhone的记忆,因为失败次数记录在非易失内存(NVRAM)里,即使掉电,也不会消失。

所以,只要iPhone手机的锁屏密码,不是特别简单,比如000000、111111,稍微复杂一点,只要10次盲猜猜不出就是安全的。

还有一个场景就是银行卡的密码,在ATM机上取款也是6位数。只要连续输错3次密码,就会吞卡,压根不给多次重试的机会。

换一个ATM机重试?

用户输错密码次数的记录,并不保存在ATM机上,而是中心服务器上,所以换ATM机器并没有用,只要累计输错3次密码就吞卡。除非用户能够将中心服务器上密码错误记录抹掉。

无论密码多么复杂、无论密码位数多长,盲猜正确的概率尽管小,但是并不为0。

所以,安全是相对的,绝对安全是永远不存在的!但是安全专家能做到的,就是让不安全的概率无限接近于0

当前主流的加密密钥128 bit位长,盲猜出的概率= 1/2128 ,这个概率有多小呢?

大概就相当于全国福利彩票的一等奖获得者,连续玩5次33选7,每次都能押对数字的概率。

读者可能会说,尽管这个概率低,但是可以离线无限次重试,总能暴力破解正确的密钥的,对吗?

可是那仅仅停留在理论上,事实上你每次盲猜的密钥,并没有人告诉你是否猜对了

如果用户每次盲猜的密钥(token),返回给服务器,服务器会告知正确或者错误,在这种场景下,服务器也会做重试次数的限制,不会允许你无限次的重试下去。

总结

  • 凡是服务器提示密码正确与否的场合,会限制重试的次数。
  • 凡是可以无限次重试的场合,会使用长密钥,无限拉长破解的时间成本。
  • 密钥 + 随机盐确保一次一密,周期性refresh key。

作者|车小胖谈网络|公众号


本文转载自: https://blog.csdn.net/zhynet000001/article/details/136505235
版权归原作者 最铁头的网工 所有, 如有侵权,请联系我们删除。

“任何密码都算出来,只是时间问题,不是很不安全吗?”的评论:

还没有评论