На встрече по требованиям к рабочим устройствам прозвучало привычное: диски зашифрованы, значит, потеря ноутбука не инцидент. Я спросил, что именно мы считаем защищённым, если его потеряли закрытым, но не выключенным - то есть так, как чаще всего и теряют.

Ответа не нашлось ни у кого, включая меня. Пошёл разбираться, и оказалось, что «диск зашифрован» и «данные защищены» - это два утверждения с разными условиями, и второе из первого не следует.

Что именно делает шифрование диска

Оно работает на уровне блоков: каждый сектор шифруется при записи и расшифровывается при чтении. Ключ шифрования данных лежит в служебной области тома в зашифрованном виде, а расшифровывается он ключом, который получают из пароля или отдаёт доверенный модуль.

Служебную область можно посмотреть, не зная пароля (вывод сокращён):

$ cryptsetup luksDump disk.img
LUKS header information
Version:        2
Metadata area:  16384 [bytes]
Keyslots area:  16744448 [bytes]
[...]
Data segments:
  0: crypt
        offset: 16777216 [bytes]
        length: (whole device)
        cipher: aes-xts-plain64
        sector: 4096 [bytes]
Keyslots:
  0: luks2
        Key:        512 bits
        [...]

Здесь важны слоты ключей. Их несколько, и каждый - самостоятельный способ открыть том: пароль пользователя, ключ восстановления, файл-ключ, ключ из доверенного модуля. Том открывается любым из них - а значит, стойкость всей конструкции равна стойкости самого слабого слота. Ключ восстановления, лежащий в каталоге предприятия, - это ровно такой слот, и вопрос «кто имеет к нему доступ» относится к шифрованию диска напрямую, а не к бумажным политикам.

Пока том не открыт, диск - это шум. Вынули диск из выключенного ноутбука, подключили к другому компьютеру - данных нет. Это и есть та угроза, против которой механизм создавался, и с ней он справляется полностью.

Что происходит после включения

Чтобы система работала, том должен быть открыт. Открытый том - это обычное блочное устройство: файлы читаются, программы запускаются, всё как без шифрования. Ключ при этом лежит в оперативной памяти и лежит там всё время, пока компьютер включён.

Отсюда три состояния, которые в разговорах сливают в одно.

Выключен. Ключа в памяти нет, том закрыт. Защита работает.

Спящий режим (suspend). Питание оперативной памяти сохраняется, содержимое памяти живо, ключ в ней. Том формально закрыт для пользователя экраном блокировки, но не закрыт для системы: он смонтирован и работает. Защищает здесь только экран блокировки, то есть проверка пароля учётной записи, - а это уже совсем другой механизм с другими свойствами.

Гибернация (hibernate). Содержимое памяти записывается на диск, на зашифрованный том, после чего питание снимается. По защищённости это близко к выключенному состоянию, но при двух условиях сразу: раздел, куда пишется образ памяти, зашифрован, и для обратной разблокировки тома требуется ввод - пароль или ПИН-код. Незашифрованный раздел подкачки - распространённая дыра, потому что образ памяти записывается туда целиком.

Второе условие важнее, чем кажется: если ключ выдаётся автоматически, выход из гибернации разблокирует том сам, ровно так же, как обычная загрузка.

Практический вывод простой и неудобный: закрыть крышку недостаточно. Разница между «уснул» и «гибернация» - это разница между «ключ в оперативной памяти» и «ключа в оперативной памяти нет».

Отдельно стоит посмотреть, что у вас вообще называется сном. На большинстве корпоративных ноутбуков последних лет по умолчанию работает не классический сон, а современный режим ожидания: устройство продолжает выполнять фоновые задачи и поддерживать сетевое соединение. Ключ в памяти при этом тем более на месте.

Доверенный модуль без ПИН-кода

Самая распространённая конфигурация на корпоративных ноутбуках: ключ хранится в доверенном модуле (TPM) и выдаётся автоматически при загрузке, если целостность загрузки не нарушена. Пользователь ничего не вводит - включил и работает.

Удобно, и не зря так делают. Но обратите внимание, что при этом происходит: любой, кто нажал кнопку питания, получает открытый том. Дальше данные защищает только вход в систему.

Это не значит, что конфигурация плохая - она закрывает свою угрозу: снятый диск. Но она не закрывает украденный ноутбук целиком, и разница здесь принципиальная. Добавление ПИН-кода до загрузки закрывает и эту угрозу: без ПИН-кода модуль ключ не отдаёт, и загрузка до системы не доходит.

И вот здесь сходится воедино всё сказанное про гибернацию: при TPM без ПИН-кода гибернация даёт выигрыш только в одном - ключа нет в памяти выключенного устройства. Разблокируется том всё равно сам.

Коротко: TPM без ПИН-кода - защита от потери диска, TPM с ПИН-кодом - защита от потери устройства.

Порты с прямым доступом к памяти

Отдельный класс, о котором вспоминают редко: интерфейсы с прямым доступом к памяти - Thunderbolt и USB4, а на стационарных компьютерах ещё и слоты PCIe. Устройство, подключённое к такому порту, может читать оперативную память в обход операционной системы - а в ней лежит ключ. В обычном USB прямого доступа к памяти нет.

Защита существует и обычно включена на современных устройствах: блок управления памятью для внешних устройств (IOMMU) ограничивает набор областей памяти, к которым такое устройство может обращаться. На старых конфигурациях и в некоторых прошивках эта защита не включена по умолчанию, и стоит проверить, а не предполагать.

То, что содержимое памяти какое-то время сохраняется и после снятия питания, известно давно: эффект остаточного заряда в модулях DRAM, на нём построена так называемая атака холодной перезагрузки, опубликованная ещё в 2008 году. Практических деталей я тут приводить не буду, они и не нужны - достаточно вывода: пока ключ в оперативной памяти, он в зоне риска, и единственный способ убрать его оттуда - снять питание.

Что из этого следует для внутренних правил

Гибернация вместо сна для мобильных устройств - вместе с ПИН-кодом, а не вместо него. Настраивается это один раз политикой: закрытие крышки и бездействие переводят в гибернацию, а не в сон.

Цена тут не одна. Нужен файл или раздел размером с оперативную память. Пропадают мгновенное пробуждение и фоновая синхронизация. На SSD это регулярная запись десятков гигабайт. И на части моделей гибернация просто не работает надёжно - это придётся проверить на своём парке, а не принять на веру.

ПИН-код до загрузки там, где устройство покидает офис. Для стационарных компьютеров в офисе конфигурация без ПИН-кода обычно разумна, для ноутбуков - нет.

Зашифрованный раздел подкачки. Проверяется отдельно, потому что при ручной разметке его регулярно оставляют открытым.

Отдельно от шифрования - вход в систему. Пока устройство включено, всё держится на нём: длина пароля, блокировка при бездействии, поведение при пробуждении. Шифрование тома здесь не участвует вообще.

Ограничения

Шифрование тома не защищает от того, кто уже работает в системе: у запущенных программ и у вошедшего пользователя доступ к файлам обычный. Оно не защищает данные, отправленные в облако, и резервные копии, если те не зашифрованы отдельно.

Оно не мешает удалить данные - только прочитать. Устройство с зашифрованным диском так же уязвимо для шифровальщика, как любое другое.

И оно ничего не решает, если ключ восстановления лежит в общедоступном месте.

Что посмотреть у себя

Посмотреть, в какое состояние переходит корпоративный ноутбук при закрытии крышки. Не в политике, а на устройстве.

Проверить, зашифрован ли раздел подкачки и файл гибернации.

Выяснить, требуется ли ПИН-код до загрузки и на каком классе устройств. Обычно оказывается, что нигде.

Посмотреть, где хранятся ключи восстановления и у кого есть право доступа к ним. Отчёт по этому праву - короткий и часто неожиданный документ.

Комментарии (1)


  1. Einherjar
    18.09.2026 08:12

    Незашифрованный раздел подкачки - распространённая дыра

    Это в основном для линукса актуально. Макось и винда по дефолту дампят в файл на основном разделе который зашифрован, потому что у них механизмы защиты изначально вшиты в ядро. А чтобы на линуксе такое провернуть (дампить в файл на зашифрованный раздел) там какой то адов цирк получается - мой свитер с оленями еще недостаточно изношен, поэтому я так и не осилил это настроить (мне не нравится концепция отдельного раздела под свап в принципе из за отсутствия гибкости), и забил на гибернацию