Из того, что я понимаю, даже когда данные перезаписываются на диск, существует вероятность их восстановления. Из того, что я также понимаю, замена / удаление ключа LUKS происходит быстро / тривиально и не приводит к перезаписи всех данных. Это говорит мне о том, что где-то в заголовке есть важный "вторичный ключ", который также предполагает, что если ключ был скомпрометирован и заменен, но злоумышленник может восстановить ПРЕДЫДУЩЕЕ состояние заголовка LUKS, который использовал этот ключ, он может по-прежнему доступ к данным. Я ошибаюсь или это проблема безопасности?
2 ответа
Краткий ответ: Это проблема безопасности, если вы не можете поддерживать физический контроль над своим носителем и / или выбираете плохие пароли.
Более длинный ответ:
Если злоумышленник получит доступ к жесткому диску в момент времени A, продублирует его и скомпрометирует ключ, как это было в момент времени A, тогда все данные, которые присутствовали в момент времени A, будут скомпрометированы (но вы знали об этой части).
Насколько мне известно, существует «главный ключ», к которому каждая парольная фраза даст вам доступ. Кроме того, я не мог найти способ легко изменить главный ключ без создания нового нового раздела для нового главного ключа (это было бы трудно сделать, даже если бы это было возможно).
Это означает, что если вы не протрите жесткий диск и не начнете заново между моментами A и B, то злоумышленник, который скомпрометировал ключ, как это было в момент A, и который также получит доступ к тому же диску в момент B, будет иметь доступ к данные, как в момент времени Б.
Смягчение:
Обучение пользователей и правильное реагирование на угрозы безопасности. Если ваш пользователь теряет контроль над зашифрованным носителем, а затем восстанавливает контроль над ним позже, вам нужно, чтобы он сообщил вам об этом, и вам нужно стереть аппарат и повторно зашифровать его, используя другую парольную фразу.
Кроме того, считайте информацию, которая была на ноутбуке (в момент А), потерянной или потенциально утерянной, если есть вероятность того, что искушенный злоумышленник получил к ней доступ, а парольная фраза не является достаточно сильной.
В качестве очень краткого изложения тех частей заголовка LUKS, которые здесь важны (не обязательно должны быть технически точными на 100%):
Заголовок LUKS содержит "ключевые слоты"
Каждый слот для ключей содержит "главный ключ" для контейнера
Каждый слот ключа независимо шифруется с использованием ключа, полученного из ключевой фразы
С каждым слотом ключа связаны свои собственные настройки пароля и функции получения ключа.
Когда вы создаете контейнер LUKS, генерируется случайный главный ключ. Это ключ шифрования, который используется для фактического шифрования данных на диске. Вам также предлагается ввести ключевую фразу, которая используется для получения ключа шифрования для первого слота ключа. Ключ шифрования слота ключа, в свою очередь, используется для защиты данных в слоте ключа, включая главный ключ.
До недавнего времени у LUKS не было удобного способа изменить главный ключ; это было по существу "сожжено" в контейнер во время создания. Это было проблемой, например, если создание контейнера происходило в ситуации энтропии, например, в начале установки системы. В настоящее время (начиная с cryptsetup 1.5), существует cryptsetup-reencrypt, который предоставляется по умолчанию в современных дистрибутивах, которые, среди прочего, позволяют изменять главный ключ контейнера путем повторного шифрования всех данных в контейнере.
Резервная копия заголовка LUKS содержит все данные, которые содержит заголовок LUKS. Другими словами, главный ключ, защищенный (возможно, набором различных) парольной фразы. Злоумышленник также может атаковать контейнер LUKS через резервную копию заголовка или копию отдельного заголовка, как через прямой доступ к контейнеру.
Следовательно, если злоумышленник имеет доступ к заголовку LUKS для контейнера, он может атаковать ключевые слоты на досуге. Как только они смогут открыть один из ключевых слотов, у них есть ключ, который будет использоваться при сбросе заголовка для расшифровки данных в контейнере. Если заголовок, к которому у злоумышленника есть доступ, был защищен слабой парольной фразой или слабыми настройками PBKDF (особенно счетчиком итераций), это может быть проблемой.
Опять же, следовательно, если вы не перешифруете контейнер с помощью другого ключа (вы можете остаться с теми же настройками шифра и шифра), такой злоумышленник может использовать мастер-ключ, о котором он теперь знает, для доступа к данным в контейнере через некоторое время.
Чтобы смягчить эту угрозу, недостаточно изменить фразу-пароль; Вы должны повторно зашифровать контейнер.
Конечно, если злоумышленнику удалось продублировать не только заголовок LUKS, но и содержимое самого контейнера, и злоумышленнику удастся открыть одну ячейку ключа, то данные будут немедленно скомпрометированы.