密码在线破解成功率高达73%,国内博士让美国修改身份认证标准

说起口令,其实大家并不陌生,从我们每天解锁手机、登录邮箱到网络购物,都会涉及到口令。口令俗称“密码”,对应英文 Password,是当前最主要的身份认证方法。

8.54 亿中文用户占了世界上 20% 的互联网用户,比美国人口的两倍还多。北京大学汪定博士以第一作者完成的一项研究发现,虽然中文用户的密码构造行为与英文用户有很大差异,但世界各大知名网站对中英文用户采取同样的密码保护措施,都没有考虑中文用户密码的特点。

(来源:iStock)

汪定说,对于黑客而言,各大网站的密码保护措施无异于皇帝的新衣。

今年 8 月,这项针对中英文网民密码比较的研究发表在全球四大顶级信息安全学术会议之一的 USENIX (美国高等计算系统协会)Security 会议上。

中文网民常用密码:生日和手机号

汪定团队分析了 2009 年到 2012 年间由黑客曝光的 1.06 亿个真实网络密码,其中包括 6 个中文服务器上的 7310 万个密码和 3 个英文服务器上的 3320 万个密码。值得注意的是,虽然这是 2012 年之前的数据,但多年来密码系统进化很慢,其改变是很少的。

他们还比较了社交论坛、游戏、电子商务网、程序员论坛以及雅虎英文国际用户的密码。研究发现,与英文互联网用户相比,中文互联网用户的确在密码设置上有特点。

中文网民更喜欢用数字作为密码,尤其是手机号和生日,英文网民则更喜欢用纯粹字母作为密码。据汪定此前研究,中文网民的密码有 27% 到 45% 仅由数字构成,英文网民密码仅由数字构成的低于 16%。

英文网民倾向于用某些单词和短语,有 25.88%的网民会将 5 个字母以上的单词作为密码模块,如 password(密码)、letmein(让我登录)、sunshine(阳光)、princess(公主),当然也包括“abcdef”“abc123”以及“123456”。

研究还发现,16.99% 的中文网民热衷在密码中插入 6 个日期数字的模块,这个数字更可能是生日。有 30.89% 的中文网民使用 4 个以上的日期数字,这个比例是英文网民的 3.59 倍。13.49% 的中文网民使用 4 位数的年份数据作为密码模块,是英文网民的 3.55 倍。

更有意思的是,如果一个中文用户使用一长串数字做密码,那么这个密码是 11 位手机号的概率是 66.74%。要知道,2.91% 中文网民使用 11 位手机号码作为密码模块,而 4.36%的中文网民口令含有 11 位以上的数字,因此其概率为 2.91/4.36=66.74%。

类似地,如果知道一个中文用户的密码不低于 11 位,那么这个密码含有 11 位手机号的概率是 23.48%。要知道,2.91% 中文网民使用 11 位手机号码构造密码,同时有 12.39%的中文网民密码长度不低于 11 位,因此其概率为 2.91/12.39=23.48%。

中文网民只有 2.41%使用英文单词作为密码模块,但他们更喜欢用拼音名字(11.50%),尤其是全名。

此外,爱情主题在中国网民口令中占很大地位,比如“woaini1314”“5201314”。

研究发现,一些基于英文字母的所谓“强”密码可能在中文环境中很弱,比如“woaini1314”,这个密码在谷歌、新浪微博等网络平台均被评为强等级,然而中文网络用户很容易猜到这个密码的含义。

再比如“brysjhhrhl”,大部分中文网民能猜到这是“白日依山尽,黄河入海流”的缩写。这就让从英文用户视角解决密码安全问题的思路出现偏差。

(来源:汪定)

据汪定 2016 年的研究,对于具体网站而言,以 126 邮箱为例,前 10 位密码是123456,123456789,111111,password,000000,123123,12345678,5201314,18881888,1234567,这 10 个口令占据总数的 3.53%。

而中国铁路 12306 网站的前十位口令是 123456,a123456,5201314,123456a,111111,woaini1314,123123,000000,qq123456,1qaz2wsx。这十位占 1.28%。

中文网民密码在小猜测次数下更弱

根据密码破解过程中是否需要连网,密码猜测算法分为在线破解和离线破解。

在线破解需要连网,但不需要拿到网站服务器上存储的密码库,攻击者只需要通过与服务器进行交互,针对目标帐号依次尝试可能的密码,直到猜测出密码,或因尝试次数过多被服务器阻止。因此,在线猜测一般也称为小猜测次数下的攻击。

离线破解不需要连网,但需要拿到网站服务器上存储的密码库,针对目标帐号,在本地依次尝试可能的密码,直到猜测出密码或因算力有限自动放弃猜测。因此,离线猜测不受猜测次数的限制,一般也称为大猜测次数下的攻击。

汪定团队的研究显示,中文网民的密码在小猜测次数下(即在线猜测)更弱。

在基于概率的上下文无关文法 (PCFG)的攻击实验中,如果允许 100 次猜测,约 10% 的中文用户口令会被破解,而仅有 3.5% 的英文用户口令被破解;如果允许 1000 万次猜测,32%的中文用户口令会被破解,而至少有 43%的英文用户口令被破解。

在基于马尔科夫链(一种口令出现概率的计算模型)的攻击实验中,也观测到了类似的情况。这一现象意味着,应针对中文用户采取特别的密码保护措施。比如,针对中文用户定制密码黑名单,设计专门针对中文用户的密码强度评测算法。遗憾的是,当前世界各大主流网站均没有意识到这一点,对中英文用户采用完全相同的密码保护措施。

密码更容易被定向破解

密码,也就是信息安全学者口中的“口令”,属于网络安全系统中的密钥范畴。更确切地说,密码是密钥类别中人类可记忆的短密钥。

人类大脑只能记住有限的 5-7 个密码,可记忆的密码要求尽量短、有规律、不复杂。然而密码太简单或具有共性,也就更容易被破解。要抗猜测的话,密码则应尽量长、无规律、越复杂越好。

由于信息化社会的不断推进,越来越多的服务开始联网,用户拥有几十个甚至上百的密码帐号。为了方便记忆,用户不可避免地使用流行密码,在不同网站重复使用同一个密码,在密码中嵌入个人相关信息,如姓名和生日。

2016 年,汪定通过对 442 位中文用户的口令使用习惯调查发现,用户在新网站注册口令时,往往会重用(44.8%)现有口令,或者修改(32.6%)现有口令,只有 14.5%的用户会构造全新口令。很多人基于个人信息构造口令,其中包括姓名、生日、用户名、Email 前缀、身份证号、电话号码,甚至地名。

(来源:汪定)

比如 12306 网站密码中,名字含有率为 22.35%,生日为 24.10%,账号名为 23.60%,Email 前缀为 12.66%,用户名 3.00%,手机号 2.73%。

仅以名字为例,12306 网站中,姓名全称的占比 4.68%,姓氏有 11.15%,仅名字 6.49%,名字缩写+姓氏为 13.64%。

这就给了黑客很大的破解密码空间。根据破解过程中是否利用用户个人信息,密码猜测算法分为漫步破解和定向破解。前者不关心攻击对象是谁,按照猜测排名依次类推;后者则尽可能利用个人信息,如姓名、生日、年龄、职业、学历、性别,以及该网站的旧口令和其他网站泄露的密码。

网络上唾手可得的用户个人信息,以及近年公开泄露的数以千计的口令文件,使定向破解越来越现实。仅 2019 上半年,就发生了数百起口令文件泄露事件。近年曾经发生过泄露事件的著名网站包括 Yahoo、Dropbox、LinkedIn、Adobe、小米、 CSDN 和天涯,等等。

依据汪定的解释,传统的漫步破解方式就像盗贼偷来一大串钥匙,然后逐一进行开锁尝试,费时费力;新的定向破解方法相当于是盗贼对目标进行了调查了解后,给目标定制钥匙来开锁,也就是利用用户个人特定的脆弱密码行为来猜测密码。

汪定带领团队开发了定向猜测方法。他们验证了定向猜测方法的可行性。如果知道用户的姓名和生日等常见个人信息,仅猜 100 次,成功率就可达 20%;如果还知道用户在其它网站用过的密码,成功率可以达到 73%以上。这项研究引起了美国国家身份认证标准中关于密码安全部分的修改。

专访汪定:如何设置你的密码

口令安全研究是一个新领域,2017 年拿到北大博士学位的汪定是中国口令安全领域的第一位博士。据他近 10 年的研究和了解,当前口令安全研究仍处于非常初级的阶段,很多看似简单的问题实则因涉及到多学科交叉知识,变得难以入手。这也合理地解释了,为什么当前一提起密码,人人似乎都遇到了很多问题,但又没有可供使用的较完善解决手段。

幸运的是,这一领域逐渐受到越来越多的重视,吸引了越来越多的研究力量。自 2009 年社交网站 Rockyou 泄露 3200 万用户帐号信息以来,数以千计的网站发生了口令文件泄露事件。这一方面引起了人们对口令安全问题的高度关注,同时也为口令安全研究提供了原始素材——密码集。一旦口令文件被黑客获得,往往会离线猜测出泄露文件中 80%以上口令帐户,导致用户的隐私、声誉和财务受到损失。

需要指出的是,即使网站采用了强健的 Hash 函数(一种从任何一种数据中创建小的数字“指纹”的方法)并加盐(在散列中加入字符串)运算后存储,也只是一定程度上延缓了黑客破解口令的速度,并不能有效消除离线猜测的威胁。

汪定的博士题目是《口令安全关键问题研究》,导师是北大王平教授。汪定非常热爱这一研究领域,一谈密码(他口中的“口令”),眼神里便闪烁着光彩。“口令安全领域有太多需要研究的问题,尤其是缺乏一套口令安全理论体系。”

为攻克这些既有理论价值,又有现实意义的难题,汪定常常放弃周末和节假日。在导师支持下,他带领的口令安全研究团队每周六举行讨论班,7 年来风雨无阻。“我们周末也要忙碌,赶 deadline(最后期限)熬夜写 paper(论文)、做研究,这么努力的一个原因是我们身在口令安全这一重要的领域,里程碑式贡献如果都是由欧美学者完成,这是多么可惜的一件事。中国学者需要发出声音。”

一位著名密码学专家在看到他的博士论文后评价说,“一看这个论文,就知道你没有周末”。

他的付出也得到了回报,仅仅这篇博士论文就获得了北京大学优秀博士论文奖、中国计算机学会优秀博士论文奖、ACM SIGSAC 中国优秀博士论文奖、 ACM 中国优秀博士论文奖等多个奖励。博士毕业后,汪定留在北大进行博士后研究(合作导师是中科院院士黄如),继续深耕口令安全,取得了包括前文介绍的 Usenix Security 论文在内的数项成果。

这位 1985 年 12 月出生的青年学者虽然没有出国留学经历,但鉴于研究出色,他在今年博士后出站后要迎来另一个身份:南开大学网络空间安全学院教授。

图 | 汪定为 DeepTech 编辑讲解口令和密码的关系。(来源:孙滔)

DeepTech:我很好奇的是,你们的工作与黑客的工作有什么区别?

汪定:首先是动机不同。黑客是从获利的角度,我们是从防御的角度希望更好保护用户、保护网站。另外方法和手段不同,我们主要是采用科学的方法,比较偏理论性的方法,我们追求的是逻辑的严密和方法的科学,甚至是成一套理论体系,而黑客关注的是攻击效果和收益,不关注方法是否成科学体系,各种方法他都可以去尝试。

另外,我们的研究结果出来之后,确实会给黑客们提供一些改进的手段。

应当说,我们有一定的交集,但实际上交集并不大。我们是研究底层的那些安全理论与机制,在我们得出比较科学的理论之后,才能够辅助网站去设置更好的口令保护策略。

网站现有的这些口令保护策略,可以说是“皇帝的新衣”,这也是我们在 2015 年欧洲计算机安全年会上发表过一篇论文的题目:The Emperor's New Password Creation Policies(密码生成策略:皇帝的新衣)。

目前的很多口令安全保护策略是延续上世纪 80 年代、90 年代美国的做法,这些做法迄今为止很少有所变化。一些网站要求用户设置口令长度必须大于多少,必须包含大小写字母和数字,定期强制用户修改口令,其实这些没有严密的理论和系统性实验的支撑。

我们近期调研了 120 个世界各行业主流网站,它们的口令保护措施非常原始、混乱,包括苹果、微软、雅虎这些大公司,其它也都差不多如此。表面原因是,学术界不知道怎么办,业界也不知道怎么办;根本原因是,学术界研究不足,一些基础性问题没有根本解决。

DeepTech:对于普通网民,我们应当如何设置密码?你有哪些建议?

汪定:这是一个非常现实的问题。目前关于这个问题的回答五花八门,根据我们对最新研究进展的了解,基本上可以给出两条比较可行的建议:第一个是对帐户分级分类,第二个是密码越长越好。

分级分类的意思是,人类的认知能力有限,我们保护账号的精力也是有限的,那么我们把帐号根据重要程度分级,将重要的账户进行重点的保护,那些不怎么重要的账号就可以用简单的密码设置,同类帐户可以密码重用。

越长越好的意思是,在符合网站要求的前提下,尽量设置长的密码。这里不对字符类型有要求,那样会增加用户的记忆难度,并且对提高安全性来讲效果并不好,也就是说口令长度要比口令的复杂度更重要。

如果要补充的话,就是不能使用个人信息做密码。另外,每过多少天就更换密码的策略不实用,因为现在人们大都有数十个账号,没有那么多精力来管理。

DeepTech:这似乎很简单,并没有特殊的招数?

汪定:能做到上面两条已经不容易了。如果有余力的话,用户可以使用自己的容易记忆的特殊经历,可以加一些自己的特殊元素。

DeepTech:在线猜测是如何破解具体某人密码的,难解的密码可能会需要多久?

汪定:对于指定攻击目标的这种攻击属于定向攻击。从公开研究的角度来讲,目前我们的TarGuess 算法框架是先进的。

根据用户泄露的个人信息类别的不同,来相应地选择攻击算法,比如说拿到用户的姓名、生日之类可以直接构成口令的信息,那么可以采用相应的 TarGuess-I 攻击方法。如果拿到用户在其他网站的口令,来攻击另一个网站的口令,这时候又是一种方法 TarGuess-II 。如果攻击者把这两种信息都拿到了,他会选择第三种攻击方法 TarGuess-III 。

根据得到的不同信息,黑客可以有相应的不同的方法,我们设计了包含了 7 种常见攻击场景的 7 个算法,即 TarGuess I~VII。我们这个 TarGuess 算法框架发表 3 年来,我们又在尝试新的猜测算法,已初步取得了不错的结果。

对于黑客来说,现在市面上有很多公开的破解工具。他们肯定会先尝试这些简单的方法,如果破解失败他才会使用学术界的方法,因为学术界的方法对于他们而言有一定的门槛。

我们考虑了 3 种最主要的用户口令的脆弱行为。第一个是使用流行口令,第二个是用户在口令当中包含个人信息,第三个是用户重复使用口令。如果说这三种行为都拿来利用的话,我们的成功率在 73% 左右;如果仅仅知道用户的姓名、生日等个人信息,成功率是 20%;如果知道这个用户在其他网站的口令,成功率可高达 70%。

DeepTech:你说的暴力破解是指的拿到网站口令文件库来破解,对吧?

汪定:暴力破解一般是指拿到网站口令文件库,然后在本地破解。因为往往网站存储的不是明文,有可能是采用了 Hash 函数并加盐运算后存储,需要把它恢复出来,那就需要反向的破解,包括基于猜测字典的破解和暴力破解。后者一般不关注破解效率,适用于算力强大的攻击者。

根据我们的经验,一台普通的 PC 机加上 GPU,对于百万量级的口令文件库,如果使用传统加盐哈希(如SHA-1, MD5),没有使用慢哈希(如PBKDF2, Scrypt)的话,一两星期可以恢复 90% 以上。

DeepTech:是不是计算速度越快就会破解越快?

汪定:是的。这跟计算机速度有很大的关系,这个硬件速度的提升对攻击者更有利。

DeepTech:如果发生大规模泄露事件,会有哪些可能的补救措施?

汪定:目前绝大部分网站都把保护口令帐户的责任推给用户,要让用户生成所谓的强口令,如果帐户出现安全问题,那是因为用户自己的口令强度不够。而现在学术界的共识是,应让网站承担更多的责任,网站可以把用户的口令保护得更好,做到别让口令文件泄漏,即使泄露了也能及时发现,并且通过使用慢哈希(如 Scrypt,Argon2),让黑客也很难将明文口令恢复出来。

现在就是慢哈希函数并加盐的基本思路,即使黑客拿到了口令文件口令数据库,他恢复出来口令会很慢,或者耗费大量的内存,导致攻击成本非常高。

DeepTech:国家还没有这方面的政策要求吗?

汪定:现在没有这么一个明确具体的针对口令帐户的政策,只是说现在学术界逐渐形成一个共识,网站应当来承担责任,这样有利于维持一个健康的口令安全生态。从保护个人信息这一宏观角度来看, 2018 年 5 月 1 日,国家标准《个人信息安全规范》已正式实施,对个人信息的收集、保存、使用及泄露事件处理进行了原则性的规范。

DeepTech:指纹识别、面部识别会不会是一种选择呢?加了这些防范措施,是不是更安全呢?

汪定:在可预见的未来,口令仍将是最主要的身份认证方法。在口令基础之上防范的方法只是锦上添花。因为指纹可以复制且不可更改,基于深度学习的换脸软件又能绕过面部 3D 识别,那么只有口令在我们大脑当中谁也轻易拿不走,至少目前口令的脑电波还不能无线远距离破译。

DeepTech:区块链技术与口令安全有关系吗?

汪定:有密切的关系。因为任何一个系统,只要与人打交道,就得进行身份认证,这是第一道防线。

口令是最主要的身份认证方法。区块链它也是个信息系统,也需要做身份认证的。比如比特币,是区块链最著名的应用,经常看到新闻里说某某比特币交易所的口令文件被黑客窃取了,丢失巨额资金。很多比特币用户的脑钱包私钥,就是口令,口令被猜测出来,该私钥对应地址上的比特币就会被窃取。

DeepTech:那么一些涉密机构以及涉密数据有更好的口令安全措施吗?

汪定:不难理解,强力部门往往有更多的资金和技术来执行口令保护措施,但目前是否存在非常完善的口令安全措施,答案大概率应当是否定的。比如说希拉里邮箱密码被破解出来了,导致了机密邮件被泄露。其实很多名人政要的密码也是很容易被猜测出来,甚至弱得超乎你的想象。

无论什么机密,只要是涉及人,特别容易出错,尤其是在当前口令安全理论体系还没有建立、很多基础性问题没有解决的情况下。

DeepTech:口令安全研究更远的前景是怎样的?

汪定:希望口令这个生态系统能够稳健地运转起来,而不是目前这样盲目、无序和混乱。它可能不是 perfect(完美)的,但是建立了基本理论体系,它就能够稳健运转,就像今天我们使用的操作系统。