{
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-17",
  "slug": "rpmb",
  "term": "RPMB (Replay Protected Memory Block)",
  "aliases": [
    "Replay Protected Memory Block"
  ],
  "definition": "RPMB is a dedicated storage area and authenticated access mechanism in eMMC and UFS that uses freshness checks to resist unauthorized modification and replay.",
  "note": "An authenticated write incorporates a write counter; once an accepted write advances that counter, an old authenticated write cannot simply be reused as a current one. This protects a protocol operation, not every copy of an application's data. [rpmb-brief]\n\nRPMB authentication is not encryption. OP-TEE uses distinct authentication and storage-encryption keys, while mmc-utils permits reading RPMB blocks without supplying the optional verification key. Receiving bytes without checking authenticity is not a trusted read. [optee] [mmc-utils]\n\nThe eMMC authentication key is programmed once for the device lifetime, making secure provisioning and platform integration important. [optee] Hesela's architectural inference: rollback policy still needs trusted software, and replay resistance does not provide a backup if the device fails. [analysis]\n\nThe fTPM paper distinguishes nonce-bound authenticated reads from counter-bound writes; it uses a separate shadow-block commit mechanism for multi-write atomicity. Replay protection alone is not a transaction protocol. [ftpm]",
  "related": [
    "emmc",
    "ufs",
    "replay-attack",
    "rollback-protection",
    "authenticated-encryption"
  ],
  "citations": [
    {
      "id": "rpmb-brief",
      "title": "KIOXIA: Introducing Replay Protected Memory Block within the e-MMC and UFS Specifications, November 2022, Rev. 1.1",
      "url": "https://americas.kioxia.com/content/dam/kioxia/shared/business/memory/mlc-nand/asset/productbrief/KIOXIA_e-MMC_RPMB_Technical_Brief.pdf",
      "accessed": "2026-10-17"
    },
    {
      "id": "optee",
      "title": "OP-TEE documentation: Secure storage, RPMB device access and security considerations",
      "url": "https://optee.readthedocs.io/en/latest/architecture/secure_storage.html",
      "accessed": "2026-10-17"
    },
    {
      "id": "mmc-utils",
      "title": "Linux mmc-utils: RPMB read-block help, pinned commit c6692d5",
      "url": "https://kernel.googlesource.com/pub/scm/utils/mmc/mmc-utils/+/c6692d5f9bf1ab6fbf5694a0b61477621cc4d016/mmc.c",
      "accessed": "2026-10-17"
    },
    {
      "id": "ftpm",
      "title": "Raj et al.: fTPM: A Software-Only Implementation of a TPM Chip, USENIX Security 2016, sections 6.1.1 and 9.1",
      "url": "https://www.usenix.org/system/files/conference/usenixsecurity16/sec16_paper_raj.pdf",
      "accessed": "2026-10-17"
    },
    {
      "id": "analysis",
      "title": "Hesela: eMMC, UFS and RPMB: interface, boot and security boundaries",
      "url": "https://hesela.com/analyses/emmc-ufs-rpmb-boundaries/",
      "accessed": "2026-10-17"
    }
  ]
}
