Solución:
En la práctica, es casi tan resistente con cifrado como sin él, siempre que hacer una copia de seguridad de la clave maestra y los metadatos adecuadamente.
Aparte de los metadatos, la corrupción afectaría solo al bloque del bit dañado, en la mayoría de los casos solo a 16 bytes.
Para la mayoría de las situaciones de corrupción de datos, con la clave y las herramientas (como su contraseña y Veracrypt / LUKS), tiene el mismo acceso que un disco no cifrado, tal como lo hace normalmente con el uso diario de un disco cifrado. El cifrado solo agregaría un paso adicional (abrir una partición cifrada) de lo normal. Entonces, en este caso, se comporta como datos no cifrados.
Con Veracrypt o Luks, debe almacenar la clave maestra en el disco, que está encriptada con su contraseña. Dañar este sector o sectores provocaría una pérdida permanente de datos. Esto se puede resolver fácilmente con una copia de seguridad de la clave maestra (unos pocos kilobytes de tamaño), algo fácil de hacer con ambos software y muy recomendable para todos.
Detalles sobre no metadatos
Tanto Veracrypt como Luks usan XTS en la actualidad. En este modo, se calcula una clave para cada bloque. En una simplificación, para cifrar el bloque i
utiliza una clave generada con las claves maestras y el número de bloque. Entonces, el cifrado de un bloque es independiente de otro. Si corrompe alguna información, se restringirá a ese bloque.
En XTS, rompe el bloque en sub-bloques (de 16 bytes generalmente) y crea una clave, y encripta ese sub-bloque con ella. Eso significa que si cambiamos un poco en él, solo estos 16 bytes se verían afectados.
Como prueba, al cambiar un solo bit en un volumen de Luks, cambia 16 bytes del archivo original a un galimatías, pero los otros 496 permanecen sin cambios. En un archivo 7zip, usa un método de flujo, que todos los bytes están encadenados, por lo que un cambio de byte afectaría a todos los restantes; este no es el caso aquí.
Algunos consideran que esto es un problema, ya que puede saber con una precisión de 16 bytes cuándo y dónde cambia un texto sin formato, comparando solo los datos cifrados.
Se puede encontrar más información interesante sobre esto en estos enlaces:
https://crypto.stackexchange.com/questions/6185/what-is-a-tweakable-block-cipher
https://security.stackexchange.com/questions/39306/how-secure-is-ubuntus-default-full-disk-encryption
https://en.wikipedia.org/wiki/Disk_encryption_theory
Detalles sobre la llave maestra
LUKS
LUKS tiene algunos sectores al comienzo de la partición (o disco) con metadatos, almacenando métodos de cifrado, otros parámetros y 8 ranuras de claves. Para cifrar y descifrar el disco, utiliza un Llave maestra, un gran número aleatorio generado al crear un contenedor LUKS. Para almacenarlo, encripta la clave maestra con su contraseña, iterando una función hash criptográfica muchas veces sobre la contraseña y generando una clave específica para esa ranura. Puede tener 8 contraseñas diferentes para el mismo disco, cada una encriptando la clave maestra con una contraseña diferente en una ranura. Cuando cambia la contraseña, es tan simple como encriptar la clave maestra y no cambiar toda la partición.
Entonces, cuando estas ranuras y metadatos están dañados, no puede recuperar la clave maestra que realmente se usa para descifrar, perdiendo todos los datos en el disco. Esta es una manera fácil de destruir rápidamente todos sus datos. Pero si tiene una copia de seguridad del encabezado de volumen, es bastante fácil recuperarlo.
A continuación se muestra una copia de las preguntas frecuentes de LUKS sobre la copia de seguridad extraída de https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequencyAskedQuestions#6-backup-and-data-recovery
6.2 ¿Cómo hago una copia de seguridad de un encabezado LUKS?
Si bien puede copiar el número apropiado de bytes desde el inicio de la partición LUKS, la mejor manera es usar la opción de comando “luksHeaderBackup” de cryptsetup. Esto también protege contra errores cuando se han utilizado parámetros no estándar en la creación de particiones LUKS. Ejemplo:
cryptsetup luksHeaderBackup --header-backup-file <file> <device>
Para restaurar, use el comando inverso, es decir
cryptsetup luksHeaderRestore --header-backup-file <file> <device>
Si no está seguro de la restauración de un encabezado, primero haga una copia de seguridad del actual. También puede probar el archivo de encabezado sin restaurarlo usando la opción –header para un encabezado separado como este:
cryptsetup --header <file> luksOpen <device> </dev/mapper/ -name>
Si eso desbloquea tu lote de llaves, estás bien. No olvide volver a cerrar el dispositivo.
En algunas circunstancias (encabezado dañado), esto falla. Luego siga los siguientes pasos:
Primero determine el tamaño de la llave maestra:
cryptsetup luksDump <device>
da una línea de la forma
MK bits: <bits>
con bits iguales a 256 para los valores predeterminados antiguos y 512 para los valores predeterminados nuevos. 256 bits equivalen a un tamaño de encabezado total de 1’052’672 bytes y 512 bits a uno de 2MiB. (Vea también el ítem 6.12) Si luksDump falla, asuma 2MiB, pero tenga en cuenta que si restaura eso, también puede restaurar el primer 1M más o menos del sistema de archivos. ¡No cambie el sistema de archivos si no pudo determinar el tamaño del encabezado! Con eso, restaurar una copia de seguridad de encabezado demasiado grande sigue siendo seguro.
En segundo lugar, descargue el encabezado en el archivo. Hay muchas formas de hacerlo, prefiero las siguientes:
head -c 1052672 <device> > header_backup.dmp
o
head -c 2M <device> > header_backup.dmp
para un encabezado de 2MiB. Verifique el tamaño del archivo de volcado para estar seguro. Para restaurar dicha copia de seguridad, puede probar luksHeaderRestore o hacer una
cat header_backup.dmp > <device>
Veracrypt
Veracrypt es similar a LUKS. No estoy acostumbrado como lo estaba con Truecrypt, pero la idea general se mantiene.
Veracrypt solo tiene una ranura de clave, por lo que no puede tener más de una contraseña al mismo tiempo. Pero puede tener un volumen oculto: almacena los metadatos al final de la partición (o disco o archivo). El volumen oculto tiene una clave maestra diferente y utilizará el final de la partición como espacio superpuesto. La idea de que debe hacer una copia de seguridad es la misma. Esto se puede hacer con Tools -> Backup Volume Header
y Tools -> Restore Volume Header
. Con el cifrado del sistema, solía crear un disco de arranque con copia de seguridad de claves que recupera el cargador Truecrypt y las claves si ocurre algún daño. Se hace antes de encriptar cualquier cosa, y hasta donde yo sé, Veracrypt continúa haciendo lo mismo.
Para obtener más detalles, consulte este enlace https://veracrypt.codeplex.com/wikipage?title=Program%20Menu
Consideraciones de seguridad sobre las claves de respaldo
Si tiene una contraseña filtrada, por ejemplo, y cambia la contraseña del volumen a una nueva, fuerte y segura, alguien con acceso a la copia de seguridad aún podrá descifrar los archivos con la contraseña anterior. La copia de seguridad es básicamente la clave maestra encriptada con la contraseña (antigua). Entonces, al cambiar las contraseñas, también es necesario hacer una nueva copia de seguridad y destruir las más antiguas. Y destruir datos de forma permanente puede ser muy complicado.
Por cada copia de seguridad que tenga con esa contraseña, hay una forma posible de descifrar los datos con esa contraseña. Esto se puede usar en Veracrypt, por ejemplo, usando una “Contraseña Universal” (como en una corporación), haciendo una copia de seguridad y cambiándola por otra contraseña. Entonces, el departamento de TI. podría recuperar el acceso a ese volumen incluso si alguien perdió la contraseña (piense como una contraseña maestra, pero no confunda con la clave maestra de antes).
Pensamientos finales (TL; DR)
La probabilidad de dañar el sector específico con la clave maestra es menos probable que la de tener una falla total del disco. Entonces, si estos datos son importantes, debe tener una copia de seguridad en lugar de solo los encabezados de volumen (clave maestra).
Y la corrupción de datos se propaga poco (16 bytes), lo que resulta aceptable para la mayoría de los usos.
Entonces, un bloque defectuoso en el medio de la partición o el disco afectaría solo a ese bloque. Y algunos errores de bits en un sector están restringidos a ese sector, y ni siquiera afectarán totalmente a un sector de 512 bytes.
Actualización (23/01/2017): agregue más información basada en los comentarios del OP.
He recopilado a continuación información sobre la resistencia de los contenedores VeraCrypt / TrueCrypt.
De la corrupción de datos de Veracrypt:
TC / VC almacena el encabezado de volumen en dos lugares: al inicio y al final del volumen. El que está al principio es el principal y el que está al final es para respaldo. Este mecanismo suele ser suficiente para permitir el acceso cuando una parte de la unidad está dañada o dañada porque el daño suele ser local. si el daño se produce tanto en el inicio como en el final de la unidad, es casi seguro que la unidad está muerta.
Tenga en cuenta que en el caso de una unidad dañada o corrupta, tendrá la misma pérdida de datos que cuando no utiliza el cifrado. Esto significa que incluso si puede montar el volumen, la lectura de datos puede estar dañada. Por lo tanto, siempre piense en la copia de seguridad de los datos porque el cifrado no protege contra la corrupción de los datos.
De las preguntas frecuentes de VeraCrypt:
¿Qué pasará cuando una parte de un volumen de VeraCrypt se corrompa?
En los datos cifrados, un bit dañado normalmente corrompe todo el bloque de texto cifrado en el que se produjo. El tamaño del bloque de texto cifrado utilizado por VeraCrypt es de 16 bytes (es decir, 128 bits). El modo de operación utilizado por VeraCrypt asegura que si se dañan los datos dentro de un bloque, los bloques restantes no se ven afectados.
¿Qué hago cuando el sistema de archivos cifrado de mi volumen VeraCrypt está dañado?
El sistema de archivos dentro de un volumen VeraCrypt puede dañarse de la misma manera que cualquier sistema de archivos normal sin cifrar. Cuando eso suceda, puede utilizar las herramientas de reparación del sistema de archivos suministradas con su sistema operativo para solucionarlo. En Windows, es la herramienta ‘chkdsk’. VeraCrypt proporciona una manera fácil de usar esta herramienta en un volumen VeraCrypt: haga clic con el botón derecho en el volumen montado en la ventana principal de VeraCrypt (en la lista de unidades) y en el menú contextual seleccione ‘Reparar sistema de archivos’.
La pequeña corrupción de datos debería tener solo un efecto local y no destruirá todo el contenedor. Sin embargo, desaconsejo cifrar un volumen / partición completo y especialmente la unidad del sistema, ya que la recuperación puede ser más complicada. Realice buenas copias de seguridad, especialmente para el encabezado del volumen. Y recuerde que, al igual que en un disco o carpeta real, la corrupción en los encabezados del disco / archivo puede dificultar la recuperación de datos y puede requerir utilidades avanzadas.
Creo que LUKS no tiene un segundo encabezado en el disco, por lo que debe tener aún más cuidado al mantener una copia de seguridad.