> Чтобы от этой атаки появилась хотя бы что-то чуть более, чем иллюзия
> защищенности, надо из UEFI удалить ВСЕ ключи, кроме собственноручно сгенерированных.
> Вопрос, многие ли системы позволяют это сделать?Погодите, а это почему?
Наличие ключа MS при условии, что приватным ключом MS кого попало не подписывает - не нарушает безопасность.
А своим ключом MS вроде как кого попало и не подписывает. Свои загрузчики, ну и еще некоторые конкретные сборки shim (которые попросили у них подписать) и еще некоторые вполне конкретные *бинарные* загрузчики. Собрать свой загрузчик-зловред и подписать его сборку у MS - хоть возможно в теории, но на практике из разряда фантазий, не настолько же они идиоты, что попало подписывать.
> При этом еще надеяться, что у атакующего нет бекдоров для SB и
> он не сможет, например, просто всю материнскую плату подменить или некоторые
> микросхемки с uefi перепаять на ней.
Строго говоря, правильное взаимодействие ядра и TPM решило бы эту проблему. Но его нет.
Кстати, сама винда тут весьма правильно делает: она проверяет всю цепочку загрузчиков (*всю* цепочку тех, кто ее загружал - т.е. например конкретный UEFI + конкретный bootmgfw.efi, или же цепочку UEFI + shim + grub + bootmgfw). И если что-то серьезное изменилось в настройках UEFI (к примеру, выключили Secure Boot) или загрузили по другой цепочке (например раньше грузили без grub, а теперь его вставили в цепочку) или же изменился конкретный бинарник shim, она тут же навостряет уши и требует ввести длинный ключ Bitlocker, который сообщался при шифровании диска. При этом это не имеет отношения собственно к пассфразе или отпечатку пальца или другому методу аутентификации, который потом будет использоваться для расшифровки. И это работает в т.ч. при выключенном Secure Boot.
Это очень правильная идея, на самом деле, и обидно что линуксу глубоко безразлично, что там происходило до его загрузки - вот какое-то ядро загрузилось, теперь вводи пассфразу от luks и пожалуйста, открыт полный доступ к системе.