Code Monkey Cryptographic散列指南用于基于内容的寻址

123.4. 4.
第4页,共4页

当所选择的加密哈希函数被打破时会发生什么?

据鉴于,历史上,流行的加密哈希函数有一个有用的寿命约为10年,只是谨慎计划成功攻击哈希函数的最终性。对于某些应用,有意生成哈希碰撞的能力没有显着效果。对于其他人来说,它将导致数据损坏或使用恶意数据替换。

微不足道或无效

在某些系统中,碰撞的后果是微不足道的或不明调的。如果单个像素的颜色值是错误的,或者显示错误的字体,很多人将根本无法注意到。搜索引擎绝对没有保证准确性和用户期望无;返回错误的页面以获取搜索可能会在程序员的良知上欣赏,但没有实际影响。

只值得信赖的用户

今天许多系统使用CBA彻底破碎的加密散列;rsync.使用MD4和许多档案文件存储系统使用MD5。然而,这些系统仍然是实际和有用的,因为只允许不受动力打破系统的信任用户将数据引入系统中。TRUE,将有一些有用的数据您的用户无法存储;真实世界的例子是加密人员发布碰撞输入来证明加密哈希函数已被打破。(我的笔记本电脑文件系统包含碰撞MD5校验和自上市之后的碰撞MD5校验和。)其他系统只允许受信任的用户将数据添加到系统上;基于CBA的各种版本控制系统Git.单调落入这一类。如果用户可以在系统中创建哈希冲突,他们还可以直接检查代码以完成相同的效果,为什么担心花哨的哈希碰撞攻击?教育用户不有意地存储碰撞数据,问题已解决。

一种方法来判断您的系统是否真正进入此类别,是以损坏的加密哈希函数(具有足够数量的比特)来想象它,并查看是否遇到任何问题。实际上,在这种情况下,使用最快的适当加密散列函数是有意义的,无论它是否被打破。

请注意,UNIX样式操作系统不假设用户可信赖。文件系统和其他操作系统服务必须假设用户不受信任,并且可能故意引入哈希碰撞(有时候甚至不是恶意,就像验证发布的碰撞一样)。通常,系统软件将有许多不受信任或彻头彻尾的恶意用户,并将以不可预测的方式使用。应用程序可以指定有效的用户,并将其输入更窄于系统软件。

腐败或安全问题

在其他系统中,故意生成哈希碰撞的能力导致数据损坏或安全漏洞。如果不受信任的用户可以将数据添加到系统,那么它们可以实际上替换与另一个数据的一条数据,具有不同的后果。哈希被打破的程度会影响可行的攻击类型(阅读更多信息维基百科的抗冲抵抗,预测性和第二次预测阻力)但简单的思想实验表明,即使最简单的攻击也展示了显着的安全问题的可能性,找到了碰撞的两个随机输入。最简单的版本是二进制文件,它检查单个位值,并根据该位进行正确的事物或错误的东西;用一个输入分发它,导致它做正确的事情,后来用碰撞输入替换该输入,该输入在该比特值(其余部分可以是垃圾的情况下)。(让人们下载你的二进制,运行它等。留给读者的练习。)

上面的创新示例是最简单的哈希冲突攻击,一个可以发现只能找到任意冲突,但现在MD5的有意义的碰撞输入的实际示例现在是军团。一些:

严重但可固定

如果在成功的攻击出现内信息时,哈希碰撞具有严重影响的系统仍然可以安全地使用CBA来升级哈希函数。像BitTorrent这样的点对点文件共享系统容易攻击,因为任何不受信任的用户都可以为文件提供服务。但是,如果协议允许更改加密散列函数,则用户可以通过切换到新加密哈希函数并拒绝使用旧加密散列函数从对等体接受数据来保护自己。其他系统更难改装。使用CBA存储来自不受信任的用户的CBA的文件系统或档案服务需要重新索引其存储以更改加密散列函数,这需要在使用中读取每个块,计算新的哈希和写入新值 - 时间 -消耗和潜在的风险运行。只要询问您的SYSADMIN她认为重新索引到贵公司的长期档案存储时。

概括

因此,基于内容的寻址何时对您的应用程序有意义?使用CBA IF:

  • 计算和比较加密哈希比直接比较或传统哈希表更快。
  • 无论如何,其他原因需要加密哈希。
  • 只有信任的用户可以引入数据,
  • 或者,不受信任的用户可以引入数据,但可以在必要时升级哈希函数。

相反,不要使用CBA:

  • 基于内容的寻址比其他方法更慢或更不太可取。
  • 其他目的不需要加密哈希(单独错误检测,更快的非安全哈希造成更多意义)。
  • 不受信任的用户可以将数据添加到系统,哈希函数难以升级。

致谢

多年来,没有对许多程序员和加密人员的建议和批评,本文无法编写。特别是,我要感谢Fred Douglis,Armando Fox,Yongdae Kim和Aaram Yun的矫正以及许多改进的格式和清晰度。当然,我自己的所有错误和异常的短语转向仍然存在。

关于作者

Valerie Henson是创始人VAH咨询,一家专门从事Linux文件系统咨询的公司。她首先对加密哈希函数感兴趣OSDI '02如果别人和她一起玩它,那么就会开始一个幻想哈希函数联赛。她的第一个发表的论文,逐个比较分析,引发了关于基于内容的寻址但对程序员的有用建议,引发了关于基于内容的辩论的辩论,她试图修正。

了解有关此主题的更多信息

进一步阅读

应用加密

迭代散列函数中的多种速度

用于排序和同步的高效算法(详细说明rsync.算法)

文件系统支持Delta压缩(Xdelta的详细说明)

这个故事,“基于内容的寻址的Codeptoction Hashes指南”最初发布Linuxworld-(美国)

加入网络世界社区有个足球雷竞技appFacebooklinkedin.评论是最重要的主题。
有关的:

版权所有©2007.Raybet2

123.4. 4.
第4页,共4页
IT薪水调查:结果是