
Estoy escribiendo un Chef LWRP para agregar una clave a un contenedor LUKS y tengo dificultades para encontrar una manera de determinar si mi clave ya existe o no. cryptsetup luksAddKey
Con gusto agregaré el mismo archivo de claves varias veces, por lo que no puedo simplemente seguir llamando luksAddKey
a cada ejecución de Chef.
Hasta ahora, lo mejor que se me ha ocurrido es
cryptsetup luksDump /dev/xvdf1 --dump-master-key --key-file <thenewkey> > /dev/null
Eso parece:
- CPU intensiva
- no muy seguro
¿Alguien tiene una idea mejor?
¡Gracias!
Respuesta1
No veo ninguna posibilidad de probar una clave sin desbloquear el volumen (al menos en lo que respecta a la carga de la CPU). ¿Pero quién no tiene estos pocos segundos de CPU? ¿Tiene muchos volúmenes LUKS por sistema?
Alternativamente puedes hacer esto:
Cada vez que agrega una clave, almacena un resumen del archivo (que ni siquiera necesita ser un resumen seguro; incluso MD5 serviría). Haces un directorio /etc/my_luks_keyfiles
. Para cada volumen LUKS en el sistema, crea un subdirectorio con el UUID ( cryptsetup luksUUID /dev/bla
). Si agrega una clave, crea un archivo con, por ejemplo, la marca de tiempo como nombre y el resumen como contenido. Si elimina una clave, elimina el archivo. Si desea saber si una clave está activa, compare todos los archivos del directorio con el resumen (es decir, no necesita transferir el archivo de clave).
Y si hay más o menos archivos que espacios activos, entonces sabrás que lo has estropeado...