¿Es posible cifrar un disco duro con un archivo de clave en lugar de una contraseña?
14
Buscando en el cifrado del disco duro. La solución go to parece ser dm-crypt con LUKS usando una contraseña. Trabajo con múltiples discos duros independientes montados en un conjunto de discos para leer. En este caso, tengo que escribir una contraseña varias veces.
¿Hay alguna manera de encriptar los discos duros con un archivo de clave, tal vez ponerlo en una unidad USB y simplemente enchufarlo cuando sea necesario?
Una de las mejores maneras de hacer esto es usar una tarjeta inteligente con una clave criptográfica para desbloquear las claves de sus dispositivos de bloque encriptados. Solo necesitará ingresar la frase de contraseña (llamada "PIN" por las herramientas, pero en realidad es una frase de contraseña) una vez, después de lo cual se almacenará en caché. Esto tiene la ventaja adicional de proteger los datos cifrados con algo que usted tiene (la tarjeta inteligente en sí, de la cual no se puede extraer la clave privada) y algo que usted sabe (la frase de contraseña).
En Debian y sus derivados, las herramientas initramfs notarán el script y copiarán todas las herramientas y demonios necesarios para acceder a la tarjeta inteligente a initramfs automáticamente.
Encontrará información sobre cómo configurar la tarjeta inteligente y crear (y cifrar) las claves /usr/share/doc/cryptsetup/README.opensc.gz.
Notas de implementación : esta característica tiene bordes ásperos y aparentemente no funciona de manera inmediata, por lo que YMMV. La última vez que lo logré con éxito, tuve que agregar los siguientes hacks:
Deshabilítelo systemdporque trata desastrosamente de hacerse cargo de todo el proceso de configuración de dispositivos encriptados, /etc/crypttabpero no sabe nada sobre lo keyscriptque conduce a un gran FALLO. Afortunadamente, en Debian, todavía puede optar por no participar systemd.
Instale este script superior de reparador /etc/initramfs-tools/hooks/yubipinporque la función incorporada no instaló suficiente soporte para que Yubikey pueda utilizarse desde initramfs. Es posible que deba ajustar esto.
#!/bin/sh
PREREQ=cryptroot
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
# /scripts/local-top/cryptopensc calls pcscd with the wrong path
ln -s ../usr/sbin/pcscd ${DESTDIR}/sbin/pcscd
mkdir -p "${DESTDIR}/usr/lib/x86_64-linux-gnu"
# opensc-tool wants this dynamically, copy_exec doesn't know that
cp -pL /usr/lib/x86_64-linux-gnu/libpcsclite.so.1 "${DESTDIR}/usr/lib/x86_64-linux-gnu/libpcsclite.so.1"
mkdir -p "${DESTDIR}/lib/x86_64-linux-gnu"
# without this, pcscd aborts with a pthread_cancel error
cp -pL /lib/x86_64-linux-gnu/libgcc_s.so.1 "${DESTDIR}/lib/x86_64-linux-gnu/libgcc_s.so.1"
# this gets copied as a dangling symlink, fix it
rm "${DESTDIR}/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist"
cp -pL /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist "${DESTDIR}/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist"
# pcscd needs this to open the reader once it has found it
cp -pL /lib/x86_64-linux-gnu/libusb-1.0.so.0 "${DESTDIR}/lib/x86_64-linux-gnu/libusb-1.0.so.0"
Instale otro script /etc/initramfs-tools/scripts/local-bottom/killpcscdpara limpiar:
#!/bin/sh
set -e
PREREQ=cryptopensc
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
# because cryptopensc does not do it properly
killall pcscd
Muy buen incentivo para usar tarjetas inteligentes y felicitaciones para lograr eso, pero diría que un método específico de distribución que implica cambiar el sistema de inicio y los scripts de pirateo de terceros introducidos en directorios del sistema con rutas ilegibles no puede considerarse como una respuesta a cómo para usar la pregunta de los archivos de contraseña. Destaca el desorden increíble que es este software, aunque.
dbanet
@dbanet, estoy totalmente de acuerdo y espero que alguien más venga y agregue una respuesta que describa cómo hacer esto de otra manera más simple. Entonces el OP puede elegir su favorito.
Celada
dbanet y @Celada, exactamente mis pensamientos. Esto es demasiado complicado e incluso si logro hacerlo, es propietario, lo que significa que otro proveedor tendría otro método. :(
Nithin
3
Es posible simplemente almacenar la contraseña de luks en un archivo.
Lo uso en la computadora de mi casa; El sistema de archivos raíz vive en un volumen de luks regular que desbloqueo con mi frase de contraseña en el arranque. Una unidad adicional contiene un volumen de luks con una contraseña generada.
Este volumen adicional se desbloquea mediante un archivo de contraseña que vive en el sistema de archivos raíz cifrado. Se desbloquea automáticamente durante el arranque si el sistema de archivos raíz está desbloqueado.
El tercer campo es el archivo de claves, nonepara el sistema de archivos raíz, pero /etc/crypt-data.keypara el sistema de archivos de datos. /etc/crypt-data.keycontiene la contraseña de luks:
Tm90IHJlYWxseSBteSBwYXNzd29yZC4K
Tenga en cuenta que se tomará una nueva línea o cualquier otro espacio en blanco como parte de la contraseña. Tenga cuidado de generar este archivo sin seguir la nueva línea. Además, asegúrese de que tenga permisos estrictos:
Es posible simplemente almacenar la contraseña de luks en un archivo.
Lo uso en la computadora de mi casa; El sistema de archivos raíz vive en un volumen de luks regular que desbloqueo con mi frase de contraseña en el arranque. Una unidad adicional contiene un volumen de luks con una contraseña generada.
Este volumen adicional se desbloquea mediante un archivo de contraseña que vive en el sistema de archivos raíz cifrado. Se desbloquea automáticamente durante el arranque si el sistema de archivos raíz está desbloqueado.
Mi
/etc/crypttab
aspecto es este:El tercer campo es el archivo de claves,
none
para el sistema de archivos raíz, pero/etc/crypt-data.key
para el sistema de archivos de datos./etc/crypt-data.key
contiene la contraseña de luks:Tenga en cuenta que se tomará una nueva línea o cualquier otro espacio en blanco como parte de la contraseña. Tenga cuidado de generar este archivo sin seguir la nueva línea. Además, asegúrese de que tenga permisos estrictos:
Debería poder duplicar este enfoque para múltiples volúmenes (ya sea con contraseñas distintas o una contraseña compartida, a su elección).
fuente
/etc/crypttab
. Agregué un poco de texto extra para aclararlo.