V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lry
V2EX  ›  信息安全

3 小时生成 60 份 MD5 完全一致的 PDF 文件

  •  1
     
  •   lry · 2020-12-31 17:09:49 +08:00 · 6409 次点击
    这是一个创建于 1417 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚看到鹅厂安全的一篇文章 https://mp.weixin.qq.com/s/67ucLHMLJJj69h8A66npbA

    这些碰撞出来的文件,字节数相同,可以正常打开预览,MD5 完全一致

    现在的 MD5 碰撞这么容易了吗?

    另外拿这些文件测试了一下天翼云网盘,MD5 一致直接就妙传成功,完全翻车

    2020-12-31 165942.png

    34 条回复    2021-01-01 17:32:53 +08:00
    huluhulu
        1
    huluhulu  
       2020-12-31 17:18:04 +08:00   ❤️ 1
    md5 还是弱了一些.
    一般用双验证吧. 一种码现在完全不够.
    keepeye
        2
    keepeye  
       2020-12-31 17:26:36 +08:00
    这是根据特定 MD5 反向生成文件吧
    BadAngel
        3
    BadAngel  
       2020-12-31 17:26:50 +08:00
    你看这些文件的二进制都是一样的,能解出一样的 MD5,没什么毛病。

    相同二进制,但是展现内容不一致是怎么玩的。
    keepeye
        4
    keepeye  
       2020-12-31 17:27:07 +08:00
    fastcoll
    Tianao
        5
    Tianao  
       2020-12-31 17:29:26 +08:00 via iPhone   ❤️ 2
    @BadAngel #3 何以见得二进制一样啊?
    bubuyu
        6
    bubuyu  
       2020-12-31 17:32:36 +08:00 via iPhone
    现在校验文件不一般都用 SHA1 了吗
    geelaw
        7
    geelaw  
       2020-12-31 17:34:10 +08:00 via iPhone
    @BadAngel #3 这些文件是不同的,只是它们的 MD5 相同。

    回到本来的问题,关于 MD5 最著名的莫过于王晓云、于洪波著《如何破解 MD5 和其他 hash 函数》 https://link.springer.com/chapter/10.1007%2F11426639_2
    geelaw
        8
    geelaw  
       2020-12-31 17:37:59 +08:00 via iPhone
    #7 罪过罪过…正确的名字是 王小云、于红波。
    imgbed
        9
    imgbed  
       2020-12-31 17:40:12 +08:00 via Android
    str = md5(str)
    能把这个 str 字符串碰撞出来吗?
    mxT52CRuqR6o5
        10
    mxT52CRuqR6o5  
       2020-12-31 18:03:22 +08:00   ❤️ 2
    md5 前缀碰撞很快的,假设 PDF 文件可以在末尾随便加数据不影响内容,可以按照下面文章中的方法生成任意个内容不同 md5 相同的 PDF
    https://zhuanlan.zhihu.com/p/320207905
    gam2046
        11
    gam2046  
       2020-12-31 18:03:33 +08:00
    已知待进行信息摘要的内容 a,已知算法 MD5,可得
    Sa = MD5(a )

    在这种情况下,是可以碰撞出无穷多的 a1,a2,a3...an ,满足
    Sa = Sn = MD5(an)

    上面有提到的王小云著有相关论文。
    libook
        12
    libook  
       2020-12-31 18:23:41 +08:00
    王小云教授搞出来 MD5 的碰撞算法已经是 2004 年的事情了,后续一堆 Geek 改进算法,加上十几年算力翻了好多倍,现在能达到这种程度也不意外。

    MD5 的碰撞特性基本没有任何利用价值了,但是如果不用于碰撞而是单纯用于摘要(保密原文)的话也还是可以用的,因为碰撞算法只能碰撞,但是无法知道原文是啥。
    Tink
        13
    Tink  
       2020-12-31 18:35:43 +08:00 via Android
    厉害
    nilbot
        14
    nilbot  
       2020-12-31 18:40:30 +08:00 via Android
    最后一句话亮了,完全翻车:)
    Jooooooooo
        15
    Jooooooooo  
       2020-12-31 18:55:38 +08:00
    已经有太多示例证明, 如果存在被攻击的入口, 那不要用 md5, 因为已经被破解
    explore365
        16
    explore365  
       2020-12-31 19:00:31 +08:00
    MaiKuraki
        17
    MaiKuraki  
       2020-12-31 20:20:13 +08:00
    如果你已经拥有源文件了,文件伪造又有何意义
    dzdh
        18
    dzdh  
       2020-12-31 20:30:33 +08:00
    @Jooooooooo 碰撞和破解可是俩概念
    microka
        19
    microka  
       2020-12-31 20:37:15 +08:00
    我试了用天翼云盘传下载回来的 Certificate.7z 里面的 PDF,每个 PDF 都是实打实的上传,没有秒传。
    ytmsdy
        20
    ytmsdy  
       2020-12-31 20:44:35 +08:00
    MD5 好几年前就已经被突破了啊!
    lry
        21
    lry  
    OP
       2020-12-31 20:58:38 +08:00
    @microka 我这边是 win10 V6.3.3 客户端上传的,第一次上传 arm_rank01.pdf 是正常上传,接着上传 arm_rank02.pdf 和 arm_rank03.pdf 都是秒传,抓包发现只有第一次上传的时候接口返回 fileDataExists = 0,另外两次都是 fileDataExists = 1 。下载上传好的 arm_rank03.pdf 和 arm_rank02.pdf 显示的都是 arm_rank01.pdf 的内容,不知道你那边是什么方式上传的、。、

    如图
    AndyAO
        22
    AndyAO  
       2020-12-31 21:04:40 +08:00
    说明用这种方式,来校验文件相同已经不可靠了.
    或者说是防小人不防君子.
    AndyAO
        23
    AndyAO  
       2020-12-31 21:04:55 +08:00
    @AndyAO #22 刚好说反了,防君子不防小人
    ym1ng
        24
    ym1ng  
       2020-12-31 21:13:42 +08:00
    第二型生日攻击
    favourstreet
        25
    favourstreet  
       2020-12-31 21:15:43 +08:00 via Android
    @AndyAO 君子也不一定能防,md5 是 128 位,ipv6 也是 128 位,等长,考虑到生日攻击,ipv6 地址没碰撞就已经是奇迹了;源地址加目的地址共 256 位,铁定碰撞了……
    zhanglintc
        26
    zhanglintc  
       2020-12-31 21:20:19 +08:00
    @BadAngel #3 二进制不一样,你仔细比较一下
    tuxz
        27
    tuxz  
       2020-12-31 21:26:39 +08:00 via Android   ❤️ 2
    莫非这就是网易云盘的音乐被改的原因吗😅
    microka
        28
    microka  
       2020-12-31 21:45:53 +08:00 via iPhone
    @lry 噢,我是网页端直接上传。
    xupefei
        29
    xupefei  
       2020-12-31 21:52:54 +08:00
    @imgbed 数学证明这个 str 存在的可能性是 60%,但好像目前还没人试出来?
    opengps
        30
    opengps  
       2020-12-31 21:53:42 +08:00
    现在文件的数量突增,定长的 md5 字符显然已经有些容不下了。硬盘看下开发目录之类的文件夹属性,动不动就几千个文件
    gyf304
        31
    gyf304  
       2021-01-01 06:50:30 +08:00
    @bubuyu SHA1 也不行了 要用 SHA256 了
    v2tudnew
        32
    v2tudnew  
       2021-01-01 12:14:43 +08:00
    @favourstreet v6 各地区的前缀就不一样,怎么会碰撞? MAC 碰撞倒是有可能
    uxff
        33
    uxff  
       2021-01-01 16:31:04 +08:00
    秒传功能看来靠不住了
    laminux29
        34
    laminux29  
       2021-01-01 17:32:53 +08:00
    王小云单 PC P4 1.6Ghz 45 分钟,方法还是公开的。鹅厂安全部门整个算力集群,3 小时.....我要是鹅厂搞安全的,我选择自尽 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2376 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:00 · PVG 00:00 · LAX 08:00 · JFK 11:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.