Pregunta contraseñas de Linux en archivos de configuración


Algunos programas en Linux que usan archivos de configuración me piden que ingrese mi contraseña en texto sin formato en uno de sus archivos de configuración. Por ejemplo, newsbeauter, el lector de RSS quiere que ingrese la contraseña de mi cuenta de google en ~ / .newsbeauter / config si deseo leer los feeds de google reader. Mutt también quiere una contraseña en un archivo de texto, pero le da la opción de ingresarla en cada inicio de sesión.

¿Existe alguna solución segura para almacenar una contraseña en un archivo de configuración como ese (por ejemplo, para newsbeauter)? Estaba pensando en ejecutar la aplicación como root, pero eso no parece correcto. O de alguna manera crear y eliminar el archivo cada vez que uso la aplicación.

¿Algunas ideas?


3


origen




Respuestas:


Ajustar los permisos no protegerá contra un adversario que tenga acceso a sus discos (computadora portátil robada).

No puede protegerse contra un adversario que tiene raíz en su sistema en ejecución, pero puede protegerse contra un disco robado o un software malintencionado no demasiado inteligente con estas dos técnicas:

  • Configure un pequeño sistema de archivos encriptados (use dm-crypt o truecrypt, por ejemplo), luego reemplace sus archivos de configuración con enlaces simbólicos que apuntan a algún lugar en la partición cifrada. Esto es simple de implementar, pero lo pone en riesgo cuando se monta el fs encriptado

    mount encrypted fs under /mnt/crypt
    cp ~/.application/config /mnt/crypt/app-config
    ln -s /mnt/crypt/app-config ~/.application/config
    unmount encrypted fs to lock config
    
  • Reemplace sus archivos de configuración con named pipes (mkfifo). Eso solo funcionará bien si la aplicación lee la configuración en una sola pasada; al inicio, la aplicación se bloqueará al leer el archivo de configuración, hasta que lo escriba en la tubería con nombre. Luego puede almacenar una versión encriptada del archivo en otro lugar (use por ejemplo gpg); cuando sea necesario, descifre los contenidos con gpg y envíelos sobre la marcha a la tubería. Esto es un poco más seguro ya que debe permitir a mano cada acceso al archivo, pero es quizás menos conveniente.

     # setup
     gpg -e -r my-address@domain.com <~/.application/config ~/.application/config.pgp
     mkfifo ~/.application/config
     # run application, application hangs waiting for config
     gpg -d <~/.application/config.pgp >~/.application/config
    

4





Ejecutar software no crítico como root casi nunca es una buena idea.

Lo que debe hacer en su lugar es cambiar los permisos de estos archivos para que solo usted (el usuario que ejecuta estos programas) pueda leerlos. Para eliminar, p. permiso de lectura, escritura y ejecución para cualquier persona que no sea usted en un archivo mine.conf, lo harías bajo tu cargo

chmod og-rwx mine.conf

2





Otro truco es poner el archivo de configuración dentro de un directorio pero quitarle los permisos de lectura para que no puedas ver el interior solo haz

chmod a-r lo que sea /

Para que solo pueda ver dentro si es root, o simplemente puede recordar cómo se llama el archivo, pero aún podría hacer todo lo posible con el archivo dentro, siempre que sepa el nombre del archivo o si son root, para hacer

sudo ls lo que sea /


0