1、常规文件加密
一般性文件加密,通常采用对称非对称组合式加密。
通过对称加密完成大文件的机密和性能的要求。例子:算法 SM4 使用密钥记为key1 (128bit)
通过非对称加密完成对 对称密钥key1 的加密。通过公私钥的分离完成对 key1的异地管理。
2、参考 IOS 文件加密
最近看了 ios 的安全白皮书,在涉及的大的文件处理、敏感的军事信息、全区加密非常有参考意义。
先说一个整体概念,安全删除,
安全删除意思敏感数据,或者数据泄露情况下,完成对数据的删除,并且不可恢复(对删除后的磁盘分区进行写脏数据操作)。
这样做如果是在一个大的磁盘内,则耗时较久,时间差可类比 U 盘的拷贝和删除时间差。
我们在这里把写多遍脏数据的方案记为 "方案1"
苹果方案记为 " 方案2"
先看下 ios 的文件加密架构:
1、文件系统密钥本质不是用来保证机密的,是用来瞬间擦除的,放在明文分区,明文磁盘内。
2、擦除这个密钥是可以瞬间完成的。
3、擦除密钥后整体的磁盘文件就无法完成解密。相当于变相完成文件的擦除、不可用。
梳理下 ios 的文件保护策略:
文件使用文件独有密钥进行加密。将文件独有密钥和文件密钥的分类采用类密钥封装,最后采用文件系统密钥进行加密。
组合式加密,两把钥匙组合保护文件独有密钥。其中类密钥和设备绑定在一起。一共三把密钥。
解密: 文件系统密钥解密对应的文件元数据+ 文件密钥。 暴露出具体元数据,然后找对应类密钥进行解密。 获取文件独有密钥--》 提供给 AES 引擎,进行对文件解密。
思考:
如果手机切换了不同机主,机主则实际访问文件的时候,是有类密钥的,如果不引入文件系统密钥,就需要方案1 才可以。缺点耗时久,安全性不够、可以暴力破解和恢复。
引入方案2 ,这擦除是瞬间完成的,实际相当于保留了类密钥,基于新机主创建新的文件系统密钥。组合钥匙丢了一把,旧的数据就不可用了,然后文件索引再删除,相当于新的数据分区。
注意:
1、文件密钥不会提供给应用程序。
2、处理过程在 安全区域 secure enclave。
3、通过对文件系统密钥的瞬间擦除,保证系统被彻底破解后,攻击方获取了类密钥,也无法完成对文件密钥的解密,无法获取文件密钥,无法完成对文件的解密。
4、 如果不引入文件系统密钥,则获取类密钥后通过暴力破解可以完成对文件密钥的获取。
更多推荐
浅谈--文件加密
发布评论