先说问题!
2024年9月14日,也就是2024年中秋节放假的前一天,某知名大厂网络云盘出现bug,描述如下:
有用户偶然发现在云盘相册功能中,只要创建一个文件夹,只要操作选择图片操作就能看到其他用户的相册数据。
影响
文件(图片)数据泄露,虽然问题持续仅1个小时左右。这一泄露不仅极大可能导致大量用户的隐私泄露,给用户带来不可挽回的损失,同时还可能极大地影响用户对云存储的信任。
由于涉及大众隐私,且数据量大,在一定程度上已经达到“银手镯”的影响。
再说分析!
以上不再赘述,否则会被扣帽子,被知名大厂给警告。就该事件而言,暴漏出该产品在产品与技术上存在数据安全架构存在很大的问题。
我们知道,公共云盘会吸纳很多较为隐私的用户数据,其中数据主要包括文本、文件等数据;令不乏有人为了方便、数据安全意识薄弱,以及基于对大厂的信任,把自己较为私密的数据(图像,此处脑补)上传到云盘保存。
因此在产品设计上,数据安全设计通常优先考虑。
其次技术架构上,
不能仅仅简单的通过SQL等逻辑处理相关数据操作,那仅仅是功能完善度的设计实现,大厂整天搞出一堆高大上的名词,而对这些最基本的数据处理也没有做好,那真的是呵呵了。那这个问题就是对每个用户数据进行数据加密处理,就算可能拿到数据,密钥无法获取而已经无法拿到原始数据。
基本方案
产品设计与技术架构设计时,要做好较为完善的密钥分发、存储、管理机制,这是对用户数据、共享数据加解密的前提。
主要算法采用SM3、SM4、HMacWithSm3等国密算法。
-
密钥分发
用户在注册时,用户私有数据在分享时,为使用数据的用户分发加密密钥KEY。为了保证密钥KEY的安全性,需对密钥做一定的加密处理。
-
密钥存储
数据加解密密钥KEY的密钥存储,通过用户信息以及共享数据用户的基本参数产生,涉及算法:SM4、HamcWithSM3等
-
数据加密
数据上传时,通过当前用户的数据密钥KEY进行一定算法的数据加密处理,上传的云盘,涉及算法:SM4、HamcWithSM3等
-
数据解密
通过当前用户、以及数据共享用户解密密钥进行解密处理。涉及算法:SM4、HamcWithSM3等
基于以上基本的处理,就算拿到相应数据,由于数据是加密的,其他用户也无法查看。
以上可能比较片面,也许是中秋福利月饼没有发够(呵呵,我们好几个月没有好好发米了),毕竟也是大厂
最后,玩笑归玩笑,借此事件,希望各个大厂在做公共产品时对数据安全引起重视
以上基本算法库可参考:
JAVA:
https://github.com/guanzhi/GmSSL
https://www.bouncycastle.org/
Android:
https://github.com/jarlen/AndroidGM
JS:
https://github.com/JuneAndGreen/sm-crypto