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 采用的是日志存储模型,数据通常是顺序写入、顺序读取,并且它的消费模式是 “读完即走”(一次性读取并发送给消费者),这与零拷贝的特性完美匹…...
推三返一小程序(源码部署)
推三返一小程序源码部署指南环境准备确保已安装Node.js(建议版本14)、微信开发者工具、MySQL数据库(或云数据库)。 克隆或下载推三返一小程序源码至本地,检查package.json确认依赖完整性。后端配置修改server/config.j…...
Kook Zimage真实幻想Turbo创作秘籍:10-15步生成高质量幻想风格图像
Kook Zimage真实幻想Turbo创作秘籍:10-15步生成高质量幻想风格图像 1. 快速上手幻想风格创作 Kook Zimage真实幻想Turbo是一款专为幻想风格图像创作优化的轻量化工具,它最大的特点就是能在普通消费级显卡上快速生成高质量的幻想风格图像。不同于通用型…...
UWB定位算法实战指南:从原理到工业应用(2025年最新解析)
1. UWB定位技术:工业场景的厘米级解决方案 想象一下在一个大型汽车制造车间里,数百台自动导引车(AGV)需要以厘米级精度穿梭于生产线之间。这正是UWB(超宽带)技术大显身手的场景——它就像给每台设备装上了&…...
安卓画廊管理工具:EhViewer开源应用全解析
安卓画廊管理工具:EhViewer开源应用全解析 【免费下载链接】EhViewer 🥥 A fork of EhViewer, feature requests are not accepted. Forked from https://gitlab.com/NekoInverter/EhViewer 项目地址: https://gitcode.com/GitHub_Trending/ehvi/EhVie…...
2026全球人才效能领先优势报告
导读:2026 领英人才洞察报告聚焦 AI 经济时代的人才效能,指出技能迭代速度已远超企业应对能力,人才效能成为企业竞争核心分水岭。人才效能指组织实时洞察、构建 / 获取并调动人才技能以领先市场需求的能力,全球仅 **14%** 企业成为…...
SecGPT-14B应用场景:DevSecOps流水线中嵌入安全问答节点实现CI/CD风险拦截
SecGPT-14B应用场景:DevSecOps流水线中嵌入安全问答节点实现CI/CD风险拦截 1. 安全自动化新范式 现代软件开发流程中,安全防护往往成为效率的"绊脚石"。传统安全审查需要人工介入,导致CI/CD流水线频繁中断。SecGPT-14B的出现为这…...
STM32硬件I2C驱动AS5600磁编码器:从CubeMX配置到完整代码实现
STM32硬件I2C驱动AS5600磁编码器:从CubeMX配置到完整代码实现 在电机控制、机器人关节定位等需要高精度角度检测的应用场景中,磁性旋转位置传感器因其非接触式测量特性而备受青睐。AS5600作为一款12位高分辨率磁性编码器,通过I2C接口可提供精…...
收藏!小白程序员轻松入门大模型,掌握AI领导力升职加薪必备
AI正颠覆全行业,要求原地升级AI。程序员需从执行者转变成AI领导者,提升AI领导力。未来行业可能两头重(小白AI和架构师AI),初中级工程师需提升专业能力和AI领导力。文章推荐NLP、CV、大模型算法、大模型部署等方向&…...
目前中国大陆唯一可以免费在 Xcode 中使用顶级大模型智能编程的方法
0.引子 现今,在中国大陆想要使用最强编程大模型在 Xcode 中实时交互的方法不多。 为了体验 Vibe Coding 的“畅快”打击感(或许还有等待间隙时的些许失落感),我们往往需要在 Cursor 和 Xcode 间无限切换,这多少有点让…...
从零重启计算机之路|一位毕业两年转行学习者的自白
大家好,我是一名毕业两年的编程初学者。目前没有从事计算机相关工作,但一直对编程抱有热爱与向往,决定从现在开始重新出发,系统学习计算机知识。 🎯 我的编程目标 从零基础扎实打好编程底子,熟练掌握 C 语言…...
