Respuestas:
No, no con sensatez, pero un adversario podría.
La cryptsetup
herramienta funciona en el volumen cifrado, ya sea que esté abierto o no. Necesita recuperar la tecla de volumen fuera del volumen; para eso, necesita una forma de decodificar una de las ranuras de claves existentes (frase de contraseña o archivo de claves), o de lo contrario, debe pasarle la clave de volumen desnuda (que casi no se mantendría por ahí).
Si el volumen está montado, entonces el núcleo tiene la clave de volumen en la memoria. Pero como era de esperar, no proporciona una interfaz para recuperarlo.
Puede escribir y cargar un módulo de kernel que recupere la clave de volumen (creo que tendrá que saltar por los aros, pero desde una perspectiva de seguridad que es trivial), a menos que la carga del módulo esté deshabilitada o autenticada. Puede recuperar la clave de un volcado de memoria /dev/kmem
, a menos que esté deshabilitado (espero que haya herramientas forenses disponibles para esto, aunque no puedo nombrar ninguna). Creo que ya está.
Sí, así:
cryptsetup luksAddKey <DEVICE> --master-key-file <(dmsetup table --showkey /dev/mapper/<MAP> | awk '{print$5}' | xxd -r -p)
Sustituya <DEVICE>
con el dispositivo de bloque que contiene la partición LUKS (como /dev/sda1
) y <MAP>
con el nombre de la asignación (como sda1_crypt
).
dmsetup table --showkey
lo usa