当前位置: 首页 > news >正文

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

相关文章:

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官方文档 下载下来解压到本地文件夹&#xff0c…...

Redis 持久化方式:RDB(Redis Database)和 AOF(Append Only File)

本部分内容是关于博主在学习 Redis 时关于持久化部分的记录,介绍了 RDB 和 AOF 两种持久化方式,详细介绍了持久化的原理、配置、使用方式、优缺点和使用场景。并对两种持久化方式做了对比。文章最后介绍了 Redis 持久化的意义并与其他常见的缓存技术做了…...

spring boot 连接FTP实现文件上传

spring boot 连接FTP实现文件上传 maven&#xff1a; <!--ftp--><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.8.0</version></dependency>接口示例&#xff1a; ApiO…...

怎么进行mysql的优化?

MySQL 的优化是一个系统性的工作&#xff0c;涉及多个层面&#xff0c;包括查询优化、索引优化、配置优化、架构优化等。以下是一些常见的 MySQL 优化方法&#xff1a; 查询优化 避免全表扫描&#xff1a;确保查询能够使用索引&#xff0c;避免 SELECT *&#xff0c;只选择需要…...

Octave3D 关卡设计插件

课程参考链接 这位大佬有在视频合集中有详细的讲解&#xff0c;个人体验过&#xff0c;感觉功能很强大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab资源管理 第一步 在场景中创建一个空物体…...

【论文笔记-TPAMI 2024】FreqFusion:用于密集图像预测的频率感知特征融合

Frequency-aware Feature Fusion for Dense Image Prediction 用于密集图像预测的频率感知特征融合 Abstract&#xff1a;密集图像预测任务要求具有强类别信息和高分辨率精确空间边界细节的特征。为了实现这一点&#xff0c;现代分层模型通常利用特征融合&#xff0c;直接添加…...

DeepBI成单关键词管理策略:提升转化与曝光,助力电商业绩双增长

在电商竞争愈发激烈的市场环境中&#xff0c;优化广告投放的关键词管理是提升产品转化率和曝光量的关键。特别是对于那些已经证明其转化能力的成单关键词&#xff0c;如何更好地管理和优化&#xff0c;成为了卖家们亟需解决的问题。DeepBI通过一套智能化的管理方案&#xff0c;…...

ai-3、机器学习之逻辑回归

机器学习之逻辑回归 1、分类问题2、逻辑回归2.1、二分类问题线性回归2.2、二分类问题逻辑回归 1、分类问题 分类问题常用的算法&#xff1a;逻辑回归 y0 :垃圾邮件 y1&#xff1a;正常邮件 准确来说是分类任务与线性回归任务的区别 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 内存的…...

金融赋能绍兴纺织 民生银行助力外贸中小微企业“走出去”

在浙江绍兴&#xff0c;纺织业作为一张熠熠生辉的产业名片&#xff0c;承载着深厚的历史底蕴与蓬勃的发展活力。这里依傍长三角经济圈&#xff0c;交通网络纵横交错&#xff0c;将原材料产地与广阔市场紧密相连&#xff1b;产业集群高度成熟&#xff0c;上下游产业链完备&#…...

ubuntu:换源安装docker-ce和docker-compose

更新apt源 apt换源&#xff1a;ubuntu&#xff1a;更新阿里云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漏洞挖掘扫描的技术&#xff0c;通过web漏洞的挖掘扫描来实现对网站URL的漏洞检测&#xff0c;通过高中低风险的判断来实现对一款网站中存在的漏洞进行可视化的分析&#xff0c;从而能够找到问题并且尽快的实现问题的解决。 博主介…...

Spring Boot全局异常处理:“危机公关”团队

目录 一、全局异常处理的作用二、Spring Boot 实现全局异常处理&#xff08;附上代码实例&#xff09;三、总结&#xff1a; &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;可以多多支持一下&#xff0c;感谢&#x1…...

Wireshark:自定义类型帧解析

文章目录 1. 前言2. 背景3. 开发 Lua 插件 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. 背景 Wireshark 不认识用 tcpdump 抓取的数据帧&#xff0c;仔细分析相关代码和数据帧后&#xff0c…...

Redis7——进阶篇(一)

前言&#xff1a;此篇文章系本人学习过程中记录下来的笔记&#xff0c;里面难免会有不少欠缺的地方&#xff0c;诚心期待大家多多给予指教。 基础篇&#xff1a; Redis&#xff08;一&#xff09;Redis&#xff08;二&#xff09;Redis&#xff08;三&#xff09;Redis&#x…...

word转换为pdf后图片失真解决办法、高质量PDF转换方法

1、安装Adobe Acrobat Pro DC 自行安装 2、配置Acrobat PDFMaker &#xff08;1&#xff09;点击word选项卡上的Acrobat插件&#xff0c;&#xff08;2&#xff09;点击“首选项”按钮&#xff0c;&#xff08;3&#xff09;点击“高级配置”按钮&#xff08;4&#xff09;点…...

Kafka零拷贝

Kafka为什么适用零拷贝&#xff0c;其他存储结构不适用&#xff1f; Kafka 采用的是日志存储模型&#xff0c;数据通常是顺序写入、顺序读取&#xff0c;并且它的消费模式是 “读完即走”&#xff08;一次性读取并发送给消费者&#xff09;&#xff0c;这与零拷贝的特性完美匹…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...