个人密码学
2014-10-28WilliamPoundstone
William+Poundstone
1% 的密码可以在4 次之内猜中怎么可能?简单!尝试四个最常见的密码。password,123456,12345678 和qwerty,这就打开了1% 的大门。
如果你是那99% 的人之一,但还要考虑到而今黑客软件的速度。John the Ripper是一款免费的黑客软件,每秒钟能测试数百万密码。还有一款商业软件本来是用在刑侦领域里(在查封的电脑中寻找儿童色情或者恐怖分子的信息),号称每秒能测试28 亿密码。
一开始,破解软件会运行一套穷举式的、时常更新的流行密码表,然后再是整个字典,包括所有的常见人名,昵称和宠物名。而今我们这些用户,在反复羞辱和威胁之下,大多学会了往我们的密码里加数字、标点和奇怪的大小写,这叫“重整”(mangling)。理论上,这能让密码变得难猜许多——实际上,效果远没有那么好。
RockYou 事件
之所以我们对这些愚蠢密码有所了解,很大程度上来自于2009 年12 月4 日的RockYou.com 安全漏洞事件,他们是一个Facebook 游戏发行商。一位黑客公布了这个网站32603388 位用户的账号名和明文密码。此前和此后都有很多安全漏洞,但是这一起事件的超大规模使得它成为密码研究的关键数据组——无论是对好人还是对坏人而言。
在RockYou.com 里最受欢迎的密码是“123456”,使用者人数高达290731 人。不同年龄段和性别的人爱用的密码有很多差异,对于30 岁以下的男性,许多受欢迎的密码来自性和秽语。年纪大的人(不分男女)更倾向于使用昔日流行文化里的老梗。
怎样的密码才算安全?
创造一个安全密码简直是世界上最简单的事情:一串完全随机的字符就是了。靠自己的脑子是无法达成完美随机的,但你也不需要这样苛求自己:许多网站和应用可以拿环境噪声的数据给你提供完全随机的密码。这里是我在random.org 上获得的一些密码例子:
V k54z6X G,P x7 Y Z r m3,N f d e KYsY,FryVMwMk,BVfqbRQb。
问题解决?对于那些有迫害妄想的记忆狂人,或者那些用指纹识别来保障密码管理软件安全的人来说,确实如此。剩下所有人都甭指望能记住这堆字母汤。他们还说每个账户要有不同的密码!
比起专家来说,大多数用户都更在乎密码的方便好记,而不那么在乎安全性。我不知道哪一方更正确。你家里有紧急避难室吗?十有八九是没有吧,但那些装了避难室的人肯定会告诉你这玩意儿有多重要。但在你飞奔向避难室之前,也许确保自己始终锁好前门是更佳的选择。
密码面对的三种威胁
在现实中密码会受到来自以下三个方面的威胁:日常、群体和定向。
“日常威胁”指的是你认识的人。爱管闲事的同事或者亲人可能想要登录你的账号。他们会通过自己对你的了解来猜测你的密码(而不是靠暴力破解软件)。日常的打探者也许会知道你的高中球队是野猫队(Wildcats)然后尝试这个密码,不过wildCatz1 很可能足以打败他。
“群体威胁”就像垃圾邮件一样,不针对个人。职业身份窃贼并不是在专门针对你的账号搞破解,他对你的个人情况一无所知,他的目的是汇集一套破解过的账号密码清单,通常是拿去再卖钱。密码窃贼则使用破解工具,会先从安全防护措施较低的网站下手——通常是那些允许你猜很多次的网站。这也许是没有什么经济价值的网站,比如游戏网站。等软件猜对了之后,它再用同样的密码及其变体去猜你的更加安全的账号,比如银行。
“定向威胁”意味着使用软件的私家侦探或警探。假如一个训练有素的人想黑进你的账号,假如金钱、时间(甚至法律)都站在他那边,那他很可能会成功。唯一的反制手段就是使用随机密码,长到足以保证其搜索时间抵得上你的预期寿命,甚至更久。
不要觉得你不会成为这种目标,哪怕是小企业的竞争对手也可能愿意花费资源去偷一台笔记本电脑。推特的全站,就曾经陷落过,注意不是某个用户而是全站,原因只是一位管理员傻乎乎地选择了happiness 作为密码。
短语记忆法的问题
正如生命里所有别的事情一样,鱼和熊掌不能兼得,你不能同时拥有最高的安全性和最高的易用性。常见的策略里最好的一条是,把一个短语或者句子变成密码。你挑选一句话,一个词组或者一句歌词,用它们的首字母来作为密码。比如如果你要用May the force be withyou(愿原力与你同在)这句话,密码就是Mtfbwy。
但刚才那句话最好不要用,而这就是问题所在。你肯定会想起某个电影、某首校歌或者南方公园里的众人皆知的句子。
你有几个八词以上的短语能原样背下来的?随便一个句子甚至不见得比随便一个词更难猜。而且很少有人费心去重整他们的句子生成的密码——看起来已经很随机了嘛!
一个理想的密码方案即便所有人在用也不会失效。但如果句子变密码这个方案流行开来,那所有的大众文化习语变来的密码都会进入常见密码清单,破解软件会先尝试这些密码。而且习语缩写词一般都是字母,比起同样长度的多种字符混合密码要更危险。
这个办法的有些缺点可以解决。比如,永远不要用名句。一个办法是用私人笑话。但密码本身是不是还那么独一无二,就不那么确定了。不同句子的首字母缩写也有可能是相同的,产生同样的缩写密码。有些字母更容易成为一个单词的首字母,而黑客软件可以利用这个特点。
安保,永远是最弱的一环
一个长度合适的随机密码,事实上以今天的科技是猜不到的。它不会出现在常用密码列表里。群体攻击者只有蛮力搜索才能猜到随机密码。有大小写字母和数字的情况下,共有62 种不同字符(不算特殊符号,因为有些网站不允许)。这意味着一个8 位随机密码需要猜628 次才能确保命中。这是要猜22 万亿次。
这实际上足以让你免受互联网群体攻击,也会让定向攻击进展缓慢。假如承认现在的刑侦级密码破译软件每秒钟可以给出28 亿个猜测结果,那么猜这么多次也要22 小时。
但这并不是说随机密码就是无敌的。它不能被猜到,但仍然可能会被偷走。你有没有浪费时间在一些像 “测测你的克林贡名字”(或者巫师名字、犹太名字之类的)这些会让你填写个人信息的网页小游戏上?其中有一些还会让你设置一个密码。这些网站其实是在收集你的密码,因为对方知道你在这个网站的密码很可能和你在别的网站的密码相同或相似。在黑市上,这样收集到的密码大约可以卖到20 美金一个。哪怕是细心的人也总是会上这种当。有些高科技恶意软件能记录你敲下的每一个按键,爱管闲事的人会用低科技手段——在你的背后偷看你的密码。黑客可以通过网站的安保薄弱环节偷走你的密码,这就跟用户的密码复杂程度完全无关了。
密码就像你家房门的钥匙,哪怕你家里是防盗门,但如果小偷从你的口袋里偷走了钥匙,那扇门就跟普通的门一样不安全。安保,永远是最弱的一环。endprint