一项研究表明,1%的密码可以在4次之内猜中。
怎么可能?简单!尝试四个最常见密码。password,123456,12345678,和qwerty,这就打开了1%的大门。
好吧,你是那99%的人之一,但你还要考虑到而今黑客软件的速度。John the Ripper是一款免费的黑客软件,每秒钟能测试数百万密码。还有一款商业软件本来是用在刑侦领域里(在查封的电脑中寻找儿童色情或者恐怖分子的信息),号称每秒能测试28亿密码。
一开始,破解软件会运行一套穷举式的、时常更新的流行密码表,然后再是整个字典,包括所有的常见人名,昵称和宠物名。而今我们这些用户,在反复羞辱和威胁之下,大多学会了往我们的密码里加数字、标点和奇怪的大小写,这叫“重整”(mangling)。理论上,这能让密码变得难猜许多——实际上,效果远没有那么好。几乎所有人的思维都会遵循那些早已被踏平的熟门熟路。如果网站要求你的密码里必须有数字,那password变成password1或者password123的频率会让你吃惊的。而要求你必须大小写同时出现的密码就会产生Password或PaSsWoRd。必须有特殊符号的结果则是password!和p@ssword。你以为$pider_Man1这种密码真的有看起来那么安全?每个人都觉得自己很机智,最后都机智到一块去了。
而且我们还有理由担心,因为网站强制采取重整,会逼迫用户去使用那些简单好记的密码作为重整的“底子”——因为重整本身很难记。它带来的安全感是虚假的。
RockYou事件
之所以我们对这些愚蠢密码有所了解,很大程度上来自于2009年12月4日的RockYou.com安全漏洞事件,他们是一个Facebook游戏发行商。一位黑客公布了这个网站32603388位用户的账号名和明文密码。此前和此后都有很多安全漏洞,但是这一起事件的超大规模使得它成为密码研究的关键数据组——无论是对好人还是对坏人而言。
“123456”和“password”是非常受欢迎的密码。
在RockYou.com里最受欢迎的密码是“123456”,使用者人数高达290731人。不同年龄段和性别的人爱用的密码有很多差异,对于30岁以下的男性,许多受欢迎的密码来自性和秽语: pussy,fuck,fucking,696969,asshole,fucker,horny,hooters,bigdick,tits,boobs等词汇位居前列。年纪大的人(不分男女)更倾向于使用昔日流行文化里的老梗。“Epsilon793”本来不是一个很糟的密码——假如它不是《星际迷航:下一代》里Picard舰长的密码的话。七位数字“8675309”常见到不可思议的程度,因为它是当年一首流行歌曲里面的电话号码。
只有记不住的才是安全的?
密码安全领域的每一项新方案最后不可避免都要招致冷眼旁观的专家的评论——在他们看来,任何常见的密码管理行为都是没用的。许多专家奉行“写下来”的原则,“很简单,足以抵御住字典式攻击的长密码已经长到人们记不住的程度了,如果人们选取一个又长又复杂、完全记不住的密码然后写在纸上,那才算安全。”这是咨询家布鲁斯•歇奈尔(Bruce Schneier)在2005年写下的,在数字时代这简直是上古先知了。“我们都很擅长保管小纸片,我建议人们把密码写在纸上,然后把那张纸和其他有价值的纸放在一起——钱包里。”
即便可以将密码记在纸上,但敲出一个长而难记的密码也是烦人的事。移动设备的虚拟键盘?祝你好运。专家建议和现实场景的鸿沟在我爸的方法上体现得再明显不过——他把密码写在即时贴上,再把即时贴贴在电脑旁。密码并不复杂,只是一个两字短语,没有数字或者奇怪的标点符号。现实中的人不光会选择不安全的密码,他们连这样的密码都不大记得住。
而在网上漫游中,许多用户像蜗牛一样留下一串又一串都差不多的密码轨迹。他们会给每个网站都使用一样的密码,风险?见鬼去吧。有些网站会手把手地带用户,强迫他们遵循一些无厘头的密码规则,用户不得不修改自己的常用密码——然后他们下次登录的时候又不记得是怎么修改的了。
那怎样的密码才算安全?
创造一个安全密码简直是世界上最简单的事情:一串完全随机的字符就是了。靠自己的脑子是无法达成完美随机的,但你也不需要这样苛求自己:许多网站和应用可以拿环境噪声的数据给你提供完全随机的密码。这里是我在random.org上获得的一些密码例子:
Vk54z6XG
Px7YZrm3
NfdeKYsY
FryVMwMk
BVfqbRQb
问题解决?对于那些有迫害妄想的记忆狂人,或者那些用指纹识别来保障密码管理软件安全的人来说,确实如此。剩下所有人都甭指望能记住这堆字母汤。他们还说每个账户要有不同的密码!
比起专家来说,大多数用户都更在乎密码的方便好记,而不那么在乎安全性。我不知道哪一方更正确。你家里有紧急避难室吗?十有八九是没有吧,但那些装了避难室的人肯定会告诉你这玩意儿有多重要。但在你飞奔向避难室之前,也许确保自己始终锁好前门是更佳的选择。
密码面对的三种威胁
在现实中密码会受到来自以下三个方面的威胁:日常、群体和定向。
“日常威胁”指的是你认识的人。爱管闲事的同事或者亲人可能想要登录你的账号。他们会通过自己对你的了解来猜测你的密码(而不是靠暴力破解软件)。日常的打探者也许会知道你的高中球队是野猫队(Wildcats)然后尝试这个密码,不过wildCatz1很可能足以打败他。
“群体威胁”就像垃圾邮件一样,不针对个人。职业身份窃贼并不是在专门针对你的账号搞破解,他对你的个人情况一无所知,他的目的是汇集一套破解过的账号密码清单,通常是拿去再卖钱。密码窃贼则使用破解工具,会先从安全防护措施较低的网站下手——通常是那些允许你猜很多次的网站。这也许是没有什么经济价值的网站,比如游戏网站。等软件猜对了之后,它再用同样的密码及其变体去猜你的更加安全的账号,比如银行。
“定向威胁”意味着使用软件的私家侦探或警探。假如一个训练有素的人想黑进你的账号,假如金钱、时间(甚至法律)都站在他那边,那他很可能会成功。唯一的反制手段就是使用随机密码,长到足以保证其搜索时间抵得上你的预期寿命,甚至更久。
不要觉得你不会成为这种目标,哪怕是小企业的竞争对手也可能愿意花费资源去偷一台笔记本电脑。离婚案件里身价颇高的另一半也可能这样做。黑客可能会讨厌某个人的企业或者政治立场。推特的全站,就曾经陷落过,注意不是某个用户而是全站,原因只是一位管理员傻乎乎地选择了happiness作为密码。2009年一位黑客在字典攻击中发现了这个密码,把它贴在了Digital Gangster上面,结果是巴拉克•奥巴马,布兰妮•斯皮尔斯,脸书和福克斯新闻等等大账户的推特都被盗用了。
短语记忆法的问题
正如生命里所有别的事情一样,鱼和熊掌不能兼得,你不能同时拥有最高的安全性和最高的易用性。常见的策略里最好的一条之一是,把一个短语或者句子变成密码。你挑选一句话,一个词组或者一句歌词,用它们的首字母来作为密码。比如如果你要用May the force be with you(愿原力与你同在)这句话,密码就是Mtfbwy。
但刚才那句话最好不要用,而这就是问题所在。你肯定会想起某个电影、某首校歌或者南方公园里的众人皆知的句子。你有几个八词以上的短语能原样背下来的?随便一个句子甚至不见得比随便一个词更难猜。而且很少有人费心去重整他们的句子生成的密码——看起来已经很随机了嘛!
一个理想的密码方案即便所有人在用也不会失效。但如果句子变密码这个方案流行开来,那所有的大众文化习语变来的密码都会进入常见密码清单,破解软件会先尝试这些密码。而且习语缩写词一般都是字母,比起同样长度的多种字符混合密码要更危险。
这个办法的有些缺点可以解决。比如,永远不要用名句。一个办法是用私人笑话。还记得科苏梅尔岛上餐厅里侍者对布伦达说的那句超好笑的话吗?你记得,布伦达记得,也许侍者还记得,再没有别人知道了。如果你选择这句话作为你的密码句,那么你很有可能是地球上唯一用这个句子的人。
但密码本身是不是还那么独一无二,就不那么确定了。不同句子的首字母缩写也有可能是相同的,产生同样的缩写密码。有些字母更容易成为一个单词的首字母,而黑客软件可以利用这个特点。
反向短语法
运用密码-句子对应的最佳办法,是把传统的方案颠倒过来。不是找一个句子把它变成密码(这样的密码不会很随机),而是先找一个真正随机的密码,然后把它变成好记的句子。
我以前一直用简单愚蠢的密码。后来我被盗号了,网站给了我一个由随机数字和字母组成的临时密码,我刚准备把它改掉,突然意识到其实我不用改,这种随机的密码我还是记得住的。
我们的大脑非常擅长在随机的数据中寻找规则,这也是我们记住电话号码和身份证号的办法,这也同样可以用于记忆像RPM8t4ka这种随机密码,这是我刚在random.org上得到的。尽管这个密码确实是随机的,但我们的眼睛和大脑却可以立即从中找到记忆的规则。比如这个密码的前三个字母都是大写,后三个字母都是小写,数字8是两倍的4。
你也可以轻易地用一个无意义的短语来记住这个密码,比如RPM8t4ka就变成了revolutions per minute,8 track for Kathy(每分钟转速,给凯西8轨)。我不知道这句话有什么意思,但我知道我可以相当容易地记住这句话。
一个强密码
我使用的是“一个强密码”的原则。考虑到密码在我们的生活中的重要性,记住一个随机字符串还是很值得的。你能记住你的电话号码,为什么不再记一个密码?
一旦你找到了你的强密码,“拼你的老命保护它,”用安全专家尼克•贝里(Nick Berry)的话说。尽一切力量让你的电脑远离恶意软件,只在值得信任和重要的网站用这个密码。至于游戏网站和其他不重要的网站,我会用和这个密码完全不同的一个简单密码。
偷走密码的办法实在太多,这有理由让我们在不同的网站使用不同的密码。一种定制方案是,取网站名字的最后一个字母,然后把这个字母放在你的密码的开头。比如在Facebook,你就把k放在密码的开头,这样就变成了kRPM8t4ka。尽管这种办法不是绝对的安全,但也不错了。这样即便别人看见你在登陆Facebook时输入的是kRPM8t4ka,他也对如何获得你的银行密码一无所知。群体攻击者会收集成千上万的密码,只要其中有一部分原样也能在别的网站用就成了,剩下那些他很可能不会在乎。
我的强密码里并没有标点符号或者非ASCII的字符。万一有网站要求这样字符的,我就在末尾加个好记的符号。
“找回密码”
有些身份窃贼会直接跳过密码这一环节,他们假装自己是忘记密码的用户,然后回答安全问题。如果他们猜对了,他们就可以把密码改成他们想要的,合法用户的信息不仅被出售,他们自己也无法登录账号了。
2008年有人通过猜测萨拉•帕林(Sarah Palin,美国政治家)初次遇见她丈夫的地点而黑进了她的邮箱,四年后有人猜中米特•罗姆尼(Mitt Romney,也是美国政治家)最喜欢的宠物而黑进了他的账号,并不是只有名人需要担心这些问题,任何与你熟悉的人都可能猜出你的很多安全问题,而不认识你的黑客们则有针对安全问题的流行答案表——最常见的宠物名、旧车等等。
最近,新闻报道常常吹捧一个应对策略:用毫无意义的答案。比如你用儿童黑话来回答每一个问题,或者用同一个无意义的答案回答所有问题。你母亲在结婚前叫Jimbob,你高中的吉祥物也叫Jimbob。
这个方法可能暂时有效,但如果有一天有很多人都使用这种方法,那它也可能失效——你选取的“无意义的答案”很可能和任何其他答案都一样刻板。
我总是诚实回答安全问题。你并不经常遭遇安全问题,过了好多年之后,当你想要证明你是谁时,你不会希望自己忘记答案的。许多网站会让你选择安全问题,我会选择真实答案并不那么普遍或者不容易被猜中的答案。
个人识别码(PIN)
个人识别码就是我们银行卡使用的那种密码。好像没有人费劲去发明一个安全的PIN码,反正世界上大部分自动柜员机也只接受4位阿拉伯数字。(译注:中国自动柜员机一般使用6位阿拉伯数字,但原理相同。)我相信你能猜到最常见的PIN码是什么,但你能猜到有多少人在用吗?
尼克•贝里估计世界上足足有11%的人使用1234。PIN码倒是没有遭遇过几次大规模泄露,黑客对它不太感兴趣,因为没有实体卡的话PIN毫无用途。所以贝里的估计办法是,把所有已暴露的密码里的四位数字密码挑出来,他认为如果有人比方说用1967做密码,那肯定对这个数字情有独钟,输入PIN的时候也十有八九会用它。
贝里列表上的第二常见PIN是1111(6%的人选择了它),第三位是0000(将近2%的人)。简单来看,这意味着如果有个老手骗子捡到了你的银行卡,他有19%的概率能在三次之内猜中你的PIN值。(三次猜错之后一般的ATM就吞卡了。)
以下是贝里的20个最常用PIN码:
1234,1111,0000,1212,7777,1004,2000,4444,2222,6969,9999,3333,5555,6666,1313,8888,4321,2001,1010。
所有的四位一样的密码都在里面出现了。别忘了,这不是个随机实验,这是个“我怕我忘了这个数所以最好挑个超级超级好记的数”实验。
贝里还找到了一些不那么明显的模式:
年份。所有最近的年份,还有几个历史上著名的年份(1492,1776等等)都高居前列。
数对。许多人挑一个两位数,重复一遍就得到了他们的密码(1212,8787等等)。那个两位数的十位和个位通常只差1。
2580。有些人大概是想用在小键盘上玩井字棋的方式来获得随机密码吧……不幸的是要想得到四位数,唯一的办法是从中间直着下去,2580。这是贝里列表上第22常见的选择,这估计要怪小键盘的发明者阿方斯•恰怕尼斯(Alphonse Chapanis)。
1004。在韩语里这个数字念起来像“天使”。这引发了一首流行歌曲:“成为我的1004”。显然太多的韩国人觉得非韩国人不会知道这个,让它同时成为了流行密码。
挑选一个不在常见列表上的PIN码十分重要。最不常见的PIN是8068,但你恐怕也不要去用这个比较好……我会选一个6、7、8、9或者0开头、没有明显模式的。不要使用和个人有关的数字,比如你的生日、身份证或者信用卡号码。这些数字都在你钱包里,而丢钱包可是丢银行卡最常见的方式。
干嘛这么费神呢?
普通密码,短语密码,记忆法——到底能有多少区别?区别在于随机字符密码是安全的金标准。它比任何人类选择的密码都更强。就算世界上每个人都选择这个方案,它依然安全。
一个长度合适的随机密码,事实上以今天的科技是猜不到的。它不会出现在常用密码列表里。群体攻击者只有蛮力搜索才能猜到随机密码。有大小写字母和数字的情况下,共有62种不同字符(不算特殊符号,因为有些网站不允许)。这意味着一个8位随机密码需要猜62^8次才能确保命中。这是要猜22万亿次。
这实际上足以让你免受互联网群体攻击,也会让定向攻击进展缓慢。假如承认现在的刑侦级密码破译软件每秒钟可以给出28亿个猜测结果,那么猜这么多次也要22小时,这对大部分人都足够了——如果你不这么觉得,你可以简单地多增加几个字符。
但这并不是说随机密码就是无敌的。它不能被猜到,但仍然可能会被偷走。你有没有浪费时间在一些像 “测测你的克林贡名字”(或者巫师名字、犹太名字、色情电影明星名字之类的)这些会让你填写个人信息的网页小游戏上?其中有一些还会让你设置一个密码。这些网站其实是在收集你的密码,因为对方知道你在这个网站的密码很可能和你在别的网站的密码相同或相似。在黑市上,这样收集到的密码大约可以卖到20美金一个。哪怕是细心的人也总是会上这种当。有些高科技恶意软件能记录你敲下的每一个按键,爱管闲事的人会用低科技手段——在你的背后偷看你的密码。黑客可以通过网站的安保薄弱环节偷走你的密码,这就跟用户的密码复杂程度完全无关了。
密码就像你家房门的钥匙,哪怕你家里是防盗门,但如果小偷从你的口袋里偷走了钥匙,那扇门就跟普通的门一样不安全。安保,永远是最弱的一环。
总结:怎样不被别人猜中你的密码?
做好准备,记住一个好用的强密码。绝对值得。
去网站上(比如random.org这种)找真正随机生成的密码,列出五到十个备选密码。
从中挑一个你能转换成好记短语的密码,靠那个短语来记忆。
只在事关金钱的重要网站使用它。
……