Almacenar de forma segura la contraseña para Java Keystore

2

Background

Estoy implementando un conjunto de servicios de Micro usando Java spring MVC y alojado en contenedores Undertow usando Gradle. Estoy utilizando un almacén de claves de Java para proteger mis claves que utiliza el servicio para realizar el cifrado y la firma.

Cuando un usuario genera un servicio Micro, el usuario inyecta la contraseña en Gradle de la siguiente manera.

gradlew bootRun -Dpassword=thePassword

Esto está bien para un uso normal porque el usuario es el que ingresa la contraseña.

Problema

Existe un requisito de que necesitamos activar Micro Services basados en la demanda automáticamente (para las horas pico) y apagar cuando la carga disminuya. Puedo automatizar esto, pero necesito codificar mi (s) contraseña (s) en mi (s) script (s) de shell, que es / son responsables de los servicios de encendido automáticamente.

Pregunta

¿Cómo puedo asegurar mi (s) contraseña (s) y hacer esta automatización?

    
pregunta user3496510 07.01.2017 - 10:49
fuente

1 respuesta

0

Esto es un problema recurrente en la seguridad de la aplicación : incluso si almacena sus secretos en un almacén de datos protegido, debe autenticarse a that , lo que significa que tienes otro secreto que administrar, que te devuelve al problema original. Desafortunadamente, no hay una solución canónica para cortar y secar.

Lo mejor que puedes hacer es intentar minimizar el riesgo introduciendo diferentes tipos de sistemas que son un poco más difíciles de falsificar. ¿Está utilizando servidores físicos (probablemente con algún tipo de capa de virtualización en la parte superior)? Puede almacenar la clave de cifrado en una tarjeta inteligente o dispositivo físico similar que esté conectado a las máquinas, y bloquear el acceso del software solo al usuario responsable de escalar la aplicación. ¿Estás utilizando AWS? Puede aprovechar las funciones basadas en la máquina de Amazon y bloquear a los usuarios de IAM que pueden lanzar máquinas con esas funciones. Tal vez tenga un paso manual cuando implemente un nuevo código que agregue una clave privada y luego cueza una imagen de máquina virtual, y restringe fuertemente qué usuarios pueden acceder a esas imágenes horneadas. Ninguna de estas soluciones es perfecta, pero ayudan a limitar los puntos de entrada a los datos seguros.

    
respondido por el Xiong Chiamiov 07.01.2017 - 18:03
fuente

Lea otras preguntas en las etiquetas