Come funziona la crittografia dell'FPGA?

6

So che FPGAS di Altera ti consente di crittografare il codice RTL mentre lavori con esso, ciò che non riesco a capire è il motivo per cui è veramente crittografato poiché una volta ho l'FPGA, posso prenderlo e con il lettore flash ( teoricamente) leggere il codice RTL codificato e leggere il KEY dell'FPGA e quindi ho il codice.

cosa mi manca?

    
posta 0x90 22.02.2012 - 13:50
fonte

3 risposte

5

Prima parte : gli FPGA Altera hanno alcuni modelli che consentono di memorizzare le chiavi nella memoria volatile e non-volatile.

Altera spiega che usano AES con 128 o 256 bit. La chiave privata è memorizzata nell'FPGA e la memoria esterna ha i dati crittografati con la chiave pubblica. Nel boot-up, i dati in lettura dalla memoria esterna, decifrati con la chiave privata all'interno dell'FPGA, e poi elaborati per configurare tutte le letture seguenti (pensa come un header di configurazione).

Fonte: link

Seconda parte : hanno misure anti-manomissione per impedire a qualcuno di fare esattamente ciò che ti spaventa. Vedi: link

In generale, è "facile" aprire il chip e la forza bruta estrarre ciascuna posizione di componente al suo interno, eseguendo una sorta di attacco al codice inverso. Gli FPGA sono programmabili, quindi un FPGA già programmato e vergine sembrerà lo stesso all'attacco di livello fisico. E finisci per distruggere la programmazione quando provi ad aprire il chip e ad estrarre qualcosa da esso.

E, per proteggerti dall'estrarre la chiave, non esiste alcuna funzione come * read_private_key *. Puoi scriverlo e sovrascriverlo, ma non puoi estrarlo.

    
risposta data 27.02.2012 - 14:39
fonte
2

Quello che ti manca è che gli FPGA non forniscono alcuna interfaccia per leggere la chiave, e in teoria rendono estremamente difficile l'estrazione delle chiavi, ad es. aggiungendo strati di metallo all'interno del chip o cancellando la chiave quando viene rilevata la manomissione.

C'è un ottimo documento chiamato "Attacchi di canale laterale sulla crittografia di Bitstream Meccanismo di Altera Stratix II " (Moradi, Oswald, Paar, Swierczynski) che descrive l'attacco a un bitstream crittografato di un FPGA Altera Stratix II precedente. Gli autori delineano che, sebbene rompere tale protezione avrebbe potuto essere molto difficile in teoria, è in realtà sorprendentemente facile in pratica a causa di problemi di implementazione molto ingenui come:

  • utilizzando l'ora corrente del PC come fonte primaria di casualità
  • nascondendo ingenuamente il materiale chiave diffondendolo all'interno di una matrice da 40 byte e memorizzando due bit per byte
  • lasciare le informazioni di debug nella DLL crittografica
  • utilizzando un chipter simmetrico (AES) per la derivazione della chiave anziché una funzione unidirezionale che rende banalmente reversibile la derivazione della chiave
  • accettare l'orologio di configurazione esterno che può essere reso arbitrariamente lento in modo che il numero di bit capovolti in ogni giro di decrittografia possa essere visto banalmente guardando il consumo di energia

Da allora le cose sono ovviamente migliorate, ma in generale la criptazione bitstream FPGA rimane ancora un'area sottoposta a revisione / revisione che si basa in gran parte sull'oscurità.

    
risposta data 06.11.2018 - 15:25
fonte
1

Dal bitstream alla netlist: link

Sicurezza di bitstream FPGA interrotta: link

se vuoi dedicare del tempo, molto, allora puoi decodificare gli FPGA. Utilizzando l'analisi della potenza differenziale (DPA) per recuperare la chiave di sicurezza all'accensione, leggere il flusso di bit, invertirlo nella netlist, quindi analizzarlo finché non si conosce il progetto o semplicemente clonarlo.

    
risposta data 11.08.2014 - 16:38
fonte

Leggi altre domande sui tag