Ventanas.  virus  Cuadernos.  Internet.  oficina.  Utilidades.  Conductores

La lucha contra la piratería está cobrando un nuevo impulso, los titulares de derechos y las agencias gubernamentales están redoblando sus esfuerzos en este difícil asunto. Supongo que cada uno de nosotros pensó en cómo proteger los archivos personales de la invasión de "invitados inesperados" y personas simplemente demasiado curiosas.

Introducción

Cifraremos discos medios estándar Ubuntu y la clave de cifrado, como la partición /boot, se colocarán en una unidad extraíble. Pero, ¿por qué cifrar la partición raíz? Después de todo, solo puede cifrar /home? Hay varias razones para esto. El primero se basa en Archivos de configuración se puede extraer cierta información de /etc, incluso si no se trata de datos confidenciales. La segunda es que si de repente te interesa el contenido del disco, siempre puedes decir que todo pasó y que el disco ya estaba lleno de datos pseudoaleatorios. Entonces, ¿qué se necesita para esto?

  • Unidad flash con MBR
  • Ubuntu 12.10
  • Disco duro en blanco

Usaremos AES como algoritmo de cifrado de disco, ya que se acepta como estándar y criptorresistente, y cryptsetup/LUKS como medio. Para poder agregar espacio libre sobre el volumen encriptado, usaremos volúmenes lógicos (LVM).

Crear un volumen cifrado

Después de arrancar desde el LiveCD, debe preparar una unidad flash: cree una segunda partición en ella, donde se colocarán /boot y la clave de cifrado. Al crear la partición /boot con el sistema de archivos ext2 como el segundo, matamos dos pájaros de un tiro: la primera partición será visible en todos los sistemas y los datos se pueden almacenar en ella, y la segunda de Windows no se puede ver. con tanta facilidad, lo que añade molestias a los curiosos. Para particionar, usé gparted, pero nadie te molesta en usar, por ejemplo, fdisk. Después de eso, debe montar la partición recién creada y generar archivo de clave:

¿Por qué leer un byte a la vez? El caso es que la piscina números al azar en el kernel es relativamente pequeño y no siempre contiene suficientes datos aleatorios, por lo que el mouse se movió al azar durante la generación.


Veamos qué hace este comando. La primera clave especifica el tipo de función hash que se utilizará para codificar la clave maestra. La segunda clave especifica el algoritmo y el tipo de cifrado. Me detendré en esto con un poco más de detalle. ¿Qué es CBC? Como sabes, AES es un cifrado de bloques que opera en bloques de 128, 192 o 256 bits. Pero, por regla general, se cifran cantidades mucho mayores de información. Y surge el problema: cómo cifrar para que no se vea una distribución no aleatoria, de la cual un criptoanalista puede extraer información. Las personas inteligentes lo resolvieron de esta manera: el primer bloque contiene IV, un conjunto aleatorio de bits. Y cada bloque subsiguiente de datos abiertos se somete a XOR con el bloque anterior de datos ya cifrados. Todo parece estar bien, pero en el caso del cifrado de disco, dicho esquema, por razones obvias, no es aplicable (¿no esperará de 10 a 20 minutos cada vez hasta que el sistema descifre la sección que necesita?). En LUKS, ESSIV se utiliza para resolver el problema del acceso aleatorio a la información: se cifran bloques de datos relativamente pequeños (sector por sector) y el vector de inicialización se genera en función del número de sector y el hash de clave. Tal esquema también protege contra algunos ataques criptográficos. En particular, es por eso que uso LUKS. Confirmando sus intenciones después del lanzamiento equipo anterior, cree una asignación de dispositivos LUKS:

# cryptsetup -d=/mnt/boot/key.bin luksOpen /dev/sdd cryptodisk

La primera etapa de preparación está completa: ahora el dispositivo cryptodisk ha aparecido en el directorio /dev/mapper, que puede tratarse como un disco normal.


Crear LVM encima de un volumen encriptado

En principio, ahora puede instalar Ubuntu en el criptodisco recién creado, pero, como ya escribí, para poder aumentar el espacio, es mejor crear un volumen LVM encima, lo cual haremos. Inicialicemos el volumen físico y creemos un grupo de volúmenes:

Ahora puede formatearlos en sistemas de archivos. Usted es libre de elegir, pero usé el viejo y bueno ext4 tanto para el volumen raíz como para vg-home; en mi opinión, ya hemos hecho demasiadas trampas para usar sistemas de archivos más nuevos:

Solo necesitamos instalar Ubuntu en una partición/disco no encriptado y moverlo a uno encriptado.

Preparando y migrando Ubuntu

Ahora nos ponemos sin cifrar disco ubuntu- haga la configuración a su gusto, excepto por la colocación de /boot y bootloader. Deben colocarse en una unidad flash, donde creó la sección correspondiente con anticipación. Después de eso, arrancamos desde la unidad flash USB para verificar si todo se ha elevado correctamente, instalamos los paquetes lvm2 y cryptsetup usando apt-get; se eliminaron automáticamente después instalaciones de Ubuntu- y agregue/cambie las líneas /etc/fstab. Debería obtener algo similar (con la excepción de las líneas con pseudo-sistemas de archivos, que, sin embargo, en sistemas modernos No):

/etc/fstab UUID=dd7ca139-074a-4b1b-a116-3a42feab7459/boot ext2 defaults 0 2 /dev/mapper/vg-root/ext4 errores=remount-ro 0 1 /dev/mapper/vg-home/home ext4 defaults 0 1 / dev / mapper / vg - intercambiar ninguno intercambiar sw 0 0

Montamos la partición /boot por UUID para que al agregar nuevos discos no haya confusión con sus nombres. Ahora vamos al archivo /etc/crypttab, lo tenemos con el siguiente contenido:

Vamos a crear un script para no volver a montar la unidad flash USB:

Copie la clave y cryptsetup

cp / boot / key .bin $ (DESTDIR) / etc / crypto copy_exec / sbin / cryptsetup / sbin

Y el script real para conectar el criptodisco (se ejecuta durante el arranque de initrd):

/etc/initramfs-tools/scripts/local-top/cryptokeys. . . modprobe-b dm_crypt mientras! /sbin/cryptsetup -d=/etc/crypto/key.bin luksOpen /dev/disk/by-uuid/c34e4c91-1fa1-4802-88ca-9c3be5c99097 cryptodisk ; hacer eco "Intentar de nuevo..." hecho

El ciclo while es necesario si luego agrega el desbloqueo de volumen con una contraseña. Ambos scripts deben ser ejecutables, de lo contrario, el siguiente comando no los verá y creará una imagen estándar. Ahora puede ejecutar el comando de actualización initrd:

# actualizar initrd -u -k todo -v

Casi nos olvidamos de la configuración del gestor de arranque. Hay dos formas de editarlo: una es simple pero incorrecta: edición directa del archivo /boot/grub/grub.cfg, la segunda también es simple, pero esta vez correcta. La incorrección del primer método es que con cada actualización del kernel, la configuración se sobrescribe usando scripts de /etc/grub.d/. Iremos por el otro lado: agregaremos un script que generará las líneas correctas en la configuración real de Grab. Sin embargo, hay un "pero": al actualizar el kernel, tendrá que cambiarlo cada vez o quedarse con el anterior (este último, en mi opinión, es preferible; consulte la barra lateral). Así es como se ven sus líneas:

/etc/grub .d/40_custom menuentry "Ubuntu crypto" (recordfail = 1 if [ - n $ ( have_grubenv ) ] ; luego save_env recordfail ; fi set quiet = 1 insmod part_msdos insmod ext2 insmod gzio

UUID se toma de un archivo pregrabado

buscar -- no - disquete -- fs - uuid -- set = root dd7ca139 - 074a - 4b1b - a116 - 3a42feab7459

La partición /boot se considera la partición raíz de Grub, por lo que las rutas al kernel y la imagen initrd son relativas a ella.

Opcionalmente, puede desactivar los elementos del menú que no necesita. Para hacer esto, simplemente elimine el permiso de ejecución de todos los scripts innecesarios en /etc/grub.d/. Ahora puedes actualizar la configuración principal:

Después de copiar, puede intentar iniciar desde la unidad flash; simplemente seleccione el elemento del menú de cifrado de Ubuntu. Si todo salió bien, después de un tiempo verá un mensaje de inicio de sesión. En ese caso, puedo felicitarlo, ya está trabajando en un sistema encriptado.


Agregar/Cambiar claves

Digamos que necesita cambiar la clave: la comprometió o simplemente creó una política de cambio y desea seguirla estrictamente. ¿Qué se necesita para esto? en primer lugar hacer respaldo encabezado de volumen LUKS: si todo va bien, después de cambiar la clave, puede destruirlo. Lo hacemos, por supuesto, en una partición sin cifrar:

Miramos los lotes de claves actuales (los lugares en el encabezado del volumen cifrado donde se almacenan las claves; sí, puede haber más de una) y recordamos el número de la activa (Habilitado). Por lo general, esto es cero.


Autor: Nitish Tiwari
Fecha de publicación: 04 de febrero de 2015
Traducción: N. Romodanov
Fecha de transferencia: marzo de 2015

TrueCrypt ya no se mantiene, pero dm-crypt y LUKS son una excelente opción de código abierto. código fuente, que le permite cifrar y utilizar datos cifrados.

La seguridad de los datos se ha convertido en una de las mayores preocupaciones entre los usuarios de Internet. Las noticias sobre el robo de datos de los sitios web se han vuelto muy comunes, pero proteger sus datos no es solo responsabilidad de los sitios web, hay mucho que nosotros, como usuarios finales, podemos hacer por nuestra propia seguridad. Por ejemplo, solo algunos ejemplos son el uso de contraseñas seguras, el cifrado de los discos duros que se encuentran en nuestras computadoras y el uso de conexiones seguras. En particular, el cifrado del disco duro es en el buen sentido seguridad: no solo lo protegerá de cualquier troyano que intente robar sus datos a través de la red, sino también de ataques físicos.

En mayo de este año, se detuvo el desarrollo de la aplicación TrueCrypt, una conocida herramienta de código abierto para el cifrado de discos. Como muchos de ustedes saben, fue una de las herramientas más confiables para encriptar unidades. Es triste ver desaparecer una herramienta de este calibre, pero la grandeza del mundo del código abierto es tal que existen otras herramientas de código abierto que pueden ayudarlo a lograr la seguridad con el cifrado de disco, que también tienen muchos ajustes de configuración. Consideraremos dos de ellos, dm-crypt y LUKS, como Alternativas a TrueCrypt para la plataforma Linux. Comencemos con un vistazo rápido a dm-crypt y luego a LUKS.

Esta es información básica sobre un dispositivo que usa LUKS, que indica qué cifrado se usa, el modo de cifrado, el algoritmo hash y otros datos criptográficos.

Recursos

Paso 01: Considerando Dm-crypt

El nombre de la aplicación dm-crypt es la abreviatura de device mapper-crypt (cifrar al mapear un dispositivo). Como sugiere el nombre, se basa en un marco de mapeo de dispositivos. núcleos de Linux, diseñado para asignar dispositivos de bloques a dispositivos de bloques virtuales de nivel superior. Al mapear dispositivos, puede usar varias funciones del kernel, como dm-cache (crea volúmenes híbridos), dm-verity (diseñado para verificar la integridad de los bloques, es parte de Chrome OS) y también el muy popular Docker. Para fines criptográficos, dm-crypt utiliza el marco de trabajo de la API criptográfica del kernel de Linux.

Entonces, para resumir, la aplicación dm-crypt es un subsistema de cifrado a nivel de kernel que ofrece cifrado de disco transparente: esto significa que los archivos están disponibles inmediatamente después de que se monta el disco; no hay demora visible para el usuario final. Para cifrar usando dm-crypt, simplemente puede especificar uno de los cifrados simétricos, el modo de cifrado, la clave (cualquier tamaño permitido), el modo de generación IV y luego crear un nuevo dispositivo de bloque en /dev. Ahora, al escribir en este dispositivo, se producirá el cifrado y, cuando se lea, se descifrará. Puede montar un sistema de archivos en este dispositivo como de costumbre, o puede usar el dispositivo dm-crypt para crear otras construcciones, como un volumen RAID o LVM. La tabla de mapeo para dm-crypt se establece de la siguiente manera:

Aquí, el valor de sector de inicio suele ser 0, el valor de tamaño es el tamaño del dispositivo en sectores y el nombre de destino es el nombre que desea dar al dispositivo cifrado. La tabla de mapeo de objetivos consta de las siguientes secciones:

[<#opt_params> ]

Paso 02: Teniendo en cuenta LUKS

Como vimos en el paso anterior, la aplicación dm-crypt puede cifrar/descifrar datos por sí sola. Pero tiene algunos inconvenientes: si usa dm-crypt directamente, no creará metadatos en el disco, y esto puede ser un gran problema si desea garantizar la compatibilidad entre diferentes distribuciones de Linux. Además, la aplicación dm-crypt no admite el uso de múltiples claves, mientras que en la vida real es muy importante usar múltiples claves.

Es por estas razones que nació la metodología LUKS (Linux Unified Key Setup). LUKS es el estándar para el cifrado de disco duro en Linux, y la estandarización permite la compatibilidad entre distribuciones. También se admiten varias claves y frases de contraseña. Como parte de esta estandarización, se agrega un encabezado LUKS a los datos cifrados, y este encabezado contiene toda la información necesaria para la configuración. Cuando existe un encabezado de este tipo con datos, los usuarios pueden cambiar fácilmente a cualquier otra distribución. El proyecto dm-crypt actualmente recomienda usar LUKS como la forma preferida de configurar el cifrado de disco. Veamos cómo instalar la utilidad cryptsetup y cómo usarla para crear volúmenes basados ​​en LUKS.

Paso 03: Instalación

La funcionalidad a nivel de kernel que se usa en dm-crypt ya está en todos distribuciones de Linux; solo necesitamos una interfaz para ellos. Usaremos la utilidad cryptsetup, que le permite crear volúmenes usando dm-crypt, el estándar LUKS y la buena y antigua aplicación TrueCrypt. Para instalar cryptsetup en distribuciones Debian/Ubuntu, puede usar los siguientes comandos:

$ sudo apt-get update $ sudo apt-get install cryptsetup

El primer comando sincroniza los archivos de índice de cohetes con el contenido de sus repositorios: obtiene información sobre Últimas Versiones todos los paquetes disponibles. El segundo comando descargará e instalará el paquete cryptsetup en su computadora. Si está usando la distribución RHEL/Fedora/CentOS, puede usar el comando yum para instalar la utilidad cryptsetup.

$ yum instalar cryptsetup-luks

Paso 04: Creación de un archivo de destino

Ahora que la utilidad cryptsetup se ha instalado correctamente, necesitamos crear un archivo de destino que contenga el contenedor LUKS. Aunque hay muchas formas de crear un archivo de este tipo, se deben cumplir una serie de condiciones al crearlo:

  • El archivo no debe constar de varias partes ubicadas en diferentes lugares del disco, es decir, al crearlo, debe asignarle inmediatamente una cantidad suficiente de memoria.
  • Todo el archivo debe llenarse con datos aleatorios para que nadie pueda saber dónde se ubicarán los datos utilizados en el cifrado.

Al crear un archivo que satisfaga las condiciones anteriores, el comando dd puede ayudarnos, aunque funcionará con relativa lentitud. Simplemente utilícelo con el archivo de dispositivo especial /dev/random especificado como entrada y el archivo de destino que se especificará como salida. Un comando de ejemplo se ve así:

$ dd if=/dev/random of=/home/nitish/basefile bs=1M cuenta=128

Esto creará un archivo de 128 MB llamado basefile en el directorio /home/nitish. Sin embargo, tenga en cuenta que este comando puede tardar mucho tiempo en completarse; en el sistema que usó nuestro experto, tomó una hora.

Paso 05: Crear dm-crypt LUKS

Una vez que haya creado el archivo de destino, debe crear una sección LUKS en este archivo. Esta sección sirve como capa base sobre la cual se construye todo el cifrado de datos. Además, el encabezado de esta sección (encabezado LUKS) contiene toda la información necesaria para la compatibilidad con otros dispositivos. Para crear una partición LUKS, use el comando cryptsetup:

$ cryptsetup -y luksFormat /home/nitish/basefile

Después de aceptar que los datos dentro del archivo base se eliminarán permanentemente, ingrese la frase de contraseña y luego confírmela, se creará la partición LUKS. Puede verificar esto con el siguiente comando de archivo:

$filebasefile

Tenga en cuenta que la frase que ingrese aquí se utilizará para descifrar los datos. Es muy importante memorizarlo y guardarlo en un lugar seguro, porque si lo olvidas, casi seguro perderás todos los datos de la partición cifrada.

Paso 06: Crear y montar un sistema de archivos

El contenedor LUKS que creamos en el paso anterior ahora está disponible como archivo. En nuestro ejemplo, es /home/nitish/basefile. La utilidad cryptsetup le permite abrir un contenedor LUKS como un dispositivo independiente. Para hacer esto, primero asigne el archivo contenedor al nombre del dispositivo y luego monte el dispositivo. El comando de visualización se ve así:

Después de ingresar con éxito frase de contraseña creado en el paso anterior, el contenedor LUKS se asignará al volumen 1. Lo que realmente sucede es que el archivo se abre como un dispositivo de bucle invertido local, de modo que el resto del sistema ahora puede tratar el archivo como si fuera un dispositivo real.

Paso 07: Sistema de archivos - continuación

El archivo contenedor LUKS ahora está disponible en el sistema como un dispositivo normal. Antes de que podamos usarlo para las operaciones normales, debemos formatearlo y crear un sistema de archivos en él. Puedes usar cualquier sistema de archivos que es compatible con su sistema. En mi ejemplo, usamos ext4 ya que es el sistema de archivos más nuevo para sistemas Linux.

$ mkfs.ext4 -j /dev/mapper/volumen1

Una vez que el dispositivo se haya formateado con éxito, el siguiente paso es montarlo. Primero debe crear un punto de montaje, preferiblemente en /mnt (sentido común).

$ mkdir /mnt/archivos

Ahora montamos:

Para verificar, use el comando df –h; verá el dispositivo "/dev/mapper/volume1" al final de la lista de dispositivos montados. Se puede ver que el encabezado LUKS ya ocupa algo de espacio en el dispositivo.

Gracias a este paso, ahora puede usar un dispositivo LUKS con un sistema de archivos ext4. Simplemente use este dispositivo de almacenamiento de archivos: todo lo que escriba en este dispositivo se cifrará y todo lo que lea se descifrará y se le mostrará.

Paso 08: Usando un disco encriptado

Hemos seguido varios pasos para lograr este resultado, y si no tienes muy claro cómo funciona todo, lo más probable es que estés confundido sobre lo que se debe hacer solo una vez (requerido para la instalación), y eso se debe hacer. regularmente cuando se utiliza el cifrado. Consideremos el siguiente escenario: completó con éxito todos los pasos anteriores y luego apagó su computadora. Al día siguiente, cuando enciende su computadora, no puede encontrar el dispositivo montado. ¿Adónde fue? Para lidiar con todo esto, debe tener en cuenta que después de iniciar el sistema, debe montar el contenedor LUKS y desmontarlo antes de detener la computadora.

Para acceder al archivo LUKS, cada vez que encienda su computadora, siga estos pasos y luego cierre el archivo de manera segura antes de apagar su computadora:

Abra el archivo LUKS (es decir, /home/nitish/basefile) e ingrese la contraseña. El comando se ve así:

$ cryptsetup luksOpen /home/nitish/basefile volumen1

Una vez que el archivo esté abierto, móntelo (si no se monta automáticamente):

$ mount /dev/mapper/volume1 /mnt/files

Ahora puede usar el dispositivo montado como un disco normal y leer o escribir datos en él.

Una vez hecho esto, desmonte el dispositivo de esta manera:

$ desmontar /mnt/archivos

Después de desmontar con éxito, cierre el archivo LUKS:

$ cryptsetup luksCerrar volumen1

Paso 09: Respaldo

La mayor parte de la pérdida de datos almacenados en un contenedor de LUKS se debe a la corrupción del encabezado de LUKS o de las ranuras de claves. Además del hecho de que los encabezados LUKS pueden corromperse incluso debido a una sobrescritura accidental en la memoria del encabezado, en condiciones reales También es posible que el disco duro falle por completo. La mejor manera para protegerse contra tales problemas es respaldo. Veamos qué opciones de respaldo están disponibles.

Para hacer una copia de seguridad del archivo de encabezado de LUKS, especifique el parámetro luksHeaderBackup en el comando:

$ sudo cryptsetup luksHeaderBackup /home/nitish/basefile --header-backup-file /home/nitish/backupfile

O, si desea restaurar un archivo desde una copia de seguridad, especifique el parámetro luksHeaderRestore en el comando:

$ sudo cryptsetup luksHeaderRestore /home/nitish/basefile --header-backup-file /home/nitish/backupfile

Puede usar el parámetro isLuks para buscar un archivo de encabezado LUKS y verificar que el archivo con el que está tratando corresponde a un dispositivo LUKS real.

$ sudo cryptsetup -v isLuks /home/nitish/basefile

Ya vimos cómo hacer una copia de seguridad de los archivos de encabezado de LUKS, pero hacer una copia de seguridad de un encabezado de LUKS no protege realmente contra una falla total del disco, por lo que debe hacer una copia de seguridad de toda la partición con el siguiente comando cat:

$ cat /home/nitish/archivobase > archivobase.img

Paso 10: Varios ajustes

Hay algunas otras configuraciones que pueden ser útiles cuando se utiliza el cifrado LUKS de dm-crypt. Echemos un vistazo a ellos.

Para volcar el encabezado LUKS, el comando cryptsetup tiene la opción luksDump. Le permitirá tomar una instantánea del archivo de encabezado LUKS del dispositivo que está utilizando. Un comando de ejemplo se ve así:

$ cryptsetup luksDump /home/nitish/basefile

Al comienzo de este artículo, mencionamos que LUKS admite múltiples claves. Veamos esto en acción ahora agregando una nueva ranura para llave ( nota per.: ranura para llaves - lugar llave en mano):

$ cryptsetup luksAddKey --ranura de clave 1 /home/nitish/basefile

Este comando agrega una clave a la ranura de clave número 1, pero solo después de ingresar la contraseña actual (la clave presente en la ranura de clave 0). Hay ocho ranuras para llaves en total, y puede descifrar datos usando cualquier llave. Si descarga el encabezado después de agregar la segunda clave, verá que la segunda ranura de clave está ocupada.

Puede eliminar las ranuras para llaves de esta manera:

$ cryptsetup luksRemoveKey /home/nitish/basefile

Esto eliminará la ranura de llave con el número de ranura más alto. Tenga cuidado de no eliminar todas las ranuras o sus datos se perderán de forma permanente.

: - Ruso

Desarrollo de la página activa completado

Si hay algo que agregar, entonces complemente las secciones con nueva información. Nuestros errores tipográficos y errores en el artículo se pueden editar de forma segura, no es necesario informar esto por correo, tenga en cuenta estilismo esta página y utilice separadores de sección (líneas grises de grosor variable).

Cifrado de datos en Debian

Mucha gente piensa que no necesita cifrar sus datos. Sin embargo, en la vida cotidiana, a menudo nos encontramos con situaciones como "se perdió una unidad flash" o "se entregó una computadora portátil para repararla", etc. Si sus datos están encriptados, entonces no tiene que preocuparse en absoluto: nadie los publicará en Internet ni los utilizará de ninguna otra manera.

Cifrado con cryptsetup

Instale los componentes necesarios:

# apt-get install cryptsetup

Sintaxis estándar

/dev/sda2. Ingresemos el comando:

# cryptsetup crear sda2_crypt /dev/sda2

Este comando creará una conexión encriptada a nuestro disco. En catálogo /dev/mapeador aparecerá un nuevo dispositivo con el nombre que solicitamos: /dev/mapper/sda2_crypt, accediendo a los cuales usamos acceso de disco encriptado. En el caso de LUKS, el nombre sería /dev/mapper/sda2_crypt

Si ya había un sistema de archivos en el disco y nos gustaría guardar datos en él, entonces necesitamos encriptarlos para su uso posterior:

# dd if=/dev/sda2 of=/dev/mapper/sda2_crypt

Si se crea un nuevo disco en una partición vacía, puede formatearlo:

# mkfs.ext3 /dev/mapper/sda2_crypt

Más tarde, puede montar este disco en cualquier lugar:

# mount /dev/mapper/sda2_crypt /path/to/mount/point

Verifique la integridad de los datos (como de costumbre, es mejor usarlo solo en estado desmontado):

# fsck.ext3 /dev/mapper/sda2_crypt

E incluso descifrar de nuevo si ya no queremos usar el cifrado:

# dd if=/dev/mapper/sda2_crypt of=/dev/sda2

sintaxis de LUKS

Los pasos anteriores se pueden realizar de acuerdo con el estándar LUKS

Inicializamos la sección:

cryptsetup luksFormat /dev/sda2

Nos conectamos al sistema:

cryptsetup luksOpen /dev/sda2 sda2_crypt

Formateo:

mkfs.ext4 -v -L DATOS /dev/mapper/sda2_crypt

Montamos:

montar /dev/mapper/sda2_crypt /mnt/datos

La sección se puede desactivar manualmente sobre el sistema

cryptsetup luksCerrar sda2_crypt

Conexión al inicio

El archivo se utiliza para este propósito. cripta.

Para nuestro disco, escriba la siguiente línea en él:

nano /etc/crypttab # name mapper device key params/options # Sintaxis estándar sda2_crypt /dev/sda2 none aes-cbc-plain:sha256 # y/o LUKS estándar sda2_crypt /dev/sda2 none luks

El valor predeterminado es cifrar con una contraseña ingresada por el usuario. Por lo tanto, cada vez que inicie su computadora, el sistema le pedirá una contraseña para conectar cada partición cifrada. Incluso si estas secciones no están registradas en fstab.

Si queremos montar manualmente, entonces agregue la opción auto en el campo "Configuración/Opciones".

Montar una partición cifrada manualmente según los datos de /etc/crypttab

cryptdisks_start msda2_crypt

Y apagado con fs premontado.

cryptdisks_stop sda2_crypt

Para montar automáticamente el fs en la partición cifrada conectada, agregue una línea a /etc/fstab

/dev/mapper/sda2_crypt /mnt/data ext4 por defecto 0 0

Trabajando con llaves en LUKS

La sección LUKS admite 8 teclas diferentes, cada una de las cuales encaja en su propia ranura.

Ver la lista de llaves usadas

cryptsetup luksDump /dev/sda2

Se pueden usar 2 tipos de claves en LUKS: frases clave y archivos.

Puedes agregar una palabra clave

cryptsetup luksAddKey /dev/sda2

Puede agregar un archivo clave (2048 bits) y establecer derechos de acceso al mismo.

dd if=/dev/urandom of=/root/ext2.key bs=512 count=4 cryptsetup luksAddKey /dev/sda2 /root/ext2.key chmod 400 /root/sda2.key cryptsetup -d /root/sda2.key luksOpen /dev/sda2 sda2_crypt

Para conectarse al inicio por clave, edite /etc/crypttab

nano /etc/crypttab sda2_crypt /dev/sda2 /root/sda2.key luks

Puede eliminar una frase de contraseña o clave de una sección

cryptsetup luksKillSlot /dev/sda2 1

Montaje de emergencia en una distribución "ajena"

Nadie está a salvo de los problemas y, a veces, necesita acceder a una partición cifrada de una emergencia disco LiveCD.

Arrancamos, conectamos la partición al sistema y montamos el fs:

cryptsetup luksOpen /dev/sda2 sda2_crypt mount -t ext4 /dev/mapper/sda2_crypt /mnt/backup

Después del trabajo, desmonte el fs y desconecte la partición cifrada del sistema

umount /mnt/backup cryptsetup luksCerrar sda2_crypt

Mensajes de error de apagado

Si la partición raíz está cifrada, se mostrará un mensaje al apagar

detener los primeros discos criptográficos... falló

Este es un error técnico. Al apagar, los sistemas de archivos siempre se desmantelan primero y solo luego se desmonta la partición. Como resultado, resulta que la utilidad cryptsetup ubicada en la partición raíz sin montar ya no está disponible para iniciarse, sobre lo cual nos informa INIT. Sin muletas, este problema no se puede resolver, porque. para esto, debe considerar las opciones con la transferencia de cryptsetup a un disco RAM

Una situación similar ocurre cuando se usa un software RAID que contiene una partición raíz. 8)

Cifrado con el módulo loop-aes

Cifrado de una partición de disco duro, unidad flash con contraseña

En esto cómo método de cifrado descrito AES256, se pueden aplicar otros métodos de manera similar (reemplazando el nombre del método con el apropiado). Necesitaremos los siguientes paquetes:

# apt-get install loop-aes-utils loop-aes-modules-`uname -r`

Nota: si está utilizando un kernel para el cual los módulos loop-aes necesarios no están en el repositorio, puede instalar los módulos con los siguientes comandos:

# apt-get install asistente de módulo loop-aes-source # asistente de módulo a-i loop-aes

Primera etapa

En etapa inicial estamos preparando el disco para trabajar con él mediante cifrado.

Seleccionemos la partición del disco (o pendrive) que queremos encriptar, por ejemplo será /dev/sda2. Ingresemos el comando:

# losetup -e AES256 -T /dev/loop0 /dev/sda2

Después de ejecutar este comando, todas las llamadas al dispositivo /dev/bucle0 será encriptado y encriptado y redirigido al dispositivo /dev/sda2. Ahora tenemos canales cifrados y no cifrados para el dispositivo de almacenamiento. Los datos se cifran con la contraseña que especificó al ejecutar losetup.

Ahora podemos, por ejemplo, formatear el dispositivo:

# mkfs.ext3 /dev/loop0

Podemos montarlo:

# montar /dev/loop0 /ruta/hacia/montar

podemos deshabilitar el cifrado:

# losetup -d /dev/loop0

y lo más importante, podemos cifrar la partición sin pérdida de datos:

# dd if=/dev/sda2 of=/dev/loop0

y también descifrar si decidimos que el cifrado no es nuestro método:

# dd if=/dev/loop0 of=/dev/sda2

Bueno, la mejor parte es que podemos hacer verificaciones de integridad del sistema de archivos:

# fsck.ext3 /dev/loop0

Esta función no está disponible en todos los métodos de cifrado de partición.

Uso diario

Si ya tenías una entrada de sección /dev/sda2 en tus /etc/fstab, entonces solo necesita agregar opciones, y si no, escriba algo como esto:

/dev/sda2 /ruta/hacia/montar bucle ext3,cifrado=AES256 0 0

Ahora al cargar Sistema operativo se le pedirá una contraseña para montar.

Si no desea que el proceso de descarga se interrumpa por una solicitud de contraseña, puede agregar opciones auto,usuario en expediente /etc/fstab:

/dev/sda2 /ruta/hacia/montar bucle ext3,cifrado=AES256,noauto,usuario 0 0

Por supuesto, puede montar manualmente (o desde un script):

# mount /dev/sda2 /path/to/mount -o loop,encryption=AES256

Montaje de varios sistemas de archivos

A veces quieres cifrar varios tramos con datos a la vez, pero para no entrar en un mar de contraseñas para cada uno montar. Por ejemplo, tienes un pendrive que llevas de casa al trabajo, un disco duro portátil, etc. O solo algunas particiones / discos duros.

Digamos que tenemos una partición encriptada /dev/sda2, que montamos en el directorio cada vez que arrancamos /mnt1. Apareció nuevo disco duro /dev/sdb1 y queremos que se monte automáticamente en el directorio mnt2 al montar el primero. Por supuesto, puedes crear sistema común en algo como LVM, pero puedes ir de la manera más simple:

prescribir en fstab como la siguiente línea:

/dev/sda2 /mnt1 ext3 noatime,exec,loop,encryption=AES256 0 0

El sistema, al arrancar, monta los puntos en el mismo orden que se describe en fstab, por lo que si la primera partición no está montada, la clave para montar la segunda partición no estará disponible y la segunda partición tampoco se montará.

La contraseña se almacena como Texto sin formato esto ciertamente no es muy hermoso, pero está almacenado en una partición encriptada (que se puede desmontar). Puedes usar en su lugar gpg-key, sin embargo, esto no agregará mucha seguridad (si ya pueden robar la clave, entonces no hará mucha diferencia cuál será esta clave), opción de cifrado con gpg-clave descrita en hombre perdido, aquí solo daré un ejemplo de grabación en fstab:

/dev/sda2 /mnt1 ext3 noatime,exec,loop,encryption=AES256 0 0

notas

Para obtener más información sobre los algoritmos de cifrado admitidos, consulte hombre perdido, también puede ver una descripción de otras opciones del programa perder la configuración.

Si tiene problemas para instalar los módulos AES, lea la documentación que viene con el paquete bucle-aes-fuente.

GRUB y disco raíz cifrado

Al instalar una partición raíz en un disco encriptado, GRUB puede mostrar errores en el menú principal. Esto sucede porque la fuente estándar /usr/share/grub/unicode.pf2 no ​​está disponible. Copiando la fuente

cp /usr/share/grub/unicode.pf2 /boot/grub/

Especificar la configuración

nano /etc/default/grub GRUB_FONT=/boot/grub/unicode.pf2

Aplicando la configuración:

actualizar-grub

TrueCrypt ya no es compatible, pero dm-crypt y LUKS son una excelente opción de código abierto para cifrar y usar datos cifrados.

La seguridad de los datos se ha convertido en una de las mayores preocupaciones entre los usuarios de Internet. Las noticias sobre el robo de datos de los sitios web se han vuelto muy comunes, pero proteger sus datos no es solo responsabilidad de los sitios web, hay mucho que nosotros, como usuarios finales, podemos hacer por nuestra propia seguridad. Por ejemplo, solo algunos ejemplos son el uso de contraseñas seguras, el cifrado de los discos duros que se encuentran en nuestras computadoras y el uso de conexiones seguras. En particular, el cifrado del disco duro es una buena manera de garantizar la seguridad: no solo lo protegerá de cualquier troyano que intente robar sus datos a través de la red, sino también de ataques físicos.

En mayo de este año, se detuvo el desarrollo de la aplicación TrueCrypt, una conocida herramienta de código abierto para el cifrado de discos. Como muchos de ustedes saben, fue una de las herramientas más confiables para encriptar unidades. Es triste ver desaparecer una herramienta de este calibre, pero la grandeza del mundo del código abierto es tal que existen otras herramientas de código abierto que pueden ayudarlo a lograr la seguridad con el cifrado de disco, que también tienen muchos ajustes de configuración. Veremos dos de ellos, dm-crypt y LUKS, como una alternativa a TrueCrypt para la plataforma Linux. Comencemos con un vistazo rápido a dm-crypt y luego a LUKS.

Esta es información básica sobre un dispositivo que usa LUKS, que indica qué cifrado se usa, el modo de cifrado, el algoritmo hash y otros datos criptográficos.

Recursos

Paso 01: Considerando Dm-crypt

El nombre de la aplicación dm-crypt es la abreviatura de device mapper-crypt (cifrar al mapear un dispositivo). Como sugiere el nombre, se basa en el mapeo de dispositivos, un marco de kernel de Linux diseñado para mapear dispositivos de bloques a dispositivos de bloques virtuales de nivel superior. Al mapear dispositivos, puede usar varias funciones del kernel, como dm-cache (crea volúmenes híbridos), dm-verity (diseñado para verificar la integridad de los bloques, es parte de Chrome OS) y también el muy popular Docker. Para fines criptográficos, dm-crypt utiliza el marco de trabajo de la API criptográfica del kernel de Linux.

Entonces, para resumir, la aplicación dm-crypt es un subsistema de cifrado a nivel de kernel que ofrece cifrado de disco transparente: esto significa que los archivos están disponibles inmediatamente después de que se monta el disco; no hay demora visible para el usuario final. Para cifrar usando dm-crypt, simplemente puede especificar uno de los cifrados simétricos, el modo de cifrado, la clave (cualquier tamaño permitido), el modo de generación IV y luego crear un nuevo dispositivo de bloque en /dev. Ahora, al escribir en este dispositivo, se producirá el cifrado y, cuando se lea, se descifrará. Puede montar un sistema de archivos en este dispositivo como de costumbre, o puede usar el dispositivo dm-crypt para crear otras construcciones, como un volumen RAID o LVM. La tabla de mapeo para dm-crypt se establece de la siguiente manera:

Aquí, el valor de sector de inicio suele ser 0, el valor de tamaño es el tamaño del dispositivo en sectores y el nombre de destino es el nombre que desea dar al dispositivo cifrado. La tabla de mapeo de objetivos consta de las siguientes secciones:

[<#opt_params> ]

Paso 02: Teniendo en cuenta LUKS

Como vimos en el paso anterior, la aplicación dm-crypt puede cifrar/descifrar datos por sí sola. Pero tiene algunos inconvenientes: si usa dm-crypt directamente, no creará metadatos en el disco, y esto puede ser un gran problema si desea garantizar la compatibilidad entre diferentes distribuciones de Linux. Además, la aplicación dm-crypt no admite el uso de múltiples claves, mientras que en la vida real es muy importante usar múltiples claves.

Es por estas razones que nació la metodología LUKS (Linux Unified Key Setup). LUKS es el estándar para el cifrado de disco duro en Linux, y la estandarización permite la compatibilidad entre distribuciones. También se admiten varias claves y frases de contraseña. Como parte de esta estandarización, se agrega un encabezado LUKS a los datos cifrados, y este encabezado contiene toda la información necesaria para la configuración. Cuando existe un encabezado de este tipo con datos, los usuarios pueden cambiar fácilmente a cualquier otra distribución. El proyecto dm-crypt actualmente recomienda usar LUKS como la forma preferida de configurar el cifrado de disco. Veamos cómo instalar la utilidad cryptsetup y cómo usarla para crear volúmenes basados ​​en LUKS.

Paso 03: Instalación

La funcionalidad a nivel de kernel que usa dm-crypt ya está disponible en todas las distribuciones de Linux; solo necesitamos una interfaz para ellos. Usaremos la utilidad cryptsetup, que le permite crear volúmenes usando dm-crypt, el estándar LUKS y la buena y antigua aplicación TrueCrypt. Para instalar cryptsetup en distribuciones Debian/Ubuntu, puede usar los siguientes comandos:

$ sudo apt-get update $ sudo apt-get install cryptsetup

El primer comando sincroniza los archivos de índice de cohetes con el contenido de sus repositorios: obtiene información sobre las últimas versiones de todos los paquetes disponibles. El segundo comando descargará e instalará el paquete cryptsetup en su computadora. Si está usando la distribución RHEL/Fedora/CentOS, puede usar el comando yum para instalar la utilidad cryptsetup.

$ yum instalar cryptsetup-luks

Paso 04: Creación de un archivo de destino

Ahora que la utilidad cryptsetup se ha instalado correctamente, necesitamos crear un archivo de destino que contenga el contenedor LUKS. Aunque hay muchas formas de crear un archivo de este tipo, se deben cumplir una serie de condiciones al crearlo:

  • El archivo no debe constar de varias partes ubicadas en diferentes lugares del disco, es decir, al crearlo, debe asignarle inmediatamente una cantidad suficiente de memoria.
  • Todo el archivo debe llenarse con datos aleatorios para que nadie pueda saber dónde se ubicarán los datos utilizados en el cifrado.

Al crear un archivo que satisfaga las condiciones anteriores, el comando dd puede ayudarnos, aunque funcionará con relativa lentitud. Simplemente utilícelo con el archivo de dispositivo especial /dev/random especificado como entrada y el archivo de destino que se especificará como salida. Un comando de ejemplo se ve así:

$ dd if=/dev/random of=/home/nitish/basefile bs=1M cuenta=128

Esto creará un archivo de 128 MB llamado basefile en el directorio /home/nitish. Sin embargo, tenga en cuenta que este comando puede tardar mucho tiempo en completarse; en el sistema que usó nuestro experto, tomó una hora.

Paso 05: Crear dm-crypt LUKS

Una vez que haya creado el archivo de destino, debe crear una sección LUKS en este archivo. Esta sección sirve como capa base sobre la cual se construye todo el cifrado de datos. Además, el encabezado de esta sección (encabezado LUKS) contiene toda la información necesaria para la compatibilidad con otros dispositivos. Para crear una partición LUKS, use el comando cryptsetup:

$ cryptsetup -y luksFormat /home/nitish/basefile

Después de aceptar que los datos dentro del archivo base se eliminarán de forma permanente, ingrese la frase de contraseña y luego confírmela, se creará la partición LUKS. Puede verificar esto con el siguiente comando de archivo:

$filebasefile

Tenga en cuenta que la frase que ingrese aquí se utilizará para descifrar los datos. Es muy importante memorizarlo y guardarlo en un lugar seguro, porque si lo olvidas, casi seguro perderás todos los datos de la partición cifrada.

Paso 06: Crear y montar un sistema de archivos

El contenedor LUKS que creamos en el paso anterior ahora está disponible como archivo. En nuestro ejemplo, es /home/nitish/basefile. La utilidad cryptsetup le permite abrir un contenedor LUKS como un dispositivo independiente. Para hacer esto, primero asigne el archivo contenedor al nombre del dispositivo y luego monte el dispositivo. El comando de visualización se ve así:

Después de ingresar con éxito la frase de contraseña creada en el paso anterior, el contenedor LUKS se asignará al volumen 1. Lo que realmente sucede es que el archivo se abre como un dispositivo de bucle invertido local, de modo que el resto del sistema ahora puede tratar el archivo como si fuera un dispositivo real.

Paso 07: Sistema de archivos - continuación

El archivo contenedor LUKS ahora está disponible en el sistema como un dispositivo normal. Antes de que podamos usarlo para las operaciones normales, debemos formatearlo y crear un sistema de archivos en él. Puede utilizar cualquier sistema de archivos compatible con su sistema. En mi ejemplo, usamos ext4 ya que es el sistema de archivos más nuevo para sistemas Linux.

$ mkfs.ext4 -j /dev/mapper/volumen1

Una vez que el dispositivo se haya formateado con éxito, el siguiente paso es montarlo. Primero debe crear un punto de montaje, preferiblemente en /mnt (sentido común).

$ mkdir /mnt/archivos

Ahora montamos:

Para verificar, use el comando df –h; verá el dispositivo "/dev/mapper/volume1" al final de la lista de dispositivos montados. Se puede ver que el encabezado LUKS ya ocupa algo de espacio en el dispositivo.

Gracias a este paso, ahora puede usar un dispositivo LUKS con un sistema de archivos ext4. Simplemente use este dispositivo de almacenamiento de archivos: todo lo que escriba en este dispositivo se cifrará y todo lo que lea se descifrará y se le mostrará.

Paso 08: Usando un disco encriptado

Hemos seguido varios pasos para lograr este resultado, y si no tienes muy claro cómo funciona todo, lo más probable es que estés confundido sobre lo que se debe hacer solo una vez (requerido para la instalación), y eso se debe hacer. regularmente cuando se utiliza el cifrado. Consideremos el siguiente escenario: completó con éxito todos los pasos anteriores y luego apagó su computadora. Al día siguiente, cuando enciende su computadora, no puede encontrar el dispositivo montado. ¿Adónde fue? Para lidiar con todo esto, debe tener en cuenta que después de iniciar el sistema, debe montar el contenedor LUKS y desmontarlo antes de detener la computadora.

Para acceder al archivo LUKS, cada vez que encienda su computadora, siga estos pasos y luego cierre el archivo de manera segura antes de apagar su computadora:

Abra el archivo LUKS (es decir, /home/nitish/basefile) e ingrese la contraseña. El comando se ve así:

$ cryptsetup luksOpen /home/nitish/basefile volumen1

Una vez que el archivo esté abierto, móntelo (si no se monta automáticamente):

$ mount /dev/mapper/volume1 /mnt/files

Ahora puede usar el dispositivo montado como un disco normal y leer o escribir datos en él.

Una vez hecho esto, desmonte el dispositivo de esta manera:

$ desmontar /mnt/archivos

Después de desmontar con éxito, cierre el archivo LUKS:

$ cryptsetup luksCerrar volumen1

Paso 09: Respaldo

La mayor parte de la pérdida de datos almacenados en un contenedor de LUKS se debe a la corrupción del encabezado de LUKS o de las ranuras de claves. Además del hecho de que los encabezados LUKS pueden corromperse incluso debido a una sobrescritura accidental en la memoria del encabezado, también es posible una falla completa del disco duro en condiciones reales. La mejor manera de protegerse de tales problemas es una copia de seguridad. Veamos qué opciones de respaldo están disponibles.

Para hacer una copia de seguridad del archivo de encabezado de LUKS, especifique el parámetro luksHeaderBackup en el comando:

$ sudo cryptsetup luksHeaderBackup /home/nitish/basefile --header-backup-file /home/nitish/backupfile

O, si desea restaurar un archivo desde una copia de seguridad, especifique el parámetro luksHeaderRestore en el comando:

$ sudo cryptsetup luksHeaderRestore /home/nitish/basefile --header-backup-file /home/nitish/backupfile

Puede usar el parámetro isLuks para buscar un archivo de encabezado LUKS y verificar que el archivo con el que está tratando corresponde a un dispositivo LUKS real.

$ sudo cryptsetup -v isLuks /home/nitish/basefile

Ya vimos cómo hacer una copia de seguridad de los archivos de encabezado de LUKS, pero hacer una copia de seguridad de un encabezado de LUKS no protege realmente contra una falla total del disco, por lo que debe hacer una copia de seguridad de toda la partición con el siguiente comando cat:

$ cat /home/nitish/archivobase > archivobase.img

Paso 10: Varios ajustes

Hay algunas otras configuraciones que pueden ser útiles cuando se utiliza el cifrado LUKS de dm-crypt. Echemos un vistazo a ellos.

Para volcar el encabezado LUKS, el comando cryptsetup tiene la opción luksDump. Le permitirá tomar una instantánea del archivo de encabezado LUKS del dispositivo que está utilizando. Un comando de ejemplo se ve así:

$ cryptsetup luksDump /home/nitish/basefile

Al comienzo de este artículo, mencionamos que LUKS admite múltiples claves. Veamos esto en acción ahora agregando una nueva ranura para llave ( nota per.: ranura para llaves - lugar llave en mano):

$ cryptsetup luksAddKey --ranura de clave 1 /home/nitish/basefile

Este comando agrega una clave a la ranura de clave número 1, pero solo después de ingresar la contraseña actual (la clave presente en la ranura de clave 0). Hay ocho ranuras para llaves en total, y puede descifrar datos usando cualquier llave. Si descarga el encabezado después de agregar la segunda clave, verá que la segunda ranura de clave está ocupada.

Puede eliminar las ranuras para llaves de esta manera:

$ cryptsetup luksRemoveKey /home/nitish/basefile

Esto eliminará la ranura de llave con el número de ranura más alto. Tenga cuidado de no eliminar todas las ranuras o sus datos se perderán de forma permanente.

Hay muchas razones para cifrar los datos en su disco duro, pero el costo de la seguridad de los datos es un rendimiento más lento del sistema. El propósito de este artículo es comparar el rendimiento cuando se trabaja con un disco cifrado por diferentes medios.

Para hacer la diferencia más dramática, no elegimos un automóvil ultramoderno, sino uno promedio. El disco duro mecánico habitual de 500 GB, AMD de doble núcleo a 2,2 GHz, 4 gigas de RAM, Windows 7 SP 1 de 64 bits. No se lanzarán antivirus ni otros programas durante la prueba para que nada pueda afectar los resultados.

Para evaluar el rendimiento, elegí CrystalDiskMark. En cuanto a las herramientas de cifrado probadas, me decidí por la siguiente lista: BitLocker, TrueCrypt, VeraCrypt, CipherShed, Symantec Endpoint Encryption y CyberSafe Top Secret.

bloqueador de bits

Es la herramienta de cifrado de disco estándar integrada en Microsoft Windows. Mucha gente simplemente lo usa sin instalar programas de terceros. Efectivamente, ¿por qué, si todo ya está en el sistema? Por un lado, a la derecha. Por otro lado, el código está cerrado y no hay certeza de que no se hayan dejado puertas traseras para el FBI y otras personas interesadas.

El disco se cifra mediante el algoritmo AES con una longitud de clave de 128 o 256 bits. La clave se puede almacenar en el Módulo de plataforma segura, en la computadora misma o en una unidad flash.

Si se usa TPM, cuando la computadora se inicia, la clave se puede obtener inmediatamente o después de la autenticación. Puede iniciar sesión usando una clave en una unidad flash USB o ingresando un código PIN desde el teclado. Las combinaciones de estos métodos brindan muchas opciones para restringir el acceso: solo TPM, TPM y USB, TPM y PIN, o los tres a la vez.

BitLocker tiene dos ventajas innegables: en primer lugar, se puede controlar mediante pólizas de grupo; segundo, encripta volúmenes, no unidades físicas. Esto le permite cifrar una matriz de varias unidades, lo que otras herramientas de cifrado no pueden hacer. BitLocker también es compatible con la tabla de particiones GUID (GPT), de la que ni siquiera la bifurcación TruCrypt más avanzada, VeraCrypt, puede presumir. Para cifrar un disco GPT del sistema con él, primero deberá convertirlo al formato MBR. En el caso de BitLocker, esto no es obligatorio.

En general, solo hay un inconveniente: fuente cerrada. Si guarda secretos del hogar, BitLocker es excelente. Si su disco está lleno de documentos de importancia nacional, es mejor buscar otra cosa.

¿Es posible descifrar BitLocker y TrueCrypt?

Si le pregunta a Google, encontrará un interesante programa Elcomsoft Forensic Disk Decryptor adecuado para descifrar unidades BitLocker, TrueCrypt y PGP. En el marco de este artículo, no lo probaré, pero compartiré mis impresiones sobre otra utilidad de Elcomsoft, a saber, Advanced EFS Data Recovery. Fue excelente para descifrar carpetas EFS, pero con la condición de que no se estableciera ninguna contraseña de usuario. Si establece una contraseña de al menos 1234, el programa resultó ser impotente. En cualquier caso, no pude descifrar la carpeta EFS encriptada que pertenece al usuario con la contraseña 111. Creo que la situación será la misma con el producto Forensic Disk Decryptor.

TrueCrypt

Este es un legendario programa de cifrado de disco que se suspendió en 2012. La historia que le sucedió a TrueCrypt todavía está envuelta en la oscuridad, y nadie sabe realmente por qué el desarrollador decidió dejar de apoyar su creación.

Solo hay fragmentos de información que no te permiten armar el rompecabezas. Entonces, en 2013, comenzó la recaudación de fondos para una auditoría independiente de TrueCrypt. El motivo fue la información recibida de Edward Snowden sobre el debilitamiento intencional de las herramientas de encriptación TrueCrypt. Se recaudaron más de 60 mil dólares por la auditoría. A principios de abril de 2015, se completó el trabajo, pero no se identificaron errores graves, vulnerabilidades u otras fallas significativas en la arquitectura de la aplicación.

Tan pronto como terminó la auditoría, TrueCrypt volvió a estar en el centro del escándalo. Los especialistas de ESET publicaron un informe de que la versión en ruso de TrueCrypt 7.1a, descargada de truecrypt.ru, contenía malware. Además, el sitio truecrypt.ru en sí mismo se utilizó como un centro de comando: los comandos se enviaban desde él a las computadoras infectadas. En general, esté atento y no descargue programas de ningún lado.

Los beneficios de TrueCrypt incluyen código abierto, ahora auditado de forma independiente para la confiabilidad, y soporte para volúmenes dinámicos de Windows. Desventajas: el programa ya no está desarrollado y los desarrolladores no tuvieron tiempo de implementar el soporte UEFI / GPT. Pero si el objetivo es cifrar una unidad que no sea del sistema, entonces no importa.

A diferencia de BitLocker, donde solo se admite AES, TrueCrypt también tiene Serpent y Twofish. Para generar claves de cifrado, sal y clave de encabezado, el programa le permite seleccionar una de las tres funciones hash: HMAC-RIPEMD-160, HMAC-Whirlpool, HMAC-SHA-512. Sin embargo, ya se ha escrito mucho sobre TrueCrypt, por lo que no nos repetiremos.

VeraCrypt

El clon de TrueCrypt más avanzado. Tiene su propio formato, aunque es posible trabajar en modo TrueCrypt, que admite discos cifrados y virtuales en formato TrueCrypt. A diferencia de CipherShed, VeraCrypt se puede instalar en la misma computadora al mismo tiempo que TrueCrypt.

INFORMACIÓN

Después de retirarse, TrueCrypt dejó un rico legado: tiene muchas bifurcaciones, comenzando con VeraCrypt, CipherShed y DiskCryptor.

TrueCrypt usa 1000 iteraciones para generar la clave que encriptará la partición del sistema, mientras que VeraCrypt usa 327,661 iteraciones. Para particiones estándar (que no son del sistema), VeraCrypt usa 655 331 iteraciones para la función hash RIPEMD-160 y 500 000 iteraciones para SHA-2 y Whirlpool. Esto hace que las particiones encriptadas sean mucho más resistentes a los ataques de fuerza bruta, pero también reduce significativamente el rendimiento de trabajar con dicha partición. Cuánto, pronto lo sabremos.

Entre las ventajas de VeraCrypt se encuentran el código fuente abierto, así como un formato de disco virtual y encriptado patentado y más seguro en comparación con TrueCrypt. Las desventajas son las mismas que en el caso del progenitor: la falta de soporte para UEFI / GPT. Todavía es imposible cifrar el disco GPT del sistema, pero los desarrolladores afirman que están trabajando en este problema y que pronto estará disponible dicho cifrado. Pero han estado trabajando en esto durante dos años (desde 2014), y aún no se sabe cuándo habrá un lanzamiento con soporte GPT y si lo será.

Cobertizo de cifrado

Otro clon de TrueCrypt. A diferencia de VeraCrypt, utiliza el formato TrueCrypt original, por lo que puede esperar que su rendimiento sea similar al de TrueCrypt.

Las ventajas y desventajas son las mismas, aunque a las desventajas se puede agregar la imposibilidad de instalar TrueCrypt y CipherShed en la misma computadora. Además, si intenta instalar CipherShed en una máquina con TrueCrypt ya instalado, el instalador ofrece eliminar el programa anterior, pero no puede hacer el trabajo.

Cifrado de punto final de Symantec

En 2010, Symantec compró los derechos del programa PGPdisk. El resultado fueron productos como PGP Desktop y, posteriormente, Endpoint Encryption. Eso es lo que consideraremos. El programa es, por supuesto, propietario, el código fuente está cerrado y una licencia cuesta 64 euros. Pero hay soporte para GPT, pero solo a partir de Windows 8.

En otras palabras, si necesita compatibilidad con GPT y desea cifrar partición del sistema, deberá elegir entre dos soluciones propietarias: BitLocker y Endpoint Encryption. Por supuesto, es poco probable que un usuario doméstico instale Endpoint Encryption. El problema es que esto requiere Symantec Drive Encryption, que requiere un agente y un servidor de administración de Symantec Endpoint Encryption (SEE) para instalar, y el servidor también quiere instalar IIS 6.0. ¿No es demasiado bueno para un programa de cifrado de disco? Pasamos por todo esto solo para medir el rendimiento.

Momento de la verdad

Entonces, procedemos a lo más interesante, a saber, las pruebas. El primer paso es verificar el rendimiento del disco sin encriptar. Nuestra “víctima” será una partición de disco duro de 28 GB (regular, no SSD), formateada como NTFS.

Abra CrystalDiskMark, seleccione el número de pases, el tamaño del archivo temporal (en todas las pruebas usaremos 1 Gbps) y el disco en sí. Vale la pena señalar que la cantidad de pases prácticamente no afecta los resultados. La primera captura de pantalla muestra los resultados de medir el rendimiento de un disco sin cifrado con un número de pases de 5, el segundo, con un número de pases de 3. Como puede ver, los resultados son casi idénticos, por lo que nos centraremos en tres pases.


Los resultados de CrystalDiskMark deben interpretarse de la siguiente manera:

  • Seq Q32T1: prueba de escritura secuencial/lectura secuencial, número de colas: 32, subprocesos: 1;
  • 4K Q32T1: prueba de escritura aleatoria/lectura aleatoria (tamaño de bloque de 4 KB, número de colas: 32, subprocesos: 1);
  • Seq - prueba de escritura secuencial/lectura secuencial;
  • 4K: prueba de escritura aleatoria/lectura aleatoria (tamaño de bloque de 4 KB);

Comencemos con BitLocker. Tomó 19 minutos cifrar una partición de 28 GB.

La continuación del artículo está disponible solo para suscriptores.

Opción 1. Suscríbete a "Hacker" para leer todos los artículos del sitio

La suscripción le permitirá leer TODOS los materiales pagados del sitio, incluido este artículo, durante el período especificado. Aceptamos pago con tarjetas bancarias, dinero electrónico y transferencias desde las cuentas de los operadores móviles.

Los requisitos de privacidad y seguridad de una computadora están completamente determinados por la naturaleza de los datos almacenados en ella. Una cosa es si tu computadora sirve como estación de entretenimiento y no hay nada en ella excepto algunos juguetes y un papá con fotos de tu amado gato, y otra muy distinta si hay datos en el disco duro que son un secreto comercial. potencialmente de interés para los competidores.

La primera "línea de defensa" es la contraseña para ingresar al sistema, que se solicita cada vez que se enciende la computadora.


El siguiente nivel de protección son los derechos de acceso al nivel del sistema de archivos. Un usuario sin privilegios de permiso recibirá un error al intentar acceder a los archivos.


Sin embargo, los métodos descritos tienen un inconveniente extremadamente importante. Ambos funcionan a nivel del sistema operativo y se pueden omitir con relativa facilidad si tiene un poco de tiempo y acceso físico a la computadora (por ejemplo, al iniciar desde una unidad flash USB, puede restablecer la contraseña administrativa o cambiar los permisos de archivo). La confianza total en la seguridad y confidencialidad de los datos solo se puede obtener si los logros de la criptografía se utilizan y son confiables. A continuación consideramos dos formas de tal protección.

El primer método considerado hoy será la protección criptográfica integrada de Microsoft. El cifrado, llamado BitLocker, apareció por primera vez en Windows 8. No funcionará para proteger una carpeta o un archivo por separado, solo está disponible el cifrado de toda la unidad. Esto, en particular, implica el hecho de que es imposible cifrar el disco del sistema (el sistema no podrá arrancar), también es imposible almacenar datos importantes en bibliotecas del sistema como "Mis documentos" (por defecto son ubicado en la partición del sistema).
Para habilitar el cifrado integrado, haga lo siguiente:

discocryptor

La segunda utilidad criptográfica revisada hoy es DiskCryptor, una solución gratuita y de código abierto. Para usarlo, siga las instrucciones a continuación:

La ventaja indudable de esta utilidad en comparación con el mecanismo de BitLocker es que se puede utilizar en sistemas anteriores a Windows 8 (incluso se admite el descontinuado Windows XP). Pero DiskCryptor también tiene varias desventajas importantes:

  • no hay formas de restaurar el acceso a la información cifrada (si olvidó su contraseña, tiene la garantía de perder sus datos);
  • solo se admite el desbloqueo con contraseña, no es posible el uso de tarjetas inteligentes o sensores biométricos;
  • Quizás la mayor desventaja de usar DiskCryptor es que un atacante con acceso administrativo al sistema podrá formatear el disco usando medios estándar. Sí, él no tendrá acceso a los datos, pero tú también los perderás.

Resumiendo, puedo decir que si se instala un sistema operativo en la computadora que comienza con Windows 8, entonces es mejor usar la funcionalidad integrada.

Esta documentación ha sido archivada y ya no se mantiene.

Descripción del cifrado de unidad BitLocker

Objetivo: Servidor de windows 2008, Windows Server 2008 R2, Windows Vista

El Cifrado de unidad BitLocker es una característica de protección de datos disponible en Windows Server 2008 R2 y algunas ediciones de Windows 7. La integración de BitLocker en el sistema operativo contrarresta el robo de datos o las amenazas de vulnerabilidad al proteger contra equipos perdidos, robados o indebidamente dados de baja.

Los datos de una computadora perdida o robada son vulnerables al acceso no autorizado, ya sea mediante la piratería de software o conectando el disco duro de la computadora a otra computadora. El cifrado de BitLocker ayuda a evitar el acceso no autorizado a los datos, lo que aumenta la seguridad de los archivos y del sistema. El cifrado de BitLocker también ayuda a mantener los datos inaccesibles al retirar o reutilizar equipos protegidos con el cifrado de BitLocker.

El cifrado de BitLocker proporciona la máxima protección cuando se usa con el módulo de plataforma segura (TPM) versión 1.2. El TPM es un componente de hardware instalado en muchas computadoras modernas por sus fabricantes. Funciona junto con el cifrado de BitLocker para ayudar a proteger los datos del usuario y garantizar que la computadora no haya sido manipulada mientras el sistema estuvo apagado.

En equipos sin TPM 1.2 instalado, el cifrado de BitLocker todavía se puede usar para cifrar la unidad del sistema operativo. sistemas Windows. Sin embargo, esta implementación requerirá que el usuario inserte una clave de inicio USB para iniciar o reactivar la computadora, y no proporciona la verificación de integridad del sistema previa al inicio proporcionada por el cifrado de BitLocker con TPM.

Además del TPM, el cifrado de BitLocker brinda la capacidad de bloquear el proceso de inicio normal hasta que el usuario ingresa un número de identificación personal (PIN) o inserta un dispositivo extraíble, como una unidad flash USB, que contiene una clave de inicio. Estas medidas de seguridad adicionales brindan autenticación de múltiples factores y garantizan que la computadora no se iniciará ni se reactivará hasta que se proporcione el PIN o la clave de inicio correctos.

Comprobación de la integridad del sistema

El cifrado de BitLocker puede usar un TPM para verificar la integridad de los componentes de arranque y los datos de configuración de arranque. Esto ayuda a garantizar que cuando se usa el cifrado de BitLocker, la unidad cifrada solo estará disponible si estos componentes no se han manipulado y la unidad cifrada está instalada en la computadora de origen.

El cifrado de BitLocker ayuda a garantizar la integridad del proceso de inicio a través de los siguientes pasos.

  • Brindar una forma de verificar la integridad del archivo raíz y los archivos utilizados en las primeras etapas del arranque y garantizar que no haya cambios maliciosos en esos archivos que podrían ser realizados, por ejemplo, por virus. sectores de arranque o medios para editar componentes de descarga.
  • Protección mejorada contra ataques de software cuando la computadora está fuera de línea. Cualquier software alternativo que pueda iniciar el sistema no tendrá acceso a las claves de cifrado para la unidad del sistema operativo Windows.
  • Bloqueo del sistema al reemplazar un archivo. Si alguno de los archivos controlados ha sido reemplazado, el sistema no se iniciará. Esto alertará al usuario sobre el reemplazo ya que el sistema no podrá iniciarse normalmente. En el caso de un bloqueo del sistema, el cifrado de BitLocker proporciona un proceso de recuperación fácil.

    Requisitos de hardware, firmware y software

    Para usar BitLocker, su computadora debe cumplir con ciertos requisitos.

    • Para que el cifrado de BitLocker utilice la característica de Comprobación de integridad del sistema proporcionada por el TPM, la versión 1.2 del TPM debe estar instalada en el equipo. Si su computadora no tiene un TPM instalado, deberá guardar la clave de inicio en un dispositivo extraíble, como una unidad flash USB, cuando habilite el cifrado de BitLocker.
    • La computadora equipada con TPM también debe tener un BIOS que cumpla con las especificaciones del Trusted Computing Group (TCG). El BIOS crea una cadena de confianza para las acciones previas al arranque y debe incluir soporte para la raíz estática de la medición del nivel de confianza definida por TCG. Para una computadora sin un módulo TPM, no se requiere el cumplimiento del BIOS con las especificaciones TCG.
    • El BIOS del sistema (para equipos TPM y no TPM) debe ser compatible con la clase de dispositivo de almacenamiento masivo USB, incluida la lectura de archivos pequeños desde una unidad flash USB en un entorno anterior al sistema operativo. Para obtener más información sobre USB, consulte las especificaciones de almacenamiento masivo dispositivos USB y comandos de almacenamiento masivo UFI en el sitio web de USB (http://go.microsoft.com/fwlink/?LinkId=83120).
    • El disco duro debe estar dividido en al menos dos discos.
      • La unidad del sistema operativo (o unidad de arranque) contiene el sistema operativo y los archivos que necesita para ejecutarse y debe formatearse con el sistema de archivos NTFS.
      • El disco del sistema contiene los archivos necesarios para iniciar Windows después de que el BIOS haya cargado la plataforma. El cifrado de BitLocker no está habilitado para esta unidad. Para que funcione el cifrado de BitLocker, la unidad del sistema no debe estar cifrada, no debe ser un volumen del sistema operativo y debe formatearse como un archivo. sistema NTFS. La unidad del sistema debe tener un tamaño mínimo de 1,5 gigabytes (GB).

    Instalación e inicialización

    El cifrado de BitLocker se instala automáticamente como parte de la instalación del sistema operativo. Pero el cifrado de BitLocker no está disponible hasta que se habilite mediante el Asistente de configuración de BitLocker, que se puede iniciar desde el Panel de control o haciendo clic con el botón derecho en la unidad en el Explorador de archivos.

    En cualquier momento después de la instalación y configuración inicial del sistema operativo, un administrador puede usar el asistente de configuración de BitLocker para inicializar el cifrado de BitLocker. El proceso de inicialización consta de dos pasos:

    1. En equipos con un TPM, inicialice el TPM mediante el asistente de instalación de TPM, un componente del Panel de control Cifrado de unidad BitLocker, o ejecutando un script diseñado para inicializar el módulo.
    2. Configure el cifrado de BitLocker. Abra el Asistente de configuración de cifrado de BitLocker desde el Panel de control, que lo guiará a través del proceso de configuración y le brindará la opción de configurar ajustes de autenticación avanzados.

    Al inicializar el cifrado de BitLocker administrador local también debe crear una contraseña de recuperación y una clave de recuperación. Sin una contraseña de recuperación o una clave de recuperación, es posible que no se pueda acceder a todos los datos de una unidad cifrada si hay un problema con una unidad cifrada con BitLocker.

    Para obtener información detallada sobre la configuración y la implementación del cifrado de BitLocker, consulte el Tutorial de cifrado de unidad BitLocker de Windows (http://go.microsoft.com/fwlink/?LinkID=140225).

    Implementación corporativa

    El cifrado de BitLocker puede usar la infraestructura de servicios de dominio existente Directorio Activo(AD DS) organizaciones para el almacenamiento remoto de claves de recuperación. El cifrado de BitLocker proporciona un asistente para la configuración y la administración, y la extensibilidad y la administración a través de una interfaz WMI programable. Además, el cifrado de BitLocker proporciona una consola de recuperación integrada en el proceso de arranque para permitir que el usuario o el personal de la mesa de ayuda recuperen el acceso a una computadora bloqueada.

    Para obtener más información acerca de las secuencias de comandos del cifrado de BitLocker, consulte Win32_EncryptableVolume (http://go.microsoft.com/fwlink/?LinkId=85983).

    Recicla y reutiliza tu computadora

    anotación

    Contrariamente a la creencia popular, la memoria DRAM utilizada en la mayoría de las computadoras modernas retiene los datos incluso después de un corte de energía durante unos segundos o minutos, además, esto sucede a temperatura ambiente e incluso si se retira el chip de la placa base. Esta vez es suficiente para hacer un volcado completo. memoria de acceso aleatorio. Mostraremos que este fenómeno permite a un atacante que tiene acceso físico al sistema eludir las funciones del sistema operativo para proteger los datos sobre las claves criptográficas. Mostraremos cómo se puede usar el reinicio para realizar ataques exitosos en sistemas de cifrado de disco duro conocidos sin el uso de ningún dispositivo o material especializado. Determinaremos experimentalmente el grado y la probabilidad de retención de remanencia y mostraremos que el tiempo durante el cual se pueden tomar datos se puede aumentar significativamente usando trucos simples. También se propondrán nuevos métodos para encontrar claves criptográficas en volcados de memoria y corregir errores asociados con bits faltantes. También hablaremos sobre varias formas de reducir estos riesgos, pero no conocemos una solución simple.

    Introducción

    La mayoría de los expertos asumen que los datos de la memoria RAM de la computadora se borran casi instantáneamente después de un corte de energía, o consideran que los datos residuales son extremadamente difíciles de recuperar sin el uso de equipos especiales. Mostraremos que estas suposiciones son incorrectas. La memoria DRAM convencional pierde datos gradualmente durante varios segundos, incluso a temperaturas normales, e incluso si se retira el chip de memoria de la placa base, los datos permanecerán en él durante minutos o incluso horas, siempre que el chip se almacene a bajas temperaturas. Los datos residuales se pueden recuperar usando métodos simples que requieren a corto plazo acceso físico a la computadora

    Mostraremos una serie de ataques que, utilizando los efectos de remanencia de DRAM, nos permitirán recuperar las claves de cifrado almacenadas en la memoria. Esto representa una amenaza real para los usuarios de computadoras portátiles que confían en los sistemas de encriptación del disco duro. De hecho, si un atacante roba una computadora portátil, en el momento en que el disco cifrado esté conectado, podrá realizar uno de nuestros ataques para acceder a los contenidos, incluso si la computadora portátil está bloqueada o en modo de suspensión. Demostraremos esto atacando con éxito varios sistemas de encriptación populares como BitLocker, TrueCrypt y FileVault. Estos ataques también deberían tener éxito contra otros sistemas de encriptación.

    Aunque hemos centrado nuestros esfuerzos en los sistemas de encriptación unidades de disco duro, en el caso de acceso físico a la computadora de un atacante, cualquier información importante almacenada en la memoria RAM puede convertirse en objeto de ataque. Es probable que muchos otros sistemas de seguridad sean vulnerables. Por ejemplo, descubrimos que Mac OS X deja las contraseñas de las cuentas en la memoria donde podemos recuperarlas, y también atacamos las claves RSA privadas de Apache.

    Algunos miembros de las comunidades de física de semiconductores y seguridad de la información ya conocían el efecto de remanencia de DRAM, había muy poca información al respecto. Como resultado, muchos de los que diseñan, desarrollan o usan sistemas de seguridad simplemente no están familiarizados con este fenómeno y con qué facilidad puede ser explotado por un atacante. Hasta donde sabemos, este es el primer trabajo detallado que examina las implicaciones de estos fenómenos para la seguridad de la información.

    Ataques a unidades cifradas

    El cifrado de discos duros es un método bien conocido de protección contra el robo de datos. Muchos creen que los sistemas de encriptación del disco duro protegerán sus datos, incluso si un atacante ha obtenido acceso físico a la computadora (de hecho, son necesarios para esto, ed.). La ley de California, aprobada en 2002, exige la presentación de informes casos posibles divulgación de datos personales, solo si los datos no estaban encriptados, porque el cifrado de datos se considera una medida de protección suficiente. Aunque la ley no describe ninguna solución técnica específica, muchos expertos recomiendan el uso de sistemas de encriptación de discos duros o particiones, que se considerarán medidas de protección suficientes. Los resultados de nuestro estudio mostraron que la creencia en el cifrado de disco no tiene fundamento. Un atacante, lejos de ser el más hábil, puede eludir muchos sistemas de encriptación ampliamente utilizados si una computadora portátil con datos es robada mientras estaba encendida o en modo de suspensión. Y los datos en una computadora portátil se pueden leer incluso cuando están en un disco encriptado, por lo que usar sistemas de encriptación de disco duro no es una medida suficiente.

    Utilizamos varios tipos de ataques en sistemas conocidos de encriptación de discos duros. La instalación de discos encriptados y la verificación de la exactitud de las claves de encriptación detectadas tomaron la mayor parte del tiempo. Obtener una imagen de RAM y buscar claves tomó solo unos minutos y fue completamente automatizado. Hay razones para creer que la mayoría de los sistemas de encriptación de discos duros son susceptibles a este tipo de ataques.

    bloqueador de bits

    BitLocker es un sistema incluido con algunas versiones del sistema operativo Windows Vista. Funciona como un controlador que trabaja entre el sistema de archivos y el controlador. disco duro, cifrando y descifrando sectores seleccionados bajo demanda. Las claves utilizadas para el cifrado están en la RAM siempre que el disco cifrado esté desmontado.

    Para cifrar cada sector de un disco duro, BitLocker utiliza el mismo par de claves generado por el algoritmo AES: una clave de cifrado de sector y una clave de cifrado que funcionan en modo de encadenamiento de bloques de cifrado (CBC). Estas dos claves se cifran a su vez con la clave maestra. Para cifrar un sector, se realiza un procedimiento de adición de texto sin formato binario con una clave de sesión generada cifrando el byte de desplazamiento del sector con la clave de cifrado del sector. Luego, los datos recibidos son procesados ​​por dos funciones de mezcla que utilizan el algoritmo Elephant desarrollado por Microsoft. Estas funciones sin llave se utilizan para aumentar el número de cambios en todos los bits del cifrado y, en consecuencia, aumentar la incertidumbre de los datos del sector cifrado. En la última etapa, los datos se cifran con el algoritmo AES en modo CBC, utilizando la clave de cifrado adecuada. El vector de inicialización se determina cifrando el byte de desplazamiento del sector con la clave de cifrado utilizada en el modo CBC.

    Hemos implementado un ataque de demostración completamente automatizado llamado BitUnlocker. Esto utiliza una unidad USB externa con sistema operativo Linux y un gestor de arranque modificado basado en SYSLINUX y el controlador FUSE que le permite conectar unidades cifradas con BitLocker al sistema operativo Linux. En una computadora de prueba con Windows Vista, se apagó, se conectó un disco duro USB y se arrancó desde allí. Después de eso, BitUnlocker descargó automáticamente la RAM en una unidad externa, buscó posibles claves utilizando el programa keyfind, probó todas las opciones adecuadas (pares de la clave de cifrado de sector y la clave de modo CBC) y, si tuvo éxito, conectó la unidad cifrada. Tan pronto como se conectó el disco, fue posible trabajar con él como con cualquier otro disco. En una computadora portátil moderna con 2 gigabytes de RAM, el proceso tomó alrededor de 25 minutos.

    Cabe señalar que este ataque se hizo posible sin ingeniería inversa de ningún software. La documentación de Microsoft describe el sistema BitLocker lo suficiente como para comprender el papel de la clave de cifrado de sector y la clave de modo CBC y crear su propio programa que implemente todo el proceso.

    La principal diferencia entre BitLocker y otros programas de esta clase es la forma en que se almacenan las claves cuando se desconecta la unidad cifrada. De forma predeterminada, en el modo básico, BitLocker protege la clave maestra solo con la ayuda del módulo TPM, que existe en muchas PC modernas. Este método, que parece ser muy utilizado, es especialmente vulnerable a nuestro ataque, ya que permite obtener claves de cifrado incluso si el ordenador ha estado apagado durante mucho tiempo, ya que cuando el PC arranca, las claves se cargan automáticamente. en la RAM (hasta la ventana de inicio de sesión) sin ingresar ningún dato de autenticación.

    Aparentemente, los expertos de Microsoft están familiarizados con este problema y, por lo tanto, recomiendan configurar BitLocker en un modo mejorado, donde las claves están protegidas no solo con TPM, sino también con una contraseña o una clave en una unidad USB externa. Pero, incluso en este modo, el sistema es vulnerable si un atacante obtiene acceso físico a la PC mientras se está ejecutando (incluso puede estar bloqueada o en modo de suspensión, (los estados: simplemente apagado o hibernación en este caso se consideran no afectados). por este ataque).

    Bóveda de archivos

    El sistema FileVault de Apple se ha investigado parcialmente y se ha realizado ingeniería inversa. En Mac OS X 10.4, FileVault usa una clave AES de 128 bits en modo CBC. Cuando se ingresa la contraseña del usuario, se descifra un encabezado que contiene la clave AES y una segunda clave K2, que se utiliza para calcular los vectores de inicialización. El vector de inicialización para el bloque de disco Ith se calcula como HMAC-SHA1 K2(I).

    Usamos nuestro programa EFI para capturar imágenes RAM para recuperar datos de una computadora Macintosh (basada en un procesador Intel) con una unidad cifrada FileVault conectada. El programa keyfind luego encontró las claves FileVault AES automáticamente sin error.

    Sin un vector de inicialización, pero con la clave AES recibida, es posible descifrar 4080 de los 4096 bytes de cada bloque de disco (todo excepto el primer bloque AES). Nos aseguramos de que el vector de inicialización también esté en el volcado. Suponiendo que los datos aún no se hayan dañado, un atacante puede determinar el vector probando todas las cadenas de 160 bits en el volcado una por una y verificando si pueden formar un posible texto sin formato cuando se agrega binario a la primera parte descifrada del bloque. . Juntos, el uso de programas como vilefault, claves AES y un vector de inicialización le permiten descifrar completamente un disco encriptado.

    Mientras investigamos FileVault, descubrimos que Mac OS X 10.4 y 10.5 dejan varias copias de la contraseña de un usuario en la memoria, donde son vulnerables a este ataque. contraseñas cuentas a menudo se usa para proteger claves, que a su vez se pueden usar para proteger frases de contraseña en unidades cifradas de FileVault.

    TrueCrypt

    TrueCrypt es un popular sistema de cifrado de código abierto que se ejecuta en Windows, MacOS y Linux. Admite muchos algoritmos, incluidos AES, Serpent y Twofish. En la versión 4, todos los algoritmos funcionaban en modo LRW; en la quinta versión actual, usan el modo XTS. TrueCrypt almacena la clave de cifrado y la clave de ajuste en el encabezado de partición de cada unidad, que se cifra con una clave diferente derivada de la contraseña ingresada por el usuario.

    Probamos TrueCrypt 4.3a y 5.0a ejecutándose bajo el sistema operativo Linux. Conectamos un disco encriptado con una clave AES de 256 bits, luego apagamos la alimentación y usamos nuestro propio software de volcado de memoria para arrancar. En ambos casos, keyfind encontró una clave de cifrado intacta de 256 bits. Además, en el caso de TrueCrypt 5.0.a, keyfind pudo recuperar la clave de modificación del modo XTS.

    Para descifrar los discos creados por TrueCrypt 4, debe modificar la clave del modo LRW. Descubrimos que el sistema lo almacena en cuatro palabras antes de la programación clave de la clave AES. En nuestro volcado, la clave LRW no estaba dañada. (En caso de errores, aún podríamos recuperar la clave).

    Dm-cripta

    El kernel de Linux, a partir de la versión 2.6, incluye compatibilidad integrada con dm-crypt, un subsistema de cifrado de disco. Dm-crypt utiliza muchos algoritmos y modos, pero de forma predeterminada utiliza un cifrado AES de 128 bits en modo CBC con vectores de inicialización no basados ​​en claves.

    Probamos la partición dm-crypt creada usando la rama LUKS (Linux Unified Key Setup) de la utilidad cryptsetup y el kernel 2.6.20. El disco fue encriptado usando AES en modo CBC. Apagamos la alimentación por un tiempo y usando un gestor de arranque PXE modificado, hicimos un volcado de memoria. El programa keyfind encontró una clave AES válida de 128 bits, que se recuperó sin errores. Después de recuperarla, un atacante puede descifrar y montar la partición cifrada dm-crypt modificando la utilidad cryptsetup para que acepte las claves en el formato requerido.

    Métodos de protección y sus limitaciones.

    La implementación de la protección contra ataques a la memoria RAM no es baladí, ya que la claves criptograficas debe almacenarse en algún lugar. Proponemos enfocarnos en destruir u ocultar las claves antes de que un atacante pueda obtener acceso físico a la PC, evitando que se ejecute el software de volcado de la memoria principal, protegiendo físicamente los chips de RAM y, si es posible, reduciendo el período de retención de datos en la RAM.

    sobrescritura de memoria

    En primer lugar, es necesario, si es posible, evitar almacenar claves en la RAM. Es necesario sobrescribir la información clave cuando ya no se usa y evitar que los datos se copien en archivos de intercambio. La memoria debe borrarse por adelantado mediante el sistema operativo o bibliotecas adicionales. Naturalmente, estas medidas no protegerán las claves actualmente en uso, ya que deben almacenarse en la memoria, como las que se usan para discos cifrados o en servidores web seguros.

    Además, la memoria RAM debe borrarse durante el proceso de arranque. Algunas PC se pueden configurar para borrar la RAM en el arranque mediante una solicitud POST clara (autoprueba de encendido) antes de arrancar el sistema operativo. Si el atacante no puede evitar la ejecución de esta solicitud, entonces en esta PC no podrá realizar un volcado de memoria con información importante. Pero aún tiene la oportunidad de extraer los chips de RAM e insertarlos en otra PC con la configuración de BIOS que necesita.

    Restricción de descargas desde la red o desde medios extraíbles

    Muchos de nuestros ataques se implementaron mediante arranque de red o medios extraíbles. La PC debe estar configurada para requerir una contraseña de administrador para arrancar desde estas fuentes. Pero debe tenerse en cuenta que incluso si el sistema está configurado para arrancar solo desde el disco duro principal, el atacante puede cambiar disco duro o, en muchos casos, reinicie la NVRAM de la computadora para volver a la configuración original del BIOS.

    Sueño seguro

    Los resultados del estudio mostraron que simplemente bloquear el escritorio de la PC (es decir, el sistema operativo continúa funcionando, pero para comenzar a interactuar con él, se debe ingresar una contraseña) no protege el contenido de la RAM. El modo de suspensión no es efectivo incluso si la PC está bloqueada cuando regresa del modo de suspensión, porque un atacante puede activar el regreso del modo de suspensión, luego reiniciar la computadora portátil y realizar un volcado de memoria. El modo de hibernación (el contenido de la RAM se copia en el disco duro) tampoco ayudará, excepto cuando se usa información clave en medios enajenados para restaurar el funcionamiento normal.

    Con la mayoría de los sistemas de encriptación de discos duros, los usuarios pueden protegerse apagando la PC. (El sistema Bitlocker en el modo básico del módulo TPM sigue siendo vulnerable, ya que el disco se conectará automáticamente cuando se encienda la PC). El contenido de la memoria puede conservarse durante un breve período después de apagarse, por lo que se recomienda que controle su estación de trabajo durante un par de minutos más. A pesar de su eficacia, esta medida es extremadamente inconveniente debido a la carga prolongada de las estaciones de trabajo.

    La hibernación se puede proteger de las siguientes maneras: solicitar una contraseña o algún otro secreto para "activar" la estación de trabajo y cifrar el contenido de la memoria con una clave derivada de esta contraseña. La contraseña debe ser segura, ya que un atacante puede volcar la memoria y luego intentar adivinar la contraseña por fuerza bruta. Si no es posible cifrar toda la memoria, solo es necesario cifrar aquellas áreas que contienen información clave. Algunos sistemas pueden estar configurados para entrar en este tipo de suspensión protegida, aunque esta no suele ser la configuración predeterminada.

    Rechazo de precálculos

    Nuestra investigación ha demostrado que el uso de precálculos para acelerar las operaciones criptográficas hace que la información clave sea más vulnerable. El cálculo previo conduce al hecho de que en la memoria hay información redundante sobre los datos clave, lo que permite que un atacante recupere las claves incluso si hay errores. Por ejemplo, como se describe en la Sección 5, la información sobre las claves de iteración de los algoritmos AES y DES es extremadamente redundante y útil para un atacante.

    Rechazar los cálculos previos reducirá el rendimiento, ya que habrá que repetir cálculos potencialmente complejos. Pero, por ejemplo, puede almacenar en caché valores precalculados durante un cierto período de tiempo y borrar los datos recibidos si no se utilizan durante este intervalo. Este enfoque representa un compromiso entre la seguridad y el rendimiento del sistema.

    Expansión clave

    Otra forma de evitar la recuperación de la clave es cambiar la información de la clave almacenada en la memoria de tal manera que la recuperación de la clave sea más difícil debido a varios errores. Este método se consideró en teoría, donde se demostró que una función es resistente a la revelación, cuyas entradas permanecen ocultas incluso si se descubren casi todas las salidas, lo que es muy similar a la operación de funciones unidireccionales.

    En la práctica, imagina que tenemos una clave K AES de 256 bits, que en este momento no se usa, pero se necesitará más adelante. No podemos sobrescribirlo, pero queremos que sea resistente a los intentos de recuperación. Una forma de lograr esto es asignar un área grande de datos de bits B, llenarla con datos aleatorios R y luego almacenar en la memoria el resultado de la siguiente transformación K + H (R) (suma binaria, ed.), donde H es una función hash, como SHA-256.

    Ahora imagine que se apagó la electricidad, esto hará que se cambien d bits en esta área. Si la función hash es fuerte, al intentar recuperar la clave K, un atacante solo puede confiar en poder adivinar qué bits del área B se han cambiado de aproximadamente la mitad que podría haber cambiado. Si se han cambiado d bits, el atacante tendrá que buscar una región de tamaño (B/2+d)/d para encontrar los valores correctos de R y solo entonces recuperar la clave K. Si la región B es grande , tal búsqueda puede ser muy larga, incluso si d es relativamente pequeño.

    Teóricamente, podemos almacenar todas las claves de esta manera, calculando cada clave solo cuando la necesitamos y eliminándola cuando no la necesitamos. Por lo tanto, al aplicar el método anterior, podemos almacenar las claves en la memoria.

    Protección física

    Algunos de nuestros ataques se basaron en tener acceso físico a los chips de memoria. Dichos ataques se pueden prevenir mediante la protección de la memoria física. Por ejemplo, los módulos de memoria se guardan en una caja de PC cerrada o se sellan con epoxi para evitar intentos de extraerlos o acceder a ellos. Además, es posible implementar la sobrescritura de memoria como respuesta a bajas temperaturas o intentos de abrir la carcasa. Este método requerirá la instalación de sensores con un sistema de alimentación independiente. Muchos de estos métodos involucran hardware a prueba de manipulaciones (como el coprocesador IBM 4758) y pueden aumentar considerablemente el costo de una estación de trabajo. Por otro lado, usar memoria soldada a la placa base será mucho más económico.

    Cambio de arquitectura

    Puede cambiar la arquitectura de la PC. Lo cual es imposible para las PC ya usadas, pero le permitirá asegurar otras nuevas.

    El primer enfoque es diseñar módulos DRAM de tal manera que borren todos los datos más rápido. Esto puede ser complicado, ya que el objetivo de borrar los datos lo más rápido posible entra en conflicto con el otro objetivo de no perder datos entre los períodos de actualización de la memoria.

    Otro enfoque es agregar hardware de almacenamiento clave que garantiza que borrará toda la información de su almacenamiento al iniciar, reiniciar y apagar. Así, obtendremos un lugar seguro para almacenar varias claves, aunque se mantendrá la vulnerabilidad asociada a su precómputo.

    Otros expertos han propuesto una arquitectura en la que el contenido de la memoria estará encriptado permanentemente. Si además de esto, implementamos el borrado de claves en el reinicio y corte de energía, entonces este método brindará suficiente protección contra los ataques que hemos descrito.

    Informática de confianza

    El hardware correspondiente al concepto de "computación confiable", por ejemplo, en forma de módulos TPM, ya se usa en algunas PC. A pesar de su utilidad en la protección contra algunos ataques, en su forma actual, dicho equipo no ayuda a prevenir los ataques que hemos descrito.

    Los módulos TPM utilizados no implementan cifrado completo. En su lugar, observan el proceso de inicio para decidir si es seguro iniciar la clave en la RAM o no. Si el software necesita usar una clave, se puede implementar la siguiente tecnología: la clave, en una forma utilizable, no se almacenará en la RAM hasta que el proceso de arranque se desarrolle de acuerdo con el escenario esperado. Pero, tan pronto como la clave está en la memoria RAM, inmediatamente se convierte en un objetivo para nuestros ataques. Los módulos TPM pueden evitar que la clave se cargue en la memoria, pero no evitan que se lea de la memoria.

    conclusiones

    Contrariamente a la creencia popular, los módulos DRAM almacenan datos durante un tiempo relativamente largo cuando están desactivados. Nuestros experimentos han demostrado que este fenómeno permite implementar toda una clase de ataques que le permiten obtener datos importantes, como claves de cifrado, de la RAM, a pesar de los intentos del sistema operativo por proteger su contenido. Los ataques que describimos son realizables en la práctica, y nuestros ejemplos de ataques a sistemas de encriptación populares lo prueban.

    Pero otros tipos de software también son vulnerables. Los sistemas de administración de derechos digitales (DRM) a menudo usan claves simétricas almacenadas en la memoria, y estas también se pueden obtener usando los métodos descritos. Como hemos mostrado, los servidores web habilitados para SSL también son vulnerables porque almacenan en la memoria las claves privadas necesarias para crear sesiones SSL. Es probable que nuestros métodos de búsqueda de información clave sean efectivos para encontrar contraseñas, números de cuenta y cualquier otra información importante almacenada en la memoria RAM.

    Parece que no hay una manera fácil de eliminar las vulnerabilidades encontradas. Lo más probable es que cambiar el software no sea efectivo; los cambios de hardware ayudarán, pero los costos de tiempo y recursos serán altos; la tecnología de "computación confiable" en su forma actual tampoco es muy efectiva, ya que no puede proteger las claves que están en la memoria.

    En nuestra opinión, las computadoras portátiles, que a menudo se encuentran y funcionan en modos vulnerables a estos ataques, son las más expuestas a este riesgo. La presencia de tales riesgos muestra que el cifrado de disco protege los datos importantes en menor medida de lo que comúnmente se cree.

    Como resultado, es posible que deba considerar la memoria DRAM como un componente no confiable de una PC moderna y evitar procesar información confidencial importante.

Si nota un error, seleccione un fragmento de texto y presione Ctrl + Enter
COMPARTIR: