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)和數據結構。其核心機制包含以下組件:
- 共享密鑰:設備與主機預先協商或預置的加密密鑰。
- 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 可用于確保僅限授權用戶解鎖設備(如手機、汽車或計算機)。
操作流程:
- 初始設置:用戶預先設定解鎖憑證(如PIN碼、指紋或手勢密碼)。
- 解鎖監控:每次解鎖嘗試的時間均被記錄至RPMB。
- 防暴力破解:若短時間內嘗試次數超過閾值,系統將暫停解鎖功能一定時間。
對抗攻擊場景:
- 即使黑客使用自動化工具暴力窮舉PIN碼,一旦觸發RPMB記錄的嘗試次數限制,攻擊將立即終止。
- 解鎖嘗試記錄無法被篡改(因存儲于RPMB),除非攻擊者在前幾次嘗試中巧合命中正確PIN碼,否則設備幾乎無法被破解。
4.3 示例3——安全啟動與寫保護機制
設備防御惡意代碼運行的關鍵,始于確保處理器從存儲介質讀取并執行的首段代碼(即引導程序)絕對可信。該代碼存放于eMMC啟動分區,且須啟用寫保護機制防止惡意篡改。
在eMMC5.1之前,永久寫保護機制是防護啟動分區的唯一可靠方案,然而該機制在防黑客篡改的同時,也使得制造商無法在需要時更新該區域。這一矛盾催生了eMMC5.1的安全寫保護功能。
安全寫保護功能的實現邏輯:任何對寫保護配置的修改均需通過RPMB密鑰認證。該機制專用于防護eMMC設備中的引導代碼及其他敏感數據,防止未授權應用進行篡改或刪除。
5 結論
eMMC存儲設備不僅是代碼與數據的存儲載體,其內置安全特性更能化解設備制造商普遍關注的系統安全隱患。在產品設計階段善用其功能特性,可系統性提升產品在機密性、完整性與可用性維度的防護等級。