Archiviazione di certificati e chiavi nei moduli di sicurezza hardware (Use-case TLS)

3

Sono interessato agli obiettivi di sicurezza generale per la crittografia a chiave pubblica e ai diversi elementi di esso.

Struttura del caso d'uso:
Il mio caso d'uso è un dispositivo incorporato, che utilizzerà TLS per stabilire comunicazioni sicure tra un server e un client (il dispositivo incorporato). Inoltre, TLS viene utilizzato con un handshake di mutua autenticazione, che richiede anche un certificato client. Il dispositivo incorporato contiene un modulo di sicurezza hardware (HSM) per operazioni crittografiche efficienti e archiviazione sicura.

I seguenti elementi saranno presenti nel dispositivo incorporato per abilitare la comunicazione TLS:

  1. Certificato radice TLS dalla CA (inclusa la sua chiave pubblica) per autenticare il server
  2. Certificato foglia cliente (inclusa la sua chiave pubblica)
  3. Chiave privata del certificato foglia cliente

Possiamo presumere che lo spazio di archiviazione dell'HSM sia abbastanza grande da contenere tutti gli elementi 1, 2 e 3 allo stesso tempo.

La mia domanda ora è, quali elementi dovrebbero essere memorizzati all'interno dell'HSM?

  1. Certificato root:
    Non c'è bisogno di riservatezza, poiché queste informazioni sono pubblicamente disponibili, in quanto il certificato di origine verrà installato su qualsiasi dispositivo che voglia partecipare alla PKI.
    Ma per quanto riguarda l'integrità? Immagino che ci sia un problema di sicurezza se tale root il certificato viene manomesso (o scambiato) per consentire in un secondo momento di autenticare certificati foglia non affidabili da un sito Web malintenzionato visitato. Ho il vantaggio di archiviare il certificato di root all'interno dell'HSM, o è semplicemente sufficiente a non fornire alcuna interfaccia nel software per modificare il certificato archiviato nella memoria normale del dispositivo?
  2. Certificato client:
    Anche qui non abbiamo la necessità di riservatezza a mio avviso, perché il certificato viene inviato in chiaro al server durante l'handshake TLS di mutua autenticazione. Dovremmo inserire l'intero certificato nell'HSM insieme alla sua chiave privata? Esiste uno scenario di attacco che potrebbe essere mitigato se il certificato stesso fosse memorizzato all'interno di HSM?
  3. Chiave privata del certificato client:
    Questo ne sono sicuro al 100%. La chiave privata deve entrare nell'HSM per aumentare la sicurezza.

Riformattazione di tutto in un'unica frase:

Le chiavi private dovrebbero essere archiviate in un HSM, se disponibile, ma c'è qualche vantaggio nell'archiviazione di certificati (contenenti le loro chiavi pubbliche) all'interno di un HSM?

Modifica
Nella mia comprensione l'HSM in questo caso d'uso fornisce solo un vantaggio di sicurezza per l'archiviazione delle chiavi private. Tuttavia, ho letto in molti casi sulla memorizzazione dei certificati all'interno di un HSM. Non sono sicuro, se tali affermazioni sono dovute a termini sciatti o se vi è effettivamente alcun vantaggio di archiviare un certificato all'interno di un HSM. Esempi: A , B , C

    
posta oh.dae.su 22.03.2018 - 12:04
fonte

2 risposte

2

La cosa fondamentale per capire la differenza è capire che non ti interessa direttamente le proprietà di sicurezza della chiave. Sono solo uno strumento per garantire le proprietà di sicurezza che ti interessano, che derivano dall'uso della chiave.

Se è necessario mantenere una risorsa riservata per ragioni indirette, allora c'è un vantaggio nel mantenerla in un'area ad alta sicurezza che consente solo di utilizzare la risorsa in un modo specifico. Ad esempio, supponiamo che una chiave privata sia in un HSM che consente a un computer di firmare o decodificare con questa chiave¹, ma non consente al computer di estrarre una copia della chiave. Se il computer è compromesso ma l'HSM non lo è, l'utente malintenzionato può utilizzare la chiave, ma questi usi verranno registrati nel registro HSM, in modo da avere alcune informazioni sulle conseguenze della violazione. Inoltre, se riprendi il controllo del computer, sai che l'attaccante non può più usare la chiave; questo in genere non è così utile per una chiave di firma (a meno che i log di HSM non dicano che la chiave non è stata utilizzata) ma è utile per una chiave di decodifica.

Se hai bisogno di proteggere l'integrità di un bene per ragioni indirette, è un'altra storia. Considerare nuovamente l'installazione del computer + HSM, questa volta con una chiave pubblica o un certificato nell'HSM. Dopo un compromesso di ripristino del computer, l'autore dell'attacco non è stato in grado di modificare la copia del certificato in HSM. Questo non ti aiuta, perché hai bisogno di ripristinare molti dati dal backup, inclusa la copia di quel certificato. Mentre l'attaccante ha accesso al computer, non importa che il certificato sia nell'HSM. Se l'aggressore viene infastidito da questo, modificherà semplicemente il codice sul computer per non accedere all'HSM.

Utilizzare un luogo sicuro per archiviare una copia dei dati di cui è richiesta l'integrità è importante, ma non è necessario un HSM per questo: ecco a cosa servono i backup. Se non è possibile garantire l'integrità del codice che manipola i dati, non si ottiene nulla dalla migliore protezione dell'integrità dei dati.

Quindi, nel tuo caso, dovresti sicuramente inserire la chiave privata in HSM (3). Non c'è alcun vantaggio nel mettere certificati in HSM per il normale funzionamento (1, 2), ma potrebbe aiutarti a recuperare dopo una violazione se in qualche modo sei in grado di riprendere il controllo del dispositivo. I certificati da soli non sono sufficienti, ma potrebbero far parte di una più ampia radice della fiducia che include tutto il codice necessario per avvia il dispositivo in uno stato affidabile.

¹ Non dovrebbe consentire entrambi con la stessa chiave.

    
risposta data 23.03.2018 - 01:53
fonte
0

Questa domanda è a malapena correlata alla sicurezza. Dal punto di vista della sicurezza, l'archivio di certificati pubblici in HSM non migliora la sicurezza poiché il certificato pubblico non contiene alcuna informazione sensibile e di per sé è protetto dalla firma digitale. In altre parole, se lo spazio HSM lo consente, è possibile memorizzare un certificato pubblico lì. Pensa come una memoria per il certificato.

Ricorda però che non aggiunge ulteriore sicurezza.

    
risposta data 22.03.2018 - 14:37
fonte