¿Qué tan seguro es almacenar una contraseña codificada AES en un archivo?

0

Básicamente, estoy considerando almacenar una contraseña codificada AES-Base64 en un archivo oculto, con un permiso 600, en una ubicación poco común de un servidor Unix / Linux.

Esa contraseña sería utilizada por un autómata en el crontab para conectarse a otros servidores.

¿Qué tan mala es esta idea? (Teniendo en cuenta que el usuario root está bloqueado y que los servidores no tienen acceso a Internet, y hay un túnel proxy para conectarse al servidor que contendrá este archivo oculto)

    
pregunta Felipe Siqueira 17.05.2017 - 06:44
fuente

2 respuestas

1

Primero, ¿ realmente necesitas usar contraseñas? Las claves SSH serían mucho más adecuadas para que "un autómata en el crontab se conecte a otros servidores".

Si necesita almacenar tales contraseñas, la configuración adecuada sería crear una cuenta de usuario específica (no root) para este caso, almacenar el archivo en un archivo de 400 permisos que es propiedad de este usuario y ejecutar el autómata binario con el bit setuid ( enlace ) configurado en la misma cuenta.

I.e., para una cuenta de usuario normal, ese archivo sería legible solo a través de ese autómata y no por ningún otro medio.

No creo que el cifrado agregue ninguna seguridad allí si el almacenamiento de la clave de cifrado no es más seguro que el almacenamiento de la contraseña.

Si el autómata es un binario e incluye una clave allí, debe asegurarse de que sea ejecutable pero no legible. Si el autómata es un script ejecutable, entonces no puede almacenar la clave dentro de él de forma segura.

    
respondido por el Peteris 17.05.2017 - 12:48
fuente
1

Este es un desafío muy común y se puede hacer de manera segura si puede aceptar una serie de compromisos de seguridad a cambio de los beneficios de la automatización. De todos modos, lo hacemos todo el tiempo, manteniendo claves privadas TLS sin cifrar en los servidores web para evitar escribir las frases de contraseña cada vez que las reiniciamos :) Simplemente use todos los controles de seguridad disponibles en un sistema multiusuario, como lo sugiere Peteris arriba y solo agregaría dos cosas:

  • Limite los permisos disponibles para estas credenciales tanto como sea posible sobre la base de la necesidad de saber, para que solo puedan realizar la tarea de automatización y nada más. Específicamente, no deberían poder dar acceso a otros sistemas, etc.
  • Hay una serie de soluciones tipo bóveda y administrador de contraseñas disponibles para Linux, pero su modelo de seguridad siempre se basa en un solo secreto ingresado por el usuario interactivo, por lo que no ayudarán mucho aquí.
  • La parte de cifrado tendrá un impacto dudoso. Por un lado, puede evitar a un ladrón oportunista, pero los permisos del sistema de archivos harían lo mismo. Por otro lado, introducirán una complejidad significativa y, al final del día, la clave de cifrado aún debe almacenarse en un lugar con una protección tan efectiva como la de los activos originales.
respondido por el kravietz 17.05.2017 - 13:24
fuente

Lea otras preguntas en las etiquetas