hash扩展长度攻击

实际上对以下算法都能实现hash长度扩展攻击,包括md4,md5,ripemd-160,sha-0,sha-1,sha-256,sha-512等,此次针对最常见的md5的hash长度扩展攻击进行讲解。

条件:

   1. secret(salt)为“secret”(攻击者未知)

    2.数据为“data”(攻击者已知)

   3. 应用采用md5算法,签名算法是hash(secret||data)(||为拼接符,可以为空),已知一个对应项为

    hash(secret || data) = 6036708eba0d11f6ef52ad44e8b74d5b(攻击者已知)

   

   4. 追加字符为”append”(攻击者攻击时使用)

流程为:服务器向攻击者发送数据和签名(即攻击者知道条件2,3),攻击者只需要知道secret(salt)的长度(在CTF比赛中可能会给出,但是实际情况下可能需要通过遍历等方法获取)以及采用的算法,就可以附加追加的数据并为数据生成有效的签名。

可能还是有点懵圈,简单说,就是攻击者现在知道应用给出的一对数据和签名的对应值,只要再知道采用的算法,和secret(salt)的长度就可以生成有效签名进行攻击。为什么这算是攻击呢?因为正常情况下,需要知道secret(salt)才可以生成有效签名,可是在现在的情况下,攻击者无需知道secret(salt)便可以生成有效签名。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值