eMMC安全简介
1. 引言
- 机密性:确保本应保密的信息仅能被授权实体读取和理解。未经授权的个体无法访问或理解机密信息。
- 完整性:指确认信息受到保护,防止未经授权的更改、修改或删除。信息的完整性涵盖其来源、完整性和正确性,通常通过身份识别和认证等方法实现。
- 可用性:确保授权用户能够始终访问所需信息。
- e.MMC写保护机制旨在保障数据可用性;
- 重放保护内存块(RPMB)方案专注于确保数据完整性;
- Android全盘加密(FDE)则是一种针对数据隐私保护的安全方案,旨在确保机密性。
2. eMMC安全特性的发展
2.1 密码锁(Password Lock)
- 通过CMD42指令启用密码锁定。
- 锁定后,主机仍可执行基础操作(复位、初始化、状态查询等),但禁止访问用户数据区。
- 允许访问区域:启动分区(Boot Partitions)、RPMB、通用分区(General Partition)。
- 完全阻断访问:包括数据所有者在内的所有用户均无法操作受保护数据,可能导致使用灵活性下降。
- 密码锁功能最初源自传统SD卡,后被整合至早期eMMC规范。
2.2 写保护(Write Protect)
- eMMC4.3及更早:仅支持用户区(User Area)写保护。
- eMMC4.4:引入分区概念,支持对分区内特定区域的写保护。
- eMMC5.1:新增认证机制,可通过身份验证动态管理写保护权限。
| 类型 | 特点 |
| 永久写保护 | 一旦启用,无法禁用(防固件回滚或关键配置篡改)。 |
| 上电写保护 | 启用后,需断电重启或复位引脚触发才能解除(防运行时恶意修改)。 |
| 临时写保护 | 可动态启用/禁用(适用于临时敏感操作保护)。 |
| 安全写保护 | 仅授权用户(通过RPMB认证)可管理写保护状态(高安全性场景)。 |
- 全局保护:可对整个设备(包括启动分区、RPMB、通用分区、用户数据区)设置永久或临时写保护。
- 分区级保护:
- 启动分区:支持永久、安全或上电写保护。
- 用户数据区(UDA)与通用分区(GPP):支持按“写保护组”(Write Protect Groups)细分保护区域,并灵活选择保护类型。
- 用户数据区(UDA)与通用分区(GPP)的写保护可应用于特定区段(规范中称为“写保护组”),这些区段支持配置为以下模式:
- 永久写保护(不可逆锁定)
- 安全写保护(需RPMB授权解除)
- 上电写保护(重启后生效)
- 临时写保护(动态启用/禁用)
2.3 RPMB(重放保护内存块)
- 共享密钥:设备与主机预先协商或预置的加密密钥。
- HMAC(哈希消息认证码):用于对访问安全区域的所有读写操作进行数字签名,确保操作合法性。
- 写入数据时,主机需使用共享密钥生成HMAC,附加到操作请求中;设备验证HMAC合法性后执行写入。
- 读取数据时,设备返回的数据会附带HMAC,供主机验证完整性和来源真实性。
- 防重放攻击:通过递增计数器(Counter)值,拒绝重复或过期指令(例如:恶意复制旧指令篡改数据)。
3 RPMB用于身份验证和防止重放攻击的完整性保护。
3.1 What Is a Replay Attack?
3.2 RPMB Authentication
- 密钥编程:
- 主机首先将身份验证密钥信息编程到 eMMC 设备中(通常在安全环境下进行,如生产线)。
- 签名和验证:
- 主机和设备使用该身份验证密钥对涉及 RPMB 区域的读写消息进行签名和验证。
- 消息签名:
- 签名过程涉及消息认证码(MAC),该 MAC 使用 HMAC-SHA-256 算法计算。
3.3 RPMB Protection against Replay Attack
- 共享/秘密密钥。
- 包含写入命令或读取结果的消息。
- 记录 RPMB 总写入次数的写计数器。
- 读取命令对应的随机生成数(Nonce)。
Writing to RPMB
- 检查计数器是否已增加。
- 检查主机发送的 MAC 是否与设备使用其保存的密钥生成的 MAC 相同。

Reading from RPMB
- 在写入 RPMB 时,MAC 的值受 RPMB 写计数器的影响,该计数器在每次成功写入 RPMB 后(由主机和设备共同)增加。
- 在读取 RPMB 时,MAC 的值受主机生成的随机数影响,该随机数作为读取请求的一部分发送。
4 RPMB应用场景
4.1 示例1——软件版本认证防范降级攻击
4.2 示例2——防范未授权解锁
- 初始设置:用户预先设定解锁凭证(如PIN码、指纹或手势密码)。
- 解锁监控:每次解锁尝试的时间均被记录至RPMB。
- 防暴力破解:若短时间内尝试次数超过阈值,系统将暂停解锁功能一定时间。
- 即使黑客使用自动化工具暴力穷举PIN码,一旦触发RPMB记录的尝试次数限制,攻击将立即终止。
- 解锁尝试记录无法被篡改(因存储于RPMB),除非攻击者在前几次尝试中巧合命中正确PIN码,否则设备几乎无法被破解。

4.3 示例3——安全启动与写保护机制
5 结论
相关文章:
eMMC安全简介
1. 引言 术语“信息安全”涵盖多种不同的设计特性。一般而言, 信息安全是指通过实践防止信息遭受未经授权的访问、使用、披露、中断、篡改、检查、记录或销毁。 信息安全的三大核心目标为 机密性(Confidentiality)、完整性(Integr…...
在VSCode 中使用通义灵码最新版详细教程
在 VSCode 中使用通义灵码:最新版详细教程与使用场景 Visual Studio Code(简称 VSCode)是一款由微软开发的轻量级、功能强大的开源代码编辑器,支持多种编程语言,深受开发者喜爱。而通义灵码(TONGYI Lingma…...
Ubuntu20.04安装Isaac sim/ Isaac lab
2025年之后omniverse好像不能直接装Isaac sim了,要跳转到官网链接。 Isaac lab要在Isaac sim安装之后才能安装 Ubuntu20.04安装Isaac sim/ Isaac lab Isaac sim安装Isaac lab安装 Isaac sim安装 找到官网 Isaac sim官方文档 下载下来解压到本地文件夹,…...
Redis 持久化方式:RDB(Redis Database)和 AOF(Append Only File)
本部分内容是关于博主在学习 Redis 时关于持久化部分的记录,介绍了 RDB 和 AOF 两种持久化方式,详细介绍了持久化的原理、配置、使用方式、优缺点和使用场景。并对两种持久化方式做了对比。文章最后介绍了 Redis 持久化的意义并与其他常见的缓存技术做了…...
spring boot 连接FTP实现文件上传
spring boot 连接FTP实现文件上传 maven: <!--ftp--><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.8.0</version></dependency>接口示例: ApiO…...
怎么进行mysql的优化?
MySQL 的优化是一个系统性的工作,涉及多个层面,包括查询优化、索引优化、配置优化、架构优化等。以下是一些常见的 MySQL 优化方法: 查询优化 避免全表扫描:确保查询能够使用索引,避免 SELECT *,只选择需要…...
Octave3D 关卡设计插件
课程参考链接 这位大佬有在视频合集中有详细的讲解,个人体验过,感觉功能很强大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab资源管理 第一步 在场景中创建一个空物体…...
【论文笔记-TPAMI 2024】FreqFusion:用于密集图像预测的频率感知特征融合
Frequency-aware Feature Fusion for Dense Image Prediction 用于密集图像预测的频率感知特征融合 Abstract:密集图像预测任务要求具有强类别信息和高分辨率精确空间边界细节的特征。为了实现这一点,现代分层模型通常利用特征融合,直接添加…...
DeepBI成单关键词管理策略:提升转化与曝光,助力电商业绩双增长
在电商竞争愈发激烈的市场环境中,优化广告投放的关键词管理是提升产品转化率和曝光量的关键。特别是对于那些已经证明其转化能力的成单关键词,如何更好地管理和优化,成为了卖家们亟需解决的问题。DeepBI通过一套智能化的管理方案,…...
ai-3、机器学习之逻辑回归
机器学习之逻辑回归 1、分类问题2、逻辑回归2.1、二分类问题线性回归2.2、二分类问题逻辑回归 1、分类问题 分类问题常用的算法:逻辑回归 y0 :垃圾邮件 y1:正常邮件 准确来说是分类任务与线性回归任务的区别 2、逻辑回归 2.1、二分类问题线性回归 分类…...
在kubernetes集群中持续压测 SpringCloud 应用,pod 的 memory cache 持续增长问题
问题描述 在kubernetes集群中压测 SpringCloud 应用,持续压测, pod 的 memory cache 持续增长,导致 pod 最终挂了。上图看看效果吧~pod的资源配置 cpu: 1~2 core内存:1~3 G pod 数:1分析思路 1)pod 级的 Memory Cache ,显示的为当前 pod 的 linux 系统的 cache 内存的…...
金融赋能绍兴纺织 民生银行助力外贸中小微企业“走出去”
在浙江绍兴,纺织业作为一张熠熠生辉的产业名片,承载着深厚的历史底蕴与蓬勃的发展活力。这里依傍长三角经济圈,交通网络纵横交错,将原材料产地与广阔市场紧密相连;产业集群高度成熟,上下游产业链完备&#…...
ubuntu:换源安装docker-ce和docker-compose
更新apt源 apt换源:ubuntu:更新阿里云apt源-CSDN博客 安装docker-ce 1、更新软件源 sudo apt update2、安装基本软件 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y3、指定使用阿里云镜像 su…...
基于 Elasticsearch 和 Milvus 的 RAG 运维知识库的架构设计和部署落地实现指南
最近在整理一些业务场景的架构设计和部署落地实现指南 先放一个 【基于RAG的运维知识库 (ElasticSearch + Milvus) 的详细实现指南】,其中包含了详尽的技术实现细节、可运行的示例代码、原理分析、优缺点分析和应用场景分析。 架构描述: 基于RAG的运维知识库 (ElasticSearch…...
基于Python的web漏洞挖掘,漏洞扫描系统(附源码,部署)
本次技术通过利用Python技术来开发一款针对web漏洞挖掘扫描的技术,通过web漏洞的挖掘扫描来实现对网站URL的漏洞检测,通过高中低风险的判断来实现对一款网站中存在的漏洞进行可视化的分析,从而能够找到问题并且尽快的实现问题的解决。 博主介…...
Spring Boot全局异常处理:“危机公关”团队
目录 一、全局异常处理的作用二、Spring Boot 实现全局异常处理(附上代码实例)三、总结: 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢…...
Wireshark:自定义类型帧解析
文章目录 1. 前言2. 背景3. 开发 Lua 插件 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 背景 Wireshark 不认识用 tcpdump 抓取的数据帧,仔细分析相关代码和数据帧后,…...
Redis7——进阶篇(一)
前言:此篇文章系本人学习过程中记录下来的笔记,里面难免会有不少欠缺的地方,诚心期待大家多多给予指教。 基础篇: Redis(一)Redis(二)Redis(三)Redis&#x…...
word转换为pdf后图片失真解决办法、高质量PDF转换方法
1、安装Adobe Acrobat Pro DC 自行安装 2、配置Acrobat PDFMaker (1)点击word选项卡上的Acrobat插件,(2)点击“首选项”按钮,(3)点击“高级配置”按钮(4)点…...
Kafka零拷贝
Kafka为什么适用零拷贝,其他存储结构不适用? Kafka 采用的是日志存储模型,数据通常是顺序写入、顺序读取,并且它的消费模式是 “读完即走”(一次性读取并发送给消费者),这与零拷贝的特性完美匹…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
