martes, 2 de septiembre de 2008

cryptofs

Hace unos días bajé unos vídeos de LAWALOCA. Como no podía dejarlos en el sistema de archivos así como así, me puse a la tarea de crear un Sistema de Archivos Cifrado.

Sí, se dice "cifrado", no "encriptado". ¿No se dice, desde hace mucho, decifrar un mensaje secreto? Y si no estás de acuerdo, pasa al siguiente blog.

Si bien es cierto que Fedora 9 ya te permite realizar instalaciones con sistema de archivos cifrados, la idea era utilizar un dispositivo "portátilizador" USB para el efecto.

Sea:
/dev/sdc el dispositivo portatilizador

Si la paranoia es grande, lo mejor es empezar borrando el dispositivo con:

# wipe /dev/sdc

O en su defecto,

# dd if=/dev/zero of=/dev/sdc

Luego, hay que sembrar el dispositivo portatilizador con la suficiente información para despistar al enemigo:

# dd if=/dev/urandom of=/dev/sdc

Esto tomará mucho tiempo, y agotará la entropía del sistema. Lo mejor es utilizar un dispositivo generador de números aleatorios, como el que viene en la fit-pc. geode-rng.ko. Esto es especialmente importante en el siguiente paso: la generación de la llave criptográfica. Adicionalmente, la fit-pc incluye un coprocesador criptográfico geode-aes.ko el cual funciona en Fedora 9 y está disponible según /proc/crypto:

Una vez que se recupere la entropía, (o usando el generador de números aleatorios), procedemos a preparar el dispositivo portatilizador:

# cryptsetup --verbose --cipher 'aes-cbc-essiv:sha256' --key-file=/dev/random --hash=$(mcookie) --key-size 128 --verify-passphrase luksFormat /dev/sdc

El tamaño de la llave seleccionado es un albur entre velocidad y seguridad. Si la llave es muy pequeña, es posible que una agencia de tres letras (no, la PFP no está en esa lista) sea capaz de romper el código y descifrar el dispositivo. Una llave demasiado grande, por el contrario, requerirá de mucho tiempo para realizar el cifrado/descifrado de datos, haciendo impráctico el ejercicio.

Para cuestiones ordinarias, 128 bits son suficientes para detener la curiosidad femenina. Unos 256 bits parece ser lo normal en estos tiempos de procesadores multi-núcleo. Más de 512 bits... eres terrorista, pedófilo; o peor aún: tu perteneces a una agencia de tres letras.

Una vez seleccionado el tamaño de llave, hay que proporcionar la frase de paso (passphrase), la cual, una vez más, debe tener la sufiente entropía. Una cadena se rompe por el eslabón más débil, así que escoge una buena frase.

El dispositivo ya se encuentra "formateado", ahora hay que establecer la conexión entre el dm-crypt y el dispositivo.

# cryptosetup luksOpen /dev/sdc cryptousb

Esto crea un dispositivo en /dev/mapper con nombre cryptousb. Es el dispositivo sobre el cual vamos a crear el sistema de archivos cifrado. El resto de las operaciones son como con cualquier otro sistema de archivos convencional:

# mke2fs -Lcryptousb /dev/mapper/cryptousb

# mount /dev/mapper/cryptousb /mnt/cryptousb

# mv -a /el/contenido/de/lawaloca /mnt/cryptousb/todo/lo/naco/es/chido

Antes de extraer el dispositivo portatilizador, es necesario desconectar todos los componentes del núcleo:

# umount /mnt/cryptousb

# cryposetup luksClose /dev/mapper/cryptousb

# rmmod usb-storage

Luego, hay que llevar el dispositivo portatilizador a la computadora del compañero ñero. Afortunadamente, de aquí en adelante el escritorio de Fedora 9 será capaz de darse cuenta que se trata de un dispositivo cifrado y nos preguntará la frase de paso para poder utilizarlo en el entorno convencional del escritorio.

ACK: A fesom por las sugerencias para escribir este artículo, y otros motivos para tener un dispositivo cifrado. demonoid.
Publicar un comentario