Безопасная загрузка UEFI
Как сообщает Википедия UEFI — Unified Extensible Firmware Interface (EFI) — интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования, его основное предназначение: корректно инициализировать оборудование при включении системы и передать управление загрузчику операционной системы. EFI предназначен для замены BIOS — интерфейса, который традиционно используется всеми IBM PC-совместимыми персональными компьютерами
С большой вероятностью вскоре у многих появятся вопросы на эту тему:
Безопасный протокол загрузки UEFI является частью спецификации последнего релиза UEFI. Он позволяет установить один или несколько подписанных ключей в прошивку системы. После включения, “безопасной загрузки” UEFI предотвращает загрузку исполняемых файлов или драйверов, если они не подписаны одним из заранее установленных ключей. Другой набор ключей (Pkek) позволяет поддерживать связь между ОС и прошивкой. ОС вместе с набором ключей соответствия Pkek, которые организует связь с установлеными в прошивку ключами, может добавлять дополнительные ключи в так называемый “белый список” в прошивке. Естественно, помимо этого она может добавить ключи в “черный список”. Бинарники, которые отметились в черном списке ключей, естественно не будут срабатывать при загрузке.
На данный момент нет централизованного механизма подписания ключей UEFI. Если система производителя содержит ключ, то единственный способ получить код, подписанный данным ключом — обратиться к производителю для выполнения подписания. В систему может быть вшито несколько ключей, но если вы не можете использовать ни один из них, для подписания своих бинарников, то они не будут устанавливаемыми.
Это безусловно оказывает влияние как на производителей программного обеспечения, так и аппаратного обеспечения. Производители ОС не смогут загружать их ПО в системе, пока это не подписано ключом, который включен в систему прошивки. Производитель оборудования не сможет запустить свое “железо” внутри EFI-среды, пока его драйвера не будут подписаны теми же ключами находящимися в прошивке системы. Например, при установке новой видеокарты, которая имеет неподписанные драйвера, которые естественно не нашлись в вашей системной прошивке, Вы не сможете заставить ее работать в этой среде.
Требование Microsoft гласит, чтобы на Windows-совместимые системы и системы с клиентской версией Windows 8, поставлялись с включеной “безопасной загрузкой”. Предлагаются два альтернативных способа. Первый — каждая копия Windows должна быть подписана ключом от Microsoft, а его публичная часть вшита во все системы, или, как альтернатива второй способ предлагает для каждого OEM-производителя, помещать в систему свой ключ и подписывать им предустановленную копию Windows. Второй способ сделает невозможным запуск коробочной копии ОС Windows на Windows-совместимых системах, также будет невозможно установить новые версии Windows, пока ваш OEM-производитель не подпишет новую версию. Первый вариант кажется более вероятным.
Система, которая поставляется только с ключами OEM и Microsoft не сможет загружать копии Linux.
Теперь, скорее всего, мы можем предоставить подписанныe версии Linux. Но это не так просто и появятся несколько проблем. Во-первых, понадобится не-GPL загрузчик. Grub 2 выпущен под GPLv3, в которой четко оговорено, что мы предоставляем ключи подписи. Grub, который выпущен под GPLv2, в котором отсутствует явное требование ключей, но может содержать запрос скриптов, используемых для управления компиляцией, которые могут содержать данное требование. Это — “серая область”, и использование эксплоитов неплохо покажет недобросовестность сторон. Во-вторых, в ближайшем будущем по дизайну ядро станет частью загрузчика. Это означает, что ядро также придется подписывать. Что сделает практически невозможным для пользователей или разработчиков создавать(собирать) свои собственные ядра. Наконец, если мы предоставляем подпись сами себе, по-прежнему необходимо, чтобы наши ключи были включены в список OEM.
В принципе, нет признаков того, что Microsoft не позволит поставщикам оборудования предоставлять функцию “ВКЛ\ВЫКЛ” для такого рода прошивок, чтобы пользователь все же смог запускать неподписанный код. Тем не менее, опыт показывает, что многие производители программного обеспечения и OEM-производители заинтересованы в предоставлении минимальной функциональности прошивки, необходимой для их рынка. Почти наверняка, что некоторые системы будут поставляться с возможностью отключения этой функции, но с другой стороны в результате определенных договоренностей, может оказаться что большинство производителей не оставят права выобра пользователям.
Эта статья не должна заставить Вас паниковать, просто стоит задуматься…
P.S. От себя хочу добавить, что скорее всего в будещем может появиться две линейки от производителя, по дороже с поддержкой отключения проверки подписей, и подешевле, т.е. с ограниченным функционалом, особенно мне кажется это отразиться на мобильных компьютерах (ноутбуках, нетбуках и.т.д.)
С оригинальной статье можно ознакомиться по ссылке: ОРИГИНАЛ
P.P.S. Переводили в тандеме с товарищем, KoPBuH спасибо, к сожалению пока его нет хабре, но надеюсь вскоре появится.