|  |  | 

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

  •  |  | 

    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 emVNC

    emVNC-Server (Virtual Network Computing) consente di visualizzare il display e gestire un sistema embedded tramite USB (utilizzando emUSB-Device di SEGGER), TCP/IP o qualsiasi altro livello di trasporto di tipo socket. emVNC è stato progettato specificamente per i sistemi embedded. Fornisce sia il modulo server per il sistema target, sia l’applicazione client per i computer. L’applicazione…

  •  |  | 

    Segger emPower OS

    emPower OS di SEGGER è un sistema operativo completo che fornisce l’ambiente ideale per qualsiasi sviluppatore impegnato nella creazione di sistemi embedded o dispositivi IoT. Può essere adattato per girare in sistemi a microcontrollore singolo con risorse limitate (senza memoria esterna) o scalato per ottenere le massime prestazioni su processori applicativi (MPU) senza sovraccarichi inutili….

  •  | 

    SEGGER Flasher SDK

    Panoramica Flasher SDK consente agli sviluppatori di creare Flasher App che vengono eseguite direttamente sui programmatori SEGGER Flasher. Queste app gestiscono la programmazione, i test di sistema e la diagnostica per garantire flussi di lavoro efficienti e un’elevata qualità del prodotto. L’SDK permette inoltre agli utenti di aggiungere il supporto per dispositivi nuovi o non…

  •  |  | 

    Segger emModbus

    Panoramica emModbus è l’implementazione del protocollo Modbus firmata SEGGER. Fornisce ai dispositivi embedded capacità di comunicazione Modbus tramite UART (ASCII e RTU) ed Ethernet (Modbus/TCP e Modbus/UDP), consentendo loro di connettersi a una vasta gamma di apparecchiature industriali, di impiegare funzioni master e slave e di operare in modo efficiente su piccoli microcontrollori con capacità…

  •  | 

    SEGGER embOS Ultra

    Panoramica embOS-Ultra è un sistema operativo in tempo reale (RTOS) ad alte prestazioni che sfrutta l’innovativo scheduling RTOS basato sui cicli (cycle-based). Offre massime prestazioni e una precisione al singolo ciclo di CPU con latenza minima in applicazioni mission-critical e ad alto rendimento, dove il tempismo deterministico e la scalabilità sono essenziali. La tecnologia SEGGER…