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.