0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RPMB原理介绍

安芯教育科技 来源:安芯教育科技 2024-12-17 13:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

可信平台模块(TPM)概念介绍

1

RPMB(Replay Protected Memory Block)Partition 是 eMMC 中的一个具有安全特性的分区。

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

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

容量大小

2

两个RPMB Partition 的大小是由Extended CSD register 的 BOOT_SIZE_MULT Field 决定,大小的计算公式如下:

Size = 128Kbytes x BOOT_SIZE_MULT

一般情况下,Boot Area Partition 的大小是128KB的倍数,EMMC中默认为 4 MB,即 RPMB_SIZE_MULT 为 32,部分芯片厂家会提供改写 RPMB_SIZE_MULT 的功能来改变 RPMB Partition 的容量大小。RPMB_SIZE_MULT 最大可以为 128,即 Boot Area Partition 的最大容量大小可以为 128 x 128 KB = 16384 KB = 16 MB。

Replay Protect 原理

3

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

在 eMMC 内部,还有一个RPMB Write Counter。RPMB 每进行一次合法的写入操作时,Write Counter 就会自动加一 。

通过 Secure Key 和 Write Counter 的应用,RMPB 可以实现数据读取和写入的 Replay Protect。

RPMB 数据读取

4

1、 Host 向 eMMC 发起读 RPMB 的请求,同时生成一个 16 bytes 的随机数,发送给 eMMC。

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

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

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

RPMB 数据写入

5

1、Host 按照上面的读数据流程,读取 RPMB 的 Write Counter(通过Write Counter来识别数据的有效性)。

2、 Host 将需要写入的数据和 Write Counter 拼接到一起并计算签名,然后将数据、Write Counter 以及签名一并发给 eMMC。

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

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

注意:UFS中RPMB也采用了和EMMC相同的原理。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Host
    +关注

    关注

    0

    文章

    32

    浏览量

    35416
  • emmc
    +关注

    关注

    7

    文章

    252

    浏览量

    55340
  • Partition
    +关注

    关注

    0

    文章

    4

    浏览量

    8123

原文标题:RPMB原理介绍

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电磁触控屏介绍

    电磁触控屏介绍
    的头像 发表于 12-04 11:01 143次阅读
    电磁触控屏<b class='flag-5'>介绍</b>

    关于系统链接脚本的介绍

    一、队伍介绍 本篇为蜂鸟E203系列分享第四篇,本篇介绍的内容是系统链接脚本。 二、如何实现不同的下载模式? 实现三种不同的程序运行方式,可通过makefile的命令行指定不同的链接脚本,从而实现
    发表于 10-30 08:26

    NICE端口相关信号简单介绍与配置

    以下对自定义指令情况下的NICE各个端口配置进行详细介绍。 由于NICE模块的输入端口由CPU发送相关信号,因此仅对NICE返回给CPU的端口进行介绍。 NICE返回给CPU的端口分为返回给
    发表于 10-30 07:57

    ExpeditionPCB中管脚交换介绍

    mentor PCB设计器件管脚网络交换介绍
    发表于 10-28 16:56 0次下载

    Montgomery模乘介绍

    Montgomery模乘介绍 Montgomery 模乘算法是最有效的大整数模乘算法之一它的一个显著特点是消除了mod n 的除法运算。Montgomery 算法的基本思想是计算 ,设n为k比特
    发表于 10-22 07:35

    电路、电流和电压介绍

    电子发烧友网站提供《电路、电流和电压介绍.pptx》资料免费下载
    发表于 09-18 17:26 14次下载

    BASiC_SiC分立器件产品介绍

    BASiC_SiC分立器件产品介绍
    发表于 09-01 16:16 0次下载

    元器件及单元电路介绍-610页

    元器件及单元电路介绍放大电路基础,电源电路,正弦波振荡电路,调制与解调电路,混频电路与变频电路,集成运算放大电路,数字集成电路等。 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 05-19 15:41

    C语言的历史及程序介绍

    电子发烧友网站提供《C语言的历史及程序介绍.pdf》资料免费下载
    发表于 04-09 16:10 0次下载

    【「AI Agent应用与项目实战」阅读体验】书籍介绍

    结构如下: 可以看到整体的内容是非常丰富的,对于一本89元的书来说,除第一章是总体介绍外,包含10个应用案例,可以说是超值了,平均一个案例还不到9块钱,都不够一杯奶茶,所以还有什么理由不掌握呢
    发表于 03-05 20:40

    Meshtastic APP使用介绍

    meshtastic APP使用介绍
    的头像 发表于 03-05 09:59 2057次阅读
    Meshtastic APP使用<b class='flag-5'>介绍</b>

    meshtastic的应用场景介绍

    meshtastic的应用场景介绍
    的头像 发表于 02-21 12:02 1266次阅读
    meshtastic的应用场景<b class='flag-5'>介绍</b>

    谁能详细介绍一下track-and-hold

    在运放和ADC芯片的数据手册中经常看到track-and-hold,谁能详细介绍一下track-and-hold?
    发表于 01-20 09:10

    色环电阻的阻值、精度介绍

    电子发烧友网站提供《色环电阻的阻值、精度介绍.doc》资料免费下载
    发表于 01-08 13:42 0次下载

    RK3568内置MCU开发介绍之二

    本文重点介绍RK3568内置的MCU与AP之间的通信功能,首先介绍RPMsg的框架,然后介绍MCU端RPMSG的构建方法,最后介绍AP端的RPMSG的配置方法,并进行MCU和AP之间通
    的头像 发表于 12-16 09:09 2455次阅读
    RK3568内置MCU开发<b class='flag-5'>介绍</b>之二