挖坟鞭尸警告!(无意冒犯)
观/t/937283有感, 帖中 OP 留了个md5(微信 ID)
作为联系方式, 遭到了大家的嘲讽.
本来我也只是当乐子看的嘛, 但是当我看到这么一篇更陈年的老帖的时候, 忽然意识到这个事情并不是那么的可笑.
如果我们限定md5sum是特定格式的数据产生, 以现代计算机的运算能力, 是可以控制在一个很短的时间内碰撞出原始数据的. 包括但不限于 QQ/手机号/短且简单的微信 ID, 以及前述数据拼接出来的邮箱地址, 等等.
比如, 我们限定一种最简单的联系方式: 手机号
我测试了两个 sample:
使用hashcat
进行掩码爆破: hashcat -m 0 -a 3 $hash 1?d?d?d?d?d?d?d?d?d?d
测试机 A 是我的上古游戏本, Intel 7920HQ + GTX 1070(CUDA 加速)
测试机 B 是前年买的小新笔记本, AMD 5800H (核心显卡)
测试机 A 可以在 2 秒内跑完所有的碰撞用例, 仅需 1 秒即可碰撞出手机号: 19216832109
测试机 B 可以在 6 秒内跑完所有的碰撞用例, 仅需 4 秒即可碰撞出手机号: 19216832109
从上述结果来看, 留一个md5sum
作为自己的联系方式其实是有可取之处的嘛.🫢
1
d7101120120 2023-07-08 23:17:28 +08:00
是的,已经有不少号称"解密"md5 的网站其实也都是用这种碰撞的方式,将大部分常见的字符串的 md5 值算出来,建立映射关系,之后再跟用户输入的 md5 字符串匹配的。
说起来想起一件趣事,就是电信的光猫曾经将超级用户的密码放在登录接口的返回里面,虽然只有 md5 的值,但是有规则可循,总是 telecomadmin+8 位数字。这个时候就可以写一个简单的脚本,穷举出这 8 位数字的结果,从而得到超级密码。 |
2
seakingii 2023-07-08 23:23:01 +08:00
可以但没必要
|
3
Binwalker 2023-07-08 23:31:25 +08:00
的确是这样,以前 CTF 比赛时有 MISC 题就是这种,给个 HASH ,flag 是手机号,然后地区和通信商通过其它条件找到以减少范围,python 写个遍历一秒就出来了
|
4
dem0ns 2023-07-08 23:32:21 +08:00
如果我是 cmd5 的股东,我愿意留下 md5 的手机号
|
5
kkwa56188 2023-07-08 23:40:02 +08:00
碰撞跟暴力解密码 一样, 只适合 位数短的, 有一定限制的(例如手机号), 甚至还能建常用字典
说不能解吧, 还是有能解的例子, 但通用性就 见仁见智了 |
6
leaflxh 2023-07-08 23:41:16 +08:00 via Android
留 md5 这种纯属是想玩缘分
|
7
lhbc 2023-07-08 23:43:20 +08:00 2
8bb258d4f970cc41c6d98ce3eceebc1d
echo "my phone number: +86-(138)-0013-8000, call me please." | md5sum |
8
pengtdyd 2023-07-08 23:43:33 +08:00 1
但是现在在新项目的开始的时候密码都不用 md5 了,sha512+盐+散列,这样就算你得到了也没啥用。
|
9
GeruzoniAnsasu 2023-07-08 23:45:58 +08:00 5
如果你 10 年前用过 cmd5 ,那就应该知道它们早就把 11 位纯数字(手机号)撞完了:
https://www.cmd5.com/password.aspx 手机号撞出来确实不困难,但蠢不是因为无法还原,而是每一个留 md5 的人都没意识到 md5 是个 hash 算法意味着什么,这说明他的技术素养堪忧。 假如原 po 主本意就是双向筛选密码学和安全技术扎实的业内人士,那留一个 md5 让人撞当然无可厚非 |
10
f14g OP @pengtdyd `sha512+盐+散列`只会增加碰撞的难度而已. 如果本身密码强度足够低的话, 也是可以在可观的时间内解出的. 此时就要考验字典的能力了😂
|
11
f14g OP @GeruzoniAnsasu 确实. 我发这个帖的时候也是有类似的想法: 如果想在 v 站筛选安全圈的 V 友的话, 留联系方式的时候放一个 md5sum 好像不失为一个好办法.
|
12
RoccoShi 2023-07-08 23:52:14 +08:00
毕竟去掉前三位也就 1e7 的复杂度
|
13
abersheeran 2023-07-09 00:02:27 +08:00
如果是招黑客我觉得倒也不是不可以。甚至可以不留联系方式,只写待遇,让有兴趣的人自己想办法拿到联系方式。😂
|
14
sNullp 2023-07-09 00:13:14 +08:00 via iPhone
本站有 md5 ptsd ,这个不是技术问题…
|
15
dayeye2006199 2023-07-09 01:51:06 +08:00 2
所以大家学习到了纯数字的密码有多弱智了把
|
16
lithiumii 2023-07-09 02:01:59 +08:00 via Android
确实,甚至可以留 sha256 的手机号
|
17
mythabc 2023-07-09 02:22:38 +08:00 2
相比于
192 手 1683 机 2109 浩 你这种 MD5 彩虹表的方式有什么特别的优势吗?甚至在被识别出来的情况下,可以直接写个脚本进行全站手机号还原。 而我,每一次使用都可以自由的变换加密方式 192 獣 1683 机 2109 192 邀 683 机 2109 192 手 1683 机 21 灵鹫 |
18
x86 2023-07-09 08:29:10 +08:00 via iPhone
纯数字的 md5 何况是手机号,在 n 年前就能秒解了
|
19
Jirajine 2023-07-09 08:32:50 +08:00
@f14g “安全圈”人士留个 md5 的手机号确实挺搞笑的,security by obscurity ?
除了装 b 没有任何安全性可言,真要安全的方式交换联系方式不如留 PGP 公钥。 |
20
imdong 2023-07-09 08:44:46 +08:00 via iPhone 4
如果你们对号码编码是为了防止社工攻击,那么使用固定值也是一种特征,月底麻烦一点,要搜索 Q 帐号,base64 后的帐号,md5 后的帐号……所以我留下 base64 时,并不会只编码帐号信息,会在前面加上一些额外的文字,尽量每次都不一样。这样 base64 的特征会减少。
|
21
christin 2023-07-09 10:01:19 +08:00 via iPhone
手机号是 11 位的纯数字,暴力破解也还行,但是微信号不一样啊,未知长度的数字字母和符号,我可不想浪费时间挨着试
|
22
bjzhush 2023-07-09 11:25:10 +08:00
技术上可行并不等于合适
为什么 V 站大家会留 base64 的联系方式?主要目的是防止 Google 等索引及后续可能的社工 至于你说的爆破,理论上是可行的,但是是需要一段程序支持的,而 base64 的 encode/decode 是随便在网页等地方 1 秒解开的。 可以对比一下,手机号 md5 几秒可解,安全性并不比 base64 高,但是反解起来更麻烦,所以有点脱裤子放屁的意思。 至于微信的 MD5 和 base64 相比,MD5 无解,因为微信 ID 长度可以非常长,base64 秒解。 综上,MD5 垃圾,base64 好用 |
24
julyclyde 2023-07-09 13:36:21 +08:00
除了 hash“有可能碰撞”之外,其实没啥太大问题
|
25
Lax 2023-07-09 20:47:02 +08:00
11 位数字的哈希值有没有算出来是相同的?如果没有碰撞的话,只是留一个手机号,那也算是一种可以考虑的方式。
但是留的联系方式不一定只是手机号,还有各种邮箱、微信号、地址等等,不信在几秒之内就能碰撞出来 |
26
w568w 2023-07-09 22:37:03 +08:00 2
如果只是想反爬……
沵恏,莪哋掱僟呺湜:Ig2①陸仈彡贰—蕶勼 |