dm-crypt/Drive preparation (Español)

From ArchWiki
Jump to: navigation, search

Estado de la traducción: este artículo es una versión traducida de dm-crypt/Drive preparation. Fecha de la última traducción/revisión: 2017-09-29. Puedes ayudar a actualizar la traducción, si adviertes que la versión inglesa ha cambiado: ver cambios.


Volver a Dm-crypt (Español).

Antes de cifrar una unidad, es recomendable realizar un borrado seguro del disco, sobrescribiendo toda la unidad con datos aleatorios. Para evitar ataques criptográficos o recuperación de archivos no deseados, lo ideal es que estos datos sean indistinguibles de los datos escritos posteriormente por dm-crypt. Para comprender mejor el tema vea Disk encryption#Preparing the disk.

Borrar de forma segura la unidad de disco duro

Al decidir qué método utilizar para el borrado seguro de una unidad de disco duro, recuerde que esto solo se debe realizar una vez antes de que la unidad sea utilizada como una unidad cifrada.

Advertencia: haga copias de seguridad apropiadas de aquellos datos importantes antes de comenzar.
Nota: cuando se trate de limpiar gran cantidad de datos, el proceso tardará varias horas o varios días en completarse.
Sugerencia:
  • El proceso de llenado de una unidad cifrada puede tomar más de un día para completarse en un disco de varios terabytes. Para no dejar la máquina inutilizable durante la operación, puede valer la pena hacerlo desde un sistema ya instalado en otra unidad, en lugar de hacerlo desde el sistema de instalación live de Arch.
  • Para discos SSD, a fin de rentabilizar la operación y minimizar los residuos de caché de la memoria flash, considere realizar un borrado de las celdas de la memoria SSD antes de seguir las instrucciones siguientes.

Métodos genéricos

Para obtener instrucciones detalladas sobre cómo borrar y preparar una unidad, consulte Securely wipe disk.

Métodos específicos de dm-crypt

Los dos métodos siguientes son específicos para dm-crypt y se mencionan porque son muy rápidos y se pueden realizar después de configurar la partición también.

Las FAQ de cryptsetup mencionan un procedimiento muy sencillo para usar en un volumen existente de dm-crypt para limpiar todo el espacio libre accesible en el bloque subyacente del dispositivo con datos aleatorios al actuar como un simple generador de números pseudoaleatorios. También se afirma que protege contra la divulgación de patrones de uso. Esto se debe a que los datos cifrados son prácticamente indistinguibles de los aleatorios.

Limpiar un disco o partición vacíos con dm-crypt

En primer lugar, cree un contenedor temporal cifrado en la partición (sdXY) o en el disco completo (sdX), que va a ser cifrado, por ejemplo usando parámetros de cifrado predeterminados y una clave aleatoria a través de la opción --key-file /dev/{u}random (véase también Random number generation):

# cryptsetup open --type plain /dev/sdXY container --key-file /dev/random

En segundo lugar, compruebe que existe:

# fdisk -l
Disk /dev/mapper/container: 1000 MB, 1000277504 bytes
...
Disk /dev/mapper/container does not contain a valid partition table

Limpie el contenedor con ceros. Un uso de if=/dev/urandom no es necesario ya que el cifrado de encriptación se utiliza para enfarruyar.

# dd if=/dev/zero of=/dev/mapper/container status=progress
dd: writing to ‘/dev/mapper/container’: No space left on device
Sugerencia:
  • La utilización de dd con la opción bs=, por ejemplo bs=1M, se utiliza con frecuencia para aumentar el rendimiento del disco de la operación.
  • Para realizar una comprobación de la operación, llene de ceros la partición antes de crear el contenedor de limpieza. Después se puede usar la orden de borrado blockdev --getsize64 /dev/mapper/container para obtener el tamaño exacto del contenedor como root. Ahora se puede usar 'od' para ver como el borrado sobrescribe los sectores puestos a cero, por ejemplo od -j containersize - blocksize para ver el borrado completo hasta el final.

Finalmente, cierre el contenedor temporal:

# cryptsetup close container

Al cifrar un sistema completo, el siguiente paso es particionar[broken link: invalid section]. Si acaba de cifrar una partición, continúe en dm-crypt/Encrypting a non-root file system#Partition.

Limpiar espacio libre con dm-crypt después de la instalación

Los usuarios que no tuvieron tiempo para realizar el borrado antes de la instalación, pueden lograr un efecto similar una vez que se arranque el sistema cifrado y se monten los sistemas de archivos. Sin embargo, considere la posibilidad de que el sistema de archivos afectado haya establecido un espacio reservado, por ejemplo para el usuario root u otro mecanismo de cuota de disco, que puede limitar el borrado, incluso cuando se realiza por el usuario root: en esos casos, es posible que algunas partes del dispositivo de bloque subyacente no se escriban en absoluto.

Para ejecutar el borrado, llene temporalmente el espacio libre restante de la partición escribiendo en un archivo presente en el contenedor cifrado:

# dd if=/dev/zero of=/file/in/container status=progress
dd: writing to ‘/file/in/container’: No space left on device

Sincronice la caché del disco y, luego, elimine el archivo para recuperar el espacio libre.

# sync
# rm /file/in/container

El proceso anterior debe repetirse para cada dispositivo de bloqueo de partición creado y del sistema de archivos en él. Por ejemplo, la instalación de LVM on LUKS, el proceso debe realizarse para cada volumen lógico.

Limpiar el encabezado LUKS

Las particiones formateadas con dm-crypt/LUKS contienen un encabezado con las opciones de cifrado y claves utilizadas, al que se remite dm-mod al abrir el dispositivo de bloque. Después del encabezado comienza la aleatoriedad real de los datos de la partición. Por lo tanto, al reinstalar en una unidad ya cifrada, o desarmar una (por ejemplo, la venta de PC, el cambio de unidades, etc.) «puede» ser suficiente limpiar el encabezado de la partición, en lugar de sobrescribir la unidad entera, que puede ser un proceso largo.

Al borrar el encabezado LUKS se borrará la clave maestra cifrada PBKDF2 (AES), las sal, y así sucesivamente.

Nota: es importante escribir en la partición cifrada con LUKS (/dev/sda1 en este ejemplo) y no directamente a los nodos de las particiones del disco. Configuraciones con cifrado como una capa de asignación de dispositivos encima de otras, por ejemplo LVM sobre LUKS sobre RAID debería escribir en RAID, respectivamente.

En un encabezado con un único valor predeterminado de 256 bits, el tamaño de la clave ocupa 1024 KB. Se aconseja también sobrescribir los primeros 4KB escritos por dm-crypt, de modo que se deben borrar los primeros 1028KB. Esto es 1052672 bytes.

Para poner a cero el encabezado, utilice:

# head -c 1052672 /dev/urandom > /dev/sda1; sync

Para una longitud de clave de 512 bits (por ejemplo, para aes-xts-plain con clave de 512 bits) el encabezado le dedica 2 MB.

En caso de duda, basta con ser generoso y sobrescribir los primeros 10 MB o menos.

# dd if=/dev/urandom of=/dev/sda1 bs=512 count=20480
Nota: con una copia de seguridad de los datos de cabecera se puede rescatar el sistema, pero el sistema de archivos estará probablemente dañado, dado que los primeros sectores cifrados habrán sido sobrescritos. Vea otras secciones sobre cómo hacer una copia de seguridad de los bloques de cabecera cruciales.

Al limpiar el encabezado con datos aleatorios, todo lo que queda en el dispositivo son datos cifrados. Una excepción a esto puede ocurrir con un disco SSD, debido a los bloques de caché utilizados por los SSD. En teoría, puede suceder que el encabezado se haya almacenado en caché durante un tiempo y que, por consiguiente, la copia puede estar disponible después de limpiar el encabezado original. Para evitar problemas de seguridad serios, debe realizarse un borrado ATA seguro del SSD (proceda consultando la página de cryptsetup FAQ 5.19).

Particionar

Esta sección solo se aplica cuando se cifra un sistema completo. Después de que se haya sobrescrito de forma segura la unidad o los discos, se tendrá que elegir adecuadamente un esquema de particionado, teniendo en cuenta los requisitos de dm-crypt y los efectos que tendrán las diversas opciones en la gestión del sistema resultante.

Es importante tener en cuenta que en casi[broken link: invalid section] todos los casos debe haber una partición separada para /boot que debe permanecer sin cifrar, ya que el gestor de arranque necesita acceder al directorio /boot donde se cargarán los módulos de encriptación y de initramfs necesarios para iniciar el resto del sistema (vea mkinitcpio para más detalles). Si esto plantea problemas de seguridad, vea dm-crypt/Specialties#Securing the unencrypted boot partition.

Otro factor importante a tener en cuenta es cómo se manejarán el espacio de swap y la suspensión del sistema, vea dm-crypt/Swap encryption.

Particiones físicas

En el caso más simple, las capas cifradas pueden hacerse directamente sobre las particiones físicas; vea Partitioning para ver los métodos para crearlas. Al igual que en un sistema sin cifrar, será suficiente con una partición raíz, además de otra para /boot, como se indicó anteriormente. Este método permite decidir qué particiones cifrar y cuáles dejar sin cifrar, y funciona igual, independientemente del número de discos implicados. También será posible añadir o eliminar particiones en el futuro, pero el tamaño de una partición estará limitado por el tamaño del disco que lo aloja. Por último, tenga en cuenta que para abrir cada partición encriptada se necesitarán claves o frases de acceso separadas, aunque esto se puede automatizar durante el arranque usando el archivo crypttab, vea Dm-crypt/System configuration#crypttab.

Dispositivos de bloques apilados

Sin embargo, si se necesita más flexibilidad, dm-crypt puede coexistir con otros dispositivos de bloque apilados como LVM y RAID. Los contenedores cifrados pueden residir por debajo o por encima de otros dispositivos de bloque apilados:

  • Si los dispositivos LVM/RAID se crean encima de la capa cifrada, será posible agregar, quitar y cambiar el tamaño de los sistemas de archivos de la misma partición cifrada libremente, y solo se necesitará una clave o frase de acceso para todos ellos. Dado que la capa cifrada reside en una partición física, no será posible, sin embargo, explotar la capacidad de LVM y RAID para abarcar varios discos.
  • Si la capa cifrada se crea en la parte superior de los dispositivos LVM/RAID, todavía será posible reorganizar los sistemas de archivos en el futuro, pero con mayor complejidad, ya que las capas de cifrado tendrán que ser ajustadas en consecuencia. Además, se requerirán frases secretas o claves separadas para abrir cada dispositivo encriptado. Esta, sin embargo, es la única opción para sistemas que necesitan sistemas de archivos cifrados que abarquen múltiples discos.

Subvolúmenes Btrfs

Las características de subvolumes integradas en el sistema de archivos Btrfs se pueden usar con dm-crypt, reemplazando completamente la necesidad de LVM si no se requieren otros sistemas de archivos. Sin embargo, tenga en cuenta que los archivos de intercambio no son soportados por brtrfs, por lo que es necesaria una partición swap cifrada si se desea un espacio de intercambio . Vea también Dm-crypt/Encrypting an entire system#Btrfs subvolumes with swap.

Partición de arranque (GRUB)

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: La función «early cryptodisks» del cargador de arranque de GRUB, permite: (a) desbloquear una partición root cifrada con LUKS para acceder al punto de montaje /boot montada en ella, o (b) desbloquear un partición separada de LUKS para /boot. Se deben agregar las instrucciones para configurar ambos casos. Además de, (c) la conversión a LUKS de una partición no cifrada existente /boot. (Discuss in User_talk:Grazzolini)