Jump to content

Настройка единого ключа Linux

(Перенаправлено с LUKS )

Настройка унифицированного ключа Linux ( LUKS ) — это спецификация шифрования диска , созданная Клеменсом Фрувиртом в 2004 году и первоначально предназначенная для Linux .

LUKS реализует независимый от платформы стандартный дисковый формат для использования в различных инструментах. Это облегчает совместимость и взаимодействие между различными программами и операционными системами, а также гарантирует, что все они реализуют управление паролями безопасным и документированным образом. [1]

Описание

[ редактировать ]

LUKS используется для шифрования блочного устройства . Содержимое зашифрованного устройства произвольно, поэтому зашифровать можно любую файловую систему, включая разделы подкачки . [2] имеется незашифрованный заголовок В начале зашифрованного тома до 8 (LUKS1) или 32 (LUKS2) ключей шифрования вместе с такими параметрами шифрования, как тип шифра и размер ключа. , который позволяет хранить [3] [4]

Наличие этого заголовка является основным отличием между LUKS и dm-crypt , поскольку заголовок позволяет использовать несколько разных парольных фраз с возможностью их изменения и удаления. Если заголовок утерян или поврежден, устройство больше нельзя будет расшифровать. [5]

Шифрование осуществляется с использованием многоуровневого подхода. Сначала блочное устройство шифруется с помощью главного ключа. Этот главный ключ шифруется с каждым активным ключом пользователя . [6] Ключи пользователя создаются на основе парольных фраз, FIDO2 ключей безопасности , TPM или смарт-карт . [7] [8] Многоуровневый подход позволяет пользователям менять свою парольную фразу без повторного шифрования всего блочного устройства. Слоты ключей могут содержать информацию для проверки паролей пользователей или других типов ключей.

Существует две версии LUKS: LUKS2 отличается устойчивостью к повреждению заголовка и использует Argon2 функцию деривации ключей по умолчанию, тогда как LUKS1 использует PBKDF2 . [9] Преобразование между обеими версиями LUKS возможно в определенных ситуациях, но некоторые функции могут быть недоступны в LUKS1, например Argon2. [3] LUKS2 использует JSON в качестве формата метаданных. [3] [10]

Доступные криптографические алгоритмы зависят от индивидуальной поддержки ядра хоста. Libgcrypt можно использовать в качестве бэкэнда для хеширования, который поддерживает все его алгоритмы. [11] Выбор алгоритма по умолчанию зависит от поставщика операционной системы. [12] LUKS1 использует антикриминалистический метод под названием AFsplitter, позволяющий безопасно данные . удалять и защищать [13]

ЛУКС с LVM

[ редактировать ]

Управление логическими томами можно использовать вместе с LUKS. [14]

LVM — это ЛУКИ
Когда LVM используется в разблокированном контейнере LUKS, все базовые разделы (которые являются логическими томами LVM) могут быть зашифрованы с помощью одного ключа. Это похоже на разделение контейнера LUKS на несколько разделов. Структура LVM не видна до тех пор, пока диск не будет расшифрован. [15]
LUKS — это LVM
Когда LUKS используется для шифрования логических томов LVM, зашифрованный том может охватывать несколько устройств. Базовая группа томов LVM видна без расшифровки зашифрованных томов. [16]

Полное шифрование диска

[ редактировать ]
Установщик Debian показывает возможность автоматического разбиения на разделы с помощью LVM на LUKS

Обычно LUKS используется для обеспечения полного шифрования диска , что включает в себя шифрование корневого раздела установки операционной системы, что защищает файлы операционной системы от подделки или чтения посторонними лицами . [14]

В системе Linux загрузочный раздел ( /boot) может быть зашифровано, если сам загрузчик поддерживает LUKS (например, GRUB ). Это сделано для предотвращения вмешательства в ядро ​​Linux . Однако загрузчик первого этапа или системный раздел EFI не могут быть зашифрованы (см. Полное шифрование диска#Проблема с загрузочным ключом ). [14]

В мобильных системах Linux компания postmarketOS разработала osk-sdl , позволяющий разблокировать систему с полным шифрованием диска с помощью сенсорного экрана.

Для систем, работающих под управлением systemd , systemd-homed Компонент может использоваться для шифрования отдельных домашних каталогов . [17]

Поддержка операционной системы

[ редактировать ]

Эталонная реализация LUKS работает в Linux и основана на расширенной версии cryptsetup , использующей dm-crypt в качестве механизма шифрования диска. В Microsoft Windows диски, зашифрованные с помощью LUKS, можно использовать через подсистему Windows для Linux . [18] (Раньше это было возможно с помощью LibreCrypt, [19] который в настоящее время имеет фундаментальные дыры в безопасности, [20] [21] и который пришел на смену FreeOTFE , ранее DoxBox.)

DragonFly BSD поддерживает LUKS. [22]

Поддержка установщика

[ редактировать ]

Некоторые дистрибутивы Linux позволяют шифровать корневое устройство при установке ОС. В число этих установщиков входят Calamares , [23] Вездесущность , [24] Установщик Debian , [25] и многое другое.

Формат на диске

[ редактировать ]

Заголовки LUKS обратно совместимы; более новые версии LUKS могут читать заголовки предыдущих версий. [26]

LUX1 Заголовок [26]
Компенсировать Тип данных Описание
0 0 0 0 0 0 шестнадцатеричный символ [6] Магическое число {'L', 'U', 'K', 'S', 0xBA, 0xBE }
0 0 6 0 0 6 шестнадцатеричный uint16_t Версия LUKS (0x0001 для LUKS1)
0 0 8 0 0 8 шестнадцатеричный символ [32] Алгоритм шифрования (например, «twofish», «aes»)
0 40 0 28 шестнадцатеричный символ [32] Режим шифрования (например, «cbc-essiv:sha256»)
0 72 0 48 шестнадцатеричный символ [32] Криптографическая хеш-функция (например, «sha1», «ripemd160»)
104 0 68 шестнадцатеричный uint32_t Смещение полезной нагрузки (позиция зашифрованных данных) в смещениях по 512 байт.
108 0 6C шестнадцатеричный uint32_t Количество ключевых байтов
112 0 70 шестнадцатеричный символ [20] PBKDF2 главного ключа Контрольная сумма
132 0 84 шестнадцатеричный символ [32] Параметр соли главного ключа PBKDF2
164 0 А4 шестнадцатеричный uint32_t Итерации главного ключа PBKDF2 (по умолчанию: 10)
168 0 А8 шестнадцатеричный символ [40] UUID раздела (например, «504c9fa7-d080-4acf-a829-73227b48fb89»)
208 0 D0 шестнадцатеричный (48 байт) Ключевой слот 1
544 220 шестнадцатеричный (48 байт) Ключевой слот 8
Всего 592 байта
Формат каждого слота клавиш
Компенсировать Тип данных Описание
0 0 uint32_t Состояние слота для ключей: Active=0x00AC71F3; Отключено=0x0000DEAD
0 4 uint32_t Параметр итерации PBKDF2
0 8 символ [32] Параметр соли PBKDF2
40 uint32_t Начальный сектор ключа
44 uint32_t Количество антикриминалистических полос (по умолчанию: 4000)
Всего 48 байт

Устройства LUKS2 начинаются с двоичного заголовка, предназначенного для обеспечения распознавания и быстрого обнаружения с помощью blkid , который также содержит такую ​​информацию, как контрольные суммы . Все строки, используемые в заголовке LUKS2, завершаются нулем . Сразу после бинарного заголовка идет область JSON, содержащая объекты. config (конфигурация), keyslots, digests, segments (описывает зашифрованные области на диске) и tokens содержащий дополнительные метаданные. [10]

Бинарный формат для обычных luks2 слоты клавиш в основном аналогичны своему предшественнику, с добавлением различных алгоритмов для каждого слота клавиш. Существует другой тип ключа, обеспечивающий избыточность в случае прерывания процесса повторного шифрования. [10]

Cryptsetup — это эталонная реализация интерфейса LUKS.

Чтобы зашифровать устройство с помощью пути /dev/sda1:

# cryptsetup luksFormat /dev/sda1

Чтобы разблокировать зашифрованное устройство, где name это имя сопоставленного устройства:

# cryptsetup open /dev/sda1 name

Повторное шифрование

[ редактировать ]

Повторное шифрование контейнера LUKS можно выполнить либо с помощью cryptsetup сам инструмент или с помощью устаревшего инструмента под названием cryptsetup-reencrypt. Эти инструменты также можно использовать для добавления шифрования в существующую незашифрованную файловую систему или удаления шифрования с блочного устройства. [11] [27]

Оба метода имеют схожий синтаксис:

# cryptsetup reencrypt /dev/sda1
# cryptsetup-reencrypt /dev/sda1

См. также

[ редактировать ]
  1. ^ Фрувирт, Клеменс (20 января 2018 г.). «Спецификация формата диска LUKS, версия 1.2.3» (PDF) . Проверено 23 сентября 2021 г.
  2. ^ «Шифрование дисков с помощью LUKS» . Документы Федоры . Проверено 6 мая 2022 г.
  3. ^ Jump up to: а б с «Глава 12. Шифрование блочных устройств с помощью LUKS» . Портал для клиентов Red Hat .
  4. ^ «Как зашифровать жесткий диск (раздел) с помощью LUKS в Linux» . 27 февраля 2019 г.
  5. ^ «Как зашифровать данные с помощью dm-crypt» . Линод .
  6. ^ Босси, Симона; Висконти, Андреа (2015). «Что пользователи должны знать о полном шифровании диска на основе LUKS» (PDF) . {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  7. ^ «systemd-cryptenroll — ArchWiki» . wiki.archlinux.org . Проверено 22 ноября 2023 г.
  8. ^ «Как зашифровать контейнер LUKS с помощью смарт-карты или токена» . 20 апреля 2014 г.
  9. ^ «Как LUKS работает с полнодисковым шифрованием в Linux» . 25 сентября 2021 г.
  10. ^ Jump up to: а б с "on-disk-format-luks2.pdf" (PDF) .
  11. ^ Jump up to: а б cryptsetup(8) по администрированию Linux и привилегированным командам Руководство
  12. ^ «Взлом шифрования LUKS» . Электронная криминалистика . 21 августа 2020 г.
  13. ^ «АФсплиттер» .
  14. ^ Jump up to: а б с «dm-crypt/Шифрование всей системы» . Проверено 6 мая 2022 г.
  15. ^ «Арка с LVM на LUKS» .
  16. ^ «LUKS на LVM: зашифрованные логические тома и безопасные резервные копии» . 12 сентября 2014 г.
  17. ^ «Домашние каталоги» . системад .
  18. ^ «Обслуживание подсистемы Windows для ядра Linux (WSL) 2» . Блоги разработчиков Microsoft . 16 апреля 2021 г.
  19. ^ «ФриКрипт » Гитхаб . 27 июля
  20. ^ «Недостаток в драйвере позволяет повысить привилегии. Требуется отзыв · Проблема № 38 · tdk/LibreCrypt» . Гитхаб . 30 сентября 2015 г.
  21. ^ «Драйвер позволяет выполнять запись на произвольные устройства · Проблема № 39 · tdk/LibreCrypt» . Гитхаб . 7 октября 2015 г.
  22. ^ «Список основных функций DragonFly» . Проверено 6 мая 2022 г.
  23. ^ Майкл Ларабель (8 мая 2016 г.). «Установщик Calamares добавляет поддержку шифрования LUKS» . Фороникс .
  24. ^ «Как зашифровать жесткий диск в Ubuntu» . Сделайте технологию проще . 13 января 2017 г.
  25. ^ «ПартманКрипто» . Дебиан Вики . Проверено 6 мая 2022 г.
  26. ^ Jump up to: а б «Спецификация формата диска LUKS» (PDF) .
  27. ^ «Страница руководства CRYPTSETUP-REENCRYPT(8)» . man7.org .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7d179bf7cf6ad1d5fc67409a134cec83__1716567300
URL1:https://arc.ask3.ru/arc/aa/7d/83/7d179bf7cf6ad1d5fc67409a134cec83.html
Заголовок, (Title) документа по адресу, URL1:
Linux Unified Key Setup - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)