Forse sto solo chiedendo i termini di ricerca corretti.
mod_nss e l'idea NSS / idea di progettazione è che se il dispositivo di memorizzazione chiavi (in questo caso, un HSM) è in grado di eseguire un handshake DH / SSL, verrà utilizzato il dispositivo (la chiave non viene estratta dal HSM, e quindi utilizzato sull'host per l'handshake, piuttosto viene lasciato nell'HSM e l'HSM viene utilizzato per eseguire l'handshake). L'idea è che se sei paranoico (o regolato) abbastanza da dover usare un HSM, non vuoi che le tue chiavi vengano estratte nell'host, in quanto ciò le espone al compromesso.
L'handshake gestito da HSM è troppo lento
Il problema è la durata della stretta di mano. Anche senza un PCIe, HSM con collegamento diretto, è possibile misurare il tempo necessario per un singolo handshake TLS. Se all'improvviso stai cercando di utilizzare un HSM per le strette di mano, sei limitato dal collo di bottiglia PCIe e da tutti i costi di gestione coinvolti: gli HSM sono generalmente progettati per la sicurezza, non per prestazioni elevate.
L'HSM diventa un collo di bottiglia per servizi che supportano connessioni "sufficienti" al secondo, "sufficiente" definito come "sufficiente per sommergere l'HSM".
Per bilanciare la sicurezza dell'HSM e le prestazioni dei tremolii di mano TLS basati su host (che possono trarre vantaggio da più core, ecc.), è necessario memorizzare la chiave su HSM, ma utilizzare la chiave sul host.
La visione del mondo di NSS impedisce questo.
Domanda: posso estrarre la chiave privata?
È possibile aprire OpenSSL o un'altra suite di crittografia, che può essere collegata a un HSM, estrarre la chiave dall'HSM e memorizzarla nella cache per l'utilizzo sull'host?
Piano B
Il piano B è quello di ottenere il motore OpenSS + OpenP + OpenP11 (OpenSSL) o il codice sorgente NSS e modificarlo per estrarre e mettere in cache la chiave privata alla prima richiesta, quindi richiamare semplicemente in openssl per fare l'effettivo handshake TLS di andare all'HSM per ogni nuova connessione, permettendoci di sfruttare l'ambiente corrente (funzionante) per le connessioni https e ssh, garantendo al contempo la sicurezza intorno alle chiavi memorizzate. Ma preferirei sfruttare il codice esistente.
I motori di ricerca mi portano semplicemente alle stesse pagine, alcune rilevanti (ad esempio la filosofia di progettazione NSS), altre no. Se conosci un buon insieme di termini di ricerca che mi portano a una pagina che conosci :) sarebbe di grande aiuto.
Grazie per il tuo tempo.