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

Hoy en día, almacenar datos importantes en claro se ha vuelto más peligroso que nunca. Y no tanto por la vigilancia estatal (si quieren, encontrarán de qué quejarse, etc.), sino por quienes quieren robar esos datos. En principio, existen muchos métodos para proteger la información, pero el artículo describirá exactamente las herramientas criptográficas.


A diferencia de otros sistemas operativos, Linux tiene muchas herramientas para la protección criptográfica de la información, desde el cifrado de la correspondencia de correo hasta el cifrado de archivos y dispositivos de bloqueo. Nos interesa el cifrado a nivel de sistemas de archivos, archivos y dispositivos de bloque. Para empezar, vale la pena entender cuál es la diferencia. El cifrado a nivel del sistema de archivos implica una capa entre el principal sistema de archivos(a menos, por supuesto, que el propio sistema de archivos admita el cifrado) y el usuario.

Ventaja de este tipo cifrado - que las claves para todos los usuarios son diferentes. La desventaja es que si habilita el cifrado de nombre de archivo, la longitud del nombre válido disminuirá, además, el usuario puede guardar el archivo en una ubicación diferente en el disco, lo que nivela automáticamente el beneficio. Y una cosa más: incluso si el cifrado de nombres está habilitado, las marcas de tiempo seguirán siendo las mismas. El cifrado de los dispositivos de bloques se produce en un nivel inferior, bajo el sistema de archivos. Al mismo tiempo, el propio sistema de archivos, por supuesto, no sabe que está ubicado en un volumen cifrado.

Beneficios este método frente a las carencias del anterior. La desventaja es que tendrá que ingresar una contraseña cada vez que inicie / monte. El segundo inconveniente es que si en tiempo de ejecución un atacante obtiene acceso a los archivos en el crypto-
teiner, todo - escribir perdido. Esto es exactamente lo que protege contra los ataques fuera de línea. Además, en la gran mayoría de los casos de guardar un criptocontenedor en la nube, tendrás que volver a subirlo por completo.

El artículo describirá la configuración de los siguientes métodos de criptoprotección:
dm-crypt/LUKS- creación de un criptocontenedor utilizando un mapeador de dispositivos y un núcleo CryptoAPI;
eCryptfs- encriptación a nivel de sistemas de archivos;
EncFS- similar al anterior, pero no requiere cargar módulos del kernel.

DM-CRIPTA/LUKS
Hay dos tipos de configuraciones de dm-crypt: simple y LUKS. La diferencia es que, en el caso de usar LUKS, hay metadatos al comienzo del volumen criptográfico que le permite usar varias claves y cambiarlas. Al mismo tiempo, la presencia de tal título en algunos casos es en sí misma comprometedora; sin embargo, en la mayoría casos similares será una zona comprometida con un alto grado de entropía. Configuración de dm-crypt simple con un archivo de clave y una frase de contraseña Veamos cómo configurar una combinación de un volumen de dm-crypt simple encriptado con un archivo de clave contenido en un contenedor LUKS. Para empezar, vale la pena decidir cómo se colocarán exactamente las secciones. Hay tres opciones principales:
solo un volumen criptográfico;
primero un volumen criptográfico, luego LVM encima;
primero volumen criptográfico, luego RAID, luego LVM.

Y todo tipo de combinaciones. Probemos la segunda opción. En primer lugar, vamos a crear un contenedor LUKS para almacenar el archivo de claves a fin de utilizar este archivo junto con la frase de contraseña. En este caso, se reduce la probabilidad de criptoanálisis de un volumen cifrado con dm-crypt sin formato:

# dd if=/dev/cero of=/root/key.luks bs=512 cuenta=2057

# cryptsetup --align-payload=1 luksFormat /root/key.luks

# cryptsetup luksOpen /root/key.luks cryptokey

# dd if=/dev/urandom of=/dev/mapper/cryptokey

El primer comando prepara el archivo contenedor, el segundo crea este contenedor, el tercero conecta, el cuarto genera información clave. Vale la pena señalar que la opción --align-payload=1 es necesaria para que el tamaño de los metadatos de LUKS no sea 4096 bloques de 512 bytes, sino solo 2056. Por lo tanto, quedan 512 bytes para la información clave real.
Luego procedemos a la creación de un criptotomo. En este punto, tiene la opción de llenar el disco con datos pseudoaleatorios para dificultar el criptoanálisis, si lo hubiera. Entonces ya puedes crear un criptotomo. El comando para esto es el siguiente (por supuesto, en otros casos, los identificadores pueden diferir, por lo que debe tener cuidado):

# cryptsetup --cipher=serpent-xts-plain64 --offset=0--key-file=/dev/mapper/cryptokey --key-size=512 open --type=plain/dev/disk/by-id/ ata-VBOX_HARDDISK_VB05eadebe-f25e8d59 crypto0


Si es necesario, repita el mismo comando en otros dispositivos que requieran cifrado. Luego crearemos LVM en cryptotoms y FS en él:

Vamos a crear el archivo /etc/initramfs-tools/hooks/cryptokeys con el siguiente contenido (se omite la parte de servicio del script):

Y el archivo /etc/initramfs-tools/scripts/local-top/cryptokeys (parte de servicio nuevamente
u omitido):

# <...>

modprobe -b dm_crypt

¡mientras! (/sbin/cryptsetup luksOpen /etc/crypto/key .luks cryptokey

/dev/disk/by-id/ata-VBOX_HARDDISK_VB05eadebe-f25e8d59 crypto0

&& /sbin/cryptsetup simpleOpen -- clave - archivo=/dev/mapper/cryptokey

/dev/disk/by-id/ata-VBOX_HARDDISK_VBc2414841-cfeccde5 crypto1

&& /sbin/cryptsetup luksCerrar clave criptográfica

) ; hacer

echo “Inténtalo de nuevo. . . ”

hecho

Estos dos archivos deben ser ejecutables. Luego creamos un initrd:

# actualizar-initramfs -u -k todo -v

La próxima vez que reinicie, se le pedirá una contraseña para el contenedor LUKS. En el caso de usar dm-crypt simple, existe otra posibilidad: una capa inferior común, que le permite hacer algo como volúmenes ocultos de TrueCrypt. Es más fácil dar un ejemplo:

# cryptsetup --cipher=serpent-xts-plain64 --offset=0--size=2097152 --shared open --type=plain/dev/disk/by-id/ata-VBOX_HARDDISK_VBcda8398f-f1f1deec crypto

# cryptsetup --cipher=serpent-xts-plain64 --offset=2097152--size=2097152 --shared open --type=plain/dev/disk/by-id/ata-VBOX_HARDDISK_VBcda8398f-f1f1deec crypto_shared

El tamaño y el desplazamiento se especifican en bloques de 512 bytes.


Características avanzadas de LUKS
Veamos también las características avanzadas del uso de contenedores LUKS. Estos incluyen el cambio de llaves. Esto es necesario cuando se compromete o se crea una política de regeneración de claves. El primer paso para hacer esto es hacer una copia de seguridad del encabezado del contenedor. Me caigo
normalmente, después de cambiar la clave, se puede destruir. Lo hacemos, por supuesto, en una partición sin cifrar:

Finalmente, agregue una nueva clave al sistema:

Considere el procedimiento para restaurar volúmenes LUKS. La opción más fácil, por supuesto, es cuando hay una copia del encabezado. En este caso, solo se requiere un comando para restaurar:

La línea continua más larga será la llave maestra. Debe copiarse a un archivo en un volumen sin cifrar y luego convertirse a formato binario (antes de eso, debe asegurarse de que en archivo dado no existen
caracteres de fin de línea):

ENCFS
Veamos cómo configurar EncFS para que se monte automáticamente al iniciar sesión. Primero, instalemos los paquetes necesarios:

Al configurar en modo experto, se le harán una serie de preguntas: tipo de cifrado (solo AES y Blowfish están disponibles), tamaño de clave, tamaño de bloque, cómo cifrar nombres de archivo - cifrado de bloque (que oculta completamente el nombre de archivo, incluida la longitud ), transmisión (que encripta con la longitud más cercana posible, lo que a veces es conveniente si los nombres son demasiado largos y cuando se usa un cifrado de bloque hay una probabilidad bastante alta de exceder la longitud máxima permitida) o estará completamente ausente ... En Al final, se solicitará una contraseña, debe coincidir con la utilizada para ingresar, de lo contrario, el automontaje no funcionará.

A continuación, debe editar el archivo /etc/security/pam_encfs.conf:

Y el archivo /etc/fuse.conf:

Y agregue el usuario al grupo de fusibles:

$ sudo usermod -a -G fuse $USUARIO

Después de cerrar la sesión, el directorio privado se puede utilizar como almacenamiento de datos personales. Sin embargo, vale la pena señalar que la auditoría reveló algunos problemas de seguridad (bastante graves), por lo que este sistema Se desaconseja encarecidamente su uso para almacenar datos realmente importantes.

ECRIPTFS
Se sabe que eCryptFS es utilizado por Ubuntu como la herramienta de protección del directorio de inicio predeterminada. Veamos cómo funciona: creemos un directorio encriptado manualmente. Instalar paquetes:

Creación de eCryptFS

Y monte el FS (durante el primer montaje, se crean todos los metadatos necesarios):

$ sudo mount -t ecryptfs /home/rom/ . secreto/casa/rom/secreto

Se solicitará una frase de contraseña (solo una vez, no se implementa el reingreso, lo que no se ve muy bien Buena decisión, dado que debe ser largo), luego preguntará por el tipo de cifrado (AES, Blowfish, 3DES, Twofish, CAST6 y CAST5), el tamaño de la clave, preguntará si permitir o denegar archivos sin cifrar en el directorio con archivos cifrados, si cifrar los nombres de los archivos... y al final preguntará si realmente queremos montar y guardar la firma en un archivo específico. La pregunta no es tan estúpida como podría parecer al principio: en este software, en ausencia de una firma, no hay forma de distinguir una contraseña correcta de una incorrecta.

Cifrado del directorio de inicio del usuario

Durante la primera ejecución, es posible que deba finalizar varios procesos. Después del cifrado, debe iniciar sesión inmediatamente como usuario y se le pedirá que escriba o imprima la frase de contraseña generada para el cifrado y protegida, a su vez, por la contraseña del usuario. Esto es necesario para la recuperación en caso de una emergencia.


Recordar advertencia de frase de contraseña

Veamos cómo restaurarlo. Supongamos que la frase de contraseña no está grabada y la recuperación proviene de un Live CD. Se supone que el FS está montado. Vaya al directorio home/.ecryptfs/rom/.ecryptfs y escriba el comando:

dm-verificar
El módulo dm-verify está diseñado para verificar la integridad de los dispositivos de bloque. La verificación se lleva a cabo utilizando un árbol hash, donde "hojas" son las sumas hash de bloques y "ramas" son las sumas hash de conjuntos de "hojas". Por lo tanto, para verificar un dispositivo de bloque (ya sea una partición o un disco), basta con verificar solo una suma de verificación.
Este mecanismo (junto con una firma digital) se usa en algunos dispositivos Android para proteger contra modificaciones particiones del sistema, así como en Google Chromium OS.

CONCLUSIÓN
De hecho, Linux contiene bastantes herramientas para la protección criptográfica de la información. De los tres medios descritos, al menos uno está presente en todos los modernos distribuciones de Linux. Pero, ¿qué elegir?
dm-crypt/LUKS debe usarse en los casos en los que es posible deshabilitar rápidamente un volumen cifrado y cuando no se necesitan copias de seguridad o están clasificadas de otra manera. En este caso esta decisión más que eficiente, especialmente teniendo en cuenta que puede cifrar en una cascada de anidamiento y tipo arbitrario (por ejemplo, AES-Twofish-AES), - un verdadero paraíso
para el paranoico.
eCryptFS adecuado en los casos en que necesita guardar datos cifrados en algún lugar, por ejemplo, en la nube. Proporciona un cifrado bastante fuerte (aunque la variante predeterminada de 128 bits tiene el potencial de reducir la seguridad en dos bits) y es transparente para el usuario final.
EncFS pero - un anciano hace aproximadamente una década, basado en obras aún más antiguas. Actualmente no se recomienda su uso debido a posibles agujeros de seguridad, pero se puede usar como una herramienta multiplataforma para proteger datos no confidenciales en las nubes.

Si necesita usar tales herramientas, siempre debe recordar que la protección debe ser integral.

Tenga en cuenta que el autor de este trabajo habla sobre los métodos de encriptación de particiones de disco que él mismo usa.

linux

Este manual utiliza linux dm-crypt (mapeador de dispositivos) en el núcleo 2.6 . Cifraremos la sección. /dev/sdc1, puede ser cualquier partición, disco, USB o archivo creado perder la configuración. Aquí usaremos /dev/bucle0, mirar . mapeador de dispositivos utiliza una etiqueta para identificar una sección, en este ejemplo sdc1, pero puede ser cualquier otra cadena.

Cifrado de particiones de disco con LUKS

lucas Con dm-cripta muy conveniente para encriptar particiones de disco, le permite tener múltiples contraseñas para una partición y también cambiarlas fácilmente. Para verificar si está disponible para usar lucas, tipo: cryptsetup --ayuda si sobre lucas no apareció nada, lea a continuación " dm-crypt sin LUKS". Primero, cree una partición, si es necesario fdisk /dev/sdc.

Cómo crear una partición cifrada

# dd if=/dev/urandom of=/dev/sdc1 # Opcional. Solo para paranoicos# cryptsetup -y luksFormat /dev/sdc1 # Esto destruirá todos los datos en sdc1 # cryptsetup luksOpen /dev/sdc1 sdc1 # mkfs.ext3 /dev/mapper/sdc1 # Se creará un sistema de archivos ext3 # mount -t ext3 /dev/mapper/sdc1 /mnt # umount /mnt # cryptsetup luksCerrar sdc1
montar
# cryptsetup luksOpen /dev/sdc1 sdc1 # mount -t ext3 /dev/mapper/sdc1 /mnt
Desmontar
# umount /mnt # cryptsetup luksCerrar sdc1

dm-crypt sin LUKS

# cryptsetup -y crear sdc1 /dev/sdc1 # O cualquier otra sección como /dev/bucle0 # dmsetupls # Comprobar, mostrará: sdc1 (254, 0) # mkfs.ext3 /dev/mapper/sdc1 # ¡Solo si se hace por primera vez!# montar -t ext3 /dev/mapper/sdc1 /mnt # desmontar /mnt/ # cryptsetup eliminar sdc1 # Separar la partición cifrada Haga lo mismo (sin crear fs) para volver a montar la partición. Si se ingresa una contraseña incorrecta, el comando de montaje fallará. En ese caso, simplemente retire la pantalla. sdc1 (cryptsetup eliminar sdc1) y crea uno nuevo.

FreeBSD

Un par de módulos de cifrado de disco populares son gbde Y geli. Geli más rápido porque utiliza aceleración de hardware. Consulte el capítulo 18.6 del manual de FreeBSD para obtener más información. Descripción detallada. Para el trabajo, geli debe cargarse como un módulo del kernel o integrarse en él en tiempo de compilación. opciones GEOM_ELI cripto dispositivo # O cargar como un módulo del kernel:# echo "geom_eli_load="YES"" >> /boot/loader.conf # O kldload geom_eli

Uso de una contraseña y clave

El autor usa esta configuración para el cifrado de partición típico, usa una contraseña y una clave para cifrar " llave maestra- clave maestra". Para montar la partición cifrada, necesitará una contraseña y una clave /root/anuncio1.clave. "llave maestra" se almacena dentro de la partición y es invisible. El siguiente ejemplo es típico para una imagen de archivo o USB.

Crear una partición cifrada

# dd if=/dev/random of=/root/ad1.key bs=64 cuenta=1 # Esta clave cifra la clave maestra# geli init -s 4096 -K /root/ad1.key /dev/ad1 # -s 8192 y OK para unidades# geli adjuntar -k /root/ad1.key /dev/ad1 # HACER crea respaldo/root/anuncio1.clave# dd if=/dev/random of=/dev/ad1.eli bs=1m # Opcional y lento # newfs /dev/ad1.eli # Crear un sistema de archivos# montaje /dev/ad1.eli /mnt # Montar partición cifrada
Adjuntar
# geli adjuntar -k /root/ad1.key /dev/ad1 # fsck -ny -t ffs /dev/ad1.eli # En caso de duda, compruebe el sistema de archivos# montaje /dev/ad1.eli /mnt
Despegar
El procedimiento de desmontaje se realiza automáticamente al apagar. # umount /mnt # geli separar /dev/ad1.eli
/etc/fstab
El montaje de una partición cifrada se puede configurar a través de /etc/fstab. La contraseña se solicitará al momento de la descarga. # grep geli /etc/rc.conf geli_devices="ad1" geli_ad1_flags="-k /root/ad1.key" # grep geli /etc/fstab /dev/ad1.eli /home/private ufs rw 0 0

Solo contraseña

Esta es una forma más adecuada de cifrar una unidad flash o una imagen basada en un archivo, solo solicita una contraseña. EN este caso no hay necesidad de preocuparse por los archivos clave. El procedimiento es similar al descrito anteriormente, excepto por la creación de archivos clave. Vamos a cifrar una imagen de 1 GB creada a partir de un archivo /archivo encriptado. # dd if=/dev/zero of=/cryptedfile bs=1M cuenta=1000 # Crear un archivo de 1GB# mdconfig -at vnode -f /archivo encriptado # geli init /dev/md0 # Cifrar solo con contraseña# geli added /dev/md0 # newfs -U -m 0 /dev/md0.eli # mount /dev/md0.eli /mnt # umount /dev/md0.eli # geli detach md0.eli Ahora se puede montar esta imagen en otra máquina simplemente ingresando una contraseña. # mdconfig -at vnode -f /archivo encriptado # geli added /dev/md0 # mount /dev/md0.eli /mnt

: - 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 archivo de clave(2048 bits) y establezca los derechos de acceso.

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 CD en vivo.

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
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 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, el desarrollo de la aplicación TrueCrypt, conocido herramienta software de código abierto para el cifrado de disco. 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 de cifrado de Linux. unidades de disco duro y la estandarización permite la interoperabilidad entre diferentes 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-obtener actualización$ 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. 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, 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.

El cifrado del directorio de inicio brinda una protección confiable de los datos almacenados en un disco duro u otro medio. El cifrado es especialmente relevante en portátiles, ordenadores con acceso múltiple y en cualquier otro entorno. El cifrado del directorio de inicio se ofrece al instalar Linux Mint.

El principal inconveniente en cifrado completo directorio de inicio es que necesita "mover" el directorio con datos cifrados fuera del punto de montaje.

El rendimiento cae ligeramente, al menos todavía no usando SWAP. SWAP es una partición o archivo de disco especial al que el sistema operativo mueve bloques individuales de RAM cuando no hay suficiente RAM para ejecutar aplicaciones. SWAP también está encriptado si elige encriptar su directorio de inicio en el instalador y el modo de hibernación deja de funcionar.

No encripte SWAP con un directorio de inicio encriptado - potencialmente peligroso, ya que puede haber datos de archivos encriptados en texto sin cifrar - se pierde todo el punto de encriptación. A partir de la versión 14 de Linux Mint, durante la instalación es posible elegir la opción de cifrar todo el disco. Esta opción es la más adecuada para almacenar datos personales en dispositivos portátiles (que normalmente tienen un solo usuario).

1.3 Cifrado en gnome - Seahorse

Linux Mint tiene una utilidad integrada llamada "Contraseñas y claves" o Seahorse. Usando sus capacidades, el usuario puede operar con todas las claves, contraseñas y certificados que están disponibles en este sistema operativo.

En esencia, Seahorse es una aplicación para GNOME (GNOME es un entorno de escritorio gratuito para sistemas operativos similares a Unix), que es una interfaz para GnuPG (un programa gratuito para el cifrado de información y la creación de firmas digitales) y está diseñado para gestionar el cifrado. claves y contraseñas. Llegó a reemplazar el llavero de GNOME, que se reemplazó por completo en GNOME 2.22, aunque se anunció en GNOME 2.18. Le permite realizar todas las operaciones que antes debían realizarse en la línea de comandos y combinarlas en una sola interfaz:

    gestiona tu seguridad ambiente de trabajo y claves OpenPGP y SSH;

    encriptar, expandir y verificar archivos y texto;

    agregar y comprobar firmas digitales a los documentos;

    sincronizar claves con servidores de claves;

    crear y publicar claves;

    reservar información clave;

    agregar a las imágenes en cualquier GDK compatible como una identificación con foto de OpenGPG;

1.4 Cifrado verdadero

TrueCrypt tiene una interfaz gráfica bastante fácil de usar, pero, desafortunadamente, los desarrolladores tienen una integración integrada con el administrador de archivos Nautilus en el código.

Se pueden utilizar varios métodos para cifrar los datos.

Primero debe crear un llamado contenedor, que contendrá carpetas de archivos destinadas al cifrado. Un contenedor puede ser un archivo con un nombre arbitrario o incluso una partición de disco completa. Para acceder al contenedor, debe especificar una contraseña y también puede crear un archivo de clave (opcional) que se utilizará para cifrar la información. El contenedor es limitado.

Crear particiones/archivos encriptados

Creación de un archivo clave:

truecrypt -create-keyfile /home/usuario/prueba/archivo, donde archivo es el nombre del archivo clave.

Creando un contenedor, en este caso una sección:

sudo truecrypt -k /inicio/usuario/prueba/archivo -c /dev/sda9

En lugar de la partición /dev/sda9, es bastante posible especificar un archivo, por ejemplo /home/user/test/cryptofile, pero en este caso será necesario especificar su tamaño, esto se hace con -size= Parámetro 5G antes del parámetro -c. Este ejemplo creará un archivo criptográfico de 5 GB. A veces, TrueCrypt acepta el tamaño solo en bytes, para 5 GB puede calcular el valor por adelantado y especificar -size=5368709120, o escribirlo así: -size=`echo 1024^3*5 | a.c.

Se utilizará un archivo de clave ya creado para el cifrado.

Al crear, se le pedirá que seleccione el tipo de contenedor (normal/oculto), sistema de archivos (FAT, ext2/3/4 o sin FS), en este ejemplo, se seleccionó el modo sin usar FS. También se le ofrecerá una opción de algoritmo de cifrado (por ejemplo, AES), así como un algoritmo hash (por ejemplo, SHA-1) para cifrar flujos de datos.

TrueCrypt se usa para cifrar datos sobre la marcha, es decir, al montar el contenedor, puede trabajar con los archivos en él como de costumbre (abrir/editar/cerrar/crear/eliminar), lo cual es muy conveniente.

Se ha creado una partición/archivo cifrado. Ahora bien, si necesita formatear su sistema de archivos interno (en adelante FS) al deseado, debe hacer lo siguiente.

Seleccione la partición requerida usando Truecrypt:

truecrypt -k /inicio/usuario/prueba/archivo /dev/sda9

De forma predeterminada, se utilizará el dispositivo Truecrypt /dev/mapper/truecrypt0 creado. Al acceder a este dispositivo, puede cambiar, por ejemplo, el sistema de archivos en un contenedor cifrado. En este caso, hay que hacerlo.

sudo mkfs.ext4 -v /dev/mapper/truecrypt0

Por esto, el ext4 FS se hizo dentro de este contenedor encriptado.

Además, dado que este contenedor ya está "adjunto" al dispositivo /dev/mapper/truecrypt0, solo queda montarlo en algún directorio. Este directorio de montaje ya debe existir en el sistema.

sudo mount /dev/mapper/truecrypt0 /mnt/crypto, donde /mnt/crypto es el directorio en el que se monta el contenedor cifrado.

cripta verdadera -d

Ahora, sin conocer el archivo clave y la contraseña, nadie puede leer la información oculta.

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