facebook 保存明文密码了?

2015-09-02 15:04:28 +08:00
 kukat

刚 facebook 提示我有异常登录,让我修改密码。

为了方便记忆,我只改了原密码其中的一个字母的大小写,然后提示信息如下:

Your new password is too similar to your current password. Please try another password.

注:修改密码页面是不需要输入原密码的,那么 facebook 是怎么拿新旧密码检查的呢?

3178 次点击
所在节点    分享发现
9 条回复
wy315700
2015-09-02 15:21:39 +08:00
simhash
shuax
2015-09-02 15:22:17 +08:00
也许有一种 similar hash 算法,算出来的两个 hash 很接近就说明密码接近呗。
比如“ 123 ” -> 6 , “ 132 ” - > 6 。服务器只保存了 6 。
laoyuan
2015-09-02 15:41:07 +08:00
只是保存了 lowercase (password ) 的密文
clino
2015-09-02 15:45:38 +08:00
那如果黑客拿到了 simhash 的数据是不是会比较容易猜出密码呢
caoyue
2015-09-02 18:06:43 +08:00
记得之前在 stackoverflow 还是哪里看到的,有个据说是 Facebook 的人确认过,用的是类似这样的方法:
1. 用户注册,设置密码 password "abc123", Facebook 存 hash
1. 用户提交 new password ,假设是 “ Abc123"
2. Facebook 会根据这个密码,生成一堆 ” abc123",“ aBC123" … 这样的密码,然后去和之前的 hash 比对,中了就会出现 similar password 的提示


另外, simhash 对短文本效果不是太好吧,对密码相似性判断这种需求应该不太有效
ryd994
2015-09-03 07:05:10 +08:00
@caoyue 如果只是大小写的话,一开始就存一份全部小写的就解决问题了。
caoyue
2015-09-03 12:17:10 +08:00
@ryd994
应该不只是大小写的变换,我只是举个栗子而已……
而且全部存小写会降低安全性,那要求密码包含大小写还有什么意义= =
suriv520
2015-09-15 10:56:47 +08:00
@caoyue
从技术角度比较悲观的估计, facebook 就是存了你的“明文”密码。

1. 针对 simhash 或者类似的算法,破解密码只需要穷举找到不断逼近的最优解就行了,遗传算法就能非常高效地解决这个问题。相似度算法,就相当于在密码序列的坐标上,给你了一块指路牌;

2. 针对“生成一堆 abc123 ”这种做法,咳咳,这与保存明文密码有多大区别……
caoyue
2015-09-15 11:33:38 +08:00
@suriv520
1. 你可以自己尝试 simhash 在短文本的可靠程度,基本没有意义。
2.「生成一堆 abc123 」的前提是用户有很大概率在修改密码的时候提交与之前相似的密码。
3. 如果你都能拿到用户提交的密码了,还管什么数据库明不明文……
3. 如果你不能拿到用户提交的密码,随便拿个密码就「生成一堆 abc123 」然后算,那是穷举,你能把穷举的难度降低到接近明文么……

当然了,要是「悲观的估计」,所有密码都是「明文」的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/217853

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX