Come accedere a Replay Protected Memory Block (RPMB) in eMMC?

3

RPMB è una partizione speciale in eMMC 4.5. Ricerche su Internet suggeriscono che è usato per salvare le chiavi ed è l'unica partizione speciale che risponde a comandi come READ, WRITE. ecc. Qualcuno può spiegarmi come utilizzare RPMB e come può effettivamente mitigare gli attacchi di replay?

    
posta Satya 27.07.2017 - 19:13
fonte

2 risposte

5

RPMB può essere usato usando mmc-utils .

Può resistere agli attacchi di replay richiedendo una chiave per scrivere in questa regione. Il rpmb ha una chiave che può essere programmata una volta. Successivamente, l'host legge un valore contatore dal rpmb. Usa questo valore contatore e il tasto programmato per generare un MAC. Il dispositivo controlla quindi il MAC dato rispetto al MAC calcolato usando la stessa chiave, e se corrisponde, l'accesso in scrittura è garantito ( riferimento , diapositiva 4).

    
risposta data 24.01.2018 - 20:03
fonte
-1

In genere, prima di qualsiasi accesso (ad esempio, lettura o scrittura) alla partizione RPMB, è necessario programmare una chiave di autenticazione RPMB nel controller RPMB nei dispositivi eMMC / UFS o NVMe.

Si noti che questa chiave deve essere programmata una sola volta (almeno secondo la specifica RPMB), e nel comando / richiesta di programmazione, la chiave RPMB deve essere inviata con testo in chiaro, quindi normalmente dovrebbe essere fornita in un ambiente sicuro ( ad es. la linea di produzione di fabbrica o l'ambiente firmware attendibile sul campo dopo che eMMC / UFS / NVMe è stato sostituito con uno nuovo).

dopo la programmazione, questa chiave RPMB dovrebbe anche essere ben protetta, quindi in genere l'uso di RPMB dovrebbe venire con un TEE (ambiente di esecuzione attendibile), come OP-TEE , Google Trusty per Android o qui per la piattaforma Intel x86 . Tuttavia, tale ambiente TEE normalmente non ha il driver PRMB, ma ha la chiave RPMB e mantiene questa chiave al sicuro all'interno del TEE (o mondo sicuro) per la protezione, mentre il driver RPMB dovrebbe essere nel normale mondo non sicuro come Linux (vedi driver RPMB a monte ) di Tomas Winkler.

Quindi, prendi l'accesso alla scrittura su RPMB come esempio, TEE userà la chiave RPMB per firmare i dati RPMB e invierà dati RPMB insieme alla firma di autenticazione HMAC-SHA256 (MAC) su Linux su IPC (tra mondo sicuro TEE e non sicuro mondo Linux), il driver del kernel Linux è responsabile dell'invio di quei dati (cioè frame RPMB) insieme al dispositivo fisico RPMB per la scrittura dell'autenticazione.

Come per la protezione REPLAY, può essere raggiunto come questi per l'accesso in lettura / scrittura: Controller di memoria H / W Il contatore di scrittura monotono integrato viene utilizzato per la protezione di riproduzione sull'accesso WRITE, ogni volta che una scrittura autenticata ha esito positivo, il contatore di scrittura H / W aumenta di 1 (inizialmente è zero), quindi qualsiasi scrittura scritta l'accesso verrà rifiutato perché il contatore di scrittura non può mai diminuire. questo può garantire la freschezza dei dati, tuttavia, finché il contatore raggiunge il valore massimo (32 bit), qualsiasi accesso in scrittura verrà negato (significa che l'RPMB sarà una memoria di sola lettura);

Mentre il software Numero casuale generato (nonce) viene utilizzato per la protezione della riproduzione sull'accesso READ, poiché in accesso in lettura, il software in TEE è responsabile dell'autenticazione dei dati e della verifica della sua freschezza, non deve mai utilizzare la stessa nonce o un povero generatore di numeri casuali per generare nonce per impedire la riproduzione dei dati per l'accesso in lettura.

per ulteriori dettagli, puoi vedere il mio intervento in Linux Security Summit Europe 2018: Implementa lo storage sicuro resistente alle manomissioni Android e assicuralo nella virtualizzazione , in queste diapositive, modo, parla anche di una delle soluzioni di virtualizzazione RPMB in aggiunta a hypervisor se ti interessa.

Spero che questo aiuti.

    
risposta data 26.11.2018 - 15:02
fonte

Leggi altre domande sui tag