La base de datos Derby admite el cifrado con una clave o contraseña. Tradicionalmente, esta clave se almacena en los sistemas de archivos, ahora estoy buscando almacenar y proteger esta clave en el HSM, pero no pude averiguar cómo debería hacerlo.
-
¿El enfoque más simple parece ser simplemente poner la clave en sí en el HSM? Luego, al iniciar el servidor, la aplicación consultará el HSM para obtener la clave, la utilizará para iniciar la base de datos Derby y luego descartará la clave. Sin embargo, he leído que parece ineficaz porque la clave puede ser simplemente extraída, pero realmente no entiendo cuál es el problema de seguridad con este enfoque, ¿es este el enfoque que debería tomar?
-
La segunda forma de leer es el cifrado híbrido, pero no estoy realmente seguro de si es aplicable a mi caso. Generaré una clave simétrica, luego generaré un par de claves en el HSM. Luego usaré la clave pública del HSM para cifrar la clave simétrica y almacenarla localmente en el sistema de archivos. Al iniciar el servidor, pasaré esta clave simétrica cifrada al HSM para descifrarla utilizando la Clave Privada que no se puede extraer. ¿Hay algún mérito al usar este enfoque o su exceso para este propósito?
Por lo que yo entiendo, la mayor parte del uso de HSM gira en torno a tener diferentes remitentes (cifrado) y receptores (descifrado), de ahí el uso de KeyPairs en lugar de claves simétricas.