Esistono HSM hardware in grado di ospitare / eseguire applicazioni personalizzate utilizzando i processori HSM all'interno del limite di sicurezza rinforzato?

16

Sembra che la maggior parte degli HSM hardware disponibili in commercio siano solo progettati per consentire agli utenti autenticati di generare, memorizzare e utilizzare chiavi crittografiche con vari algoritmi crittografici implementati nel firmware dell'HSM.

Leggendo i fogli di dati sembra che io possa usare l'API fornita per far interagire la mia applicazione (esterna) con HSM e usare i suoi muscoli crittografici, magari usando chiavi generate / memorizzate all'interno dell'HSM. Tuttavia, sembra che la memorizzazione a lungo termine dei dati / oggetti elaborati crittograficamente dall'HSM all'interno del limite HSM non sia disponibile.

Perché non ci sono HSM che consentono la memorizzazione e la gestione persistenti del codice utente e dei dati utente all'interno dello spazio di memoria protetto fisicamente dell'HSM?

Qualcuno ha esperienza con HSM e potrebbe indicarmi una soluzione hardware HSM disponibile in commercio che mi consenta almeno di memorizzare alcuni registri oltre le chiavi crittografiche?

Preferirei che la mia applicazione fosse archiviata a riposo nel limite HSM, eseguita dallo stesso processore che esegue la crittografia fornita dall'HSM e memorizzando in modo persistente alcuni registri all'interno dell'area protetta dell'HSM.

    
posta Drew Lex 27.11.2012 - 06:45
fonte

4 risposte

17

Thales nShield HSM (precedentemente nCipher) consente la programmazione generica. Questa è un'opzione piuttosto costosa; deve prima essere abilitato nell'HSM (attraverso un "file di funzionalità" che è firmato da Thales e specifico per il numero di serie di un HSM), e quindi il codice extra può essere eseguito fintanto che è firmato con una chiave nota al HSM per tale utilizzo.

Con questa opzione, otterrai un compilatore C con una libreria C ridotta e alcune API che danno accesso alle funzioni HSM. Il sistema operativo interno consente processi one (ma multi-thread) e le operazioni crittografiche vengono eseguite con le transazioni; ci sono anche transazioni per lo scambio di blob arbitrari con il mondo esterno (il PC host). Il core della CPU non è molto potente (si pensi a 60 MHz ARM o PowerPC), ma c'è una certa quantità di RAM (megabyte, persino dozzine di megabyte).

Thales / nCipher HSM non ha molte funzioni di archiviazione permanenti (ci sono alcuni kilobyte di EEPROM ma questo è tutto). In realtà, l'HSM memorizza solo una chiave master (a cui non è possibile accedere) e tutto, incluse le "chiavi" che sono "nell'HSM", sono scaricate, con crittografia. Puoi fare lo stesso: memorizzare i tuoi dati memorizzati sull'host, rimandati al tuo modulo interno; i dati sono crittografati con una delle chiavi (che sono virtualmente "nell'HSM") e il tuo codice nell'HSM esegue la decrittazione.

    
risposta data 27.11.2012 - 13:39
fonte
6

Il Utimaco / Sophos HSM ha un sacco di FLASH per l'archiviazione interna delle chiavi, che puoi gestire tramite (per esempio) l'interfaccia PKCS # 11.

Se desideri sviluppare algoritmi crittografici o protocolli di sicurezza personalizzati, è disponibile anche un SDK disponibile . La CPU è un po 'esotica (Texas Instruments DSP), ma è completamente programmabile in C e viene fornita con un simulatore. Il caricamento del codice è semplice e molto ben pensato, con un'autenticazione corretta e possibilmente la crittografia del codice.

Punto bonus : alcuni modelli hanno un supporto parziale per FIPS 140-2 Livello 4 (ovvero, azzeramento attivo dei segreti della radice in caso di attacco fisico), se questo tipo di cose fa galleggiare la tua barca . Naturalmente, tieni presente che se sviluppi il tuo firmware, la certificazione FIPS non è più valida.

    
risposta data 28.11.2012 - 00:00
fonte
2

SafeNet HSM consentono il caricamento di un codice personalizzato in il modulo. A seconda dei requisiti, sono disponibili diverse opzioni.

    
risposta data 27.05.2013 - 22:53
fonte
2

La maggior parte degli HSM consente l'uso di codice personalizzato, ma in generale devi chiedere al fornitore specifico, non è qualcosa che pubblicizzano. Spesso rompe la certificazione. D'altra parte, l'esecuzione di applicazioni che possono ad es. convalidare l'input può rendere un'esperienza molto più sicura. Generalmente queste applicazioni sono sandbox e devono essere firmate. Naturalmente, se sei un cliente abbastanza grande è anche possibile parlare di personalizzazione da parte del venditore stesso.

Dovresti aspettarti API e architetture bizzarre specifiche del fornitore.

C'era un HSM basato su Java di SafeNet che mirava specificamente allo sviluppo di applicazioni firmate per l'esecuzione su HSM, ma ho capito che era stato interrotto (era abbastanza costoso che non l'avevo nemmeno visto). / p>     

risposta data 21.08.2015 - 11:11
fonte

Leggi altre domande sui tag