Protección de claves con factor externo

0

Tengo algunas claves de cifrado simétricas (DEK) almacenadas en la base de datos junto con los datos cifrados. Los DEK están encriptados por la clave pública del HSM. El servidor de aplicaciones utiliza HSM con la interfaz PKCS11. La clave y el descifrado de datos se realiza dentro del HSM. Las teclas de texto sin formato nunca salen de la memoria de HSM.

Sin embargo, estoy preocupado por la seguridad. Si un atacante logra ingresar al servidor de la aplicación, podría simplemente recuperar los datos cifrados de la base de datos y consultar el HSM.

Me gustaría tener un componente "externo" involucrado en el descifrado, vinculado a la autenticación del usuario. Así que incluso el atacante logra secuestrar el servidor y la base de datos y obtiene acceso a la interfaz de HSM, el material clave presente no es suficiente. El protocolo de cifrado debe contener un componente que solo el usuario autorizado sepa o tenga, pero este conocimiento no se almacena en ningún lugar y no es derivable. También existe un desafío: la clave está realmente relacionada con el grupo del usuario, no con la identidad. Esto significa que diferentes usuarios del mismo grupo deben tener acceso a la misma clave.

    
pregunta Tuomas Toivonen 18.10.2018 - 07:34
fuente

1 respuesta

0

Bueno, si planea tener este usuario por usuario, no veo otra manera de almacenar un DEK por separado para cada usuario. A continuación, puede utilizar una variedad de formas para cifrar este DEK.

Una idea sería utilizar la contraseña para derivar la clave para descifrar el DEK. Por supuesto, esto tiene que derivarse de una manera diferente que el hash de la contraseña almacenada en la base de datos, por ejemplo, al anteponer "key-" delante de la contraseña.

Otra opción es usar algo como SCRAM-256 y luego usar, por ejemplo, Client-Key para cifrar el DEK ( la clave del cliente no se almacena en el servidor en SCRAM).

Otra opción, por supuesto, sería mantener una clave adicional almacenada en la computadora del usuario, pero esto tiene la desventaja de que el usuario tiene que proteger y hacer una copia de seguridad de este archivo.

    
respondido por el Peter Harmann 18.10.2018 - 08:37
fuente