【阿里云盘】遍历8字节所有可能,sha1起死回生?
导读
在之前的帖子里,我分享了阿里云盘秒传sha1挂掉的消息。sha1挂掉后,对那些用sha1存了重要文件或珍稀资源的人来说,无疑是灭顶之灾,于是我去研究了一下新生成的proof_code,看看能不能生成这个proof_code,从而恢复文件:
20210913更新:解析了一下代码,厘清了思路,碰撞无解:一共有8个字节,即64位,共2^64种可能,但这是调用接口,而不是CPU进行解密计算,不能按CPU一秒几GHZ来计算。
假如一秒钟并发发出1W个上传请求,需要持续不断发2^64/10000/60/60/24/365=58494241年,即5KW年才能保证一定破解
因此碰撞无解
阿里云盘脚本作者的说法:
小白羊作者的说法:
是否可以通过新接口恢复秒传链接的导入呢?答案是不能,新接口是类似随机,提取文件的8个字节内容计算出proof_code。只要本地硬盘上没有这个文件,就无法计算proof_code,所以后续也无法通过新接口恢复秒传链接的导入功能
生成代码:在代码中可以看出来,sha1对于proof_code的生成没有任何帮助,而access_token的引入是为了随机化start的位置,所以所谓的proof_code不是什么计算后的结果,就直接是源文件中的一段数据
proof_code加密代码:https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=955&highlight=%E9%98%BF%E9%87%8C%E4%BA%91%E7%9B%98
我的理解是:F(sha1,accessToken,文件中的八个字节)=proof_code,相对于原先的sha1,proof_code使用了原文件,这造成了sha上传的失效,那能不能通过遍历文件中的八个字节来碰撞出proof_code?针对这个想法,有两个问题:
这种方法是否可行,会不会像hash碰撞那样只有理论上特别特别小的可能,而实际上家庭电脑完成碰撞需要几万年?是的
不知道阿里云对/v2/file/createWithFolders这个上传接口的调频率有没有限制,会不会限制账号调用次数,或者封IP?
我去问了阿里云盘脚本作胀娆他的回复是:
因此,最差情况下,百度算20分钟,文件按9G,带宽5MB/s算的话,下载需要30分钟,因此只需要50分钟左右,就可以猜出proof_code了,这样就解决了第一个问题。并不
第二个问题的解决需要实际测试
但最关键的是我的js停留在js里面有let,var关键字,还有===奇葩符号的水平上,所以我搞不来