На практике шифрование почти так же устойчиво, как и без него, при условии, что вы правильно копируете главный ключ и метаданные .
Помимо метаданных, повреждение повлияло бы только на блок поврежденного бита, в большинстве случаев всего на 16 байтов.
В большинстве случаев повреждения данных с ключом и инструментами (такими как ваш пароль и Veracrypt / LUKS) у вас есть такой же доступ, что и у незашифрованного диска, так же, как вы обычно делаете это при повседневном использовании зашифрованного диска. Шифрование только добавит дополнительный шаг (открыть зашифрованный раздел), чем обычный. Так что в этом случае он ведет себя как незашифрованные данные.
С Veracrypt или Luks вы должны хранить мастер-ключ на диске, который зашифрован вашим паролем. Повреждение этого сектора (-ов) может привести к потере постоянных данных. Это может быть легко решено с помощью резервного копирования главного ключа (размером в несколько килобайт), что легко сделать с обоими программами, и это настоятельно рекомендуется для всех.
Подробности о неметаданных
И Veracrypt, и Luks сегодня используют XTS. В этом режиме рассчитывается ключ для каждого блока. В качестве упрощения для шифрования блока i
используется ключ, созданный с помощью мастер-ключей, и номер блока. Итак, шифрование одного блока не зависит от другого. Если вы испортили некоторую информацию, она будет ограничена этим блоком.
В XTS он разбивает блок на подблоки (обычно по 16 байт), создает ключ и шифрует этот подблок с помощью него. Это означает, что если мы немного изменим это, это затронет только эти 16 байтов.
В качестве теста, изменяя один бит в томе Luks, он меняет 16 байтов исходного файла на бессмысленный, но остальные 496 остаются неизменными. В 7zip-файле он использует потоковый метод, при котором все байты объединены в цепочку, поэтому изменение одного байта повлияет на все остальные - здесь это не так.
Некоторые считают это проблемой, поскольку вы можете точно знать, когда и где вы изменяете простой текст с точностью до 16 байт, сравнивая только зашифрованные данные.
Более интересную информацию об этом можно найти по этим ссылкам:
/crypto/6185/what-is-a-tweakable-block-cipher
/security/39306/how-secure-is-ubuntus-default-full-disk-encryption
https://en.wikipedia.org/wiki/Disk_encryption_theory
Подробности о Мастер Ключе
LUKS
У LUKS есть несколько секторов в начале раздела (или диска) с метаданными, хранящими методы шифрования, другие параметры и 8 ключевых слотов. Для шифрования и дешифрования диска используется мастер-ключ , большое случайное число, генерируемое при создании контейнера LUKS. Чтобы сохранить его, он зашифровывает мастер-ключ паролем, многократно повторяя криптографическую хеш-функцию над паролем и генерируя специальный ключ для этого слота. Вы можете иметь 8 разных паролей для одного и того же диска, каждый из которых зашифровывает мастер-ключ своим паролем в слоте. Когда вы меняете пароль, это так же просто, как зашифровать мастер-ключ, а не изменить весь раздел.
Таким образом, когда эти слоты и метаданные повреждены, вы не можете восстановить главный ключ, который действительно используется для расшифровки, теряя все данные на диске. Это простой способ быстро уничтожить все ваши данные. Но если у вас есть резервная копия заголовка тома, его довольно легко восстановить.
Ниже приведена копия часто задаваемых вопросов о резервном копировании LUKS, которую можно найти по адресу https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions#6-backup-and-data-recovery.
6.2 Как мне сделать резервную копию заголовка LUKS?
Хотя вы можете просто скопировать соответствующее количество байтов с начала раздела LUKS, лучше всего использовать параметр команды "luksHeaderBackup" cryptsetup. Это также защищает от ошибок, когда при создании раздела LUKS использовались нестандартные параметры. Пример:
cryptsetup luksHeaderBackup --header-backup-file <file> <device>
Для восстановления используйте обратную команду, т.е.
cryptsetup luksHeaderRestore --header-backup-file <file> <device>
Если вы не уверены, что заголовок будет восстановлен, сначала сделайте резервную копию текущего! Вы также можете проверить заголовочный файл, не восстанавливая его, используя параметр --header для отдельного заголовка, например:
cryptsetup --header <file> luksOpen <device> </dev/mapper/ -name>
Если это откроет твою партию ключей, ты в порядке. Не забудьте снова закрыть устройство.
При некоторых обстоятельствах (поврежденный заголовок) это не удается. Затем выполните следующие действия:
Сначала определите размер мастер-ключа:
cryptsetup luksDump <device>
дает строку вида
MK bits: <bits>
с битами, равными 256 для старых значений по умолчанию и 512 для новых значений по умолчанию. 256 бит равняется общему размеру заголовка в 1'052'672 байта и 512 битам из 2MiB. (См. Также пункт 6.12). Если luksDump завершается неудачно, используйте 2MiB, но помните, что если вы восстановите это, вы также можете восстановить первые 1M или около того файловой системы. Не изменяйте файловую систему, если вы не смогли определить размер заголовка! При этом восстановление резервной копии слишком большого заголовка все еще безопасно.
Во-вторых, сбросьте заголовок в файл. Есть много способов сделать это, я предпочитаю следующее:
head -c 1052672 <device> > header_backup.dmp
или
head -c 2M <device> > header_backup.dmp
для заголовка 2MiB. Проверьте размер файла дампа, чтобы быть уверенным. Чтобы восстановить такую резервную копию, вы можете попробовать luksHeaderRestore или сделать более простой
cat header_backup.dmp > <device>
Veracrypt
ФИЛЬМЫ ПОХОЖИЕ НА LUKS Я не привык с этим, как я был с Truecrypt, но общая идея верна.
У Veracrypt просто один слот для ключей, поэтому вы не можете иметь более одного пароля одновременно. Но у вас может быть скрытый том: он хранит метаданные в конце раздела (или на диске, или в файле). Скрытый том имеет другой мастер-ключ и будет использовать конец раздела как перекрытое пространство. Идея, что вы должны сделать резервную копию, та же самая. Это можно сделать с помощью Tools -> Backup Volume Header
и Tools -> Restore Volume Header
. С помощью системного шифрования он используется для создания загрузочного диска с резервной копией ключей, которая восстанавливает загрузчик Truecrypt и ключи в случае любого повреждения. Это делается до того, как что-то зашифровать, и, насколько я знаю, Veracrypt продолжает делать то же самое.
Для получения дополнительной информации см. Эту ссылку https://veracrypt.codeplex.com/wikipage?title=Program%20Menu
Соображения безопасности по поводу ключей резервного копирования
Например, если у вас есть утечка пароля и вы изменили пароль тома на новый, надежный и безопасный, кто-то, имеющий доступ к резервной копии, все равно сможет расшифровать файлы со старым паролем. Резервная копия - это в основном мастер-ключ, зашифрованный (старым) паролем. Поэтому при смене паролей также необходимо создать новую резервную копию и уничтожить старые. И уничтожение данных навсегда может быть очень хитрым.
Для каждой резервной копии с этим паролем возможен способ расшифровки данных с помощью этого пароля. Это можно использовать, например, в Veracrypt, используя «Универсальный пароль» (как в корпорации), создавая его резервную копию и меняя другой пароль. Итак, отдел информационных технологий. может восстановить доступ к этому тому, даже если кто-то потерял пароль (думайте как мастер-пароль, но не путайте с мастер-ключом ранее).
Заключительные мысли (TL; DR)
Вероятность повреждения конкретного сектора с помощью мастер-ключа меньше, чем при полном отказе диска. Поэтому, если эти данные важны, у вас должна быть резервная копия, а не только заголовки томов (мастер-ключ).
И повреждение данных распространяется мало (16 байт), в результате чего приемлемо для большинства применений.
Таким образом, плохой блок в середине раздела или диска будет влиять только на этот блок. И ошибки в несколько битов в секторе ограничены этим сектором и даже не влияют полностью на сектор 512 байт.
Обновление (23/01/2017): добавьте больше информации, основываясь на комментариях ОП.
Ниже я собрал некоторую информацию об отказоустойчивости контейнеров VeraCrypt / TrueCrypt.
Из-за повреждения данных Veracrypt :
Из часто задаваемых вопросов VeraCrypt :
В этом случае повреждение небольших данных должно иметь только локальный эффект и не разрушать весь контейнер. Однако я не советую шифровать весь том / раздел, особенно системный диск, так как восстановление может быть более сложным. Делайте хорошие резервные копии, особенно для заголовка тома. И помните, что, как и для реального диска или папки, повреждение заголовков диска / файла может затруднить восстановление данных и может потребовать дополнительных утилит.
Я считаю, что у LUKS нет второго заголовка на диске, поэтому вы должны быть еще более осторожны с сохранением резервной копии.
источник
chkdsk
.Благодаря всем ответам, предоставленным людьми, окончательный ответ завершен на 100%.
У меня не так много времени, поэтому я отредактирую свой «собственный» ответ позже. Поскольку все ответы, которые люди давали здесь, абсолютно полезны, это будет просто резюме того, что они сказали, а также мои выводы.
Во всяком случае, вот один из моих выводов, который развенчает большую путаницу, с которой я столкнулся, и это в основном касалось ... что означает блок, поскольку это термин, который используется чрезмерно и по ошибке:
https://sockpuppet.org/blog/2014/04/30/you-dont-want-xts/
Кроме того, вы найдете «стандартный» способ говорить о вещах здесь и избежать путаницы в «блоке»:
/superuser/1176839/what-are-every-possible-names-of-hard-drives-structure-parts
Вкратце, вы можете изменить зашифрованный блок, содержащий слово «400», на «800». Это означает, что зашифрованный уровень на уровне блоков совершенно не является твердым, вместо того, чтобы полагать, что «это будет действовать как обычная файловая система» (например, Veracrypt FAQ).
Кроме того, я должен был наткнуться на эту ссылку два месяца назад:
/unix/321488/full-image-of-internal-hdd-drive-dd-dd-rescue-with-truecrypt-bad-sectors/
Поскольку VeraCrypt является форком TrueCrypt, он, безусловно, будет работать так же.
PS:
Любой дополнительный ответ по-прежнему приветствуется и будет добавлен в мой «собственный» ответ.
источник