Segger emSECURE

emSecure è un pacchetto software di Segger che consente la creazione e la verifica di firme digitali.   Scopo del pacchetto è impedire la clonazione o la manomissione del firmware programmato nella memoria del microcontrollore.Una caratteristica importante di questo prodotto è che rende impossibile la clonazione di un dispositivo embedded semplicemente copiandone l’hardware e il firmware.

Può anche essere utilizzato per rendere sicuri gli aggiornamenti firmware, le licenze, i numeri seriali o qualsiasi altro dato sensibile, caratteristiche essenziali  in ambito bancario/finanziario, per sistemi utilizzati nelle elezioni, ecc. Essendo gli algoritmi basati sulla crittografia asimmetrica (RSA e ECDSA), non può essere violato tramite reverse engineering. Il codice sorgente è stato concepito appositamente  per garantire la massima portabilità verso qualsiasi sistema embedded con uso di risorse limitate.  Tuttavia, l’uso può essere esteso anche ad altri ambiti. Le licenze offerte sono le stesse cui sono soggetti gli altri pacchetti della Segger, evitando codice estraneo o sotto licenze GPL o esotiche.

Integrazione

L’integrazione di emSecure in un progetto già esistente richiede in genere meno di mezza giornata.

Perché è una soluzione migliore rispetto all’uso di CRC oppure di funzioni di hash?

CRC ed Hash sono in generale utili per garantire che il caricamento di un firmware nella memoria del microcontrollore avvenga in modo corretto. Possono anche essere utilizzati per garantire che l’immagine caricata in memoria non sia modificata nel corso del tempo. Tuttavia, non danno alcuna garanzia di sicurezza perché è facile alterare il codice e ricalcolare CRC o hash. La firma digitale, invece, non può essere creata a partire dall’analisi del codice di verifica nel firmware. La firma digitale può essere generata solamente a partire da una chiave privata, segreta, che non è contenuta nel firmware. In aggiunta a questo, la firma digitale assicura l’autenticità del firmware provandone l’identità.

Contenuto del pacchetto

Il pacchetto contiene tutto ciò che serve per creare e gestire una firma digitale: una utility per creare le chiavi pubbliche e private, il codice per calcolare hash, per creare e verificare le firme digitali, ecc.
Il pacchetto è conforme alle specifiche FIPS emesse dal NIST. Le funzioni di verifica usando i vettori di test di FIPS 186-4 consentono di testare l’implementazione e il codice prodotto dal compilatore.
emSecure contiene applicazioni di esempio.