acm-header
登录

ACM通信

实践

反思的密码


反思密码,说明

信贷:演播室37

回到顶部

这片土地上有一种鉴定瘟疫。我们必须对着一群身份验证喷子反复声明自己的身份,每个人都小心翼翼地保护着某种互联网服务。每个喷子都有特定的密码规则,而这些规则千差万别,令人难以理解。

密码的长度要求各不相同:Dartmouth要求恰好是8个字符;我的经纪人,6到8;富国银行,八个或更多。我们通常鼓励或要求使用特殊字符,但有些字符太特殊了:许多字符不允许使用空格、单引号或双引号、下划线或连字符。有些系统不允许在密码开头使用某些字符;查字典比比皆是,包括查外语词典。

当然,经纪公司、银行和医疗网站需要保护账户免受未经授权的使用。像亚马逊这样的购物网站也是如此。一个电子邮件账户可能同样重要:问问萨拉·佩林。帐户的价值可以随着时间的推移而改变:可能在以前不重要的帐户上增加了一个新的在线商店。

身份验证对服务提供者可能比客户端更重要:我是否关心是否有人获得了访问我的报纸账户的权限?(毫无疑问,使用条款说我应该关心,但我没有。)在这种情况下,报纸对密码的要求非常恼人,而密码“强化”规则只会增加我的烦恼。市场在这方面确实发挥了作用:研究表明,竞争压力往往会迫使网站采用更简单的密码。4

不仅这些身份验证规则差异很大,而且这些规则本身通常被认为是安全机密的一部分,在登录时不可用,这时关于规则的提示会很有帮助。我所说的这些蝾螈之眼密码规则:它们让我想起了莎士比亚魔法药水的公式。他们往往是特别的,苛刻的,有时很难满足。您能想出一个不重复任何字符超过四次的长密码短语吗?

问题很紧急:如果我们只有一个帐户,身份验证就会容易得多。但一个活跃的互联网用户可以拥有一到二十多个账户,有些重要,有些不重要。这些身份验证陷阱困扰着大多数在线用户,很容易引起普通用户的一连串抱怨。

今天的许多规则都根植于过去对安全问题的深切关注,当时的准入、威胁和目标都不同。这些想法很多都在密码管理指南, (CSC- std -002-85技术报告),由国防部计算机安全中心(DoD CSC)于1985年发布。2这份报告被称为“绿皮书”,是美国政府在20世纪80年代和90年代推出的彩虹系列书籍之一。它的建议在当时很好,其中许多仍然有效,但我们的许多密码格言来自于对威胁和技术的陈旧假设。

这并不是在批评最初的作者或他们的文件:任何明智的安全人员都不会期望这些规则在几十年内不被修改。传说根本跟不上威胁和弱点的步伐。

回到顶部

《当今世界的绿皮书

密码管理指南在更著名的《橙书》(可信计算机系统评价标准)出版后不久。绿皮书是国防部访问机密或敏感政府计算机的管理指南。它也是目前大多数密码规则的基础。当时大多数计算机访问要么通过本地批处理(用卡!),要么通过使用终端的本地或远程串行线。个人电脑和麦金塔电脑是可用的,但它们与安全计算没有特别的关系,当然也没有联网。

以下是报告早期发现的一个重要注释:

因为预计不同的用户群体将采用这一指导方针,所以所有的建议都是一般化的,而不是具体的术语……在需要设置特定值(例如,密码最大生存期)的特性中,建议将这些设计为参数设置,让本地安全管理决定准确值……

对于今天的安全专家来说,问题是,1985年的指导方针还有什么意义?当前的认证混乱表明我们没有跟上这项任务。也许这篇文章将促使人们沿着这些思路重新思考。

国防部的报告提供了关于认证和密码的具体建议。该报告指出,在ADP(自动数据处理)系统所采用的以密码为基础的认证机制中,密码很容易被破解,因为密码系统有五个基本方面:

  1. 在ADP系统注册时,必须首先为用户分配密码.这个规则仍然适用。许多网站使用标准密码作为初始密码,但跳过了强制更改默认密码的要求,攻击者可以简单地尝试使用默认密码的多个帐户闯入系统。一些重置密码方案也是如此。鼓励修改默认密码的一种解决方案是将默认密码或恢复密码设置为“我是傻瓜”。
  2. 用户密码需要定期修改.我将在后面更详细地讨论这个问题。
  3. ADP系统必须维护一个密码数据库.这个规则仍然适用。
  4. 用户必须记住自己的密码.事实证明,这一规则是不合理的,尤其是对于机器生成的密码。这些密码不那么容易记住,长时间记住多个密码超出了大多数人的能力。此外,人们在1985年登录的系统要少得多。
  5. 认证时,用户必须在ADP系统中输入密码.规则5是不完整的:它只是单因素身份验证。这些替代方案无疑是作者所熟知的,但对于一般部署来说可能太过昂贵。我怀疑当时这样的一句话可能会改变我们的世界。

此外,报告指出:

  • 用户应该能够更改自己的密码.这是个好主意。过去的一些制度不允许这样做。
  • 密码应该是机器生成的而不是用户创建的.的确,机器生成的密码往往更强:破解密码所需的工作量很容易计算,而且毫无争议。但对于人工创建的密码就不是这样了,因为大量的关联和语言规则大大减少了搜索空间。
  • 某些审计报告(例如,上次登录的日期和时间)应该由系统直接提供给用户.这让用户有机会发现未经授权的访问。这一实践在Unix系统中被广泛采用登录(1)命令。这仍然是一个好主意。
  • 用户ID是ADP系统用来唯一标识用户的唯一符号或字符串.密码系统提供的安全性不应依赖于用户ID的保密性。这是一个典型的加密假设,即只有密钥是秘密的,而用户ID不是。(我希望美国的社会安全号码也是如此)然而,模糊用户ID可以有效防止大规模攻击,特别是针对大规模在线系统的攻击。
  • 在ADP系统的整个生命周期中,每个用户ID只能分配给一个人.换句话说,不要共享帐户及其相关的密码。对于重要帐户,这仍然是一个好主意,因为它可以帮助记录和归属。当婚姻失败时,这对共享账户尤其重要:前伴侣可能非常讨厌。
  • 所有用户id都应该定期重新验证.这是一个好主意,但很少被实施。许多非法入侵都发生在未使用或闲置的账户上。一些系统实现了身份验证需求的增加,这是一个好主意。当连接来自不寻常的位置或IP地址时,现代版本包括更强的身份验证。
  • 从密码泄露中恢复过来的最简单方法是修改密码.啊,过去的美好时光!这是不对的。一旦账户被入侵,腐败就会开始,并通过进一步的攻击和信任传播。其他账户也会被相同的密码攻击,而且往往会成功。银行账户被掏空(至少个人敞口暂时下降了,3.订购了等离子屏幕,更改了账单地址,窃取了身份信息。)

在Unix/Linux个人帐户中,被盗密码只是一个开始。系统是有根的,安装了后门,而且,通常,其他安全弱点是固定的。安装SSH (secure shell)客户端,捕获其他密码。在给定用户帐户的情况下,root Unix主机往往更容易。表1SUID(根)程序的数量是几个示例操作系统上的一个示例,使用命令找到/ -user root -perm 4000 -print

每一个例子表1是一个潜在的根折衷,攻击者通常可以找到至少一个。

  • 密码应更改定期反击未被发现的密码泄露的可能性。

对密码系统提供的安全性最明显的威胁是密码的泄露。密码用于身份验证的时间越长,暴露密码的机会就越多。在一个有用的密码系统中,密码在其生命周期内被泄露的概率会增加。

本节参考《绿皮书》附录C,其中涉及到面对字典攻击时的密码强度和生命周期。提供了几个简单的公式(ASCII布局和拼写错误使得在线版本的数学更难理解),以及当时典型情况的计算结果。

目标是抵御一年的字典攻击,破解概率为106(或1020.对敏感系统)。举一个报告中的例子,假设每分钟猜测8.5次,在每秒30个字符的终端会话中,一个只有9个大写字母的9个字符的密码可以抵御长达一年的字典攻击。该报告对大写字母数字字符和从23300个词条中选择的单词提供了类似的计算,该词典包含4到6个字符的英语单词。作者承认,如果手头的文件有密码保护,那么猜测的概率会高得多。

让我们代入每秒使用1亿次和70亿次试验的现代字典攻击的数字。第一种是运行在典型密码哈希算法上的多核计算机的简单速率。第二个速率是由商业源在现代gpu上实现的攻击。在一个多核处理器、计算机集群和僵尸网络时代,这些数字有些保守。如果你认为他们太咄咄逼人,那就等一年。表2显示破解时间和密码更改率的一些变化。

表中显示的第二种密码比现在认为安全的密码更困难:它是8随机从键盘上找到的93个字符中选择的字符(比蝾螈眼多一点)。这个强密码需要每一次修改31日毫秒出于安全目的。(在我的网站上可以找到探索这个问题的原始电子表格。1


一旦账户被入侵,腐败就会开始,并通过进一步的攻击和信任传播。其他账户也会被相同的密码攻击,而且往往会成功。


表中的最后两个方案大致符合本文档的标准:在一年的字典攻击后,每年修改密码的风险不超过百万分之一。它们对应的工作系数为77-79位,这可能会让您感到惊讶,因为这比通常所需的密码强度(通常为20 -40之间)要大得多。3.增加的比特数来自于10的要求6猜测成功概率,将密码长度增加20位。(规范实际上要求的概率是1020.对于分类访问:这增加了66位!)

百万分之一的要求可能是不合理的。由于安装了非常昂贵的暴力硬件,我不太可能在一年内部署它来访问一个高价值的目标,如果我成功的机会只有1%的话。另一方面,历史上有很多这样的例子:防守方低估了进攻方愿意承担的工作量。

回到顶部

其他的格言

  • 在多个服务中不使用相同的密码.这仍然是一个非常好的想法,尽管我意识到这是一个棘手的问题。如果我侵入你的Facebook账户,那么我就会在Linkedln、Gmail、iTunes等网站上尝试相同的密码。这种攻击非常有效,因为大多数人不遵守这一规则。

大多数遵循此规则的从业者使用基本密码,并通过一些服务相关部分进行修改。如果这个可变的部分是显而易见的,他们可能不应该麻烦。在这种情况下,最好选择不同的强密码,忽略下一条建议。

  • 不把密码写下来.这一规则很大程度上取决于你的威胁模型:你害怕什么?在过去,许多攻击来自同学、同事、家人和现场间谍。在桌子周围查看便利贴的电影比喻起作用了,现在仍然如此。

不过,将密码写下来可能比在多台机器上使用相同的密码要安全得多。在今天的大多数情况下,攻击者并不一定要在场才能获胜。你的机器从很远的地方就可能被破坏。或者攻击者将受感染的USB操纵杆留在公司停车场。查看便利贴的攻击比网络黑客攻击要少见得多。

当然,没有必要把事情弄得太简单。在密码上写下注释或变体,这足以提醒你真正的密码。有时我发现,只要提醒我某个网站的蝾螈之眼规则就足够了。

密码钱包是存储密码的好主意,但它让你回到了在可能不安全的电脑上存储秘密的游戏,有网络访问。你办公室里的黄色记事本可能更安全。

  • 经常更换密码.这通常是由身份验证服务强制执行的,通常不是一个好主意,也没有用。一个好的、强的、你能记住的密码是很难创建的,可能也很难记住,特别是当不同的帐户有不同的密码时。当密码被强制修改时,所有这些好处都消失了,需要全新的努力。

对于很少使用的密码来说,这可能是一个特别的问题。例如,在美国,企业提供的医疗保险要求员工每年审查并修改保险范围。这些系统需要强大的身份验证,而且往往每年只使用一次,所以为了记住密码,我要么把它写下来,要么依赖于密码恢复方案。在某些系统上,我在较长的时间内循环使用了几个强密码,这比身份验证服务器记得的时间要长。那些真正优秀的密码太好了,让人无法释怀。

回到顶部

我们学到了什么

指望人们选择并记住能够抵抗字典攻击的密码,是一种糟糕的工程。用户培训不起作用:人们会不顾一切地写下自己的密码。

幸运的是,字典攻击很少出现这种问题。他们因为退出游戏而彻底受挫:将尝试次数限制在少数,然后禁用帐户。多因素认证和从妥协中更好地恢复也有帮助。

这不是一个新想法。20世纪70年代初,我拿到了自己的第一张银行ATM卡;它的密码是四位数字。我不记得我是否被允许自己选择密码,但这无关紧要:这是我唯一的密码,而且这项服务足够独特和有用,所以我把密码记在了记忆里。如果我忘了,卡就会被吃掉,或者账户被锁定。大约四十年后,美国的银行系统仍在使用这一政策,证明它是有效的。这也不是一个罕见的解决方案。大多数身份验证系统会在用户多次尝试后将其锁定。

更重要的是,威胁已经改变。字典对密码的攻击已经不像以前那么严重了。今天的威胁包括:

  • 击键记录程序记录任何密码,无论多么复杂。
  • 钓鱼网站捕获了不小心的人的密码,而不小心是非常容易的。邮件阅读器应该在邮件中显示任何带有红色标志和警告的URL,特别是当它涉及一个不熟悉的域名时。
  • 来自保护不力的服务器的密码文件在互联网上泄露了我们的秘密,蝾螈的密码也包括在内。
  • 通过最先进的安全检查的网站被发现多年来一直在泄露信用卡信息。实践中的最佳可能对律师来说已经足够好了,但它真的没有解决非常棘手的安全问题。

客户系统几乎不安全,因为我们把房子建在沙子上。为什么单击鼠标会造成安全威胁?

字典攻击可以对密码钱包、SSH代理密码短语、PGP(相当好的隐私)密钥环和被盗的密码数据库发起。对于强密码,文字比蝾螈眼的字符串更容易输入和记忆。从Brown语料库的23300个常用英语单词中,我按照STD-002和xkcd的精神生成了几个随机的密码短语:5

  • 愚弄否则浮士德
  • 大声说民主党克鲁兹
  • 多维尔高度装饰
  • acutelyjeep帕夏

这些密码的搜索空间超过43位,与目前最强密码的估计强度相匹配。它们也提供了一个扩大词汇量的机会。唉,它们可能不符合蝾螈眼的大多数规则。

回到顶部

建议

我的梦想是,认证可能会变得不那么讨厌,甚至有趣。密码和密码短语应该更容易输入,并包括对输入和“字幕”错误的自动纠正(在智能手机上)。这可以在不丧失安全性的情况下完成。

为什么蝾螈眼的规则仍然存在?帐户解锁是一个问题,需要相对昂贵或不安全的二次身份验证工作。在某些情况下,让其他人(例如共享后台的授权配偶)负责临时身份验证和随后的密码更改是合适的。“亲爱的,我又来了”可能比在周末打800电话容易得多。

如果有一种以上的方式登录到一个网站,每种方式都有相同的强度,那就好了。这让用户可以选择身份验证方法,并使用其他方法作为备份登录。(母亲娘家姓是我在这里所说的。次要密码往往要弱得多,不应该使用。安全历史中充满了迫使防御者退回到次要的、不那么有效的防御的攻击。)

如果有人在一个会话中两次尝试相同的密码,那不应该算作两次尝试。我们都会犯,或者怀疑自己会犯排版错误。我输入的密码正确吗?我会更仔细地再试一次。这不能算作密码喷子的第二个愿望。

回到顶部

结论

我不乐观这些变化会很快发生,甚至根本不会发生。有一个庞大的安装基地。“我们和其他人做同样的事情”是对渎职行为的有效法律辩护,那么为什么要改变呢?(我讨厌这个词遗产!)

认证系统至关重要,对它们的改变可能会导致广泛而尴尬的失败。目前还不清楚更容易的认证是否会带来市场优势。一个公司是否因为更容易登录而比另一个公司更不安全?这样做会获得市场份额吗?

尽管如此,这一体系似乎正在发挥作用。我们正在向世界各地的攻击者泄露军事和工业机密,但每天有数百万人成功地使用互联网,它是世界经济的一个重要组成部分。不管怎样,我们还是熬过去了。

最后,我希望看到这些系统设计成这样,用户只需要记住一个安全准则:别犯傻了.不要选择那些知道你在几次尝试后就能猜出来的密码,或者那些看着你打字的人很容易就能猜出来的密码。

与蝾螈之眼的密码规则不同,最后一条规则对普通用户来说是有意义的,很容易记住。我们要做的就是把剩下的设计成合理的安全。

ACM队列的q戳相关文章
queue.acm.org

安全——问题解决了吗?
约翰Viega
http://queue.aom.org/detail.cfm?id=1071728

构建安全的Web应用程序
乔治诉Neville-Neil
http://queue.aom.org/detail.cfm?id=1281889

领英密码泄露:用盐腌他们的皮
Poul-Henning坎普
http://queue.aom.org/detail.cfm?id=2254400

回到顶部

参考文献

1.Cheswick, w . 2012;http://www.cheswick.com/ches/papers/std-002-results.xls;而且http://www.cheswick.com/ches/papers/std-002-results.numbers

2.国防部计算机安全中心。密码管理指南, 1985年。技术报告csc - std - 002 - 85。

3.Florêncio, D.和Herley, C.我们所知道的关于密码窃取的一切都是错误的吗?安全与隐私(2012)。DOI 10.1109 / MSP.2012.57。

4.Florêncio, D.和Herley, C.安全策略从何而来?在第六届可用隐私与安全研讨会论文集(2012)。Acm, ny, doi 10.1145/1837110.1837124。http://doi.acm.org/10.1145/1837110.1837124

5.xkcd;http://xkcd.com/936/

回到顶部

作者

威廉Cheswick;痒曾任职于贝尔实验室、Lumeta公司和AT&T香农实验室。他目前的一个项目是推广更好的密码。他记忆中最早使用的密码是“polpis”,一个位于南塔开特的地方。他现在用多个随机的单词来表示重要的账户,并把东西写下来。

回到顶部

T1表1。的数量setuid(根)程序发现找到

T2表2。破解时间和密码修改率。

回到顶部


©2013 0001 - 0782/13/02 ACM

如果您不是为了盈利或商业利益而制作或分发本作品的部分或全部,并在第一页注明本通知和完整引用,则允许您免费制作本作品的部分或全部数字或纸质副本,供个人或课堂使用。本作品的组成部分必须由ACM以外的其他人享有版权。信用文摘是允许的。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,需要事先获得特定的许可和/或费用。请求发布的权限permissions@acm.org或传真(212)869-0481。

数字图书馆是由计算机协会出版的。版权所有©2013 ACM有限公司


没有发现记录

Baidu
map