Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

Проблемы с очисткой ключей шифрования диска из ОЗУ при переходе Linux в ждущий режим

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 2033
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 59 раз
Поблагодарили: 28 раз

Проблемы с очисткой ключей шифрования диска из ОЗУ при переходе Linux в ждущий режим

Сообщение root:# »

Проблемы с очисткой ключей шифрования диска из ОЗУ при переходе Linux в ждущий режим
В ходе портирования для NixOS инструментария cryptsetup-suspend была выявлена ошибка в подсистеме дискового шифрования LUKS (Linux Unified Key Setup), из-за которой начиная с ядра Linux 6.9 (проблемный коммит), выпущенного в мае 2024 года, перестала работать очистка ключей шифрования из оперативной памяти при переходе системы в ждущий режим. Инструментарий cryptsetup-suspend используется в Debian для автоматической блокировки LUKS-разделов перед переходом в режим сна. Предполагается, что в случае кражи ноутбука, переведённого в режим сна, злоумышленник будет лишён возможности получить доступ к данным, так как при выходе из сна потребуется ввести пароль для восстановления доступа к зашифрованным данным. Из-за ошибки в ядре Linux после блокировки LUKS-раздела командой "cryptsetup luksSuspend" ключи не очищались из оперативной памяти и оставались видны через /proc/keys, что позволяло атакующему извлечь их, например, методом "холодной перезагрузки", и использовать для доступа к данным. Отсутствие очистки ключей было выявлено в ходе отладки состояния гонки, из-за которого возникали проблемы с переходом в ждущий режим. Ошибка возникла после проведения в ядре 6.9 рефакторинга, в результате которого ключи привязывались к вызывающему потоку и должны были удаляться при его завершении, но на деле оставались в памяти. Для включения в ядро Linux предложен однострочный патч, устраняющий допущенную ошибку. Данный патч не принят в ядро, так как в нём выявлена недоработка - патч действует только для физических накопителей, но не работает для виртуальных loop-устройств. Вместо исправления проблемы на стороне ядра разработчиками инструментария cryptsetup был предложен обходной путь очистки ключей. Данное изменение уже принято и войдёт в состав выпуска cryptsetup 2.8.7. Помимо этого, для NixOS была создана собственная реализация скриптов для блокировки шифрованных дисков пред переходом в ждущий режим, в котором задействован старый патч к ядру, не принятый в 2015 году, принудительно очищающий ключи из памяти перед переходом в режим сна.
Источник: https://www.opennet.ru/opennews/art.shtml?num=65831