Crittografia in un sistema integrato

7

Dopo aver accettato una risposta alla mia domanda precedente , Sto iniziando ad avere dubbi.

Desidero aggiornare le informazioni sui prezzi nei distributori automatici inserendo una scheda SD con nuovi prezzi.

Devo crittografare il file, perché chiunque possa cambiarlo può ottenere un centesimo di drink. Le persone che riforniscono le macchine si scambiano le carte quando c'è un nuovo prezzo. Sono sul salario minimo e in genere non sono noti come hacker, ma potrebbero, suppongo, passare una scheda.

La scheda SD sarebbe dietro un involucro chiuso a chiave e chiunque aprisse potrebbe semplicemente pulire la cassa e l'ampli; probabilmente sarebbe improbabile strisciare la carta.

Il codice nelle macchine è cambiato raramente, ma ci sarà un'opzione per l'aggiornamento del firmware (tramite la stessa scheda SD), quindi suppongo che potrei aggiornare i tasti in questo modo se diventano compromessi e amp; memorizzarli nella memoria non volatile.

Ogni macchina ha un ID CPU univoco ed è anche a conoscenza del tipo di modello "bevande, caramelle, ecc." in cui tutte le macchine dello stesso tipo hanno la stessa struttura di prezzo - se questo è utile per la semina, ecc.

Domanda: qual è un buon algoritmo da utilizzare quando scrivo in Delphi su Windows e sto leggendo in C su un sistema embedded con memoria insufficiente (128kB) (il file è probabilmente dell'ordine di 512 to 1.024 byte)? Come gestire le chiavi in questo scenario? Codice hard in s / w?

Altri commenti o suggerimenti?

    
posta Mawg 07.11.2012 - 08:25
fonte

1 risposta

6

I have to encrypt the file, because anyone who can change it can get one cent drinks.

La crittografia viene utilizzata per riservatezza - per impedire a parti non autorizzate di leggere il file. Poiché il tuo obiettivo è impedire che le persone cambino il file, ciò di cui hai bisogno è una firma digitale.

Esistono due tipi di firma digitale: firme asimmetriche e firme simmetriche.

Quando si usa una firma simmetrica, il lato che controlla la firma deve avere la stessa chiave segreta usata dal firmatario. Nel tuo caso, ciò significa che la chiave segreta deve risiedere nel firmware della macchina che si trova sulla stessa scheda SD del file che stai tentando di proteggere. Non molto sicuro.

Quando si utilizza una firma asimmetrica, il lato che controlla la firma (cioè il distributore automatico) ha una chiave pubblica e non ha la chiave privata necessaria per firmare un file, il che risolve il problema precedente.

Ma è ancora banale che un aggressore si rompa. Poiché il firmware è presente sulla scheda SD, e supponiamo che l'attaccante possa modificare la scheda SD, l'utente malintenzionato può semplicemente modificare il firmware in modo che non controlli la firma.

La soluzione ideale sarebbe se l'hardware del distributore (ad esempio BIOS) confermasse una firma sul firmware prima di caricarlo. Ci sono dispositivi integrati nel mondo che fanno questo (ad es. Console di gioco, dispositivo mobile) ma i distributori automatici non sono uno di questi.

Data la mancanza di un controllo della firma del firmware, non c'è modo di ottenere una vera sicurezza per questo. Il meglio che puoi fare è offuscare il codice in modo che sia più difficile per un hacker decodificare e modificare.

Se hai buone ragioni per credere che gli attaccanti non possono modificare il firmware, tutto ciò che devi fare è firmare il file usando RSA con il padding PKCS # 1 (che è abbastanza buono per le tue esigenze). Il codice Delphi per questo può essere trovato in LockBox TurboPower ; OpenSSL ha codice C.

Detto questo, qui non sembra esserci molta minaccia. Se un operatore abbassa il prezzo per una macchina specifica, dovresti essere in grado di identificare la discrepanza per quella macchina tra la quantità di bevande che sono state immesse nella macchina e la quantità di denaro che ne hai ricavato. Questo è qualcosa che devi controllare comunque per assicurarti che gli operatori della macchina non stiano semplicemente prendendo denaro (che è chiaramente una minaccia più grave del furto di alcune bevande).

    
risposta data 07.11.2012 - 08:53
fonte

Leggi altre domande sui tag