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:
- Certificato radice TLS dalla CA (inclusa la sua chiave pubblica) per autenticare il server
- Certificato foglia cliente (inclusa la sua chiave pubblica)
- 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?
- 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? - 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? - 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