Asegurando y Aumentando la velocidad del root Cifrado en Fedora Linux
By unmanarc on 30 May 2009
Fedora, y en general, la mayoría de las distribuciones de linux parecen ser muy rígidas en cuanto a la configuración del sistema de archivos cifrado.
En este articulo proveeremos suficiente información sobre el proceso de cifrado de Fedora y una técnica para acelerar o aumentar la velocidad del cifrado.
En la instalación de fedora core, es posible especificar que se quiere cifrar/encriptar todo el disco, y fedora lo hace mediante LUKS utilizando el algoritmo de cifrado AES 128bit con 10 iteraciones. Adicionalmente se utiliza CBC + ESSIV + SHA-256 para evitar cierto tipo de ataques al cifrado.
LUKS es un sistema de manejo de cifrado avanzado bajo linux que integra el manejo de clave, el manejo de algoritmos de cifrado, así como contramedidas para ataques al cifrado.
Si realizamos una revisión del encabezado del cifrado, encontraremos lo siguiente...:
| LUKS header information for /dev/mapper/via_bbeghceeacp3
Version: 1 Key Slot 0: ENABLED |
Algunas cosas que debemos saber sobre criptografía:
- AES es el estandar de cifrado a nivel mundial, su algoritmo, llamado inicialmente Rijndael, ganó el concurso en el 2001
- AES-128 va a trabajar rápido, sin embargo, si requerimos mayor seguridad, es recomendable pensar en AES-256
- Se menciona que serpent puede resultar ser mas seguro que Rijndael, pero recibió menos cantidad de votos en el concurso de AES debido a que su algoritmo es mas pesado y lento
- CBC-ESSIV es un mecanismo convencional para evitar cierto tipo de ataques, sin embargo, es lento debido a que por cada modificación en el disco, requerira volver a cifrar sectores del disco aledaños
- XTS provee un mecanismo novedoso para evitar los ataques antes mencionados, este mecanismo se basa en la clave y en el número de sector del disco, por lo cual XTS es mas rápido que CBC, XTS separa la clave en dos segmentos de igual tamaño, uno para su mecanismo de prevención de ataques, y otro para el cifrado en si
- El kernel de instalación de fedora 10 no soporta Serpent. Solamente los siguientes algoritmos: AES, XTS, CBC-ESSIV, SHA
- Se dice que XTS es experimental, sin embargo ya es común su utilización
- Fedora 11 utilizará AES-XTS-PLAIN con AES de 256bit según Anaconda Changelog - 04/2009, esto es una mejora, recordemos que si especificamos 512bit en XTS, la clave del cifrado será de 256bit
- Debido al tiempo que tarda realizar esta operación... Fedora Linux no rellena el disco con información random, por lo cual en muchos casos se puede ver cuanto espacio del cifrado esta disponible
Teniendo esto en mente, podemos deducir que AES-CBC no es la combinación perfecta para un disco. A continuación presentaremos una tabla comparativa con los posibles cifrados que admite fedora:
| Cifrado | Protección | Bits | Descripción |
| AES | XTS-PLAIN | 128bit cifrado, 128bit protección (256bit) | Esta es la opción mas rápida de cifrado, el cifrado no es tan fuerte como AES-256, recomendado para personas que requieran cifrado del día a día y requieran velocidad en su computador. |
| AES | CBC-ESSIV | 128bit cifrado | Esta es una opción lenta de cifrado, adicionalmente el cifrado no es tan fuerte como AES-256. Viene por defecto en las instalaciones de Fedora 10 |
| AES | CBC-ESSIV | 256bit cifrado | Esta es una de las protecciones mas fuertes y lentas de cifrado. |
| AES | XTS-PLAIN | 256bit cifrado, 256bit protección (512bit) | Esta es la opción que utilizará por defecto fedora en versiones futuras. Es lenta por la seguridad que ofrece, sin embargo, mas veloz que AES-CBC-ESSIV de 256bit |
Si usted no require de seguridad extrema, y esta seguro que la gente interesada en la información de su computador no utilizará un superordenador con mas de 1 millón de computadoras en su contra por mas de 30 años, podría estar pensando en utilizar AES-XTS-PLAIN con AES-128
De lo contrario eligiría AES-XTS-PLAIN con AES-256 ó AES-XTS-ESSIV con AES-256... (AES-XTS-ESSIV agrega ESSIV a XTS, sin embargo, XTS ya provee mecanismos para evitar los ataques que ESSIV previene)
Sin embargo, CBC quedaría descartado si usted esta cifrando el disco, ya que de cualquier forma CBC es mas pesado y lento que XTS con un nivel de seguridad similar.
En fedora 10 no tenemos una opción para cambiar el mecanismo de cifrado de forma sencilla y gráfica. Sin embargo, es posible realizarlo de la vieja forma... Por consola.
A continuación presentaré una guía de como realizar esta operación:
Lo primero que realizaremos será crear "un cascarón cifrado" antes de realizar la instalación.
En caso de que usted tenga información en su computadora, realice un backup y RETIRE todos los disco duros que no este planeando formatear. Si algo sale mal, no queremos perder la información.
- Inserte su CD/DVD de Fedora 10 en el computador
- En la primera pantalla de inicio, Seleccione la opción de modo de Rescate / Rescue
- Siga las instrucciones hasta llegar a la consola, no active la red, no monte /mnt/sysimage
- Una vez en la consola ubique su disco, por ejemplo, /dev/sda
- En caso de que tenga dual boot, es peligroso realizar esta operación, si es así, cree las particiones primero y luego realicelo por separado con cada partición, este procedimiento puede tardar horas, incluso, en algunos dispositivos, hasta un par de días. Este procedimiento llenará su disco con información random para evitar que un atacante pueda ejecutar cierto tipo de predicciones sobre su sistema de archivos cifrados:
sh-3.2# cat /dev/urandom > /dev/sda - Al finalizar, procederemos a particionar el disco, creamos una partición de 256M para /boot y el resto para swap y ROOT:
sh-3.2# fdisk /dev/sda
Command (m for help): n
Command action
e extended
p primary
p
Partition number (1-4): 1
First cylinder (1-1044, default 1): (ENTER)
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +256MCommand (m for help): n
Command action
e extended
p primary
p
Partition number (1-4): 2
First cylinder (35-1044, default 35): (ENTER)
Using default value 35
Last cylinder, +cylinders or +size{K,M,G} (35-1044, default 1044): (ENTER)
Using default value 1044Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.sh-3.2#
- El sistema estará listo para crear el LUKS en /dev/sda2, eliga ahora una clave fuerte de mas de 15 caracteres alfanumerica y si desea, con simbolos, a continuación como realizarlo:
PARA VELOCIDAD (AES-128, 10 rondas, XTS):
sh-3.2# cryptsetup -s 256 -c aes-xts-plain luksFormat /dev/sda2 WARNING!
========
This will overwrite data on /dev/sda2 irrevocably.Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: PASSWORD HERE
Verify passphrase: PASSWORD HERE
Command successful.
sh-3.2#PARA SEGURIDAD (AES-256, 10 rondas, XTS):
sh-3.2# cryptsetup -s 512 -c aes-xts-plain luksFormat /dev/sda2 WARNING!
========
This will overwrite data on /dev/sda2 irrevocably.Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: PASSWORD HERE
Verify passphrase: PASSWORD HERE
Command successful.
sh-3.2# - Ahora debemos montar el cascaron cifrado en un dispositivo /dev/mapper, de forma que podamos asignarle un LVM
sh-3.2# cryptsetup luksOpen /dev/sda2 crypto
Enter LUKS passphrase for /dev/sda2: PASSWORD HERE
key slot 0 unlocked.
Command successful.
sh-3.2# - procederemos a asignar el LVM
sh-3.2# lvm
lvm> pvcreate /dev/mapper/crypto
Physical volume "/dev/mapper/crypto" successfully created
lvm> vgcreate -s 32M VolGroup00 /dev/mapper/crypto
Volume group "VolGroup00" successfully created
lvm> (CTRL-D)
sh-3.2# sync; reboot
Runing reboot...disabling swap...
unmounting filesystems...
/mnt/runtime done
disabling /dev/loop0
/proc done
/dev/pts done
/sys done
/selinux done
Terminated
sh-3.2# sending termination signals...done
sending kill signals...done
rebooting system
Restarting system.
Ya tenemos listo el cascarón cifrado.
A continuación procedemos a realizar una instalación en limpio
- Inicie la instalación de la forma tradicional
- Seleccione el lenguaje de instalación y su lenguaje de teclado
- Ingrese el password del sistema de archivos cifrado en una pantalla que debe contener la siguiente información: Device sda2 is encrypted. In order to access the device's contents during installation you must enter the device's passphrase bellow.
- Su sistema cifrado estará desbloqueado para instalar el sistema operativo sobre él
- Continue hasta la pantalla donde selecciona que tipo de particionado quiere. Seleccione la opción "Create custom layout"
- Seleccione /dev/sda1 y haga click en el botón Edit, Seleccione la opcion de "Format as: ext3" y Seleccione como Mount Point /boot (No lo cifre)
- Seleccione VolGroup00, haga click en Edit, se abrirá una nueva pantalla de edición de LVM
- Haga click en el boton ADD, Seleccione como sistema de archivos (File System type) swap, y en tamaño (MB), recomendamos ubicar el doble de su memoria RAM, en mi caso, 1024M para memoria ram de 512Mb. Haga click en OK
- Haga click en el boton ADD, Seleccione como sistema de archivos (File System type) ext3, en Mount Point "/", y en tamaño (MB) deje la opción por defecto que ubica el resto del disco, haga click en OK, y luego en OK en el dialogo para editar LVM
- Haga click en siguiente, luego en Format, y luego en Write changes to disk
- Continue la instalación normalmente. Ya tiene un cifrado personalizado en Fedora.
En Fedora 10, los propositos de realizar esta práctica son claros. Aumentar la velocidad del disco, y mejorar el cifrado. Sin embargo, en Fedora 11, se prevee que ya utilizará AES-256, y los propositos podrían ser otros, como por ejemplo, sacrificar tipo de cifrado por velocidad.
- 198 reads
- English