eMMC安全方案—RPMB(Replay Protected Memory Block)

信息安全的三个基本目标是机密性、完整性和可用性:

  1. 机密性意味着应该保密的信息只能被授权的实体阅读和理解。其他未经访问授权不能阅读或理解机密信息。
  2. 完整性是指能够确保信息不受未经授权的更改、修改或删除的能力。信息的完整性包括信息的来源、完整性和正确性(使用标识和身份验证等方法)。
  3. 可用性意味着信息始终可供授权用户使用

eMMC安全方案

eMMC设备包含多种数据保护和安全功能,包括:写保护密码锁定/解锁RPMB。这些特性经过多年的发展,并随着eMMC规范的每个版本而不断改进。

eMMC分区划分

写保护

写保护旨在防止数据损坏或擦除(无论是恶意的还是无意的)。在eMMC4.3和更早版本的规范中,写保护仅为用户区域提供保护。随着eMMC4.4中分区的引入,写保护得到了更新,以支持不同的分区和分区内的区域。随着eMMC5.1的发布,写保护允许使用身份验证来保护分区和分区中的区域。

一旦设置了写保护,主机就不能擦除或写入指定的保护区域。但是,与密码锁不同,数据仍然可以从这个区域读取。

在eMMC版本5.1中,有四种类型的写保护:

  1. 永久:一旦启用写保护,就不能禁用它
  2. 开机:一旦启用写保护,它只能通过关闭电源或切换设备重置引脚来恢复,这会导致设备重新启动。
  3. 临时:可以启用和禁用写保护。
  4. 安全:只有授权使用RPMB的用户才能启用和禁用写保护。

现在,写保护功能可以在整个设备(包括引导和RPMB分区)上启用,也可以在写保护组的分区内部的小区域上启用:

  1. 通过在CSD中设置永久或临时写保护位,可以对整个设备(包括引导区域分区、通用区域分区、RPMB和用户/增强型用户数据区域分区)进行写保护。
  2. 启动分区可以是永久的、安全的或加电写保护的。
  3. 用户数据区(UDA)和通用分区(GPP)写保护可应用于特定的段(或规范中称为“写保护组”),这些段可以设置为永久、安全、通电或临时写保护。

密码锁定/解锁

密码锁定功能旨在保护用户区域(只有User Area才有密码锁定功能)内容的任何类型访问(读、写或擦除),主机仍然可以访问引导分区、RPMB和常规分区区域。密码锁定/解锁功能是使用CMD42设置的,启用密码锁定后,主机可以执行某些操作(包括重置、初始化、选择、查询状态等)但不能访问设备用户区域的任何数据。这种保护对于防止数据被盗很有用,但是它也限制了任何人(包括数据所有者)可以使用设备,因为不允许(任何类型)访问受保护的数据。

RPMB – Replay Protected Memory Block(重放保护内存块)

RPMB(重放保护内存块)功能首次在eMMC4.4中引入,此功能使设备能够将数据存储在经过身份验证和防止重播攻击的小型特定区域(通常为4M大小)。RPMB是一种包含的安全协议(具有自己的命令操作码和数据结构)。该协议的机制包括一个共享密钥和一个HMAC(哈希消息认证码),用于对访问安全区域的所有读/写操作进行签名。

RPMB身份验证

RPMB使用对称密钥身份验证,其中主机和设备都使用相同的身份验证密钥(此密钥也称为“共享密钥”)。其工作方式如下:

  1. RPMB身份验证密钥信息首先由主机编程到eMMC设备(这必须在安全环境中进行,通常在生产线上安装rpmb key)。
  2. 然后,主机和设备都使用身份验证密钥对涉及RPMB区域的读写消息进行签名和身份验证。
  3. 对消息进行签名涉及到一个消息认证码(MAC),它是使用HMAC SHA-256算法计算的。

RPMB防止重放攻击

重放保护的基本思想是确保每条消息都是唯一的。在RPMB中,设备管理一个只读计数器,该计数器在每次写入消息后递增,其新值将包括在下一个要发送的验证码的计算中。

RPMB命令通过HMAC SHA-256计算进行验证,该计算将作为输入:

  1. 共享/密钥。
  2. 包含写入命令或读取结果的消息。
  3. 写入计数器,统计写入RPMB的总次数。
  4. 一个nonce,它是每个读命令随机生成的数字。

MAC(Message Authentication Code)是一个256位(32字节)密码,它嵌入在RPMB数据帧中,并与消息数据本身一起发送。

写RPMB

当eMMC设备接收到写入命令消息到RPMB时,它通过检查计数器已增加和主机发送的MAC是否与设备使用其保存的密钥生成的MAC相同来验证命令的有效性。

读RPMB

eMMC设备将读取的数据连同MAC签名一起发送到主机。主机接收消息并使用共享密钥生成MAC。只有当两个mac相同时,主机才会信任从RPMB读取的数据。

使用随机数生成和计数器寄存器是防止重播攻击的关键:

  1. 在写入RPMB的情况下,MAC的值受RPMB写入计数器的影响,RPMB写入计数器在每次成功写入RPMB时都会增加(主机和设备)
  2. 在从RPMB读取的情况下,MAC的值受主机发送的随机数的影响。

RPMB用例

不同的供应商出于不同的目的使用RPMB,但是某些用例是RPMB的良好候选。一些著名的用例包括软件版本认证、指纹验证、安全密钥存储、网络供应商信息、数字权限管理(DRM)和安全支付。

 

 

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
【课程简介】Secureboot从入门到精通,全网最全最详细最系统讲解secureboot核心知识点。业务安全的基石是APP安全,APP安全的基石是操作系统安全,操作系统安全的基石是SecureBoot安全。不理解SecureBoot安全无法深入理解业务的安全性,也无法进行良好的安全业务设计。 SecureBOOT安全涉及方方面面的知识,掌握Secureboot后,对整个大系统就有了一个宏观的概念,对整个大系统的其它模块学习都有帮助。Secureboot也是一个高门槛的知识点,涉及到密码学基础知识、ARM硬件基础知识、SOC硬件基础知识(如SOC内集成的efuse、crypto engine、RPMB等)、BootRom的实现、emmc/ufs/nand/nor等知识、各种规范和标准、ATF(TF-A)等软件、安全业务的设计模式…所以当我们充分理解了Secureboot,再回头学习其它知识点是,就会变得比较容易.本课程200多页的PPT,手把手教大家Secureboot的理解和各种安全基础知识。【课程收益】掌握当前主流的多样化的硬件架构示例、软件架构示例、启动示例、刷机示例。从根本掌握Secureboot的核心原理,包括但不限于密码学基础知识、Trustzone架构原理、efuse、RPMB、anti-rollback、crypto engine彻底学会SOC大系统启动流程、刷机流程,熟练掌握ATF核心代码,熟悉相关规范手册。学习六种主流的安全启动经典案例,全面掌握Secureboot的设计模型,能否分析其优缺点,能够独立设计其方案【学习对象】1、大学学生、研究生,科研人员;2、嵌入式开发者、底层开发者、芯片开发者3、汽车电子、手机、服务器等。【课程优势】全网唯一全网最全全网最系统 【课程大纲】 【其它课程】
eMMC是一种嵌入式多媒体卡(embedded MultiMediaCard)的缩写,是用于移动设备的闪存存储解决方案eMMC的写保护是一种安全机制,旨在保护存储在eMMC芯片中的数据免受意外更改或破坏。 eMMC的写保护功能有两种形式,一种是硬件写保护,另一种是软件写保护。 硬件写保护是指在eMMC芯片的硬件电路中添加了写保护开关或引脚,通过控制这些开关或引脚的状态,可以实现对整个芯片或特定区域的写保护。这样,一旦打开了写保护,任何尝试写入芯片的操作都会被阻止,从而保护数据的完整性和安全性。 软件写保护是通过软件编程指令实现的。在eMMC的控制器中,有一个写保护寄存器(Write Protect Register),通过设置该寄存器的特定位,可以实现对芯片或特定区域的写保护。只有在正确的密码或密钥被输入后,才能解除写保护,进行数据的写入和修改。 eMMC的写保护功能在保护数据安全方面起到了重要的作用。它可以防止病毒或恶意软件对存储在eMMC芯片中的数据进行非法篡改;它还可以防止误操作或意外删除重要数据。此外,写保护还可以保护eMMC芯片免受非法复制或盗取数据的行为。 总的来说,eMMC的写保护功能是一项关键的安全措施,可以保护存储在eMMC芯片中的数据的完整性和安全性,以满足人们对移动设备数据安全的需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值