FlySky(音符)'s Blog
人生最重要的不是所站的位置,而是所朝的方向!

可执行文件的MD5碰撞--不同的文件,相同的MD5值

June 28, 2008 11:09 by FlySky

原来我总是很自信地以为:你有本事找到 MD5 的碰撞又如何?你难道还有本事让两个可执行文件的 MD5 一样,却又都能正常运行,并且可以做完全不同的事情么?
答:还真的可以.

HelloWorld.exe (40.81 kb)

GoodbyeWorld.exe (40.81 kb)

这两个程序会在屏幕上打印出不同的字符,但是它们的 MD5 都是一样的。

我们测试如下:

HelloWorld.exe 文件SHA1和MD5值如下:

MD5:18FCC4334F44FED60718E7DACD82DDDF
SHA1:0033F995A30FD2CCBF60CC1E7D7DB9E649397668

GoodbyeWorld.exe 文件SHA1和MD5值如下:

MD5:18FCC4334F44FED60718E7DACD82DDDF
SHA1:30ACE7E13A7F9DC9ABBAA431241309AC6741E735

经过以上测试,我们不难看出,两个文件的MD5值是完全相同的,采用MD5为验证标准的系统这时候就该把两个文件视做同一个了。

通读其论文后摘要如下:

这几位密码学家使用的是“构造前缀碰撞法”(chosen-prefix collisions)来进行此次攻击(是王小云所使用的攻击方法的改进版本)。

他们所使用的计算机是一台 Sony PS3,且仅用了不到两天。

结论:
1.MD5 算法不应再被用于任何软件完整性检查或代码签名的用途。
2.SHA 系列算法目前除了 SHA0 以外都还未被攻破,因此安全程度相应会高一些。

另:现在,如果仅仅是想要生成 MD5 相同而内容不同的文件的话,在任何主流配置的电脑上用几秒钟就可以完成了。

这几位密码学家编写的“快速 MD5 碰撞生成器”:fastcoll_v1_0_0_5.exe (248.00 kb)

附注生成器源代码(VC++):fastcoll_c++.rar (25.56 kb)

 

以下内容为个人补充:

如果此技术被应用到木马病毒领域的话,将会繁生出一批新的木马或病毒。

设想,开发一个木马或病毒,其中包括后门、蠕虫、Email病毒等,整体打包做个超强木马,然后把其MD5值修改成其他的通用软件如 Real Player 的MD5值,然后可以名正言顺的放到各大下载站供大家下载,一旦下载了这种假 Real Player 的话,将会立即被感染这种病毒,并且会以最快的速度感染给所有与此计算机有联网请求的其他机器,后果将不堪设想。

当然,以上内容只是个人设想。不过还是希望各大验证类软件尽快进行升级,抛弃MD5值算法做为软件的身份认证技术,尽量采用SHA1值或其他方式来验证。


Currently rated 1.0 by 1 people

  • Currently 1/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Related posts

Comments

June 28. 2008 11:48

日~~该你牛!!!

哥们好久搞个组织呀!!!

天涯

Add comment


 

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



Live preview

January 6. 2009 16:57