往下看前先给大家提一个问题,假如我上传了岛国一部非常经典的爱情动作片,不分享只是作为自己备份。急速秒传。如果有一天百度因为政府政策需要,必须删除这样的资源,百度是知道你有这样的资源的,会不会把我的这个备份也删除掉?大家不妨思考一下。
作者:孙晓峰 来源:知乎
大家都知道是用了HASH,我很好奇是用的MD5?还是SHA1?于是做了以下验证:
准备:size相同,MD5相同,SHA1不同 的两个文件
步骤:
1、先上传第一个文件erase.exe,确保没有人上传过。
从右边的窗口可以看到:这个文件应该是第一次上传,所以是“正常”上传。
2、再上传第二个文件hello.exe,看是否可以“秒传”。
Bingo,秒传成功。
结论:
1、
大概有80%的把握确定“百度云”使用的
MD5sum对比HASH(没有验证SHA1之前不敢下定论),确定是否存在“秒传”的可能性。补充:
或许还比较了文件的大小。2、
“百度云”存在伪造文件MD5,用于
“做恶”的风险。比如刚上传的两个文件都是可以正常运行的。从“百度云“上下载通过“秒传”上载的hello.exe,并重命名为hello_baidu.exe。
运行程序发现,其实它是erase.exe,所以“秒传”有时候并不靠谱。3、采取MD5比SHA1效率更高。参考:
4、“百度云”的技术团队采用了非常好的算法实现T级的MD5值存储与检索,我想应该是
很大一颗树:)
“2012-12-26:该问题经过与业务部门沟通确认,对于该问题的防护我们一直是有安全控制措施的,文件存储都是
用户间隔离的,另该现象也只是理论上存在,并不能实际造成任何危害;但是为了更好的改善用户体验,我们仍会做出相应的修改。如果您对于该问题还有其他发现及补充欢迎随时联系我们,谢谢”
也许我过于谨慎,我建立一个
新的帐户再进行一次测试。
1、先上传hello.exe,发现它并不是“秒传”。
似乎结论得到了验证,但是……我又传了一个文件。这个用户第一次上传时就能“秒传”与“
用户间隔离”是不是很矛盾???
2、于是重新生成两个文件,注意:
MD5相同,SHA1不同。并且都是可以正常运行的可执行程序。
3、上传PCMgr_Setup_89_10865_208_1.exe,因为MD5与原始文件不同,所以不会是“秒传”。
再做2个试验:
1、在新帐号上上传一个MD5相同的PCMgr_Setup_89_10865_208_2.exe,秒传。和第一次验证结果相同。
2、在旧帐号上上传PCMgr_Setup_89_10865_208_1.exe,秒传。
用!户!间!隔!离!!百度,你的蛋呢?3、疑问:
如果把PCMgr_Setup_89_10865_208_2.exe从新帐号删除掉,第三个帐号秒传正常的PCMgr_Setup_89_10865_208_2.exe会不会得到PCMgr_Setup_89_10865_208_1.exe呢?试一试
首先,第三个帐号可以秒传(这之前服务器上应该没有PCMgr_Setup_89_10865_208_2.exe,但还有PCMgr_Setup_89_10865_208_1.exe)
然后下载下来和PCMgr_Setup_89_10865_208_1.exe对比一下。
两个文件的SHA1一模一样了。也就是说“真”文件在删除之后,被“假”文件所替代。而且无论用户上传的文件是不是正常的文件,秒传之后文件都后变成不正常。
补充结论:
1、文件大小超过一定值时,“秒传”的文件会“十!分!不!靠!谱!”
2、猜想:现在“百度云”建立的MD5数量已经非常大了,大到不可能重新来过的地步,但是应该还是有补救措施的。
3、
接文章开头的问题 百度网盘会不会把我的经典岛国小视频也删除掉?答案是:目前的技术体系下会删除我的岛国小电影,所以大家还是买几块白菜价的机械硬盘备份重要的资料比较保险,要不然你的小视频很容易变成八秒教育视频,哈哈哈哈,顺带安利2个网盘,一个OneDriver,一个就是酷站网软配套的可以直连的小文件网盘:酷站网软盘 http://pan.kzwr.com/