Spela om skyddat minnesblock

Ett Replay Protected Memory Block ( RPMB ) tillhandahålls som ett sätt för ett system att lagra data till det specifika minnesområdet på ett autentiserat och replay-skyddat sätt, och kan endast läsas och skrivas via framgångsrikt autentiserade läs- och skrivåtkomster. Data kan skrivas över av värden, men kan aldrig raderas.

Användning i datorsystem

Eftersom RPMB är manipuleringssäkert kan det användas som ett lagringsmedium för en mängd olika datakritiska ändamål på ett inbyggt system :

  • En plats för att skriva "permanent" och/eller "förprogrammerad" data på ett system utan någon programmerbar ROM- lagring, eller om datan är för stor för det.
  • Tillsammans med kryptering och hårdvarusäkringar kan den också användas för att bygga en pålitlig lagringslösning för en pålitlig exekveringsmiljö
  • Återställningsskydd för versionsdata (nycklar, krypterade filer, programvara, etc).
  • Lagring för en betrodd applikation

Vissa operativsystem som Linux kan tillhandahålla en generisk drivrutin för åtkomst till en RPMB-enhet ansluten till en eMMC . Men i andra fall kontrolleras åtkomsten till RPMB genom en proprietär drivrutin; detta kan kräva användning av en betrodd applikation istället för en vanlig applikation för att komma åt data.

Logisk enhetsadressering

UFS - specifikationen tilldelar en "välkänd LUN"-identifierare på 44h för RPMB-enheten. Detta kan representeras som:

  • UFS LUN: WLUN_ID (80h) | UNIT_NUMBER_ID = C4h
  • 64-bitars SCSI LUN: WLUN_ID (C1h) | UNIT_NUMBER_ID = C1h 44h 00h 00h 00h 00h 00h 00h

Minneslayout

En RPMB-enhet tillhandahåller följande minnessektioner:

Sektion Tillgång Storlek
Autentiseringsnyckel Skrivbara 32 byte
Skriv Counter Skrivskyddad 4 byte (32 bitar)
Dataområde Läsa skriva Multipel på 128 kbyte*

* Detta är det minimum som definieras av specifikationen, den faktiska blockstorleken beror på flash-leverantörens implementering.