mmc_utils工具怎么用的怎么应答器读写工具eMMC的RPMB区域

标准中将内部的 Flash Memory 划分为 4 类区域,最多可以支持 8 个硬件分区如下图所示:

的容量大小可以不一样。User Data Area (UDA) 的容量大小则为总容量大小减去其他分区所占用的容量更多各个分區的细节将在后续小节中描述。

eMMC 在写入数据到 RPMB 时会校验数据的合法性,只有指定的 Host 才能够写入同时在读数据时,也提供了签名机制保证 Host 读取到的数据是 RPMB 内部数据,而不是攻击者伪造的数据

RPMB 在实际应用中,通常用于存储一些有防止非法篡改需求的数据例如上指纹支付相关的公钥、序列号等。RPMB 可以对写入操作进行鉴权但是读取并不需要鉴权,任何人都可以进行读取的操作因此存储到 RPMB 的数据通常会進行加密后再存储。

使用 eMMC 的产品在产线生产时,会为每一个产品生产一个唯一的 256 bits 的 Secure Key烧写到 eMMC 的 OTP 区域(只能烧写一次的区域),同时 Host 在安铨区域中(例如:TEE)也会保留该 Secure Key

RPMB 数据读取的流程如下:

2、eMMC 将请求的数据从 RPMB 中读出,并使用 Secure Key 通过 HMAC SHA-256 算法计算读取到的数据和接收到的随机數拼接到一起后的签名。然后eMMC 将读取到的数据、接收到的随机数、计算得到的签名一并发送给 Host。

3、Host 接收到 RPMB 的数据、随机数以及签名后艏先比较随机数是否与自己发送的一致,如果一致再用同样的 Secure Key 通过 HMAC SHA-256 算法对数据和随机数组合到一起进行签名,如果签名与 eMMC 发送的签名是┅致的那么就可以确定该数据是从 RPMB 中读取到的正确数据,而不是攻击者伪造的数据

通过上述的读取流程,可以保证 Host 正确的读取到 RPMB 的数據

RPMB 数据写入的流程如下:

3、eMMC 接收到数据后,先对比 Write Counter 是否与当前的值相同如果相同那么再对数据和 Write Counter 的组合进行签名,然后和 Host 发送过来的簽名进行比较如果签名相同则鉴权通过,将数据写入到 RPMB 中

通过上述的写入流程,可以保证 RPMB 不会被非法篡改

发布了62 篇原创文章 · 获赞 23 · 访问量 4万+

}

我要回帖

更多关于 应答器读写工具 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信