在eMMC JEDEC文档中,将内部的 Flash Memory 划分为 3 类区域
分别是:Boot partition、RPMB & User Data Area;
今天咸蛋君要给大家简单介绍一下RPMB的使用,以及它在OpTEE中的存储结构;
首先介绍一下RPMB的使用流程:
RPMB(Replay Protected Memory Block) 是 eMMC 中的一个具有安全特性的分区;
当eMMC host需要写入数据到 RPMB 时,会通过HMAC算法校验数据的合法性,只有用指定的KEY才能够写入;
同时在读数据时,也提供了签名机制,通过比对RND Data,以及HMAC Value,保证 Host 读取到的数据是 RPMB 内部数据,而不是攻击者伪造的数据。
先上两张图,通过这两张图,大家能很清楚的看到RPMB的工作原理;
Read Flow:
Write Flow:
好了,RPMB的介绍就先到这,下一步我们要说说OpTEE了,
说到OpTEE,就不得不提一下ARM的Trust Zone概念了;
可以说OpTEE是专门为Trust Zone量身打造的,
先贴上OpTEE的官网: http://www.linaro.org/
再说一下OpTEE中RPMB File System的概念
在RPMB中,前128Bytes为Partition Data,这部分用于存储RPMB Partition相关的信息,
从512Bytes的偏移开始,是File Allocation Table (FAT),FAT中记录了各个文件的在RPMB中的位置,
通过search FAT可以得到具体文件的具体位置;