Fact-checked by Grok 2 weeks ago

Replay Protected Memory Block

The Replay Protected Memory Block (RPMB) is a secure within embedded (eMMC) and (UFS) devices that enables storage of sensitive data, such as cryptographic keys and counters, while protecting against replay attacks and unauthorized modifications. First specified in the eMMC 4.4 standard in 2009, RPMB uses a authentication key between the host and the storage device to ensure and prevent the reuse of previously issued commands. RPMB operates through a dedicated protocol that authenticates read and write operations using a message authentication code (MAC) generated via HMAC-SHA-256, with each successful write incrementing a monotonic counter to invalidate any replayed requests. This mechanism restricts access to a small, isolated memory area—multiples of 128 KB, up to 16 MB per the eMMC standard (with some implementations supporting up to 32 MB)—separate from the main user data partitions, and supports optional AES-256 encryption for additional confidentiality in applications like biometric authentication. The protocol was initially defined in the JEDEC eMMC standard JESD84-A44 and has been extended to UFS and SD cards, aligning with NVMe protocols for broader compatibility in secure boot and trusted execution environments. Commonly integrated into smartphones, IoT devices, and automotive systems, RPMB supports critical use cases including anti-rollback protection for firmware updates, secure key storage in Trusted Execution Environments (TEEs), and prevention of unauthorized access to device-specific data. Despite its robustness, vulnerabilities in RPMB implementations have been identified, such as potential replay of failure messages that could lead to denial-of-service conditions in dependent security components. Standardized in eMMC version 4.4 and later (up to 5.1B as of 2025) and UFS version 2.0 and later (up to 4.1 as of 2025), RPMB remains a foundational element for enhancing storage security in resource-constrained environments.

Introduction

Definition and Purpose

The Replay Protected Memory Block (RPMB) is a dedicated, small-capacity partition within flash-based storage devices such as embedded MultiMediaCard (eMMC) and Universal Flash Storage (UFS), providing secure and replay-protected data storage isolated from the main filesystem. Its typical size ranges from 128 KB to 16 MB, configured as a multiple of 128 KB blocks (up to 32 MB in some vendor-specific implementations) to accommodate sensitive information without significantly impacting overall device capacity. The primary purpose of RPMB is to enable authenticated access to stored data, where both write and read operations mandate the inclusion of message authentication codes (MACs) to verify integrity and authenticity, thereby preventing unauthorized modifications or access. This mechanism counters replay attacks, in which an adversary intercepts and resubmits previously valid transactions to deceive the system into accepting outdated or manipulated data. RPMB achieves this protection through monotonic write counters that increment by one after each successful write operation and nonces—random values generated for each transaction—to ensure freshness, rendering replayed frames invalid due to mismatched counter values or nonces. By offering this secure enclave, RPMB facilitates critical applications such as the of cryptographic keys, certificate management for device authentication, and tamper-resistant logging of security events, all while maintaining without reliance on the host's general areas.

History and Development

The Replay Protected Memory Block (RPMB) was first introduced as a security feature in the JEDEC embedded MultiMediaCard (eMMC) specification version 4.41 (JESD84-A441), published in March 2010. This specification defined RPMB as a dedicated partition within eMMC devices to enable authenticated, replay-protected storage of sensitive data, addressing emerging threats in mobile and embedded systems. Developed by the (), a comprising manufacturers, the feature emerged from collaborative efforts involving major storage vendors such as and , who contributed to refining the protocol for practical implementation in . The creation of RPMB was motivated by the growing prevalence of mobile devices in the early , which heightened vulnerabilities to sophisticated attacks like rootkits and manipulations that could enable unauthorized data access or system tampering. As smartphones proliferated, there was an urgent need for hardware-level protections to safeguard critical information, such as cryptographic keys and data, against replay attacks where stale or malicious responses could be reused to bypass . This driver aligned with broader industry shifts toward trusted execution environments and secure mechanisms to mitigate risks in increasingly connected ecosystems. Following its eMMC debut, RPMB evolved through extensions to other storage protocols. It was incorporated into the Universal Flash Storage (UFS) standard with UFS 2.0, released in September 2013, which built on eMMC foundations to support higher-performance interfaces while retaining RPMB for secure data handling in next-generation mobile devices. Subsequent UFS versions, such as 2.1 in 2016, further refined RPMB integration for enhanced and error handling. The feature also expanded to , with adoption in cards via the SD Association's SD 9.0 specification, released in February 2022, enabling RPMB in conventional SD memory cards to serve as semi-embedded secure storage alternatives. Key milestones in RPMB's development include its early integration into 's verified boot processes starting with Android 4.3 () in 2013, where developers implemented RPMB drivers to store protected data like modem configurations and billing information, enhancing resistance to and tampering attacks. This adoption accelerated with Android's broader framework updates. Concurrently, JEDEC's eMMC 5.0 specification, published in October 2013, introduced command queuing and improvements that complemented RPMB's role, while the eMMC 5.1 update in February 2015 added enhanced partitioning and mechanisms to bolster overall device resilience. These advancements solidified RPMB as a cornerstone of storage across evolving hardware standards. Subsequent updates as of 2025 include eMMC 5.1B in September 2025 for improved performance and reliability, UFS 4.1 in December 2024, and the announcement of UFS 5.0 in October 2025, all maintaining and enhancing RPMB functionality for modern devices.

Technical Specifications

Partition and Addressing

The Replay Protected Memory Block (RPMB) functions as a virtual logical unit (LUN) within embedded (eMMC) and (UFS) devices, providing an isolated storage area for authenticated data. In eMMC implementations, RPMB is treated as a dedicated accessed via the SWITCH command (CMD6), which configures the access in the EXT_CSD register to enable RPMB operations. This command shifts the device's addressing context from the main user data area to the RPMB , typically identified by a specific access bit pattern such as configuration value 0x03 in the SWITCH argument for RPMB enablement. In UFS devices, RPMB operates as a distinct LUN, selected through a QUERY REQUEST UPIU with 0x01 (Read Descriptor) or similar to retrieve and enable the RPMB unit descriptor, followed by Security Protocol IN/OUT commands for data handling. This LUN-based structure in UFS allows independent addressing without altering the primary user LUN. RPMB size is allocated during device configuration and remains fixed thereafter, expressed as a multiple of 128 KB via parameters like RPMB_SIZE_MULT in the eMMC EXT_CSD register (byte 168) or equivalent UFS descriptors. The minimum size is 128 KB, while the maximum is constrained to 16 MB due to the 16-bit address field in the RPMB protocol, ensuring compatibility across devices; while the protocol limits to 16 MB via 16-bit addressing, some implementations support up to 32 MB; representative implementations often provision 4 MB for sufficient secure storage capacity. This non-user-accessible area is excluded from standard block I/O paths, preventing direct reads or writes through conventional commands like CMD17/18 (READ_SINGLE/ MULTIPLE_BLOCK) or UFS equivalents, thereby maintaining isolation from the filesystem and user data partitions. Within the RPMB address space, logical addressing begins at 0 and uses 256-byte blocks to align with the protocol's data payload structure, where each operation targets blocks via a 16-bit address field supporting up to blocks (yielding the 16 limit). This separate namespace ensures no overlap with the device's main (LBA), which typically employs 512-byte sectors for user data, further enforcing security boundaries. Provisioning of RPMB occurs during device manufacturing or initial host setup in a secure environment, including the one-time programming of a 32-byte authentication key using the PROGRAM_KEY operation. This key, used for HMAC-SHA-256 computations, is written once via a dedicated RPMB frame and cannot be read, modified, or erased afterward, establishing the foundation for all subsequent authenticated accesses.

Authentication Mechanism

The Replay Protected Memory Block (RPMB) employs a cryptographic authentication mechanism centered on the HMAC-SHA-256 algorithm to ensure the integrity and authenticity of data exchanges between the host and the storage device. This mechanism utilizes a 256-bit device-specific key, which serves as a and is provisioned during or programmed via a in a controlled , such as the . The key is used to generate a 256-bit (MAC) for each RPMB request and response, computed over the relevant frame fields including the data payload, address, and additional security elements. To prevent replay attacks, RPMB incorporates a monotonic 32-bit write that increments after every successful authenticated write operation. This is included in the MAC computation for both write requests and read responses, allowing the device to verify that the presented value matches the current internal state; any mismatch or attempt to use an outdated value results in failure. For read operations, the mechanism further employs a 64-bit random generated by the host and included in the request frame, which binds the request to a unique session and contributes to the MAC calculation to ensure freshness and prevent unauthorized replays of previous responses. The is echoed back in the device's response along with its own MAC, enabling the host to validate the reply. Key programming in RPMB supports secure provisioning via the PROGRAM_KEY operation, ensuring it cannot be written without proper . Key revocation or updates are managed through result codes in the response frame, which signal failures during programming attempts, such as when an existing prevents reprogramming. Authentication failures, including MAC mismatches due to incorrect keys, invalid counters, or nonce discrepancies, trigger specific result codes in the response; for instance, code 0x06 indicates read failures, while code 0x05 indicates an unprogrammed authentication . These codes, part of the 16-bit Result field, provide diagnostic feedback while maintaining by not revealing detailed failure reasons.

Operations and Frame Format

Supported Operations

The Replay Protected Memory Block (RPMB) defines a set of core operations to enable secure, authenticated access to its protected storage area, ensuring data integrity and replay protection through cryptographic mechanisms. These operations include the Authenticated Read request (0x0003), which retrieves data from the RPMB while verifying authenticity via a message authentication code (MAC); the Authenticated Write request (0x0004), which stores data after validation and counter increment; the Read Result request (0x0005), which fetches the outcome of a prior operation including any error status; and the Reading of the Write Counter request (0x0002), which obtains the current value of the monotonic write counter to prevent replays. For an authenticated write operation, the host initiates the sequence by issuing a Reading of the Write Counter request to retrieve the device's current write counter value. The host then assembles a 512-byte request containing the target , the to write (padded if necessary), a 16-byte for freshness, the expected write counter, and a 32-byte HMAC-SHA-256 computed over the frame using the shared key (referencing the HMAC verification process detailed in the mechanism). This frame is transmitted to the device, which validates the MAC, checks that the provided counter matches its internal value, writes the data if valid, increments the write counter, and stores a response with updated details. The host subsequently sends a Read Result request to poll and retrieve the response , confirming success or failure. The authenticated read sequence begins with the host constructing a single- request frame (using CMD23 in eMMC for block count setup) that specifies the starting , block count, a , the expected write , and the MAC. The device verifies the MAC and counter, then returns the requested data in one or more 512-byte response frames via a multi-block read (CMD18 in eMMC), with the final frame including the response MAC for verification; the host issues a Read Result request to obtain any operation result if needed. This process ensures that only fresh, authorized reads are possible, with the preventing replay of previous responses. These operations are invoked through storage-specific command flows: in eMMC devices, they utilize the MMC_SWITCH command (opcode 6, with mode 3 and RPMB-specific arguments in the data field) to enter the RPMB protocol mode and exchange frames over multi-block read/write channels. In Universal Flash Storage (UFS) devices, equivalent functionality is provided via IOCTL mechanisms or Security Protocol Out/In UPIU commands, which encapsulate the RPMB frames in a similar request-response exchange; in UFS 4.1 (2025), RPMB authentication secures vendor-specific command execution. All operations process data in fixed 512-byte blocks, supporting multi-block transfers through chaining for efficiency, but prohibit partial block writes to maintain alignment and security. Certain specifications limit each operation to a maximum of 256 blocks to bound processing overhead and resource usage.

Data Frame Structure

The Replay Protected Memory Block (RPMB) employs a fixed 512-byte data frame format for all operations, ensuring compatibility with standard block I/O protocols in storage devices such as eMMC and UFS. This structure facilitates secure data exchange between the host and the device, with fields arranged to support and replay . All multi-byte fields within the frame are encoded in big-endian byte order to maintain consistency across implementations. The frame layout consists of padding followed by operational fields, a data payload, and elements, as outlined in the following table:
Byte OffsetSize (bytes)Field NameDescription
0–195196Stuff Bytes padding initialized to 0x00, ensuring alignment and fixed total length.
196–1972Request/Response TypeIdentifies the operation; examples include 0x0003 for Authenticated Read requests and 0x0004 for Authenticated Write requests.
198–201432-bit starting address of the target within the RPMB .
202–2054Write 32-bit monotonic incremented on each authenticated write; initializes to 0x00000000 and rolls over only after 4,294,967,296 writes.
206–213864-bit random value generated by the host to prevent replay attacks.
214–2152Block CountNumber of 512-byte blocks for read/write operations (1 for other operations).
216–471256Data Payload for read/write operations; for responses, starts with Operation Result (2 bytes) and Write (4 bytes) if applicable; unused or zero-padded for other commands like reads.
472–50332Key MAC / Result MAC computed using the shared over the (excluding stuff bytes and this field itself); used as Key MAC in requests and Result MAC in responses.
504–5118 bytes, set to 0x00.
The write counter field begins at 0x00000000 upon RPMB initialization and increments by 1 for each successful write, providing replay protection by ensuring freshness; it wraps around only after reaching its maximum value of 0xFFFFFFFF (approximately 4 billion writes). Result codes in response frames indicate operation outcomes, with 0x00 denoting success and 0x01 signifying general failure; additional codes cover specific errors like authentication failure (0x03) or counter mismatch (0x04). Response frames mirror the structure of their corresponding request frames but substitute the data block with relevant result information, incorporate an updated write value (if applicable), and use the MAC field as the 32-byte result MAC computed over the response contents using the shared key. This design maintains symmetry while allowing the device to convey operation status securely. The and write fields play critical roles in authenticating frame freshness and preventing replays, as elaborated in the Authentication Mechanism section.

Implementations

Hardware Support in Storage Devices

The Replay Protected Memory Block (RPMB) is integrated into embedded (eMMC) storage devices as a mandatory feature starting from the eMMC 4.4 specification, providing a dedicated secure typically sized at 4 for authenticated with replay protection. This is accessed utilizing a frame-based over standard eMMC commands such as CMD23 for setup, CMD25 for writes, and CMD18 for reads, where each 512-byte frame includes fields for address, data, , write counter, (), and result code. Hardware for HMAC-SHA-256 computations ensures efficient verification of authenticity and integrity, with the 32-byte shared secret key provisioned securely during manufacturing to prevent unauthorized access. In (UFS) devices, RPMB support is available from UFS version 2.0 onward, as defined in the UFS 2.0 specification (JESD220B), enabling secure storage through a well-known logical unit (W-LUN) encoded as 0x44 (or C4h with the WLUN_ID bit set). Later iterations, such as UFS 3.0, introduced the capability to split RPMB into up to four independent regions, each with its own authentication key, facilitating multi-tenant security in high-performance UFS deployments. UFS 3.1 and 4.0 incorporate performance enhancements like WriteBooster (introduced in UFS 3.0) for improved write buffering and Host Performance Booster (HPB, introduced in UFS 3.1) for faster data access, which complement RPMB operations in systems by reducing latency in secure read/write transactions over NVMe-like interfaces. Major vendors have implemented RPMB in their storage chips to meet security demands in mobile and embedded applications. Samsung introduced RPMB support in its eMMC controllers starting around , aligning with early adoption in devices for secure key storage and anti-rollback protection. (formerly Memory) integrates RPMB into UFS devices tailored for automotive use cases, such as in UFS 4.0 modules that employ advanced RPMB for rapid access to user credentials and integrity checks in vehicle and ADAS systems. has incorporated RPMB in eMMC and UFS products but disclosed vulnerabilities in 2020, highlighting risks in scenarios across affected storage standards without proper freshness checks. At the hardware level, RPMB requires a dedicated region within the array, isolated from the main user data area to ensure physical separation and prevent tampering, alongside controller logic that securely stores the authentication key in inaccessible to the host bus. This isolation is achieved through on-chip monotonic counters for write sequencing and hardware-enforced validation, minimizing exposure to side-channel attacks while maintaining compatibility with the device's overall management.

Software and OS Integration

The supports Replay Protected Memory Block (RPMB) through drivers in the and UFS subsystems, exposing RPMB partitions as character devices such as /dev/rpmb0 for secure access by kernel modules and user-space applications. Initial integration began with kernel version 4.11 in , providing foundational support via the mmc-rpmb.c driver for eMMC devices, which abstracts the multi-step process required for RPMB read, write, and counter operations. For UFS , the ufshcd driver includes RPMB functionality, enabling similar authenticated access on modern embedded systems. The recent RPMB subsystem, merged in 6.12, enhances this by standardizing interfaces for (TEE) drivers, such as OP-TEE, allowing direct kernel-level probing and operations without userspace intermediaries. In , RPMB integrates with Android Verified Boot (AVB) 2.0 to store rollback indices and device lock states in a tamper-evident manner, preventing reversion to vulnerable firmware versions. These indices are managed through frameworks like OP-TEE, where the RPMB serves as secure accessed via calls from the normal world supplicant (e.g., tee-supplicant) to the secure world for atomic, authenticated updates. This setup complements dm-verity, which enforces filesystem integrity during boot, by leveraging RPMB's replay protection for critical metadata like rollback counters. OP-TEE enables this by configuring RPMB as a backend (via CFG_RPMB_FS=y), using a for persistent secure data with HMAC-based authentication. User-space access to RPMB is facilitated by libraries such as Android's librpmb, which handles data frame construction and key for operations like reads and writes. In the , applications interact via interfaces on the RPMB device, including RPMB_IOC_PROG_KEY for one-time programming of the authentication key, ensuring secure initialization before regular use. These ioctls abstract the protocol's frame format, allowing synchronous requests without exposing low-level details. Cross-platform support extends to and embedded distributions, where RPMB drivers enable secure enclaves for applications. In Windows, the IOCTL_STORAGE_QUERY_PROPERTY with StorageAdapterRpmbProperty queries RPMB presence and payload limits via the STORAGE_RPMB_DESCRIPTOR structure, supporting authenticated storage in embedded scenarios. Embedded variants, such as Yocto-based systems, inherit mainline RPMB drivers for eMMC and UFS, providing consistent access in resource-constrained environments.

Applications and Use Cases

Secure Boot Processes

Replay Protected Memory Block (RPMB) plays a critical role in secure boot processes by providing tamper-evident storage for essential boot metadata, including rollback indices and verified cryptographic keys, which help prevent downgrade attacks during and operating system initialization. In verified boot chains, RPMB ensures that only authorized and up-to-date components can execute, maintaining the integrity of the boot sequence from the initial to the . This storage mechanism leverages RPMB's replay protection to safeguard against unauthorized modifications or rollbacks to vulnerable versions, thereby enforcing a rooted in hardware-backed . A key example of RPMB's integration is in Verified Boot (AVB) 2.0, where it serves as persistent storage for rollback indices and device lock states, often managed through trusted execution environments like OP-TEE. During the boot process, the retrieves these indices from RPMB to compare against the rollback values embedded in the vbmeta image; if the stored index exceeds the image's value, the boot is halted to block potential downgrades. In hardware-specific implementations, such as processors, RPMB supports secure storage for firmware updates and recovery processes, including provisioning for authenticated operations post-fuse setup. Similarly, NXP processors utilize RPMB in their security features to store rollback indices for verified boot, allowing confirmation of firmware versions against known secure states. The primary advantage of RPMB in these processes is its provision of tamper-evident, replay-protected storage that maintains boot integrity without dependence on one-time writable fuses, which are limited in capacity and irreversibility. This enables flexible yet secure management of boot counters and keys across device lifecycles, reducing the risk of persistent attacks while supporting over-the-air updates.

Trusted Execution Environments

Replay Protected Memory Block (RPMB) integrates with Trusted Execution Environments (TEEs) such as ARM TrustZone to provide persistent, replay-protected non-volatile storage for sensitive data, enabling secure runtime operations in isolated execution contexts. In this synergy, RPMB acts as a dedicated in storage devices like eMMC or UFS, where TEEs can store and retrieve critical assets including private keys, biometric templates, and application-specific secrets without exposure to the untrusted normal world operating system. The authentication mechanism of RPMB, which relies on a managed exclusively within the TEE, ensures that data writes and reads are protected against replay attacks through monotonic write counters and HMAC-based verification. A prominent example of this integration is in OP-TEE, an open-source implementation for TrustZone, which utilizes RPMB as a backend for secure storage of persistent objects. When enabled via the CFG_RPMB_FS=y configuration, OP-TEE Trusted Applications (TAs) access RPMB using storage types like TEE_STORAGE_PRIVATE_RPMB, allowing them to manage encrypted files in a replay-protected manner. These persistent objects are organized using a (FAT) structure within the RPMB partition, with data encrypted via AES-CBC derived from hardware-unique keys, ensuring and even if the normal world filesystem is compromised. The flow in RPMB-TEE interactions maintains strict isolation: a in the secure world issues authenticated requests, which are forwarded to the normal world via the tee-supplicant daemon using calls to the MMC subsystem's RPMB driver. This driver handles the low-level communication with the , authenticating requests with the TEE-managed before committing or retrieving encrypted blobs, thereby preventing unauthorized from the rich execution . Software drivers facilitate this bridging while preserving TEE boundaries, as detailed in broader OS integration contexts. RPMB's adoption in TEEs is widespread in mobile and embedded systems, particularly smartphones running with TrustZone-enabled SoCs, where it supports runtime secure storage for features like digital rights management () key protection. In IoT devices, RPMB similarly enables TEEs to safeguard device-specific secrets and firmware updates against tampering, enhancing in resource-constrained environments.

Security Aspects

Protocol Vulnerabilities

The Replay Protected Memory Block (RPMB) protocol, while designed to prevent unauthorized modifications through and replay protection mechanisms, exhibits several design weaknesses that can compromise and system . A primary vulnerability involves inadequate against replay attacks, where an attacker can intercept and resend previous messages to manipulate the state between the host and storage device. This flaw, identified in 2020 by researchers Rotem Sela and Brian Varner, affects the protocol as specified in standards for eMMC, UFS, and NVMe storage devices, enabling state confusion in trusted execution environments (TEEs). Assigned CVE-2020-13799, the issue allows replay of stale write failure responses or commands, potentially leading to undetected data overwrites or failures. In one attack scenario, an adversary intercepts an authenticated write request, alters it to induce a MAC verification failure, and later replays the original valid request; the host remains unaware of the successful update, believing the operation failed. In another, the attacker disrupts (e.g., via power loss) after sending a write, then replays an earlier request with modified data, causing to accept incorrect state information. These exploits can facilitate software downgrades to vulnerable versions, undermine secure boot by faking update status, or corrupt non-journaled secure data in TEEs, with impacts spanning devices from vendors including , , and . The documented this as VU#231329, emphasizing how the protocol's reliance on counters and nonces fails to fully ensure request freshness in host-side implementations. The protocol's key programming process lacks , as the 256-bit authentication key—used for all operations—is provisioned once during in a secure environment and remains static throughout the device's lifecycle. If the key is compromised (e.g., via physical attacks or supply-chain tampering), an attacker gains indefinite access to authenticate reads and writes, decrypting past sessions and impersonating the host for future operations without needing ephemeral keys or session-specific protections. Key compromise enables unauthorized reads of protected data, amplifying risks in scenarios like secure boot where RPMB stores critical state. This major analysis and disclosure originated from in 2020, prompting coordinated vendor responses. The vulnerability's broad applicability across storage standards underscores the need for robust host-side error handling to maintain RPMB's role in secure applications.

Mitigation Strategies

To mitigate risks associated with the Replay Protected Memory Block (RPMB) , updates to standards have introduced enhancements for and key management. The JEDEC UFS 4.0 specification incorporates Advanced RPMB, which optimizes programming flows for greater efficiency compared to prior versions, reduces the number of commands required through the use of an extended header segment (EHS) field, and supports faster read/write access to data such as user keys. Additionally, Advanced RPMB includes features like RPMB Purge, enabling quick of discarded data to prevent unauthorized . In January 2025, released UFS 4.1, offering improved performance while maintaining compatibility with UFS 4.0 features including Advanced RPMB. Best practices for RPMB implementation emphasize robust initialization and operational procedures to counter replay attacks. Following potential state loss, such as power failure, an initialization sequence should be executed: read the current write value (Ct), then perform repeated authenticated writes to a dummy block until the counter reaches Ct+1, thereby invalidating any uncommitted writes held by an attacker and restoring register consistency. If no dummy block is available, an existing block can be reused by reading its data, rewriting it, and verifying the update. For ongoing reads and writes, operations must be sequential and limited to one at a time per RPMB , with each write followed by verification of the counter increment to confirm success and prevent replay of outdated . Hosts should generate nonces using hardware random number generators (RNGs) to ensure unpredictability in challenges, while key rotation can be implemented over secure channels to limit exposure of long-lived keys. Monitoring write values for unexpected anomalies, such as stalled increments, provides an additional layer for detecting potential tampering. Vendor-specific mitigations further strengthen RPMB deployments. For instance, Arm's CryptoCell-703 hardware accelerator derives RPMB authentication keys per boot using a deterministic (KDF) based on the device's unique secret key, avoiding reliance on fixed or provisioned keys that could be compromised. NXP's RT series enables RPMB access via the uSDHC controller with firmware support for secure read/write operations, including protections against unauthorized replay through monotonic counter enforcement. Implementations in trusted execution environments (), such as OP-TEE, enforce RPMB access controls by integrating it as a backend for secure storage, ensuring that only authenticated TEE processes can interact with the block. Looking to future directions, ongoing advancements in storage protocols aim to incorporate more resilient . While current RPMB relies on symmetric mechanisms like HMAC-SHA-256, explorations into for key derivation and authentication are underway in evolving standards to withstand quantum threats, though full integration remains in development.

References

  1. [1]
    [PDF] Introducing Replay Protected Memory Block (RPMB) within the e ...
    Protects Against Replay Attacks / Pre-Programmable to Address a Variety of Preventative Smartphone Use Cases.
  2. [2]
    RPMB - SD Association
    RPMB is introduced to store data in an authenticated memory area for the purpose of protecting data from a replay attack or avoiding unexpected data updates.
  3. [3]
    [PDF] Replay Protected Memory Block (RPMB) - Protocol Vulnerabilities
    The Replay Protected Memory Block (RPMB) protocol, initially defined in JESD84-A441, is a security protocol that provides the ability for a host to store ...
  4. [4]
    Secure Storage in Jetson Linux - NVIDIA Docs
    Jun 11, 2024 · RPMB: This is a Secure Storage solution, which uses the Replay Protected Memory Block (RPMB) partition of an eMMC device. The current Jetson ...
  5. [5]
    VU#231329 - Replay Protected Memory Block (RPMB) protocol ...
    Nov 10, 2020 · The RPMB protocol "...enables a device to store data in a small, specific area that is authenticated and protected against replay attack." RPMB ...
  6. [6]
    None
    ### Summary of RPMB from http://www.skyhighmemory.com/download/applicationNotes/Understanding%20and%20Using%20eMMC%20RPMB.pdf
  7. [7]
    eMMC & UFS About eMMC (1) - Jaehyek Choi
    May 22, 2014 · Size as multiple of 128KB (max. 32MB). Boot Area Partition 2, SLC Mode, 128KB, Size as multiple of 128KB (max. 32MB). RPMB Area Partition, SLC ...
  8. [8]
    [PDF] i.MX RT eMMC RPMB Enablement - NXP Semiconductors
    Jun 15, 2023 · The Replay Protected Memory Block (RPMB) partition serves as a critical component within eMMC storage systems, providing a secure area for ...
  9. [9]
    [PDF] JESD84-A441 - JEDEC
    Changes from version 4.4 to 4.41 ... The manufacturing date is composed of two hexadecimal digits, four bits each, representing a two digits date code m/y ...Missing: 2013 | Show results with:2013
  10. [10]
    JEDEC Announces Publication of e-MMC™ Standard Update v4.41
    JESD84-A441 is available for free download at www.jedec.org. Designed for a wide range of applications in consumer electronics, navigational systems and other ...Missing: eMMC 4.41 2013
  11. [11]
  12. [12]
    [PDF] Boot, TCG and RPMB – The New Security Features Introduced in ...
    RPMB – Replay Protected Memory Block offers a secured hidden memory accessible only through a secured authentication process and provides a secured write- ...Missing: 2014 | Show results with:2014
  13. [13]
    JEDEC Announces Publication of e.MMC Standard Update v5.0
    JEDEC Announces Publication of e.MMC Standard Update v5.0 ... ARLINGTON, Va., USA – OCTOBER 1, 2013 – JEDEC Solid State Technology Association, ...
  14. [14]
    JEDEC Announces Publication of e.MMC Standard Update v5.1
    MMC Standard Update v5. 1. ARLINGTON, Va., USA – FEBRUARY 24, 2015 – JEDEC Solid State Technology Association, the global leader in standards development for ...
  15. [15]
    [PDF] Universal Flash Storage (UFS) JESD220 - JEDEC
    A UFS memory area can be partitioned in different parts each one with independent logical address ranges and singularly accessible. Moreover each partition ...
  16. [16]
    [PDF] 4GB eMMC Datasheet
    RPMB partition size is calculated as (128KB * RPMB_SIZE_MULT). In RPMB partition, CMD 0, 6, 8, 12, 13, 15, 18, 23, 25 are admitted. Access Size of RPMB ...
  17. [17]
    [PDF] Understanding and Using eMMC Replay Protected Memory Block ...
    Sep 8, 2025 · The Replay Protected Memory Block (RPMB) feature of eMMC devices provides a secure partition with replay protection, integrity verification, ...
  18. [18]
    [PDF] e.MMC Security Methods - Digital Assets
    RPMB enables an e.MMC device to store data in a specific area (typically 4MB in size), where it is authen- ticated and protected against replay attack.Missing: capacity | Show results with:capacity
  19. [19]
    Maximizing UFS 4.0 Authentication with Advanced RPMB - Synopsys
    Oct 15, 2022 · In this blog, we will discuss how the authentication programming flow of Advanced RPMB is more efficient than prior versions.
  20. [20]
    [PDF] MMC) Electrical Standard (5.1) JESD84-B51 - JEDEC
    Byte order of the RPMB data frame is MSB first, e.g., Write Counter MSB [11] is storing the upmost byte of the counter value. Page 99. JEDEC Standard No. 84 ...
  21. [21]
    [PDF] Enabling Storage for Mobile, Automotive, and Other Applications
    Sep 19, 2018 · UFS 3.0 introduces the possibility to split the RPMB in up to 4 regions, each with its own key. Different applications may share different ...
  22. [22]
    [PDF] Samsung eMMC
    Samsung has a wide range of eMMC solutions based on performance requirements. Samsung embedded multimedia card (eMMC) addresses these needs with advanced ...
  23. [23]
    KIOXIA Introduces Next-Generation UFS Ver. 4.0 Devices
    May 30, 2023 · Enhances security: By utilizing Advanced RPMB (Replay Protected Memory Block) for faster read and write access to security data, such as user ...
  24. [24]
    Replay Attack Vulnerabilities in RPMB Protocol Applications
    Nov 10, 2020 · Western Digital has identified a security vulnerability in the Replay Protected Memory Block (RPMB) protocol as specified in multiple standards for storage ...Missing: GET_DEV_HMAC SET_WR GET_RES GET_WCNT<|control11|><|separator|>
  25. [25]
    Replay Protected Memory Block (RPMB) subsystem - LWN.net
    Aug 12, 2024 · The RPMB subsystem aims at providing access to RPMB partitions to other kernel drivers, in particular the OP-TEE driver.
  26. [26]
    Add OP-TEE based RPMB driver for UFS devices - LWN.net
    Sep 15, 2025 · Background: Previously, OP-TEE required a userspace supplicant to access RPMB partitions, which created complex dependencies and reliability ...
  27. [27]
    Replay Protected Memory Block "RPMB" Subsystem ... - Phoronix
    Sep 16, 2024 · RPMB has uses for eMMC, NVMe, and other storage. With Linux 6.12 the RPMB subsystem is added to drivers/misc/ and hooks in RPMB support in the ...
  28. [28]
    Android Verified Boot 2.0 - The U-Boot Documentation
    If AVB is configured to use OP-TEE (see Enable on your board) rollback indexes and device lock state are stored in RPMB. The RPMB partition is managed by OP-TEE ...Missing: integration | Show results with:integration
  29. [29]
    Secure storage - OP-TEE Documentation - Read the Docs
    The RPMB partition in eMMC can not be accessed until a key has been programmed on the device: this is a one time action for the lifetime of the device. Once the ...
  30. [30]
    Implement dm-verity - Android Open Source Project
    Mar 7, 2025 · The dm-verity feature lets you look at a block device, the underlying storage layer of the file system, and determine if it matches its expected configuration.Missing: RPMB | Show results with:RPMB
  31. [31]
    Linaro enables OP-TEE RPMB access directly from the Linux Kernel
    Oct 22, 2024 · Linaro moved supplicant functionality to the Linux kernel, enabling direct RPMB access, removing the need for a userspace supplicant.
  32. [32]
    [Omni 5.1][Nexus 5] Homemade fails to boot; QSEECOM, librpmb.so
    Sep 30, 2015 · Looking at the homemade version, "find / -name librpmb.so" returns nothing. For the nightly version, it is found at /system/lib/librpmb.so. I ...
  33. [33]
    [PATCH v6 0/9] Replay Protected Memory Block (RPMB) subsystem
    The RPMB partition cannot be accessed via standard block layer, but by a set of specific commands: WRITE, READ, GET_WRITE_COUNTER, and PROGRAM_KEY.Missing: QUERY | Show results with:QUERY
  34. [34]
    STORAGE_RPMB_DESCRIPTOR - Win32 apps | Microsoft Learn
    Aug 9, 2022 · The STORAGE_RPMB_DESCRIPTOR structure (winioctl.h) describes whether the device contains an RPMB and the max payload size the RPMB supports.Missing: layout | Show results with:layout
  35. [35]
    [PDF] HKG18-124 Android Verified Boot 2.0 and U-boot - Linaro
    Android Verified Boot 2.0: highlights. ○ Verified Boot establishes a chain of trust from the bootloader to system image. ○ Integrity checking:.Missing: history | Show results with:history<|control11|><|separator|>
  36. [36]
    Qualcomm Linux Boot Guide
    Oct 15, 2025 · Store all UEFI non-volatile variables in the Rollback Protection Memory Block (RPMB) partition, which must be in a Provisioned state.<|control11|><|separator|>
  37. [37]
    Exploiting RPMB authentication in a closed source TEE ...
    Embedded Multimedia Cards (eMMCs) provide a protected memory area called the Replay Protected Memory Block (RPMB). eMMCs are commonly used as storage media ...
  38. [38]
    Qualcomm Linux Security Guide
    Oct 14, 2024 · The replay protected memory block (RPMB) is a separate partition in the universal flash storage (UFS) device designed for secure data storage.
  39. [39]
    CVE-2020-13799 - NVD
    Western Digital has identified a security vulnerability in the Replay Protected Memory Block (RPMB) protocol as specified in multiple standards for storage ...
  40. [40]
    Western Digital Finds Replay Attack Protection Flaw Affecting ...
    Nov 11, 2020 · A vulnerability found by Western Digital in the RPMB replay attack protection also impacts products from Google, Intel and MediaTek.
  41. [41]
  42. [42]
    JEDEC UFS 4.0 for Highest Flash Performance - Cadence Blogs
    Aug 11, 2022 · Data security is enhanced with Advanced RPMB. Advance RPMB also uses the EHS field of the header, which reduces the number of commands ...
  43. [43]
    CryptoCell-703 Product Support - Arm Developer
    Per-Boot RPMB key derivation by a deterministic KDF (based on the Device unique Secret Key). FIPS 140-2. A FIPS 140-2 compliant mode of operation (for TEE and ...