¿Guardar claves de contraseña usando Powershell? DPAPI / AES

2

Estoy creando un script que requiere tener una gran cantidad de IP del servidor y sus contraseñas almacenadas en un archivo.

Quería usar Windows DPAPI, pero como podemos recuperar fácilmente la versión de texto sin formato, no es muy buena.

Entonces traté de usar AES.
Ahora mi pregunta es: ¿cómo, usando AES, puedo almacenar las claves (1 para cada IP?) Para que el script pueda descifrar las contraseñas, pero es difícil para alguien sin autorización leer el archivo que contiene las contraseñas?

    
pregunta Svart 25.04.2016 - 16:21
fuente

1 respuesta

3

DPAPI almacena datos protegidos encriptados con la clave DPAPI del usuario, que a su vez está encriptada con un derivado (a través de PBKDF2) de la contraseña NTLM. Además, la información de la clave relacionada con DPAPI se almacena en una región de memoria protegida dentro del subsistema de seguridad (LSA), lo que hace que sea particularmente difícil comprometer las claves maestras fuera de un contexto administrativo.

Las dos preocupaciones principales en el modelo de amenaza de DPAPI son los ataques fuera de línea (por ejemplo, un disco duro robado) o un usuario malintencionado que intenta comprometer los datos protegidos por DPAPI de otro usuario. Ambas amenazas están adecuadamente protegidas contra DPAPI.

Su preocupación de que DPAPI permite una fácil recuperación de los datos es infundada; El hecho de que pueda recuperar la información se debe a que usted ha iniciado sesión como usuario legítimo. Iniciar sesión como cualquier otro usuario lo haría imposible, al igual que intentar recuperar los datos protegidos por DPAPI de una imagen de disco fuera de línea (a menos que sepa la contraseña del usuario que guardó los datos).

Cualquier solución que implementes por tu cuenta con AES (o cualquier otro cifrado) será menos segura en estos aspectos.

Dicho esto, si el modelo de seguridad de su aplicación implica proporcionar contraseñas de servicio a sus usuarios en un archivo de texto cifrado, hay muy poco para evitar que los descifren y obtengan las contraseñas. Esto suena como un candidato para que ellos se autentique en los sistemas backend con sus propias cuentas de usuario individuales, o que tenga un servicio intermediario en el que los usuarios se autentiquen para que luego puedan realizar solicitudes de servicio back-end en su nombre.

    
respondido por el Polynomial 25.04.2016 - 16:32
fuente

Lea otras preguntas en las etiquetas