Comments 31
TPM 2.0 только сейчас начинает появляться в железе, зачастую вместе с обновлениями BIOS.Да уже скоро 4 года, как оно есть у Intel (начиная с H110), а у AMD, если не изменяет память, начиная с Ryzen.
И это лучше, чем ничего, поскольку колодка для подключения внешнего TPM даже на дешевых платах с топовым Z-чипсетом (например, ASUS Z170-P) в целях экономии не распаиваивается (хоть посалочное место есть, и то хорошо), а на самых бюджетных платах и того нет.
Secure Boot с установленными сертификатами Microsoft эквивалентен его отсутствиюА как вы без сертификата Microsoft решаете проблему с запуском GOP-драйверов внешних видеокарт, PXE-драйверов внешних сетевых карточек, NVME-накопителей? Если с видеокартами ещё можно слить из них прошивку и подписать с помощью какого-нибудь GOPUpdater, то о существовании инструментов для NVME-дисков мне неизвестно.
Ну мне всегда было как-то страшно брикнуть ноут, если что-то пойдёт не так с ключами.
Ну а если Linux убил прошивку (как уже бывало из-за рукожопости инженеров Lenovo), то уже всё равно, какие там были ключи, и такое убиение может случится вообще независимо от состояния Secure Boot.
Я, может, чего-то упустил, но мне казалось, что FDE нужен ровно для одного сценария — ноут спёрли и пытаются что-то там где-то на диске расшифровать вдали от посторонних. В таком случае — удачи им.
Если же ноут побывал в чужих руках (особенно вне вашей области видимости) — это больше не ваш ноут. В лучшем случае от чужого любопытства спасёт полная переустановка, в худшем — продажа этого ноута и покупка нового.
Я проще сделал, у меня загрузчик с luks header'ом на флэшке. Но full chain, конечно, лучше.
Тут по сути ситуация похожа на фишинг паролей через сайты-подделки. Только по адресу сайта-подделки обычно видно, что это не тот сайт, а тут нет.
без этих танцев с security boot и загрузчиками, весь этот LUKS безтолку?
Каждый из этих «танцев» защищает от своего сценария атаки.
1) Шифрование данных защищает от «воткнули любой LiveCD/воткнули диск в другой ПК, наплевали на авторизацию в системе и полезли смотреть содержимое диска». Это самое актуальное для большинства пользователей, поскольку накопитель можно потерять (вместе с ноутбуком), либо туда могут попытаться сунуть нос любопытные враги в погонах.
2) SecureBoot защищает от «в отсутствие владельца подменили его загрузчик GRUB на собранный злоумышленником кастомный GRUB, который логгирует введённый пароль и куда-то его сохраняет, чтобы потом можно было его заполучить» (атака EvilMaid). Если против вас такое организовали, то вы уже явно не рядовой пользователь.
3) Пароль на вход в настройки BIOS защищает от «зашли в биос, отключили SecureBoot и провернули п.2».
4) Использование TPM при шифровании защищает от «вытащили батарейку, сбросили пароль на биос, провернули п.3 и п.2» и от «прошили изменённую прошивку со встроенным UEFI-руткитом».
Безопасность — это комплекс мер. Например, использование лишь SecureBoot с собственными ключами защитит от подмены аагрузчика, но не защитит от банального «втыкаем диск в другую машину и смотрим содержимое».
Плюс ещё и разработчики операционных систем должны не зевать. Например, шины Thunderbolt и FireWire позволяют получить прямой доступ к оперативной памяти (откуда можно выудить ключ шифрования системного накопителя). Поэтому, разумно сделать так, чтобы устройства, вставленные при заблокированном сеансе (когда пользователь отошёл), не подключались. В Windows 10, например, это реализовано с помощью групповых политик, начиная с 1607 (а в 1803 добавили автоматически включаемую Kernel DMA Protection for Thunderbolt 3, правда, только при использовании процессоров Intel).
В дополнение к этому такая схема легка во внедрении и сохраняет возможность воспользоваться оригинальным загрузчиком, отключив Secure Boot. То есть пользователь такого рецепта особо ничем не рискует, развёртывая это у себя на копьютере.
В случае btrfs подмена легко выявляется ввиду сохранения контрольных сумм файлов в ФС.
- Встроить аппаратный кейлоггер между клавиатурой и устройством, позже забрать его или получить беспроводным методом. Это никак не определить без дополнительных мер защиты конкретно против такого способа получения пароля.
- Полностью подменить биос/чипсет и накопитель, чтобы процесс загрузки визуально соответствовал привычному. После ввода пароля не важно, что система не загрузится, пароль-то уже будет отправлен по сети. Даже если на биосе при включении стоит пароль, можно сделать так, чтобы он принимал любой пароль, всё равно никто не вводит сначала неправильный, чтобы убедиться в корректности алгоритмов.
Рабочее решение:
Шифрование домашего каталога и SWAP раздела (файла) при наличии. Опционально шифрование /var и /tmp, если идет работа с по настояющему конфидициальными данными, и даже минимальная утечка представляет угрозу.
Настройка загрузчика таким образом, чтобы ни в коем случае нельзя было менять параметры загрузки (привет GRUB'у с кнопкой 'e'), редактировать системные файлы и т.д. и т.п. Единственное, что должно быть можно делать с загрузчиком без знания паролей - грузится по неизменяемому скрипту.
Пароль на вход в UEFI / BIOS. Важно, чтобы не пароль нельзя было обойти уникальными паролями из интернета и прочими дырами разработчиков.
На корпусе компьютера должна быть какая-нибудь трудно подделываемая наклейка, сразу выдающая вскрытие корпуса. Можно взять пример с наклеек, которую вешают в гарантийных центрах на ноутбуки / стационарники на заказ. Разумеется, вместо наклейки можно использовать другую защиту, но она должна быть трудно подделываемой и гарантировано выдающая вскрытие корпуса. Разумеется, перед каждым включением надо проверять сохранность этой защиты.
В случае если клавиатура не вшита в корпус, то есть компьютер не является ноутбуком, то необходимо подумать о клавиатуре. Можно придумать аналогичную защиту в виде наклейки либо носить клавиатуру с собой.
Пароли, используемые для шифрования разделов, защиты загрузчика, защиты пользователей с правами суперпользователя, редактирования настроек UEFI / BIOS, можно вводить только пряча клавиатуру под одеяло / убедившись, что в помещении не содержится камер. Помимо этого эти пароли, разумеется, должны быть сложными и продумаными.
Если все пункты на 100% соблюдены, то можно гарантировать почти 100% конфидициальность данных.
Ну а вообще, пытаться сохранить конфидициальность данных, когда за твоим компьютером кто-то ведет настоящий шпионаж - дело невероятной сложности. Чтобы эти советы пригодились надо хранить у себя действительно невероятную информацию, а не просто семейные фоточки, кринжовые записи и пароли в браузере.
Взлом и защита шифрования дисков LUKS