Ho alcune chiavi di crittografia simmetriche (DEK) memorizzate nel database insieme ai dati crittografati. I DEK sono crittografati dalla chiave pubblica dell'HSM. Il server delle applicazioni utilizza HSM con l'interfaccia PKCS11. La chiave e la decrittografia dei dati vengono eseguite all'interno dell'HSM. I tasti di testo semplice non lasciano mai la memoria HSM.
Eppure sono preoccupato per la sicurezza. Se un utente malintenzionato riesce a penetrare nel server delle applicazioni, può semplicemente recuperare i dati crittografati dal database e interrogare l'HSM.
Mi piacerebbe avere un componente "esterno" coinvolto nella decodifica, collegato all'autenticazione dell'utente. Quindi anche l'attaccante riesce a dirottare il server e il database e ottiene l'accesso all'interfaccia HSM, il materiale chiave presente non è sufficiente. Il protocollo di crittografia dovrebbe contenere componenti che solo l'utente autorizzato conosce o ha, ma questa conoscenza non è memorizzata da nessuna parte e non è derivabile. C'è anche una sfida: la chiave è in realtà correlata al gruppo dell'utente, non all'identità. Ciò significa che diversi utenti dello stesso gruppo devono avere accesso alla stessa chiave.