Cifrando particiones en Debian

Suelo tener una tarjeta SD de 16MB como respaldo de mi clave GPG secreta y pública, así como del certificado de revocación. La única forma de que sea de hecho guardada seguramente es cifrándola y para eso uso dm-crypt. El único problema con dm-crypt es que no cifra on-the-fly sino que necesitas una partición vacía o de lo contrario en el proceso se eliminarán los datos. El proceso es sencillo, aquí explicaré lo que haría con mi tarjeta SD si lo tuviese que hacer de nuevo:

  • Instalar cryptsetup:
    ~$ sudo aptitude install cryptsetup
  • Crear una partición nueva en el dispositivo que en este caso llamaremos mmc0p1, para esto recomiendo usar GParted si no se es muy bueno con cfdisk, yo lo hice con éste último porque GParted no formatea en fat12 y es el máximo FAT que soporta una partición de 16M.
  • Ahora, ciframos la partición:
    ~$ sudo  cryptsetup -v -y -h sha256 luksFormat /dev/mmc0p1
    Aquí nos advertirá sobre la re-escritura de la partición y que por ende perderemos todos los datos y escribirán la contraseña que deseen.
  • Hecho el paso anterior ahora abriremos la partición para crear una partición virtual dentro de ella:
    ~$ sudo cryptsetup luksOpen /dev/mmc0p1 sd16M
    El sd16M es el nombre que le daremos a la partición virtual, ésta irá a /dev/mapper donde le darán formato.
  • Dándole formato a /dev/mapper/sd16M:
    ~$ mkfs.vfat -F 12 -n "sd16M" /dev/mapper/sd16M
  • Ahora cerraremos la partición virtual que hicimos:
    ~$ sudo cryptsetup luksClose sd16M
  • Ya estamos listos básicamente, si tienen configurado para que automonte particiones les quedará más fácil, simplemente remuevan la tarjeta o el dispositivo y vuélvanlo a introducir en la ranura, en esto les saltará una ventana emergente pidiéndoles la clave y listo. Si éste no es el caso entonces tendrán que instalar cryptmount y nada mejor que el manpage para aprender como usarlo, tiene ejemplos completos de como montar particiones protegidas bajo LUKS (el método usado en éste tutorial).

Estas particiones pueden ser leídas en Windows también usando FreeOTFE, con tal que Windows soporte el formato de la partición (FAT12, FAT16, FAT32, NTFS)

Any comment goes best to my twitter here.