安全牛点评:
在用户数据大量泄露的今天,密码成了众矢之的和替罪羊。实际上安全专家们至今也没有从用户的角度出发给出可行的“复杂密码”最佳实践。
设置密码、记住密码、密码被脱裤…更新密码…然后忘记密码,密码的复杂性与易用性的矛盾始终没有解决,“复杂密码”不但是用户的沉重负担,也为企业带来巨大损失。
Widmeyer调研公司的调查报告显示,工作人员每年浪费在密码上的时间加上为了省懒事而采 取的冒险行为,平均每名职员给企业带来420美元的损失。也就是说,一个有500名员工的公司,每年在浪费在工作效率上的损失约为21万美元。
是时候该反思高强度密码的“复杂性”了,过去专家们建议的“复杂密码“通常是包含大小写、数字、字符的乱序密码(甚至有砖家建议使用坑爹的需要组合键才能输入的£),但在今天网站数据经常被拖库,密码需要经常更新的年代,复杂性除了引发用户记忆恐慌外,反而成了导致众多密码问题的祸根。
今年5月份安全牛曾报道斯坦福大学的新密码政策,鼓励用户使用容易记忆的自然语句生成的长密码来替代“复杂密码”,用密码的长度来解决复杂性和强度的问题。近日Techtarget也发表了一篇观点类似的文章,还附上了具体的操作建议,原文如下:
40多年以来,IT界一直在密码战役中屡战屡败。前段时间的明星iCloud帐号入侵事件只是我们众多引人注目的失败案例之一。因此,如密码这样看似简单的事情,为何却如此困难?
密码安全的问题在于它是如此简单,事实上它又如此矛盾困难。在安全方面,世界上最危险的事情是‘你认为你知道’,因为这样你就不会怀疑你的知识。如果你问 一位典型的IT安全专家是否理解密码,绝大多数会自信及坚决地回答”是”。但如果真这么绝对的话,为何与密码相关的数据泄密却又如此普遍?
我们不是在讨论保护密码存储的技术问题。相反,我们是在讨论人为部分。人们继续选择糟糕的密码。典型的例子,2013年最常见密码是”123456″,第 二位为”password”一词,第三位”12345678″。是的,久负盛名、最受喜爱 的”iloveyou”、”letmein”、”abc123″,以及”princess”每年也都在常用密码名单内。
那么为什么用户很少关注他们的密码呢?部分原因是人们(包括明星)认为不会有人谋求他们的帐号。这是老旧的”这不会发生在我身上”的心态。且其原因也在于我们传递给用户的密码信息通常也有错误。
IT安全界持续犯的最大错误之一在于:推动用户执行特别复杂的密码,但并没有就此真实含义提供实际的指导。如果我们使得用户记住一个密码过于困 难,”123456″是必然的最终结果。在极少数情况下,用户确实创建了一个复杂的密码,但它通常太短且被用于他们所有的网站(在家或者工作中的)包括电 子购物和网上银行。这意味着任何一个站点上的数据泄露可能导致潜在的破坏性后果。
揭穿复杂密码的真相
“复杂密码”这一术语也许是IT界被误解最深的术语,也是今天众多密码问题的原因所在。往往”复杂密码”等同于”无法记住”。我们必须意识到复杂度仅仅是 很小的一方面。不仅仅是复杂度的问题,还有不可预测性(密码熵是一个有用的密码可预测性衡量方法)。这正是一个好密码的关键所在。
一个不可预测的密码可能是用户易于记住的。使用大小写、数字及特殊字符(经典复杂性规则)为佳,只要我们不只专注于那些规则。例如,采用字符 串”Iwentfishing4timeslastmonth?”。这个密码(或者更准确是一个密码短语)易于记忆且易于输入。它不是可预测的,它还是一 个复杂密码,其中包含了我们一直建议的大写/小写/数字/特殊字符。
任何易于用户记忆的简短句子或格言都可以作为密码。采用格言且增加少许复杂性规则,你立刻会拥有极强的密码,它将不会在黑客字典中被发现,且只能通过暴力 方式被破解。根据Gibson研究公司暴力破解密码计算器,暴力破解上述”Iwentfishing4timeslastmonth?” 例子,即使以每秒100万亿的猜测速率,也将需要花费76.43*1030世纪。那是一个相当强的密码短语。
用户可以遵循这种方式选取几个字符串,并开发一个公式,通过修改字符串使其适用不同站点。例如, 设置一个Facebook密码,可以添加”FB”和该用户的毕业时间,这样密码就成 了”FB89Iwentfishing4timeslastmonth?”等等。我会建议使用较这个简单例子更为复杂的公式,但原理相同。使用这种方法, 用户现在能拥有一个极强的、易于记忆和易于输入的密码,且在每个他们访问的站点使用不同的密码。这样就完美了吗?当然它还不是。但是它远胜于 用”123456″这样的密码用于30个不同站点。
另一个技巧是尽可能创建唯一的用户名。尽管许多站点要求用户以电子邮件地址作为用户名,但某些金融机构会允许创建特殊的用户名。如果用户将他或她的电子邮 件地址设置为所有站点的用户名(尤其还有着相同密码),任何一个站点的用户名信息被泄露,那么追踪用户的其他站点信息将变得简单。对于涉及钱的任何站点使 用唯一用户名将是一个好办法,正如在这些关键站点使用不同密码短语字符串。
作为一个安全社区,我们必须做好信息传达,告诉用户如何创建好的密码。我们必须让用户了解”123456″并不是一个可行的密码,而且难于记忆的密码也是 不必要的。要成功传递这条消息意味着,我们自身必须更好地理解密码的不可预测性。只有到那时,我们才有希望向我们的用户解释这条信息。