请问全志R329Tina下几种安全存储实现有何区别呢
本回答来源全志R329Tina下几种安全存储实现有何区别?
Tina上目前支持三种安全存储,分别是keybox、optee secure storage与dm-crypt。
keybox
keybox是全志实现的一种安全存储方法,keybox使用flash区域是特意预留的,该区域未映射到逻辑扇区,通常的数据操作无法访问,具有量产不擦除特性。
keybox上保存的数据都是通过optee中进行加解密的。
注:
只有使用nand与emmc介质的方案才支持keybox,nor介质的方案不支持。
keybox最多支持31个key烧写,每个key最大支持3KB数据。设计之初主要目的是存放密钥、证书等小数据对象。
可以通过DragonSN与控制台命令方式,烧写数据到keybox上。
optee secure storage
OPTEE Secure Storage是optee提供的根据GP TEE Internal API规范实现的一种安全存储技术。它将数据发送到Secure OS进行加密,然后保存到Linux端的文件系统(/data/tee)或者RPMB中。
注:
保存的数据大小没有限制,最大可以为optee os的堆大小。optee官方提到设计的目的主要是用于存放密钥、hash值以及计数器等小数据对象。
客户需要开发相关的NA与TA来使用optee secure storage功能,全志有提供一个参考demo,位于package/security/optee-secure-storage目录。
dm-crypt
dm-crypt 是Linux内核提供的一种基于加密API框架和设备映射器(device mapper)子系统的安全存储技术。dm-crypt是对整个文件系统进行加密,在初始化好后,可以直接读写该文件系统,内核自动对数据进行加解密。
注:
dm-crypt的密钥需要保存在安全域,在初始化时,从安全域读取,配置给Linux内核。从flash上看,该分区数据是经过加密的,但是Linux端可以直接明文访问。
由于是一个文件系统,所以这种方式可以保存大数据对象,用户数据分区常采用这种安全机制。