LXF162:Что за штука
|
|
|
SecureBoot. Что за штука…
Маянк Шарма, в роли адвоката дьявола, раскрывает сумбурную переделку Microsoft процесса загрузки вашей системы.
В
Минуточку! Я уже слышал о SecureBoot. Это же одно из решений безопасности в новом Windows 8, так?
О
И да, и нет. SecureBoot – это механизм улучшения безопасности системы посредством привязки к процессу загрузки. По факту, это функция спецификации UEFI. С Windows 8 ее связывает только то, что, по требованию Microsoft, она должна быть включена во всех машинах, где стоит сертифицированная «восьмерка».
В
UEFI? Уверен, что и про это мне уже доводилось слышать.
О
Ну да, мы обсуждали его на наших страницах, в LXF153. UEFI, то есть Unified Extensive Firmware Interface, приходит на замену интерфейсу BIOS, который мы использовали все эти годы. UEFI был создан в Intel еще в 1990-е, а теперь им занимается консорциум крупных технологических компаний, включая AMD, Microsoft, ARM и другие.
В
Ясно, вернемся к SecureBoot. Как именно она способствует безопасности?
О
В ранних версиях UEFI для проверки целостности драйверов и программ использовались электронные подписи. Этот механизм, основанный на проверке цифровых сертификатов, использовал известную технологию Public Key Infrastructure (PKI). А в UEFI версии 2.2, вышедшей в 2008, поддержка электронных подписей расширена и распространена также на загрузчики ОС.
В
А как это поможет предотвратить атаки злоумышленников?
О
На ПК с включенной SecureBoot обновленный процесс загрузки Windows 8 гарантирует, что все элементы прошивки и их обновления безопасны, и что система защиты компьютера не повреждена.
В
Хорошо, но где тут гарантия, что не повреждена сама прошивка?
О
Не позволяя вредоносному коду загружаться при старте системы, SecureBoot пропустит только проверенный и подтвержденный код, например, такой, как загрузчик операционной системы. Все загрузчики и драйверы должны иметь подпись, соответствующую одному из проверенных сертификатов. Это защитит вас от вирусов сектора загрузки, а также руткитов, маскирующихся под драйверы.
В
Но как UEFI сможет проверить загрузчик операционной системы?
О
Вскоре после старта системы, прежде чем передать бразды правления загрузчику ОС, SecureBoot проверит подпись всех кодов прошивки подключаемых устройств, таких как сетевые карты, запоминающие устройства или видеокарты. Затем она сверит все эти подписи с базой данных, и только тогда модулю будет разрешено запуститься.
В
И где же хранятся эти замечательные подписи?
О
Подписи хранятся в двух разных базах данных, а также в самой прошивке UEFI. Они представляют собой два списка – «Разрешенные» и «Запрещенные», и в соответствии с ними процесс загрузки может быть продолжен или завершен, если в подписи распознан вредоносный код.
В
Хитро придумано. Но откуда мне эти подписи взять?
О
Это не ваша головная боль. Согласно созданной Microsoft новой программе Сертификации Windows, на всех новых компьютерах с предустановленной системой Windows 8 или совместимых с ней ПК, ноутбуках или устройствах на основе ARM, типа планшетов, база подписей будет по умолчанию. Более того, производители оборудования должны будут подтвердить, что функция SecureBoot в их машинах действительно включена.
В
Выходит, я не смогу установить Windows 8 на ноутбук, который я заказал?
О
Конечно, можете. Microsoft просто попросил производителей активировать SecureBoot на всех новых компьютерах, прежде чем лепить на них наклейку «Совместим с Windows 8». Но для установки самой системы по-прежнему достаточно только соответствия технических требований.
В
То есть, на любом компьютере с наклейкой «Совместим с Windows 8» будет UEFI с включенной функцией SecureBoot? О
Да, именно это я и имел в виду, вы правильно меня поняли.
Полужирное начертаниеВ
Ух ты. То есть мамин новый ноутбук на Windows 8 будет безопасен как никогда прямо из коробки? Пожалуй, дам ей его поиграть, пока она привыкает к Ubuntu.
О
Погодите радоваться. Теперь получается, что установка новой операционной системы приравнивается к установке неаутентифицированного кода, поскольку на ней отсутствует подпись, а значит, невозможно будет устанавливать дистрибутивы.
В
Что? Вы хотите сказать — я не смогу установить Linux на свой нетбук с сертифицированной Windows 8?
О
По крайней мере, не сразу. Имею в виду, что наша несчастная прошивка UEFI опирается на свою базу данных подписей, чтобы отличить вредоносный руткит от нормальной ОС. Исходя из этого, UEFI не позволит Linux совершать какие-либо действия с вашим компьютером, если только у него нет подписей для данного конкретного дистрибутива.
В
А нельзя из одного дистрибутива подписать другой?
О
Можно, конечно. Но сделать это будет непросто. Для запуска, даже в случае, когда дистрибутив подписывает себя сам, все равно потребуются подписи производителя прошивки. Это ресурсоемкая задача невыполнима для широкого спектра дистрибутивов. Есть и куда большая проблема. В нынешнем виде, подписать ядро для SecureBoot – это еще полдела, поскольку даже в этом случае ядро не будет загружать неподписанные модули.
В
И даже если мой любимый дистрибутив подпишет ядро, я не смогу загрузить дополнительные модули?
О
При включенной SecureBoot – нет. Как объяснил в своем блоге разработчик Red Hat Мэтью Гарретт [Mathew Garrett], это значит, что придется распрощаться с любым проектом, требующим загрузки обязательных модулей.
В
И как же дистрибутивы ухитрятся с этим справиться?
О
На данный момент, только два популярных дистрибутива – Fedora и Ubuntu – раскрыли свои стратегии по работе с SecureBoot. Fedora подпишет свой загрузчик ключом Microsoft, чтобы ее можно было гарантировано установить на любой стандартный ПК с Windows 8. В Ubuntu выбрали подход посложнее. Дистрибутив будет выходить с собственной подписью, которую пользователям надо будет добавить в базу данных на своем компьютере.
В
А почему используются разные подходы? И который лучше?
О
На самом деле, и с тем, и с другим связан ряд технических и юридических сложностей. И, между прочим, Фонду свободного ПО [FSF, Free Software Foundation] не нравится ни тот, ни другой. Первый – потому что пользователям Fedora придется зависеть от подписи Microsoft и от самой Microsoft, как от благодетеля. Со вторым такой проблемы нет, зато добавляется куча всяких сложностей, поскольку пользователям придется копаться в настройках UEFI, чтобы подтвердить достоверность подписи Canonical.
В
А как насчет малых дистрибутивов, которые вне мейнстрима?
О
Прочие Linux-дистрибутивы пока что можно установить на оборудование с сертифицированным Windows 8 только при условии отключения SecureBoot.
В
О, так ее, оказывается, можно просто взять да отключить?
О
Да. В разъяснении своей сертификационной программы для производителей оборудования, Microsoft разрешает им применять функцию отключения SecureBoot.
В
Уфф! Я уж было испугался. А выходит, не все так плохо.
О
Это еще не все. Во-первых, это не значит, что предусмотрен стандартный способ ее отключения. Речь шла о том, чтобы разрешить производителям оборудования использовать механизмы отключения данной функции по собственному усмотрению. А стало быть, каждый разработает свой индивидуальный способ, и это ни в коей мере не упростит существование дистрибутивам.
В
Ну и пусть это будет непросто, но пользователи все равно смогут по желанию отключить SecureBoot, так?
О
Да, но в идеале этого не должно требоваться. Как нетрудно понять, сам механизм SecureBoot всех полностью устраивает. Уж где-где, а в дистрибутивах Linux безопасность всегда была превыше всего, а отключив SecureBoot, вы тут же лишаетесь преимуществ, которые она предоставляет. Кроме того, отключение будет возможно только на ПК с архитектурой х86. А в машинах на основе ARM, сертифицированных Windows 8, Microsoft отключать SecureBoot запрещает. |