某天,佛罗里达州朱庇特镇的数学家 Zachary Harris 收到了一封奇怪的邮件。这封邮件来自 Google 的招聘人员,问他是否对网站可靠性工程师的职位感兴趣。“很显然你对 Linux 和编程有激情”,信件中这样写道,”我希望知道,你是否对 Google 提供的机会保持开放的态度?“
这很起来很有意思,但是 Harris 却有些疑惑。这封信完全是突然出现的,而且做为一个数学家,他似乎不是 Google 提供职位的合适对象。Harris 怀疑这是否是一封垃圾邮件,于是他检查了邮件头信息。出于预料的是,他竟然发现了一个广为存在的网络安全漏洞。Wired 网站给我们讲述了这件事情的发生经过。
Zackery 发现,在向邮件接收方证明发送方身份的时候,Google 使用了一个弱密钥证书。如果有人能够破解密钥,就能够假装 Google 员工发短信,包括假装 Google 创始人。Google 在 Gmail 上使用了 DKIM (域密钥识别邮件)技术,按照标准 DKIM 是需要 1024 位密钥的,但是 Google 用的是 512 位,这使得密钥更加容易破解。
Harris Zackery 认为 Google 不可能如此粗心,这可能是一个狡猾的测试题,用来检测应聘人员发现漏洞的能力。虽然他对 Google 的工作不感兴趣,但他决定破解这个密钥,表示自己参与了他们的游戏。
他假装自己是 Sergey Brin,给 Larry Page 发了一封邮件。内容是这样的:
嘿,Larry:
这里有个非常有趣的想法,仍然处于初步开发阶段:
http://www.everythingwiki.net/index.php/What_Zach_wants_regarding_wiki_technology
如果上面的链接打不开,试试这个:
http://everythingwiki.sytes.net/index.php/What_Zach_wants_regarding_wiki_technology
我想我们应该看看 Google 是否应该以某种方式和这个家伙合作,你觉得呢?
-Sergey
他把邮件的回复地址设为自己的邮箱,那样的话,如果 Brin 和 Page 看到邮件,或许会问他是如何破解 Google 给出的问题的。但是,Harris 从未收到任何回复。两天后,他发现 Google 的密钥突然变成了 2048 位,而且他的网站出现了大量来自 Google 公司 IP 地址的访问。他这才意识到自己发现了一个真正的漏洞。
Harris 开始观察其它网站的情况,结果发现了同样的安全问题。这包括 PayPal、Yahoo、亚马逊、eBay、苹果、戴尔、LinkedIn、Twitter、SBCGlobal、惠普、Match.com 和 HSBC。如果你有足够技巧,完全可以在邮件中假装自己是贝索斯或者梅耶尔。
在 Google 的邮件系统发现漏洞,显得有些讽刺意味,因为 Google 一直在努力帮助 Gmail 用户清理垃圾邮件。Google 的一位发言人对 Wired 网站说,Google 非常重视这个问题,很快就填补了漏洞。公司在所有受到影响的域名上更换了密钥,并且都改成了高于 1024 位的密钥。
弱密钥的破解需要多长时间?Harris Zackery 说,他可以在 24 小时内破解 384 位密钥。至于 512 位的密钥,如果使用亚马逊的网络服务,他可以在 72 小时内破解。768 位的密钥就是他力所不及的了,不过一个大团队可以做到。 他发现,eBay、Yahoo、Twitter 和亚马逊用的都是 512 位密钥,PayPal、LinkdedIn、US Bank 和 HSBC 用的是 768 位。
看起来涉及资金周转的机构还是比较重视安全的。不过 Harris 认为,这仍然不够,像 PayPal 这样的网站,应该使用 1024 位的密钥。他猜测大公司出现这种安全漏洞的原因是,他们设置密钥后就忘记更新了,没有跟上加密领域的进步。
Harris 并不是安全研究员。在开始研究那封奇怪的 Gmail 之前,他甚至不知道 DKIM 是什么。他说,”我在不了解 DKIM 的情况下做成这件事情,证明那些有足够技术背景的人迟早发现这个漏洞“。