Sto cercando di capire lo schema di archiviazione interno utilizzato da HSM per memorizzare le chiavi private. La mia domanda è: le chiavi sono memorizzate in testo in chiaro all'interno di un HSM? Ci sono variazioni?
Ogni HSM sarà un'implementazione unica.
So che l'IBM PCIe Cryptographic Coprocessor memorizza le chiavi principali all'interno dell'HSM, che vengono utilizzate per decrittografare le chiavi mantenute crittografate in un database esterno. La versione precedente utilizzava 3DES per crittografare le chiavi; Non so se V2 usi ancora 3DES o se stia usando AES ora. La manomissione dell'HSM (o addirittura la violazione del suo involucro ambientale di temperatura e umidità) distrugge in modo sicuro le chiavi e i certificati interni, oltre a rendere fisicamente inutilizzabile l'HSM.
Gli HSM economici, come i pad PIN che si trovano in un negozio di alimentari, mantengono il loro stato chiave nella RAM con batteria tampone. Si noti che poiché i pad PIN sono fuori sui controsoffitti in cui possono essere rubati o manomessi, non sono considerati affidabili con una chiave "master" uguale per tutti i pad PIN. Invece, seguono un protocollo di generazione di chiavi chiamato Derived Unique Key Per Transaction (DUKPT). DUKPT specifica che ogni pad ha una chiave univoca iniettata in una struttura sicura prima di essere spedita nei negozi. La chiave univoca del PIN pad deriva dalla chiave master di base del sistema e dal numero seriale del pad PIN, e DUKPT implementa uno schema di generazione di "chiave futura", che ruota continuamente in avanti ad ogni utilizzo, distruggendo le vecchie chiavi. Se si tenta di violare il caso, la CPU farà rapidamente a rimescolare la RAM e quindi ad interromperla, cancellando il futuro stato della chiave.
Sono sicuro che altri HSM hanno variazioni diverse sul tema, ma si comportano tutti allo stesso modo di autoprotezione.