Protezione delle chiavi con fattore esterno

0

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.

    
posta Tuomas Toivonen 18.10.2018 - 07:34
fonte

1 risposta

0

Bene, se pensate di avere questo per utente, non vedo altro modo per memorizzare un DEK separato per ogni utente. È quindi possibile utilizzare una varietà di modi per crittografare questo DEK.

Un'idea sarebbe quella di utilizzare la password per derivare la chiave per decifrare il DEK. Ovviamente questo deve essere derivato in modo diverso dall'hash della password memorizzata nel DB, ad esempio anteponendo "key-" davanti alla password.

Un'altra opzione è quella di utilizzare qualcosa come SCRAM-256 e quindi utilizzare ad esempio Chiave-Cliente per crittografare il DEK ( la chiave del client non è memorizzata sul server in SCRAM.

Ovviamente, un'altra opzione sarebbe semplicemente conservare una chiave aggiuntiva memorizzata nel computer dell'utente, ma questo ha lo svantaggio di dover proteggere e fare il backup di questo file.

    
risposta data 18.10.2018 - 08:37
fonte