¿Necesito una contraseña de conjunto de claves en una máquina de usuario único cifrada con luks?

¿Necesito una contraseña de conjunto de claves en una máquina de usuario único cifrada con luks?

El título lo dice todo pero déjenme ampliar un poco más:

Me pregunto cómo la contraseña del conjunto de claves protege mis claves. Claro, cifra el archivo contenedor para que nadie más pueda acceder a él. Pero también se descifra después de haber proporcionado la contraseña de mi conjunto de claves. De hecho, mientras estoy conectado, alguna aplicación maliciosa podría robar las claves (al menos una aplicación con permisos de root debería poder hacerlo).

Por supuesto, lo sé, el archivo de clave en sí no se reemplaza con una versión descifrada después de ingresar la contraseña, pero debe descifrarse en la memoria.

La pregunta es: ¿pueden las aplicaciones maliciosas acceder a los datos de mi conjunto de claves mientras están descifrados? Si es así, ¿necesito siquiera una contraseña para mi conjunto de claves cuando mi disco ya está cifrado y soy el único que usa mi computadora?

Y, si una contraseña fuera más segura, ¿es posible desbloquearla automáticamente usando la contraseña de mi cuenta (más o menos) después de iniciar sesión?

(No estoy usando un administrador de inicio de sesión, inicio i3wm automáticamente después de iniciar sesión a través de TTY, entonces, ¿sería posible el desbloqueo automático también para esta configuración?)

Respuesta1

¿Pueden las aplicaciones maliciosas acceder a los datos de mi conjunto de claves mientras están descifrados?

En la práctica (actualmente), sí, pueden hacerlo. El diseño actual (o la falta del mismo) de las sesiones de usuario en Linux dificulta que gnome-keyring-daemon determine qué programa está intentando acceder a él; eso es factible hasta cierto punto para programas compilados, pero, por ejemplo, cualquier aplicación escrita en Python es indistinguible de cualquier otra aplicación escrita en Python. Entonces, aunque el llavero de gnomo lo hizoen primer lugartener una lista blanca de aplicaciones, las versiones actuales ya no la tienen.

Con el tiempo, esto debería mejorarse mediante proyectos de contenedores de aplicaciones como Snap o Flatpak.

Si es así, ¿necesito siquiera una contraseña para mi conjunto de claves cuando mi disco ya está cifrado y soy el único que usa mi computadora?

Yo diría que sí.

Como se mencionó anteriormente, cualquier programa puede simplemente enviar un mensaje D-Bus y pedirle a gnome-keyring-daemon cualquier secreto. (En algunos casos, incluso funciona como una característica).

Sin embargo, ha habido bastantes agujeros de seguridad en los que se podría utilizar un programa vulnerable (por ejemplo, un navegador web) pararobar tus archivos, aunque sigue sin tener posibilidad de ejecutar comandos ni enviar mensajes D-Bus. Se sabe que el malware roba claves SSH no cifradas ( ~/.ssh/id_rsa) o billeteras Bitcoin Core de las personas.

De la misma manera, si no está encriptado, corre ~/.local/share/keyrings/login.keyringel riesgo de que lo roben a través de vulnerabilidades del navegador web y demás.

(No estoy usando un administrador de inicio de sesión, inicio i3wm automáticamente después de iniciar sesión a través de TTY, entonces, ¿sería posible el desbloqueo automático también para esta configuración?)

El desbloqueo automático de gnome-keyring se realiza en todos los casos a través de PAM. Un módulo llamado pam_gnome_keyring.sorecibe su contraseña como parte del proceso de inicio de sesión e inicia el demonio de llavero inicial.

El módulo PAM debe agregarse a /etc/pam.d, donde su distribución de Linux normalmente agrega módulos comunes, o simplemente al loginarchivo (que es específicamente para inicios de sesión de consola y telnet).

En el grupo de autenticación (en el bloque "Adicional" en estilo Debian common-auth; en caso contrario, como el último módulo) almacenará la contraseña en la memoria:

[...]
auth optional pam_gnome_keyring.so only_if=login

En el grupo de sesión (de nuevo, bloque "Adicional" para Debian, último módulo en caso contrario) utiliza la contraseña almacenada para iniciargnomo-llavero-demonio:

[...]
session optional pam_gnome_keyring.so only_if=login auto_start

información relacionada