He estado cavando durante los últimos días en el almacenamiento de datos sensibles. Si almaceno estos datos en una base de datos, creo que la práctica general aceptada es almacenar datos confidenciales encriptados, por diversas razones fuera del alcance de esta pregunta.
Cifrar datos, sin embargo, significa que tengo que administrar los 'secretos' de estos datos. He visto 2 rutas principales para esto (en el mundo java), KeyStores o HSMs. Mi primera pregunta es, ¿hay otras alternativas válidas (en el mundo java)?
Hay varios formatos de almacén de claves que puedo usar en java, por nombrar algunos:
- jks
- jceks
- pkcs12
- bks
- uber
He visto muy poca información sobre la seguridad de un almacén de claves. He estado pensando que, si tuviera acceso a un almacén de claves, y cuando miro la API de Java, ya que todos los almacenes de claves están protegidos por una contraseña, simplemente podría forzar el almacenamiento de claves, por muy segura que esté. Entonces, la segunda pregunta es: ¿es una práctica generalmente aceptada que, dado que los almacenes de claves están en sistemas diferentes a los datos encriptados y están protegidos por contraseña, esto es "lo suficientemente seguro" para las condiciones de la vida real? ¿Qué pasa con el almacenamiento de la contraseña en el almacén de claves? ¿Hay prácticas aceptadas allí? Por ejemplo, ¿almacenarlo en otro sistema? ¿Haber ingresado manualmente en el inicio de la aplicación? ¿Tenerlo en un archivo protegido por os donde solo la aplicación tiene acceso de lectura a él?
La siguiente pregunta es con respecto a los HSM. Ya que puedo forzar los almacenes de claves de fuerza bruta, ¿qué me impide hacer exactamente lo mismo con un HSM? ¿Hora? ¿Tengo que iniciar sesión en el sistema remoto ya que no hay ningún archivo para copiar y trabajar de forma remota?
La pregunta final es: ¿alguien tiene alguna idea de lo que se considera lo suficientemente seguro en términos de gestión secreta? Supongo que varía según el tipo de información cifrada con el secreto. Por lo que he leído en otros lugares, los almacenes de claves parecen ser lo suficientemente buenos para la mayoría de los escenarios típicos y los HSM son necesarios en escenarios muy específicos, para CA, gobiernos y similares.
Cualquier información apreciada.