Así que lo siguiente fue un poco demasiado largo para un comentario ...
Tal vez sea útil dar un paso atrás y comparar los beneficios de los controles preventivos y de detección. Los controles preventivos incluyen el cifrado, pero también puede codificar la contraseña para que sea menos evidente. Este enfoque está destinado a proteger la contraseña de una compartición accidental (una codificación b32 produciría caracteres menos significativos (b32 produce una cadena más larga que b64). Este enfoque solo aumenta la dificultad de memorizar la secuencia aleatoria de números, así como el método que debería Se puede utilizar para descodificar la cadena. La codificación Base32 / 64 es una forma sencilla de proteger contraseñas que no requieren la creación o el mantenimiento de lógica adicional.
Los otros enfoques de los controles preventivos probablemente usarán el cifrado. Hay muchas maneras diferentes de proteger la clave. Sin entrar en detalles o reiterar lo que D.W. Ya publicado, puede colocar controles de detección para mejorar la postura de seguridad. Por ejemplo, puede auditar el acceso a un archivo que contiene la clave. Puede correlacionar eventos (como el reinicio del servidor / servicio) con el acceso al archivo de claves. Cualquier otra solicitud de acceso (exitosa o no) al archivo clave podría indicar una actividad anormal.
Para llegar a sus preguntas, aquí está mi opinión:
si tiene que almacenar la contraseña en un archivo de configuración, recomendaría al menos codificar la contraseña cuando sea posible. Codificar la contraseña reduciría la posibilidad de que se filtre en el caso de que alguien se desplace por el archivo, por ejemplo, con un representante de soporte del proveedor mirando. Encriptar la contraseña es mucho más seguro, pero eso requiere una complejidad adicional.
Cómo lidiar con el hecho de que una clave tiene que ser codificada o almacenada en otro archivo. Bueno, separar la clave de cifrado en otro archivo aumenta la dificultad para que alguien vea la clave. Por ejemplo, puede usar el control de acceso para limitar el acceso al archivo de claves pero aún así mantener una ACL más abierta para el archivo de configuración. De manera similar, puede implementar una auditoría para acceder al archivo de claves, que puede usar para correlacionar con eventos que requieren el uso de claves. La codificación difícil de la clave puede estar bien si limita el acceso al binario. La codificación cuidadosa de la contraseña se puede detectar fácilmente ejecutando "cadenas" contra el binario. Puede codificar / cifrar la contraseña codificada (es decir, requerir una función separada (tal vez con auditoría) cuando decodificar la contraseña, pero eso aumenta la complejidad para el desarrollador y el administrador (es decir, cómo se puede cambiar la clave sin reconstruir / recompilar el binario). ?).
¿Las claves de cifrado para la contraseña deben ser legibles por humanos? Depende. Solo hay un número limitado de formas de proteger la clave. Una clave de cifrado generalmente se ve como una cadena alfanumérica a la que es difícil comprometerse con la memoria. Siempre puede codificar / cifrar la clave, pero tales métodos no disuaden a alguien que sea lo suficientemente inteligente como para tomar una captura de pantalla. Sin embargo, puede usar "claves" simples (más como contraseñas) como entrada a una función de expansión de clave. En esos casos, quizás las medidas adicionales, como la codificación, agreguen algún valor adicional en relación con el costo de la complejidad.
En todo caso, un buen enfoque es implementar varias capas de controles. Los controles preventivos son más difíciles, mientras que los controles de detección son generalmente más fáciles de implementar. La separación de archivos clave podría simplificar la arquitectura general y la implementación de los controles. Independientemente de si se utilizan controles preventivos o de detección, habilitar algunas funciones de auditoría es una necesidad junto con la revisión de los registros de auditoría. De esta forma, en caso de que ocurra lo improbable (acceso a la clave), puede tomar medidas correctivas.