欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Hash Length Extension Attacks

发布时间:2024/1/17 编程问答 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Hash Length Extension Attacks 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

catalogue

1. Hash函数的内部原理 2. 漏洞原理

 

1. Hash函数的内部原理

0x1: 分组、Padding

哈希函数以区块为单位操作数据。比如说,MD5, SHA1, SHA256的区块长度是512 bits 。大多数message的长度不会刚好可以被哈希函数的区块长度整除。这样一来,message就必须被填充(padding)至区块长度的整数倍

以MD5为例,首先算法将消息以512-bit(就是64字节)的长度分组。最后一组必然不足512-bit,这时候算法就会自动往最后一组中填充字节,这个过程被称为padding

xxxxxxxxxxxreport.pdf\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xA8

在本例所用的SHA1算法中,哈希值由五组整数构成。一般我们看到的形式是把这五个整数转换为16进制然后连接到一起。运行算法时,初始值(又叫registers)被设置为这组数

1. 67452301 2. EFCDAB89 3. 98BADCFE 4. 10325476 5. C3D2E1F0

紧接着,填充message,再将其分割为512bits的区块。算法轮流操作每个区块,进行一系列的计算并更新registers的值。一旦完成了这些运算,registers里的值就是最终的哈希值

Relevant Link:

 

2. 漏洞原理

MD5 Length扩展Padding攻击的目的是在不知道原始md5(secrect)的secrect的前提下,直接得到md5(secrect || padding || m')的新MD5 HASH

1. 类型MD5这种本来就是要对message进行分组,并逐个遍历所有分组,进行轮询运算的,所以HASH算法的运算次数是随着message的增加而线性增加的 2. 而Padding一段全零的数据对原始message的HASH计算结果是没有影响的(Padding到一个分组的整数倍) 3. 对MD5 HASH来说,是以轮为基本单位的,每一轮计算都会得到一组"中间值",分别保存在一组寄存器(register)中,因此从本质上看,即使是MD5(secrect)得到的最终结果,我们也可以将它看成是一个"中间态计算结果" 4. 跟在padding后面的'm,相当于对原始message增加一轮HASH轮运算

在这里m' 是任意数据, || 是连接符,可以为空。padding是 secret 最后的填充字节。md5的padding字节包含整个消息的长度,因此,为了能够准确的计算出padding的值,secret的长度也是我们需要知道的

所以要实施Length Extension Attack,就需要找到MD5(secret)最后压缩计算得到的值,并根据secrect的长度算出当前分组剩下需要填充的padding,然后在padding后面加上我们想要extend的内容,加入到下一轮的MD5压缩算法中去,算出最终我们需要的值

0x1: 漏洞利用场景

1. 通过某种方式,我们已知MD5(secret)的值 2. 在另一个输入点需要验证MD5(secret+other1+other2)的值 3. 我们不需要知道secret的值,就可以直接通过已经获取的MD5(secret)得到MD5(secret+other1+other2)的值

Relevant Link:

http://www.freebuf.com/articles/web/31756.html http://netifera.com/research/flickr_api_signature_forgery.pdf http://www.2cto.com/Article/201109/105056.html

 

Copyright (c) 2016 LittleHann All rights reserved

 

转载于:https://www.cnblogs.com/LittleHann/p/5513207.html

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的Hash Length Extension Attacks的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。