|  |  | 

Segger emSecure


emSecure è una suite di firme digitali per sistemi embedded progettata per proteggere prodotti e asset vitali, offrendo una protezione totale contro l’hacking. Basata su algoritmi di crittografia asimmetrica a doppia chiave, la suite garantisce che le firme non possano essere forgiate tramite il reverse engineering del firmware. Inoltre, emSecure può rendere impossibile la creazione di cloni di un dispositivo embedded tramite il semplice mirroring di hardware e firmware. Può fare molto di più, come proteggere gli aggiornamenti firmware distribuiti ai dispositivi e autenticare licenze, numeri di serie e dati sensibili.

emSecure è un pacchetto completo che include strumenti pronti all’uso per la generazione di chiavi e firme. Il codice sorgente è stato scritto da zero per i sistemi embedded, garantendo massima portabilità, un footprint di memoria ridotto e prestazioni elevate. Non è soggetto a licenze open-source o obblighi di attribuzione: può essere integrato in qualsiasi prodotto commerciale senza l’obbligo di divulgare il codice sorgente combinato. È utilizzabile senza royalty (royalty-free) e l’integrazione in un prodotto esistente richiede meno di un giorno.

Caratteristiche principali

  • Algoritmi asimmetrici: La doppia chiave (privata e pubblica) garantisce una sicurezza totale.
  • Indipendente dall’hardware: Funziona su qualsiasi CPU senza necessità di hardware extra.
  • Applicabile a prodotti nuovi ed esistenti.
  • Pacchetto completo: Generatore di chiavi e strumenti inclusi.
  • Codice sorgente completo disponibile.
  • Strumento gratuito Sign & Verify: Per la protezione di file personali.

Gestione delle chiavi

Le firme digitali — da non confondere con le firme elettroniche — sono un sistema crittografico che utilizza chiavi pubbliche e private. Una chiave privata sicura viene utilizzata per generare la firma digitale, mentre una seconda chiave pubblica viene usata per autenticare i dati. Non è possibile ricavare la chiave privata da quella pubblica, né generare una firma valida senza la chiave privata.

Processo di verifica

L’algoritmo emVerify decripta il file della firma e verifica se il file di dati corrispondente coincide. Il processo parte dai dati da verificare e dalla firma digitale creata dal file originale. Viene generato un hash per i dati non verificati; la chiave pubblica e l’algoritmo di decriptazione vengono usati per generare l’hash originale e confrontarlo: se corrispondono, i dati sono autentici.

Operazione di firma

L’algoritmo emSign cripta i dati e li trasforma in un file di firma. L’operazione inizia utilizzando un algoritmo di hash sicuro (es. SHA1, SHA256) per generare un hash dai dati originali. Quindi, utilizzando la chiave privata insieme all’hash, viene generata la firma digitale.


Algoritmi di sicurezza

emSecure supporta l’algoritmo RSA. Basato sullo schema standard RSA-PSS, la configurazione predefinita utilizza chiavi RSA a 2048 bit e SHA1. Tuttavia, sono supportati set moderni di algoritmi di digest e chiavi RSA da 1024 fino a 8192 bit (raccomandati almeno 2048 bit).

  • emPrintKey: Esporta chiavi e firme in formato sorgente C per includerle direttamente nell’applicazione.
  • emKeyGen: Genera la coppia di chiavi partendo da un numero casuale elevato.

Casi d’uso

emSecure può essere utilizzato per due approcci di sicurezza: Anti-hacking (autenticazione del firmware) e Anti-cloning (autenticazione dell’hardware).

Anti-hacking: Firma del firmware e verifica del bootloader

Per garantire che solo immagini firmware autorizzate vengano eseguite, l’immagine viene firmata con la chiave privata durante la produzione. La firma viene memorizzata nel prodotto insieme al firmware. La chiave pubblica viene inserita nel bootloader, che verifica la firma a ogni avvio o aggiornamento. Se non corrispondono, il bootloader impedisce l’esecuzione o cancella il firmware non autorizzato.

Anti-cloning: Firma dell’hardware e verifica del firmware

Per impedire la riproduzione non autorizzata dell’hardware, emSecure firma ogni unità genuina. Durante la produzione, vengono letti dati univoci e fissi del chip (es. l’ID univoco del microcontrollore). Questi dati vengono firmati e la firma viene scritta in un’area OTP (One-Time Programmable). Il firmware include la chiave pubblica: all’avvio legge l’ID univoco e lo verifica con la firma. Se il firmware viene copiato su un hardware contraffatto con un ID diverso, la firma fallirà e il software si rifiuterà di girare.


Progetto di esempio

emSecure include un progetto per SEGGER Embedded Studio che dimostra la verifica di un messaggio. L’applicazione è semplice: include un file di testo e la sua firma convertiti in buffer C. Se il messaggio o la firma vengono modificati anche solo di un bit, la funzione SECURE_Verify restituirà un errore.

void main(void) {
  int Status;
  // ...
  printf("Verifica del messaggio in corso...");
  Status = SECURE_Verify(&PublicKey, 0, 0, message_file, sizeof(message_file), _S, sizeof(_S));
  if (Status > 0) {
    printf(" OK\nProva a modificare il messaggio per vedere cosa succede.\n");
  } else {
    printf("FALLITO! La firma non corrisponde al messaggio.\n");
  }
}

Articoli simili

  •  | 

    Flasher Hub-4

    Versione compatta del Flasher Hub-12, il Flasher Hub-4 controlla più unità Flasher Compact per consentire la programmazione simultanea. È possibile collegare fino a 24 Flasher utilizzando uno o più moduli SEGGER USB Hub-7 per creare un potente programmatore “gang” (multiplo) per una programmazione parallela efficiente ad alto volume. Il Flasher Hub-4 di SEGGER gestisce diverse…

  •  |  | 

    Segger emCrypt

    Panoramica Progettato pensando sia all’efficienza che alla sicurezza, emCrypt funge da toolkit di crittografia affidabile, offrendo tutti i componenti chiave necessari per i protocolli sicuri odierni. In un mondo pieno di dispositivi connessi, mantenere i dati al sicuro è fondamentale. Con emCrypt, gli utenti possono confidare nella protezione dei propri dispositivi embedded contro le potenziali…

  •  |  | 

    Segger emFTP

    FTP significa File Transfer Protocol (Protocollo di Trasferimento File). È il meccanismo di base per spostare file tra macchine su reti basate su TCP/IP, come Internet. L’FTP è un protocollo client/server, il che significa che una macchina (il client) avvia il trasferimento contattando un’altra macchina (il server) ed effettuando delle richieste. Il server deve essere…

  •  |  |  | 

    Segger emUSB Host

    Panoramica Il software emUSB-Host consente alle periferiche USB di funzionare con i dispositivi embedded. Fornisce funzionalità complete di host USB, inclusi il supporto per hub esterni e driver di classe (opzionali). Il software è conforme alle specifiche standard stabilite dall’USB Implementors Forum e supporta tutte le modalità di trasferimento (control, bulk, interrupt e isochronous) a…

  •  |  | 

    Segger emRun

    Panoramica La maggior parte delle toolchain che utilizzano GCC o LLVM si appoggia a newlib, newlib-nano o glibc. Sfortunatamente, queste librerie presentano svantaggi significativi rispetto alle librerie di runtime professionali per sistemi embedded. È qui che entra in gioco emRun. Può essere utilizzato con GCC, LLVM e altre toolchain per fornire una libreria di runtime…

  •  |  | 

    Segger SystemView

    Panoramica SystemView è uno strumento di testing embedded progettato per analizzare e profilare il comportamento dei sistemi real-time. Offre approfondimenti dettagliati sul comportamento a runtime, superando le capacità dei debugger tradizionali. Ideale per sistemi complessi con thread multipli e interrupt, SystemView aiuta gli sviluppatori di software embedded a garantire che i propri sistemi funzionino come…