Влияние UEFI и SecureBoot, насколько сильно?


18

Я планирую купить новый ноутбук в ближайшие дни, и меня впечатляют новые крутые ультрабуки. Будучи давним пользователем GNU / Linux, я, конечно, установлю на него дистрибутив по своему выбору.

Скорее всего, мне придется купить компьютер с предустановленной Windows 8; и есть вероятность, что он будет работать с UEFI и иметь «безопасную загрузку», при которой не подписанные ядра не будут загружаться.

UEFI, вероятно, хорошо, BIOS может потребоваться удалить. Я думаю, что волосатая вещь - Безопасная загрузка .

Насколько я понимаю, некоторые доверенные сертификаты будут встроены в прошивку и так далее в ядро и т . Д. Если сертификат ядра можно отследить до одной из прошивок , ядро ​​загрузится, иначе UEFI откажет мне и откажется загружаться. Этот процесс предотвратит загрузку несертифицированного программного обеспечения. Это может иметь преимущества, хотя я их не вижу.

Интересно, как ядро ​​с открытым исходным кодом может получить один из этих ключей и при этом быть свободным . Я прочитал ветку по списку рассылки Linux, в которой сотрудник Red Hat просит Линуса Торвальдса вытащить набор изменений, который реализует средство для анализа двоичных файлов PE, и выполнить сложный набор действий, чтобы позволить ядру загружаться в режиме безопасной загрузки (насколько я понимаю). ). Они хотят сделать это, потому что Microsoft подписывает только двоичные файлы PE. Г-н Торвальдс любезно отклонил этот набор изменений, заявив, что ядро ​​уже реализует стандарт, а не PE . RedHat пытается передать этот код ядру, чтобы им не пришлось его разветвлять.

Видите, это сложная вещь. Позвольте мне задать мои вопросы:

  • Какие преимущества я получу с UEFI и Secure Boot, как домашний пользователь?
  • Как это подписание сделано?
  • Кто может получить подписи / сертификаты? Это оплачено? Это может быть публично? (Это должно быть доступно в исходном коде Linux, не так ли?)
  • Является ли Microsoft единственным органом, предоставляющим подписи? Разве не должно быть независимого фонда для их обеспечения?
  • Как это повлияет на открытый исходный код и бесплатные ядра, на любителей и академических разработчиков ядра и т . Д. Например, будет ли эта загрузка ( очень простой код загрузочного сектора ):

    hang:
       jmp hang
    times 510-($-$$) db 0
    db 0x55
    db 0xAA
    

Новость на этом сайте была вдохновением этого вопроса. Испанская группа пользователей Linux под названием Hispalinux подала жалобу на Microsoft по этому вопросу в Europan Comission.

Должен ли я быть обеспокоен? Я отказываюсь использовать ни проприетарное программное обеспечение, ни программное обеспечение, подписанное доверенными компаниями. Я делал это до сих пор, и я хочу продолжать это. Заранее спасибо.


2
UEFIСамо по себе это не большая проблема, но безопасная загрузка может быть.
Иордания

3
Вы всегда можете загрузить UEFI с отключенной безопасной загрузкой ...
jasonwryan

1
В соответствии с этой статьей Microsoft требует от поставщиков запретить деактивацию SecureBoot на устройствах на базе ARM для предоставления лицензии на использование логотипа Windows-8 Compatible.

1
Я не смотрел, но если вы не можете прошить его на материнскую плату, и все по-прежнему работает (каждое устройство в надлежащем состоянии при передаче POST-OS), это не очень помогает. И еще есть прошивка видеокарты, например. Прошивка жесткого диска? Клавиатура? ... Это все ближе к обсуждению, чем запросы на разъяснения, хотя. (И, конечно, по крайней мере, эта цитата только утверждает, что UEFI - это работа сообщества, а не конкретная реализация.)
CVn

1
Взгляните на документ Linux Foundation по UEFI и безопасной загрузке.
vonbrand

Ответы:


9

Этот процесс предотвратит загрузку несертифицированного программного обеспечения. Это может иметь преимущества, хотя я их не вижу.

У вас есть новый механизм безопасности для управления тем, что может, а что нет, загружаться с вашего оборудования. Функция безопасности. Вы не чувствуете, что вам это нужно, пока не стало слишком поздно. Но я отвлекся.

Я прочитал ветку по списку рассылки Linux, в которой сотрудник Red Hat просит Линуса Торвальдса вытащить набор изменений, который реализует средство для анализа двоичных файлов PE, и выполнить сложный набор действий, чтобы позволить ядру загружаться в режиме безопасной загрузки (насколько я понимаю). ).

Драйверы, как и прошивка вашего GPU, должны быть подписаны в соответствии с Secure Boot, в противном случае это может быть еще один руткит. Статус-кво заключается в том, что эти драйверы подписаны в формате PE. Ядро может загрузиться без них в любом случае, но аппаратное обеспечение не будет работать. Разбор формата PE в ядре - технически более простой выбор для этого, чем просить каждого поставщика оборудования подписывать свои двоичные объекты для каждого дистрибутива или создавать для этого среду пользовательского пространства. Линус решает не сосать член Microsoft. Это не технический аргумент.

Какие преимущества я получу с UEFI и Secure Boot, как домашний пользователь?

Наиболее заметной особенностью является UEFI fast boot. Я взял в руки несколько рабочих столов с логотипом Windows 8, и они загружаются так быстро, что я часто скучаю по всплывающему меню загрузки. Intel и OEM-разработчики получили достаточно инженерии по этому вопросу.

Если вы относитесь к типу пользователей Linux, которые страстно ненавидят раздутость и дублирование кода , возможно, вы захотите управлять мультизагрузкой на уровне прошивки и вообще избавиться от загрузчиков. UEFI предоставляет менеджер загрузки, с помощью которого вы можете загружаться непосредственно в ядро или выбирать загрузку других ОС с помощью меню прошивки. Хотя, возможно, потребуется немного повозиться.

Также более изящная графика во время загрузки и в меню прошивки. Лучшая безопасность во время загрузки (Secure Boot). Другие функции (сетевая загрузка IPv4 / 6, загрузочные устройства емкостью 2 ТБ и т. Д.) В основном предназначены для корпоративных пользователей.

В любом случае, как сказал Линус , BIOS / UEFI должен «просто загрузить ОС и вытащить ее оттуда», и UEFI, безусловно, выглядит так же для домашних пользователей с быстрой загрузкой. Конечно, он делает больше вещей, чем BIOS под капотом, но если мы говорим о домашних пользователях, они не будут заботиться об этом.

Как это подписание сделано?

Теоретически, двоичный файл шифруется закрытым ключом для создания подписи. Затем подпись может быть проверена с помощью открытого ключа, чтобы доказать, что двоичный файл подписан владельцем закрытого ключа, а затем проверен двоичный файл. Смотрите больше в Википедии .

Технически, только хэш двоичного файла подписан, и подпись встроена в двоичный файл с форматом PE и дополнительным форматом twiddling.

Процедурно, открытый ключ хранится в вашей прошивке вашим изготовителем, и это от Microsoft. У вас есть два варианта:

  1. Сгенерируйте свою собственную пару ключей и управляйте ими надежно, установите свой собственный открытый ключ для прошивки и подпишите двоичный файл своим собственным закрытым ключом ( sbsign из Ubuntu или pesign из Fedora), или
  2. Отправьте свой бинарный файл в Microsoft и дайте им подписать его.

Кто может получить подписи / сертификаты? Это оплачено? Это может быть публично? (Это должно быть доступно в исходном коде Linux, не так ли?)

Поскольку подписи / сертификаты встроены в двоичные файлы, ожидается, что их получат все пользователи. Любой может настроить свой собственный CA и сгенерировать сертификат для себя. Но если вы хотите, чтобы Microsoft сгенерировала для вас сертификат, вам нужно пройти Verisign, чтобы подтвердить вашу личность. Процесс стоит 99 долларов. Открытый ключ есть в прошивке. Закрытый ключ находится в безопасности Microsoft. Сертификат находится в подписанном двоичном файле. Нет исходного кода.

Является ли Microsoft единственным органом, предоставляющим подписи? Разве не должно быть независимого фонда для их обеспечения?

Техническая сторона довольно тривиальна по сравнению с процессом управления PKI, проверки личности, координации с каждым известным производителем оборудования и OEM. Это дорогой. У Microsoft есть инфраструктура (WHQL) и опыт работы в течение многих лет. Поэтому они предлагают подписать двоичные файлы. Любой независимый фонд может сделать то же самое, но пока никто этого не сделал.

Я вижу, что с сессии UEFI на IDF 2013 Canonical также начала использовать свой собственный ключ для некоторых прошивок планшета. Таким образом, Canonical может подписывать свои двоичные файлы, не проходя через Microsoft. Но они вряд ли подпишут двоичные файлы для вас, потому что они не знают, кто вы.

Как это повлияет на открытый исходный код и бесплатные ядра, на любителей и академических разработчиков ядра и т. Д.

Ваше собственное ядро ​​не будет загружаться под Secure Boot, потому что оно не подписано. Вы можете выключить это все же.

Модель доверия Secure Boot блокирует некоторые аспекты ядра. Как будто вы не можете уничтожить свое ядро, записав в / dev / kmem, даже если вы сейчас root. Вы не можете переходить в режим гибернации на диск (работающий в восходящем направлении), потому что нет способа гарантировать, что образ ядра не будет изменен на буткит при возобновлении. Вы не можете сбросить ядро, когда ваше ядро ​​паникует, потому что механизм kdump (kexec) может быть использован для загрузки буткита (также работающего в апстриме). Они противоречивы и не принимаются Линусом в основное ядро, но некоторые дистрибутивы (Fedora, RHEL, Ubuntu, openSUSE, SUSE) в любом случае поставляются с собственными патчами Secure Boot.

Лично подпись модуля, необходимая для сборки ядра Secure Boot, стоит 10 минут, тогда как фактическая компиляция занимает всего 5 минут. Если я отключу подпись модуля и включу ccache, сборка ядра займет всего одну минуту.

UEFI - это совершенно другой путь загрузки по сравнению с BIOS. Весь загрузочный код BIOS не будет вызываться прошивкой UEFI.

Испанская группа пользователей Linux под названием Hispalinux подала жалобу на Microsoft по этому вопросу в Europan Comission.

Как уже говорилось выше, никто, кроме Microsoft, не пошел на государственную службу. В настоящее время нет никаких доказательств намерения Microsoft совершить какое-либо зло с этим, но также ничто не мешает Microsoft злоупотреблять своей фактической монополией и отправиться в энергетическое путешествие. Таким образом, хотя группы пользователей FSF и Linux могут выглядеть не совсем прагматично и на самом деле не садятся за конструктивное решение проблем, совершенно необходимо, чтобы люди давили на Microsoft и предупреждали ее о последствиях.

Должен ли я быть обеспокоен? Я отказываюсь использовать ни проприетарное программное обеспечение, ни программное обеспечение, подписанное проверенными компаниями. Я делал это до сих пор, и я хочу продолжать это.

Причины использования Secure Boot:

  • Это устраняет реальный вектор атаки безопасности.
  • Это технический механизм, который дает пользователю больше свободы в управлении своим оборудованием.
  • Пользователи Linux должны понять безопасный механизм загрузки и действовать проактивно , прежде чем Microsoft становится слишком далеко от монополии безопасной загрузки политики .

2
Спасибо за этот подробный, потрясающий ответ! Очень всеобъемлющий UEFI звучит довольно круто, хотя я не использовал и не писал для него код.

1
Очень хороший ответ, действительно. Всего две вещи: 1) обычно есть возможность загрузить свои собственные ключи в ваш UEFI - таким образом вы можете безопасно загрузить все, что вы подпишете сами; 2) Безопасная загрузка безопасна только до той степени, до которой доверяют UEFI - если кто-то использует вредоносное обновление прошивки, цепь доверия нарушается. И это немыслимо .
Петер

Итак, использует ли дистрибутив GNU / Linux FastBoot / QuickBoot? Я не понимаю, почему это было бы трудно сделать, но я также не могу найти информацию об этом - но так как вы упоминаете это как видимую функцию для конечного пользователя, я думаю, что она наконец используется?
Привет, Ангел,

9

Я только что прошел через это с недавней покупкой ноутбука с Windows 8 и безопасной загрузкой UEFI. После большого количества времени и исследований вот что я могу ответить:

  • Не похоже, что вы вписываетесь в категорию «домашних пользователей».

Преимущества UEFI, которые заметят среднестатистические пользователи, заключаются в том, что первое, что они увидят на своем экране, будет экран начального загрузчика UEFI под брендом Microsoft / Vendor. Ни одна из тех страшных вещей, как «Нажмите Del для настройки, F11, чтобы выбрать загрузочное устройство» и т. Д.

Затем он перейдет в окно ожидания ядра / загрузчика Microsoft. Это дает «возможность подсказывать» тематический опыт Microsoft. Я полагаю, что если это реальная выгода, это в глазах смотрящего. Я был довольно помечен, что у меня не было нормальной информации, которую я ожидаю увидеть при загрузке. Например, удачи, если ваш поставщик не использует стандартный ключ для входа в базовую настройку UEFI / Bios.

Да, и теория такова, что это остановит вирусы загрузочного сектора или, по крайней мере, заставит создателей создать / украсть чей-то идентификатор и заплатить $ 99 Verisign (маршрут RedHat Fedora. Google it.)

Ах, и есть руб. Любой может подписать код любым ключом. Проблема заключается в том, что на машине будет выполняться только код, подписанный ключом доверенных лиц. Открытая половина ключа устанавливается в ядре UEFI системы на заводе и используется для проверки подписи программ UEFI (загрузочного кода), подписанных с помощью закрытого ключа.

Угадайте, у кого открытый ключ установлен на заводе? Угадайте, кому требуется, чтобы Secure Boot был включен по умолчанию?

Каждый производитель системы, очевидно, поставит туда ключ Microsoft. Они также могут вставить ключ Canonical (Ubuntu), ключ Red Hat, ключ Apple и т. Д. Однако, большее количество ключей означает больше очков за нарушения, и, очевидно, существует физическое ограничение на их количество.

  • Ваш код загрузочного сектора? Нет, это перенос BIOS. Если вы хотите поэкспериментировать с написанием кода UEFI, ознакомьтесь с http://x86asm.net/articles/uefi-programming-first-steps/

И каково решение для такого мятежного пользователя компьютера, как вы?

  • Надеюсь, что ваш поставщик системы позволяет вам получить доступ к конфигурации загрузки системы

  • Надеюсь, они позволят вам отключить безопасную загрузку. Загрузочный код Windows по-прежнему будет работать без безопасной загрузки.

  • Если вам действительно повезет, поставщик системы разрешит вам ввести свои собственные ключи центра сертификации и вы сможете подписать свои собственные материалы. Это действительно нужно, только если вы хотите поиграть с Secure Boot.

Мой ноутбук MSI позволяет мне делать все вышеперечисленное.

Я хотел бы увидеть мир, в котором любой желающий может получить бесплатную копию дистрибутива Linux и заменить свою ОС. Это то, что у нас было до безопасной загрузки. У нас также было много вирусов загрузочного сектора. Отключение безопасной загрузки в конфигурации вашей системы, вероятно, является достаточно небольшим препятствием, чтобы убедиться, что вы обладаете достаточным умом для установки ОС или знаете кого-то, кто это делает.

Неспособность отключить его - это плохо, и это зависит от производителя. Не обвиняйте Microsoft, если только они не «убеждают» производителя предотвратить отключение безопасной загрузки.


Добро пожаловать и спасибо! Очень крутой ответ, но я подожду немного больше, прежде чем принять, так как я хочу видеть мысли других людей.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.