Chiave USB per protezione software

Dalla progettazione alla produzione di una chiave USB per la protezione del software

Chiave USB per protezione software

La richiesta

Il cliente, azienda che realizza software per macchine CNC, utilizzava un dongle hardware USB commerciale per proteggere dalla copia la propria applicazione.  Quando il dongle è stato craccato, si è posta il problema di come proteggere il proprio core business.

Affidarsi nuovamente ad un produttore commerciale avrebbe significato esporsi nuovamente allo stesso rischio: infatti i modelli in commercio vengono usati tipicamente per centinaia di applicazioni, e costituiscono una superficie d'attacco molto accattivante; craccare una chiave commerciale equivale a craccare tutte le applicazioni che la usano.

La richiesta era quindi quella di progettare da zero una nuova chiave, della quale il cliente si potesse fidare ciecamente.

Vantaggi introdotti dalle nostre soluzioni

  • utilizzo di algoritmi di crittazione allo stato dell'arte per rendere sicuro il traffico su USB;
  • metodi di antitampering hardware per rendere molto difficile modificare il contenuto della chiave stessa;
  • '''Codice a bordo''': possibilità di eseguire codice vitale per il funzionamento di un'applicazione a bordo della chiave stessa, per rendere la chiave non solo uno strumento di controllo di accesso ma farla diventare parte viva dell'applicazione.

In quale modo la nostra metodologia ci ha aiutato

La dualità di Develer come fornitore sia hardware che software ci ha posto nella condizione ideale per la realizzazione di questo progetto; il reparto embedded ha progettato a tempo di record una scheda custom che fosse adatta alle caratteristiche richieste, ma anche economica da produrre in serie, mentre la passione del personale Develer per i problemi algoritmici ha permesso di valutare una serie di algoritmii di crittografia allo stato dell'arte.

In quale modo l'open source ha aiutato il progetto

In nessun campo come in quello della crittografia vale la regola che l'unico software affidabile è quello verificato e controllato dagli occhi di più esperti. L'esistenza di numerose librerie crittografiche open source è stato un aiuto indispensabile per l'implementazione degli algoritmi della chiave.