eMMC安全简介

1. 引言

术语“信息安全”涵盖多种不同的设计特性。一般而言, 信息安全是指通过实践防止信息遭受未经授权的访问、使用、披露、中断、篡改、检查、记录或销毁。
信息安全的三大核心目标为 机密性(Confidentiality)、完整性(Integrity)和可用性(Availability)
  • 机密性:确保本应保密的信息仅能被授权实体读取和理解。未经授权的个体无法访问或理解机密信息。
  • 完整性:指确认信息受到保护,防止未经授权的更改、修改或删除。信息的完整性涵盖其来源、完整性和正确性,通常通过身份识别和认证等方法实现。
  • 可用性:确保授权用户能够始终访问所需信息。
每个系统设计会根据其保护资产类型及价值,以不同方式支持这些安全目标。单一安全解决方案可能仅能防御部分潜在攻击,而结合多种方案更有可能实现完全安全的设计。例如:
  • e.MMC写保护机制旨在保障数据可用性;
  • 重放保护内存块(RPMB)方案专注于确保数据完整性;
  • Android全盘加密(FDE)则是一种针对数据隐私保护的安全方案,旨在确保机密性。

2. eMMC安全特性的发展

eMMC设备集成多种数据保护与安全功能,包括密码锁(Password Lock)、写保护(Write Protect)和重放保护内存块(RPMB)。这些特性随eMMC规范版本的迭代不断升级优化。

2.1 密码锁(Password Lock)

功能目标
防止对用户数据区(User Area)的 任何访问(读、写、擦除),用于防范数据窃取。
实现方式
  • 通过CMD42指令启用密码锁定。
  • 锁定后,主机仍可执行基础操作(复位、初始化、状态查询等),但禁止访问用户数据区
  • 允许访问区域:启动分区(Boot Partitions)、RPMB、通用分区(General Partition)。
局限性
  • 完全阻断访问:包括数据所有者在内的所有用户均无法操作受保护数据,可能导致使用灵活性下降。
技术背景
  • 密码锁功能最初源自传统SD卡,后被整合至早期eMMC规范。

2.2 写保护(Write Protect)

功能目标
防止数据被篡改或擦除(无论恶意或误操作),同时 允许读取数据
版本演进
  • eMMC4.3及更早:仅支持用户区(User Area)写保护。
  • eMMC4.4:引入分区概念,支持对分区内特定区域的写保护。
  • eMMC5.1:新增认证机制,可通过身份验证动态管理写保护权限。
四种保护类型
类型
特点
永久写保护
一旦启用,无法禁用(防固件回滚或关键配置篡改)。
上电写保护
启用后,需断电重启或复位引脚触发才能解除(防运行时恶意修改)。
临时写保护
可动态启用/禁用(适用于临时敏感操作保护)。
安全写保护
仅授权用户(通过RPMB认证)可管理写保护状态(高安全性场景)。
保护范围扩展(eMMC5.1)
  • 全局保护:可对整个设备(包括启动分区、RPMB、通用分区、用户数据区)设置永久或临时写保护。
  • 分区级保护:
    • 启动分区:支持永久、安全或上电写保护。
    • 用户数据区(UDA)与通用分区(GPP):支持按“写保护组”(Write Protect Groups)细分保护区域,并灵活选择保护类型。
    • 用户数据区(UDA)与通用分区(GPP)的写保护可应用于特定区段(规范中称为“写保护组”),这些区段支持配置为以下模式:
      • 永久写保护(不可逆锁定)
      • 安全写保护(需RPMB授权解除)
      • 上电写保护(重启后生效)
      • 临时写保护(动态启用/禁用)

2.3 RPMB(重放保护内存块)

RPMB(Replay Protected Memory Block)功能首次于 eMMC4.4规范中引入。该特性允许设备将数据存储在一个 经过认证且防重放攻击的小型特定区域。
RPMB是一套 独立的安全协议,拥有专属的命令操作码(Command Opcodes)和数据结构。其核心机制包含以下组件:
  1. 共享密钥:设备与主机预先协商或预置的加密密钥。
  2. HMAC(哈希消息认证码):用于对访问安全区域的所有读写操作进行数字签名,确保操作合法性。
运行流程
  • 写入数据时,主机需使用共享密钥生成HMAC,附加到操作请求中;设备验证HMAC合法性后执行写入。
  • 读取数据时,设备返回的数据会附带HMAC,供主机验证完整性和来源真实性。
  • 防重放攻击:通过递增计数器(Counter)值,拒绝重复或过期指令(例如:恶意复制旧指令篡改数据)。

3 RPMB用于身份验证和防止重放攻击的完整性保护。

RPMB(Replay Protected Memory Block,重放保护内存块)使 e.MMC 设备能够在特定区域(通常为 4MB)存储数据,并对其进行身份验证,防止重放攻击。

3.1 What Is a Replay Attack?

重放攻击(Replay Attack)是指攻击者截获并记录合法交互中的数据,然后在后续阶段重新发送相同的数据。由于原始信息包含正确的发送者和接收者标识符,以及数据的真实性证明,未经防范的重放数据将被接受,就像第一次传输时一样。
此类攻击可能由首次合法交互的发起者实施,或由“中间人”(MITM)在窃听原始数据后进行重发。
例如,假设数字钱包服务提供商发送一条经过身份验证的消息,将用户账户余额设置为 $2,000。当用户使用数字钱包支付 $1,600 的账单时,可用余额降至 $400。如果一段恶意软件执行重放攻击,拦截了初始消息(将账户余额设置为 $2,000),通过在 $1,600 购买后重新发送相同的消息,它可以将账户余额重置为 $2,000。

3.2 RPMB Authentication

RPMB使用对称密钥身份验证,即主机和设备使用相同的身份验证密钥(也称为“共享密钥”)。其工作方式如下:
  • 密钥编程:
    • 主机首先将身份验证密钥信息编程到 eMMC 设备中(通常在安全环境下进行,如生产线)。
  • 签名和验证:
    • 主机和设备使用该身份验证密钥对涉及 RPMB 区域的读写消息进行签名和验证。
  • 消息签名:
    • 签名过程涉及消息认证码(MAC),该 MAC 使用 HMAC-SHA-256 算法计算。

3.3 RPMB Protection against Replay Attack

重放保护的基本思想是确保每条消息都是唯一的。在 RPMB 中,设备管理一个只读计数器,该计数器在每次写入消息后递增,并且其新值将包含在下次要发送的认证码计算中。
RPMB 命令通过 HMAC-SHA-256 计算进行认证,该计算的输入包括:
  • 共享/秘密密钥。
  • 包含写入命令或读取结果的消息。
  • 记录 RPMB 总写入次数的写计数器。
  • 读取命令对应的随机生成数(Nonce)。
生成的 MAC 是一个 256 位(32 字节)的加密数据,它嵌入到 RPMB 数据帧中,并随消息数据一起发送。

Writing to RPMB

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

Reading from RPMB

eMMC 设备将在发送读取数据给主机的同时附带一个 MAC 签名。主机接收消息后,使用共享密钥生成一个 MAC。只有当两个 MAC 完全相同时,主机才会信任从 RPMB 读取的数据。
随机数生成和计数器寄存器的使用是防止重放攻击的关键:
  • 在写入 RPMB 时,MAC 的值受 RPMB 写计数器的影响,该计数器在每次成功写入 RPMB 后(由主机和设备共同)增加。
  • 在读取 RPMB 时,MAC 的值受主机生成的随机数影响,该随机数作为读取请求的一部分发送。

4 RPMB应用场景

各厂商对RPMB的应用场景各有侧重,但其典型应用涵盖:软件版本认证、指纹验证、安全密钥存储、网络运营商信息、数字版权管理(DRM)及安全支付等领域。

4.1 示例1——软件版本认证防范降级攻击

假设某制造商需向设备(如手机、汽车等)推送多次软件更新。首次更新时,新软件镜像会被写入eMMC主存储区,而软件版本信息则存入RPMB。
随后,若制造商发现该版本存在安全漏洞或安全隐患,将再次推送更新修复问题。新软件镜像仍写入eMMC主存储区,更新后的版本信息同步刷新至RPMB。
然而,黑客可能试图利用相同机制,将用户设备软件降级至旧版本,以利用先前版本的漏洞。他们可能模仿制造商的升级流程——实际却推送已被攻破的旧版应用或系统。
此时,基于RPMB的防护机制会在升级过程中校验新版本号:若"新版本号"低于RPMB中存储的当前版本号,安装程序将直接拒绝此次"更新"。
关键防护原理:RPMB存储的版本信息无法被篡改,因其访问需持有加密密钥,而该密钥仅由合法制造商掌控。

4.2 示例2——防范未授权解锁

本例中,RPMB 可用于确保仅限授权用户解锁设备(如手机、汽车或计算机)。
操作流程:
  1. 初始设置:用户预先设定解锁凭证(如PIN码、指纹或手势密码)。
  2. 解锁监控:每次解锁尝试的时间均被记录至RPMB。
  3. 防暴力破解:若短时间内尝试次数超过阈值,系统将暂停解锁功能一定时间。
对抗攻击场景
  • 即使黑客使用自动化工具暴力穷举PIN码,一旦触发RPMB记录的尝试次数限制,攻击将立即终止。
  • 解锁尝试记录无法被篡改(因存储于RPMB),除非攻击者在前几次尝试中巧合命中正确PIN码,否则设备几乎无法被破解。

4.3 示例3——安全启动与写保护机制

设备防御恶意代码运行的关键,始于确保处理器从存储介质读取并执行的首段代码(即引导程序)绝对可信。该代码存放于eMMC启动分区,且须启用写保护机制防止恶意篡改。
在eMMC5.1之前,永久写保护机制是防护启动分区的唯一可靠方案,然而该机制在防黑客篡改的同时,也使得制造商无法在需要时更新该区域。这一矛盾催生了eMMC5.1的安全写保护功能。
安全写保护功能的实现逻辑:任何对写保护配置的修改均需通过RPMB密钥认证。该机制专用于防护eMMC设备中的引导代码及其他敏感数据,防止未授权应用进行篡改或删除。

5 结论

eMMC存储设备不仅是代码与数据的存储载体,其内置安全特性更能化解设备制造商普遍关注的系统安全隐患。在产品设计阶段善用其功能特性,可系统性提升产品在机密性、完整性与可用性维度的防护等级。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 数据结构 2.时间复杂度和空间复杂度

Life is a journey —— 25.2.28 一、引例:穷举法 1.单层循环 所谓穷举法,就是我们通常所说的枚举,就是把所有情况都遍历了的意思。 例:给定n(n ≤ 1000)个元素ai,求其中奇数有多少个 判断一…

FFmpeg-chapter3-读取视频流(原理篇)

ffmpeg网站:About FFmpeg 1 库介绍 (1)libavutil是一个包含简化编程函数的库,包括随机数生成器、数据结构、数学例程、核心多媒体实用程序等等。 (2)libavcodec是一个包含音频/视频编解码器的解码器和编…

面试(进阶) —虚拟列表在什么场景使用,如何实现?

面试(进阶) —虚拟列表在什么场景使用,如何实现? 在前端开发中,当需要渲染大量数据时,传统的渲染方式往往会遇到性能瓶颈。一次性将大量数据渲染到DOM中,不仅会导致页面加载缓慢,还可能占用大量内存&#x…

Linux Mem -- 关于AArch64 MTE功能的疑问

目录 1.虚拟地址和物理地址映射完成后,才可以设置虚拟地址对应的memory tag ? 2.各种memory allocator中的address tag从哪来,怎么产生? 2.1 vmalloc allocator 2.2 slub分配器 2.3 用户可以指定IRG指令产生的address tag 3.kasan…

python-leetcode-颜色分类

75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; class Solution:def sortColors(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""low, mid, high 0, 0, len(nums) - 1while mid < h…

ArcGIS Pro技巧实战:高效矢量化天地图地表覆盖图

在地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;地表覆盖图的矢量化是一项至关重要的任务。天地图作为中国国家级的地理信息服务平台&#xff0c;提供了丰富且详尽的地表覆盖数据。然而&#xff0c;这些数据通常以栅格格式存在&#xff0c;不利于进行空间分析和数据…

【江科大STM32】TIM输出比较(学习笔记)

本章图片文字内容也为重要知识&#xff0c;请马住&#xff01; 输出比较简介 OC&#xff08;Output Compare&#xff09;输出比较输出比较可以通过比较CNT与CCR寄存器值的关系&#xff0c;来对输出电平进行置1、置0或翻转的操作&#xff0c;用于输出一定频率和占空比的PWM波形…

【网络安全 | 漏洞挖掘】利用文件上传功能的 IDOR 和 XSS 劫持会话

未经许可,不得转载。 本文涉及漏洞均已修复。 文章目录 前言正文前言 想象这样一个场景:一个专门处理敏感文档的平台,如保险理赔或身份验证系统,却因一个设计疏漏而成为攻击者的“金矿”。在对某个保险门户的文件上传功能进行测试时,我意外发现了一个可导致大规模账户接管…

飞算 JavaAI 如何让微服务开发快人一步?

在当今竞争激烈的软件开发领域&#xff0c;微服务架构因其灵活性和可扩展性备受青睐。然而&#xff0c;微服务开发过程复杂&#xff0c;从需求分析到最终代码实现&#xff0c;每个环节都需要耗费大量时间和精力。飞算 JavaAI 的出现&#xff0c;犹如一道曙光&#xff0c;为开发…

Python—Excel全字段转json文件(极速版+GUI界面打包)

目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码(简易版)5、进阶版(GUI)总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——…

2025年光电科学与智能传感国际学术会议(ICOIS 2025)

重要信息 官网&#xff1a;www.ic-icois.org 时间&#xff1a;2025年3月14-16日 地点&#xff1a;中国-长春 简介 2025年光电科学与智能传感国际学术会议&#xff08;ICOIS 2025&#xff09;将于2025年3月14-16日在中国-长春隆重召开。会议将围绕“光学光电”、“智能传感”…

企业微信里可以使用的企业内刊制作工具,FLBOOK

如何让员工及时了解公司动态、行业资讯、学习专业知识&#xff0c;并有效沉淀企业文化&#xff1f;一份高质量的企业内刊是不可或缺的。现在让我来教你该怎么制作企业内刊吧 1.登录与上传 访问FLBOOK官网&#xff0c;注册账号后上传排版好的文档 2.选择模板 FLBOOK提供了丰富的…

YOLOv5 + SE注意力机制:提升目标检测性能的实践

一、引言 目标检测是计算机视觉领域的一个重要任务&#xff0c;广泛应用于自动驾驶、安防监控、工业检测等领域。YOLOv5作为YOLO系列的最新版本&#xff0c;以其高效性和准确性在实际应用中表现出色。然而&#xff0c;随着应用场景的复杂化&#xff0c;传统的卷积神经网络在处…

跟我学C++中级篇——定时器的设计

一、定时器 谈到定时器&#xff0c;理论上讲是各种语言和各种设计都无法避开的一个技术点。对于定时器来说&#xff0c;表面上就是一种时间间隔的处理约定&#xff0c;但对程序来说&#xff0c;可能就是设计层面、接口层面和库或框架以及系统应用的一个大集合。不同的系统&…

智能机器人加速进化:AI大模型与传感器的双重buff加成

Deepseek不仅可以在手机里为你解答现在的困惑、占卜未来的可能&#xff0c;也将成为你的贴心生活帮手&#xff01; 2月21日&#xff0c;追觅科技旗下Dreamehome APP正式接入DeepSeek-R1大模型&#xff0c;2月24日发布的追觅S50系列扫地机器人也成为市面上首批搭载DeepSeek-R1的…

PostgreSQL10 逻辑复制实战:构建高可用数据同步架构!

PostgreSQL10 逻辑复制实战&#xff1a;打造高可用数据同步架构&#xff01; 概述 PostgreSQL 10 引入了逻辑复制&#xff08;Logical Replication&#xff09;&#xff0c;为数据库高可用和数据同步提供了更灵活的选择。PostgreSQL 复制机制主要分为物理复制和逻辑复制两种&…

LVS+Keepalived高可用群集配置案例

以下是一个 LVSKeepalived 高可用群集配置案例&#xff1a; 1、环境准备 LVS 主调度器&#xff08;lvs1&#xff09;&#xff1a;IP 地址为 192.168.8.101&#xff0c;心跳 IP 为 192.168.4.101LVS 备调度器&#xff08;lvs2&#xff09;&#xff1a;IP 地址为 192.168.8.102…

原生家庭独立的艺术:找到自我与家庭的平衡点

原生家庭独立的艺术&#xff1a;找到自我与家庭的平衡点 &#x1f331; 引言 &#x1f308; 小林刚刚和父母结束了一次激烈的电话对峙。父母坚持认为他应该回到家乡工作&#xff0c;“这样我们也能照顾你”&#xff0c;而他则努力解释自己在大城市的职业规划。挂掉电话后&…

Java进阶——注解一文全懂

Java注解&#xff08;Annotation&#xff09;是一种强大的元数据机制&#xff0c;为代码提供了附加信息&#xff0c;能简化配置、增强代码的可读性和可维护性。本文将深入探讨 Java 注解的相关知识。首先阐述了注解的基础概念&#xff0c;包括其本质、作用以及核心分类&#xf…

DeepSeek 15天指导手册——从入门到精通 PDF(附下载)

DeepSeek使用教程系列--DeepSeek 15天指导手册——从入门到精通pdf下载&#xff1a; https://pan.baidu.com/s/1PrIo0Xo0h5s6Plcc_smS8w?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/2e8de75027d3 《DeepSeek 15天指导手册——从入门到精通》以系统化学习路径为核心&…