Я много слышал о том, как Microsoft внедряет UEFI Secure Boot в Windows 8. По-видимому, это предотвращает запуск "несанкционированных" загрузчиков на компьютере, чтобы предотвратить вредоносное ПО. Free Software Foundation проводит кампанию против безопасной загрузки, и многие люди в сети говорят, что это "захват власти" со стороны Microsoft с целью "устранения свободных операционных систем".
Если я получу компьютер с предустановленной Windows 8 и Secure Boot, смогу ли я позже установить Linux (или какую-либо другую ОС)? Или компьютер с Secure Boot всегда работает только с Windows?
решение1
Прежде всего, простой ответ на ваш вопрос:
Если у вас планшет ARMработающий под управлением Windows RT (например, Surface RT или Asus Vivo RT), товы не сможете отключить безопасную загрузку или установить другие ОС. Как и многие другие планшеты ARM, эти устройства будуттолькозапустите ОС, с которой они поставляются.
Если у вас компьютер не на базе ARMработающий под управлением Windows 8 (например, Surface Pro или любой из множества ультрабуков, настольных компьютеров и планшетов с процессором x86-64), затемвы можете полностью отключить безопасную загрузку, или вы можете установить свои собственные ключи и подписать свой собственный загрузчик. В любом случае,вы можете установить стороннюю ОС, например дистрибутив Linuxили FreeBSD или DOS или что вам больше нравится.
Теперь перейдем к деталям того, как на самом деле работает вся эта штука Secure Boot: существует много дезинформации о Secure Boot, особенно от Free Software Foundation и подобных групп. Это затруднило поиск информации о том, что на самом деле делает Secure Boot, поэтому я постараюсь объяснить. Обратите внимание, что у меня нет личного опыта разработки систем безопасной загрузки или чего-то подобного; это просто то, что я узнал, читая в Интернете.
Прежде всего,Безопасная загрузка — этонетчто-то, что придумала Microsoft.Они были первыми, кто широко применил это, но они не изобрели это. Эточасть спецификации UEFI, который по сути является более новой заменой старого BIOS, к которому вы, вероятно, привыкли. UEFI — это, по сути, программное обеспечение, которое взаимодействует между ОС и оборудованием. Стандарты UEFI созданы группой под названием «Форум УЕФИ", в состав которой входят представители компьютерной отрасли, включая Microsoft, Apple, Intel, AMD и несколько производителей компьютеров.
Второй по важности момент,включение безопасной загрузки на компьютере ненетозначает, что компьютер никогда не сможет загрузить никакую другую операционную систему. Фактически, собственные требования Microsoft к сертификации оборудования Windows гласят, что для систем, отличных от ARM, вы должны иметь возможность как отключить безопасную загрузку, так и изменить ключи (чтобы разрешить другие ОС). Но об этом позже.
Что делает безопасная загрузка?
По сути, он предотвращает атаку вредоносного ПО на ваш компьютер через последовательность загрузки. Вредоносное ПО, которое проникает через загрузчик, может быть очень трудно обнаружить и остановить, поскольку оно может проникнуть в низкоуровневые функции операционной системы, оставаясь невидимым для антивирусного программного обеспечения. Все, что на самом деле делает Secure Boot, это проверяет, что загрузчик получен из надежного источника и что он не был подделан. Представьте себе это как всплывающие крышки на бутылках, на которых написано «не открывать, если крышка поднята или герметичность была подделана».
На верхнем уровне защиты у вас есть ключ платформы (PK). В любой системе есть только один PK, и он устанавливается OEM во время производства. Этот ключ используется для защиты базы данных KEK. База данных KEK содержит ключи обмена ключами, которые используются для изменения других баз данных безопасной загрузки. Может быть несколько KEK. Затем идет третий уровень: авторизованная база данных (db) и запрещенная база данных (dbx). Они содержат информацию о центрах сертификации, дополнительных криптографических ключах и образах устройств UEFI, которые следует разрешить или заблокировать соответственно. Для того чтобы загрузчику было разрешено работать, он должен быть криптографически подписан с помощью ключа, которыйявляетсяв базе данных, ине являетсяв dbx.
Изображение изСборка Windows 8: защита среды до установки ОС с помощью UEFI
Как это работает на реальной сертифицированной системе Windows 8
OEM генерирует свой собственный PK, а Microsoft предоставляет KEK, который OEM должен предварительно загрузить в базу данных KEK. Затем Microsoft подписывает загрузчик Windows 8 и использует свой KEK для помещения этой подписи в авторизованную базу данных. Когда UEFI загружает компьютер, он проверяет PK, проверяет KEK Microsoft, а затем проверяет загрузчик. Если все выглядит хорошо, то ОС может загрузиться.
Изображение изСборка Windows 8: защита среды до установки ОС с помощью UEFI
Какую роль играют сторонние операционные системы, такие как Linux?
Во-первых, любой дистрибутив Linux может выбрать генерацию KEK и попросить OEM-производителей включить его в базу данных KEK по умолчанию. Тогда они будут иметь такой же контроль над процессом загрузки, как и Microsoft. Проблемы с этим, какобъяснил Мэтью Гарретт из Fedora, заключаются в том, что а) будет сложно заставить каждого производителя ПК включить ключ Fedora, и б) это будет несправедливо по отношению к другим дистрибутивам Linux, поскольку их ключ не будет включен, а у небольших дистрибутивов не так много OEM-партнерств.
Fedora решила (и другие дистрибутивы последовали ее примеру) использовать службы подписи Microsoft. Этот сценарий требует уплаты 99 долларов Verisign (центру сертификации, который использует Microsoft) и предоставляет разработчикам возможность подписывать свой загрузчик с помощью KEK от Microsoft. Поскольку KEK от Microsoft уже будет на большинстве компьютеров, это позволяет им подписывать свой загрузчик для использования Secure Boot, не требуя собственного KEK. В итоге это оказывается более совместимым с большим количеством компьютеров и обходится дешевле, чем настройка собственной системы подписи и распространения ключей. В вышеупомянутой записи блога, которую я рекомендую прочитать, если вам интересны подобные вещи, есть более подробная информация о том, как это будет работать (использование GRUB, подписанных модулей ядра и другой технической информации).
Предположим, вы не хотите связываться с хлопотами по регистрации в системе Microsoft, или не хотите платить 99 долларов, или просто имеете зуб на крупные корпорации, чьи названия начинаются с буквы М. Есть еще один вариант — по-прежнему использовать безопасную загрузку и запускать ОС, отличную от Windows.Сертификация оборудования Microsoft требуетчто OEM-производители позволяют пользователям вводить свои системы в «пользовательский» режим UEFI, где они могут вручную изменять базы данных Secure Boot и PK. Систему можно перевести в режим настройки UEFI, где пользователь может даже указать свой собственный PK и подписать загрузчики самостоятельно.
Кроме того, собственные требования сертификации Microsoft обязывают OEM-производителей включать метод отключения безопасной загрузки на системах, отличных от ARM.Вы можете отключить безопасную загрузку!Единственные системы, где нельзя отключить Secure Boot, — это системы ARM под управлением Windows RT, которые функционируют скорее как iPad, где нельзя загружать пользовательские ОС. Хотя я бы хотел, чтобы можно было менять ОС на устройствах ARM, справедливо будет сказать, что Microsoft следует отраслевому стандарту в отношении планшетов.
То есть безопасная загрузка не является изначально злом?
Итак, как вы, надеюсь, видите, Secure Boot не является злом и не ограничивается только использованием с Windows. Причина, по которой FSF и другие так расстроены этим, заключается в том, что это добавляет дополнительные шаги к использованию сторонней операционной системы. Дистрибутивы Linux могут не захотеть платить за использование ключа Microsoft, но это самый простой и экономически эффективный способ заставить Secure Boot работать для Linux. К счастью, Secure Boot легко отключить, и можно добавить другие ключи, избежав таким образом необходимости иметь дело с Microsoft.
Учитывая количество все более продвинутых вредоносных программ, Secure Boot кажется разумной идеей. Он не предназначен для того, чтобы быть злым заговором с целью захватить мир, и он намного менее страшен, чем некоторые эксперты свободного ПО пытаются вас убедить.
Дополнительное чтение:
- Требования к сертификации оборудования Microsoft
- Сборка Windows 8: защита среды до установки ОС с помощью UEFI
- Презентация Microsoft по развертыванию Secure Boot и управлению ключами
- Реализация безопасной загрузки UEFI в Fedora
- Обзор безопасной загрузки TechNet
- Статья в Википедии об UEFI
TL;DR:Безопасная загрузка предотвращает заражение вашей системы вредоносным ПО на низком, необнаруживаемом уровне во время загрузки. Любой может создать необходимые ключи, чтобы это работало, но трудно убедить производителей компьютеров распространятьтвойключ ко всем, поэтому вы также можете заплатить Verisign за использование ключа Microsoft для подписи ваших загрузчиков и заставить их работать.Вы также можете отключить безопасную загрузку налюбойкомпьютер не на базе ARM.
Последняя мысль относительно кампании FSF против Secure boot: некоторые из их опасений (т.е. это делает егоСильнеедля установки бесплатных операционных систем) действительныв точку. Однако утверждение, что ограничения «не позволят никому загружать что-либо, кроме Windows», является явно ложным по причинам, проиллюстрированным выше. Кампания против UEFI/Secure Boot как технологии является близорукой, дезинформированной и вряд ли будет эффективной в любом случае. Гораздо важнее гарантировать, что производители действительно следуют требованиям Microsoft, чтобы позволить пользователям отключать Secure Boot или менять ключи, если они того пожелают.