用户在使用百度云盘上传文件时,会出现图1的提示:
图1 百度云盘数据上传过程截图
图1显示数据被加密后上传,事实果真如此吗?是否还存在其他安全隐患?对此,XUPT_CRYPTO研究组模拟黑客行为,对百度云盘进行了安全性分析,结果如下:
百度云盘至少存在如下安全隐患:
用户数据以明文形式被存储于服务器中,百度云可以任意读取用户数据;
在上传和下载过程中,文件能够被黑客窃听并读取;
好友间共享文件时,数据可以被黑客窃听并读取;
文件的URL可以被黑客获取,即使用户下线或者更换设备后,黑客在一定时间内仍然可以下载用户数据;
黑客采用重放攻击能够对用户账户进行读写操作(新建文件夹及文件删除等)。
图2 百度云盘上传文本文档抓包截图
图2显示,上传数据根本没有进行加密,可见百度云盘“加密上传”的提示带有欺骗性。
分析过程视频演示(建议在WIFI下观看)
XUPT_CRYPTO研究组采用的设备:
IOS/Android手机一部(安装百度云盘客户端)。
笔记本电脑一台(WIFI)。
抓包软件Fiddler/Wireshark。
多数云盘软件仅仅在认证时采用HTTPS协议,而在数据传输过程中采用的是HTTP协议,这为用户数据的安全埋下了隐患。特别地,云盘还存在着更为严重的重放攻击漏洞!
对百度云盘的重放攻击可抽象为:当用户向服务器发出请求“删除文件A”之后,黑客可以窃听并重放该请求,进而成功删除用户新上传的同名文件。更为严重的是,黑客可以将请求修改为“删除文件B”,然后发送给服务器,最终成功删除用户的文件B(黑客能够通过抓包确认文件B的存在性)。
基于Fiddler与Wireshark,XUPT_CRYPTO研究组都进行了抓包分析,结果类似。尽管Fiddler需要在客户端配置代理选项,考虑到演示效果,视频中采用Fiddler。Fiddler抓取的数据包都是HTTP/HTTPS包,没有其他协议的数据包,并将抓取的数据包直接进行归类和解析。
事实上,采用Wireshark不需要客户端配置,也可以得到同样的结果。然而,如图3所示,解析数据包需要较高的技术水准。
XUPT_CRYPTO研究组对部分同类产品也进行了安全性分析,结果见表1。
表1 分析结果
云盘名称 | 数据加密 | 防止黑客新建目录 | 防止黑客删除文件 |
百度云盘 | ╳ | ╳ | ╳ |
华为网盘 | ╳ | ╳ | ╳ |
360云盘 | ╳ | ╳ | √ |
天翼云 | ╳ | ╳ | √ |
115网盘 | ╳ | √ | √ |
新浪微盘 | ╳ | √ | √ |
分析结果表明:
上述云盘都没有对用户的数据进行加密保护。
新浪微盘采用的是HTTPS协议,可以防止数据篡改,但是无法抵抗重放攻击。
西安邮电大学
密码技术(XUPT_CRYPTO)实验室
2016.3.26
联系客服