Tengo una clave de cifrado que usaré para cifrar los datos o firmarlos con ellos. Pero para que sea posible garantizar la integridad de los datos, debo mantener la clave en secreto. Así que pensé en dividir la clave en muchas partes y colocarlas en diferentes ubicaciones, pero solo podía pensar en pocas.
1. Almacénelo en el mismo servidor de la aplicación
almacenaré la clave en el archivo de configuración de las aplicaciones, que se almacenará fuera del archivo público de la aplicación y se importará a la aplicación.
2. Guárdelo en la base de datos
tiene una parte de la clave dentro de la base de datos y la aplicación la buscará cuando sea necesario.
3. Almacene en un servidor de archivos diferente.
el servidor de aplicaciones realizará una llamada a otro servidor para obtener una parte de la clave. La comunicación entre estos servidores se cifrará mediante RSA.
4. Guárdelo en la RAM
parece una buena idea, pero requiere mucho mantenimiento, se debe agregar a la RAM manualmente en cada inicio.
5. utilizar AWS KMS?
este algo que acabo de descubrir hace poco, investigándolo pero parece prometedor cómo manejan las claves y sus formas de garantizar la integridad, me encantaría escuchar algunas opiniones de las personas que han usado AWS
Pero todo esto es débil, si el servidor de la aplicación está comprometido, entonces se puede recopilar la clave, y he estado buscando en la web más ideas, pero para ser sincero, todas parecen ser débiles y desesperadas.