密码是当代计算机系统基石, 已被使用了数千年. 当向他人共享信息时, 密码作为身份识别的方法, 使信息在个人之间是密码的.
什么样的密码是一个好的密码?
一个好的密码可能只是一个 6 到 8 个字符的单词或短语. 但是我们现在有了最小长度准则. 在谈论密码时, 熵是可预测性的度量. 此操作背后的数学并不复杂, 但让我们以更简单的方法进行检查: 可能的密码数量, 有时也称为 "密码空间".
如果一个字符的密码仅包含一个小写字母, 则只有 26 种可能的密码("a" 至 "z"). 通过包含大写字母, 我们将密码空间增加到 52 个潜在密码.
随着长度的增加和其他字符类型的增加, 密码空间将继续扩大.
查看上面的数字, 很容易理解为什么我们鼓励使用长密码, 并使用大小写字母, 数字和符号. 密码越复杂, 就需要进行更多的猜测.
但是, 取决于密码复杂性的问题在于, 计算机在重复执行任务 (包括猜测密码) 方面非常高效.
去年, 一台试图产生每个可能的密码的计算机创下了新的记录, 它的速度超过了每秒 100,000 亿次猜测.
通过利用这种计算能力, 网络犯罪分子可以在称为蛮力攻击的过程中, 通过使用尽可能多的密码组合对它们进行暴力破解来侵入系统.
借助基于云的技术, 只需 8 分钟即可猜到 8 个字符的密码, 而费用却只有 25 美元.
此外, 由于密码几乎总是用于提供对敏感数据或重要系统的访问权限, 因此这会激发网络犯罪分子主动寻找它们. 它还推动了利润丰厚的在线市场销售密码, 其中一些密码包含电子邮件地址和 / 或用户名.
密码是如何存储在网站上的?
网站密码通常使用称为哈希的数学算法以受保护的方式存储. 哈希密码无法识别, 无法将其转换回密码.
尝试登录时, 将使用相同的过程对输入的密码进行哈希处理, 并将其与站点上存储的版本进行比较. 每次登录时都会重复此过程.
例如, 使用 SHA1 哈希算法计算时, 密码 "Pa $$ w0rd" 被赋予值 "02726d40f378e716981c4321d60ba3a325ed6a4c". 自己尝试一下.
当面对充满散列密码的文件时, 可以使用蛮力攻击, 尝试每种字符组合以获取一定范围的密码长度. 这已经成为一种常见的做法, 以至于有些网站列出了常见密码以及其 (计算出的) 哈希值. 您可以简单地搜索哈希以显示相应的密码.
现在, 盗窃和出售密码列表非常普遍, 可以使用专门的网站 haveibeenpwned.com 来帮助用户检查其账户是否存在. 如今已经包括超过 100 亿个帐户详细信息.
如果此站点上列出了您的电子邮件地址, 则绝对应该更改检测到的密码, 以及在使用相同凭据的任何其他站点上.
使用更复杂的密码?
您会认为, 每天发生如此多的密码泄露事件, 我们会改善密码选择的做法. 不幸的是, 去年的年度 SplashData 密码调查显示五年来几乎没有变化.
随着计算能力的提高, 该解决方案似乎会增加复杂性. 但是, 作为人类, 我们不熟练 (也不愿意) 记住高度复杂的密码.
我们还通过了仅使用两个或三个需要密码的系统的观点. 现在, 访问多个站点很普遍, 每个站点都需要密码(通常长度和复杂性各不相同). 最近的一项调查表明, 平均每人有 70-80 个密码.
好消息是有解决这些问题的工具. 现在, 大多数计算机都支持在操作系统或 web 浏览器中存储密码, 通常可以选择在多个设备之间共享存储的信息.
这不会阻止从易受攻击的网站窃取密码. 但是, 如果它被盗了, 您将不必担心在所有其他站点上更改相同的密码.
这些解决方案中当然也存在漏洞, 但这也许是另一回事了.
来源: http://netsecurity.51cto.com/art/202009/627087.htm