今天登录推特的时候,系统发布一则“重要更新”,言辞含糊,说因为系统BUG,要求用户“出于高度谨慎之目的”修改密码。
在推特的 官方博客 里详细介绍了这个BUG,用户修改密码的主要原因是,此前发生的一个故障导致部分用户的账号密码以纯文本的形式出现在了该公司的内部网络上。
推特称,经内部调查发现,并无迹象表明这些密码已被公司内部人员盗取或滥用。尽管如此,推特仍敦促所有用户“出于高度谨慎之目的”而考虑更改密码。
该公司并未透露总共有多少用户的账号密码受到了影响。
外媒报道称,正常情况下,密码等敏感的个人数据应以HASH(散列)的形式进行存储,利用字母和数字的组合来保护密码本身的内容。但推特的故障则导致用户密码以纯文本形式公开存储在公司内部的一个日志上,没有进行任何HASH(散列)处理。
所谓“HASH”(散列),就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
推特在博文里称:“我们近日发现了一个bug,该bug导致密码无遮掩地被存储在一个内部日志上。我们已经修复了这个bug,没有迹象表明密码被任何人盗取或滥用。作为预防措施,用户应考虑在所有使用过同一密码的服务上更改密码。”
该公司指出,目前“并无理由认为这些密码信息离开过推特的系统”,也并无理由认为这些无保护的密码已被黑客获取,但未知的风险仍旧存在。推特建议用户更改密码以作为一种预防措施。
推特对此事件的解释如下:“我们利用一种所谓‘bcrypt’(注:这是专门为密码存储而设计的一种算法)的功能,通过所谓的‘散列’进程来掩蔽密码,这种程序会用存储在推特系统内部的一系列随机数字和字母来替代真实的密码,从而使得我们的系统能在不暴露用户密码的情况下验证账号身份凭证,这是一种行业标准。由于受到一个bug的影响,密码在散列进程完成之前被写入了一个内部日志。我们自己发现了这个错误,并已实施了计划来防止这个bug再次发生。”
微评:我原以为只有CSDN这模样的才会明文存储密码,没想到啊没想到,推特这浓眉大眼的家伙也开始明文存储密码了。