2012年,明文密码LinkedIn遭遇了一次大规模数据泄露。明文密码650万个密码哈希被公开挂在一个俄罗斯论坛上。明文密码听起来还好,明文密码至少是明文密码哈希。但问题在于,明文密码LinkedIn当时用的明文密码是SHA-1,而且没有加盐。明文密码这意味着什么?明文密码一张彩虹表跑几个小时,大部分密码就裸奔了。明文密码那批泄露里,明文密码"123456"、明文密码"password"、明文密码"linkedin123"排在前几位。明文密码十几年过去了,明文密码这种事还在反复发生。
我去年帮一个朋友处理他的路由器。他抱怨WiFi总被人蹭,我登进管理后台一看,密码是"admin888"。我问他为什么设这个,他说"方便记"。这三个字几乎解释了所有明文密码问题的根源——人脑天生不擅长记随机字符串,但安全系统偏偏要求你记住一堆无规律的字符。
密码存储这件事,技术上早就有了标准答案。bcrypt、scrypt、argon2,这些算法专门为密码哈希设计,计算慢、加盐、抗GPU暴力破解。但你去翻一些中小型网站的后台数据库,还是能看到密码以明文躺在user表里。为什么?因为方便。用户忘了密码,客服直接查一下告诉他。省了邮件系统的钱,省了开发重置流程的时间。这种"方便"的代价,在数据泄露之前,没人会算。
2009年,RockYou网站被入侵。3200万用户的密码明文存储,全部泄露。安全研究员分析后发现,最常用的密码是"123456",有将近30万人用。第二名是"12345",第三名是"123456789"。这些数字令人麻木,但它说明一个问题:用户不是不知道弱密码有风险,他们只是默认"这事不会发生在我身上"。
我自己有个习惯,每隔一段时间就去Have I Been Pwned查一下自己的邮箱。到目前为止,我的主邮箱出现在7次数据泄露里。有几次是论坛,有几次是电商平台。每次看到结果,我都会把当时用的密码改掉。但说实话,如果那些平台存的是明文密码,我改得再勤也没用——泄露发生的那一刻,密码就已经不在我控制范围内了。
企业这边的情况更微妙。很多公司内部系统的默认管理员密码是"admin/admin"或者"root/root",装完系统之后没人改。2016年,Mirai僵尸网络横扫全球物联网设备,靠的就是一份默认密码列表——60组用户名密码组合,攻下了几十万台摄像头和路由器。这些设备出厂时密码是明文写在说明书上的,用户不改,就等于把钥匙插在门上。
有人说,那我用密码管理器不就行了。确实,1Password、Bitwarden这些工具能生成并存储高强度随机密码,你只需要记住一个主密码。但密码管理器本身也是一把双刃剑——2022年LastPass被入侵,攻击者拿到了用户的加密密码库。如果你的主密码不够强,整个库就是明文。所以绕来绕去,问题又回到了原点:你得记住一个足够复杂的东西。
密码这个东西,本质上是在安全和便利之间做取舍。明文存储是把便利拉到满格,安全归零。哈希加盐是把安全拉高,但用户该忘密码还是忘。生物识别、硬件密钥、passkey,这些新技术在试图绕过"记忆"这个环节。但推广速度很慢,因为改基础设施的成本太高,而用户已经习惯了"输一串字符"这件事。
我写这些不是要教你怎么设密码。网上那种"大小写字母加数字加符号"的建议到处都是,你大概率也不会照做。我想说的是,当你下次注册一个不重要的网站时,如果它发了一封邮件把密码明文发给你,或者客服能直接告诉你密码是什么,你就该知道——这个网站的数据库里,你的密码大概率是裸奔的。至于要不要继续用,你自己判断。
顶: 555踩: 3






评论专区