Schema di protezione del firmware

1

Modifica: Ho trovato uno schema che si adatta ai miei limiti (poca memoria, solo AES è disponibile): AES-CMAC descritto in RFC 4493 (ricorda solo di usare chiavi diverse per la crittografia e il MAC;).

Sto lavorando su un sistema limitato e incorporato che deve essere aggiornabile sul campo. Voglio proteggere il firmware da copia / reverse engineering e modifica (sarà trasferito su un semplice HTTP).

Le prime parti sono facili: io uso AES-128-CBC. Le chiavi vengono masterizzate nel bootloader. La memoria del microcontroller è bloccata.

La seconda parte è il mio problema. Il mio sistema è troppo limitato per eseguire una verifica della firma "pesante" (ad esempio RSA).

Ho un'idea di distribuire il firmware come AES (firmware + hash (firmware)). Il mio dispositivo prima decodificherà l'intera immagine, calcolerà l'hash della parte decodificata e la confronterà con l'hash originale alla fine).

So che la crittografia da sola non è autenticazione, ma non riesco a immaginare un attaccamento riuscito contro qualcosa di "dentro" AES che alla fine fornirà l'hash (crittografato) giusto.

Domande:

  1. Il mio schema è sicuro?
  2. L'hash può essere "debole" e rendere ancora sicuro l'intero schema? (ad esempio MD5? So che è "rotto", ma penso che sia ancora difficile immischiarlo all'interno di un'immagine crittografata).
posta filo 02.06.2016 - 17:35
fonte

1 risposta

1

No, non è sicuro.

Prima di tutto, stai suggerendo una MAC-then-encrypt, che è nota per essere vulnerabile agli attacchi "cifhertext prescelti" (cioè un utente malintenzionato può prendere un messaggio valido, modificarlo e osservare il risultato per ottenere informazioni sul testo in chiaro).

In secondo luogo, stai suggerendo l'uso di un hash piuttosto che un MAC o ancora meglio una firma digitale. Un hash non è progettato per verificare il mittente di informazioni, solo che le informazioni non sono state modificate da quando sono state inviate. Un MAC può verificare che il messaggio provenga dal mittente. Una firma digitale può verificare che il mittente sia chi afferma di essere. Vuoi una firma digitale.

Infine, ti stai affidando alla crittografia simmetrica, crittografia a.k.a. "chiave condivisa". Come viene determinata la chiave? Hai menzionato di non voler eseguire RSA (un esempio di crittografia asimmetrica / chiave pubblica), il che significa che probabilmente pianifichi di mantenere la chiave di crittografia sul dispositivo o di distribuirla a chi acquista / gestisce il dispositivo. Ciò significa che la chiave è rilevabile. Poiché si tratta di una chiave simmetrica, significa inoltre che una volta scoperto, la chiave può essere utilizzata per creare messaggi che sembrano validi utilizzando il tuo schema. Ci sono certamente dei moduli hardware che possono rendere MOLTO più difficile e costoso estrarre la chiave (forse anche impossibile) ma la chiave potrebbe essere rubata da te, nel qual caso avrai bisogno di un modo per cambiare la chiave e aggiornare tutti dispositivi che in precedenza utilizzavano quella chiave, se si desidera mantenere la sicurezza in tale evento.

Perché pensi esattamente che il tuo dispositivo non sia in grado di utilizzare una tecnologia standard come la crittografia a chiave pubblica? Dovresti davvero usare metodi comprovati invece di far girare il tuo.

    
risposta data 02.06.2016 - 18:42
fonte

Leggi altre domande sui tag