Я планирую купить новый ноутбук в ближайшие дни, и меня впечатляют новые крутые ультрабуки. Будучи давним пользователем 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.
Должен ли я быть обеспокоен? Я отказываюсь использовать ни проприетарное программное обеспечение, ни программное обеспечение, подписанное доверенными компаниями. Я делал это до сих пор, и я хочу продолжать это. Заранее спасибо.
UEFI
Само по себе это не большая проблема, но безопасная загрузка может быть.Ответы:
У вас есть новый механизм безопасности для управления тем, что может, а что нет, загружаться с вашего оборудования. Функция безопасности. Вы не чувствуете, что вам это нужно, пока не стало слишком поздно. Но я отвлекся.
Драйверы, как и прошивка вашего GPU, должны быть подписаны в соответствии с Secure Boot, в противном случае это может быть еще один руткит. Статус-кво заключается в том, что эти драйверы подписаны в формате PE. Ядро может загрузиться без них в любом случае, но аппаратное обеспечение не будет работать. Разбор формата PE в ядре - технически более простой выбор для этого, чем просить каждого поставщика оборудования подписывать свои двоичные объекты для каждого дистрибутива или создавать для этого среду пользовательского пространства. Линус решает не сосать член Microsoft. Это не технический аргумент.
Наиболее заметной особенностью является UEFI fast boot. Я взял в руки несколько рабочих столов с логотипом Windows 8, и они загружаются так быстро, что я часто скучаю по всплывающему меню загрузки. Intel и OEM-разработчики получили достаточно инженерии по этому вопросу.
Если вы относитесь к типу пользователей Linux, которые страстно ненавидят раздутость и дублирование кода , возможно, вы захотите управлять мультизагрузкой на уровне прошивки и вообще избавиться от загрузчиков. UEFI предоставляет менеджер загрузки, с помощью которого вы можете загружаться непосредственно в ядро или выбирать загрузку других ОС с помощью меню прошивки. Хотя, возможно, потребуется немного повозиться.
Также более изящная графика во время загрузки и в меню прошивки. Лучшая безопасность во время загрузки (Secure Boot). Другие функции (сетевая загрузка IPv4 / 6, загрузочные устройства емкостью 2 ТБ и т. Д.) В основном предназначены для корпоративных пользователей.
В любом случае, как сказал Линус , BIOS / UEFI должен «просто загрузить ОС и вытащить ее оттуда», и UEFI, безусловно, выглядит так же для домашних пользователей с быстрой загрузкой. Конечно, он делает больше вещей, чем BIOS под капотом, но если мы говорим о домашних пользователях, они не будут заботиться об этом.
Теоретически, двоичный файл шифруется закрытым ключом для создания подписи. Затем подпись может быть проверена с помощью открытого ключа, чтобы доказать, что двоичный файл подписан владельцем закрытого ключа, а затем проверен двоичный файл. Смотрите больше в Википедии .
Технически, только хэш двоичного файла подписан, и подпись встроена в двоичный файл с форматом PE и дополнительным форматом twiddling.
Процедурно, открытый ключ хранится в вашей прошивке вашим изготовителем, и это от Microsoft. У вас есть два варианта:
Поскольку подписи / сертификаты встроены в двоичные файлы, ожидается, что их получат все пользователи. Любой может настроить свой собственный CA и сгенерировать сертификат для себя. Но если вы хотите, чтобы Microsoft сгенерировала для вас сертификат, вам нужно пройти Verisign, чтобы подтвердить вашу личность. Процесс стоит 99 долларов. Открытый ключ есть в прошивке. Закрытый ключ находится в безопасности 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.
Как уже говорилось выше, никто, кроме Microsoft, не пошел на государственную службу. В настоящее время нет никаких доказательств намерения Microsoft совершить какое-либо зло с этим, но также ничто не мешает Microsoft злоупотреблять своей фактической монополией и отправиться в энергетическое путешествие. Таким образом, хотя группы пользователей FSF и Linux могут выглядеть не совсем прагматично и на самом деле не садятся за конструктивное решение проблем, совершенно необходимо, чтобы люди давили на Microsoft и предупреждали ее о последствиях.
Причины использования Secure Boot:
источник
Я только что прошел через это с недавней покупкой ноутбука с Windows 8 и безопасной загрузкой UEFI. После большого количества времени и исследований вот что я могу ответить:
Преимущества UEFI, которые заметят среднестатистические пользователи, заключаются в том, что первое, что они увидят на своем экране, будет экран начального загрузчика UEFI под брендом Microsoft / Vendor. Ни одна из тех страшных вещей, как «Нажмите Del для настройки, F11, чтобы выбрать загрузочное устройство» и т. Д.
Затем он перейдет в окно ожидания ядра / загрузчика Microsoft. Это дает «возможность подсказывать» тематический опыт Microsoft. Я полагаю, что если это реальная выгода, это в глазах смотрящего. Я был довольно помечен, что у меня не было нормальной информации, которую я ожидаю увидеть при загрузке. Например, удачи, если ваш поставщик не использует стандартный ключ для входа в базовую настройку UEFI / Bios.
Да, и теория такова, что это остановит вирусы загрузочного сектора или, по крайней мере, заставит создателей создать / украсть чей-то идентификатор и заплатить $ 99 Verisign (маршрут RedHat Fedora. Google it.)
Для получения дополнительной информации о том, как происходит фактическая подпись, проверьте это: http://al.robotfuzz.com/playing-with-uefi-secure-boot-part-2-basic-authenticode-signing-with-ms-tools /
Кто ? Только Microsoft?
Ах, и есть руб. Любой может подписать код любым ключом. Проблема заключается в том, что на машине будет выполняться только код, подписанный ключом доверенных лиц. Открытая половина ключа устанавливается в ядре UEFI системы на заводе и используется для проверки подписи программ UEFI (загрузочного кода), подписанных с помощью закрытого ключа.
Угадайте, у кого открытый ключ установлен на заводе? Угадайте, кому требуется, чтобы Secure Boot был включен по умолчанию?
Каждый производитель системы, очевидно, поставит туда ключ Microsoft. Они также могут вставить ключ Canonical (Ubuntu), ключ Red Hat, ключ Apple и т. Д. Однако, большее количество ключей означает больше очков за нарушения, и, очевидно, существует физическое ограничение на их количество.
И каково решение для такого мятежного пользователя компьютера, как вы?
Надеюсь, что ваш поставщик системы позволяет вам получить доступ к конфигурации загрузки системы
Надеюсь, они позволят вам отключить безопасную загрузку. Загрузочный код Windows по-прежнему будет работать без безопасной загрузки.
Если вам действительно повезет, поставщик системы разрешит вам ввести свои собственные ключи центра сертификации и вы сможете подписать свои собственные материалы. Это действительно нужно, только если вы хотите поиграть с Secure Boot.
Мой ноутбук MSI позволяет мне делать все вышеперечисленное.
Я хотел бы увидеть мир, в котором любой желающий может получить бесплатную копию дистрибутива Linux и заменить свою ОС. Это то, что у нас было до безопасной загрузки. У нас также было много вирусов загрузочного сектора. Отключение безопасной загрузки в конфигурации вашей системы, вероятно, является достаточно небольшим препятствием, чтобы убедиться, что вы обладаете достаточным умом для установки ОС или знаете кого-то, кто это делает.
Неспособность отключить его - это плохо, и это зависит от производителя. Не обвиняйте Microsoft, если только они не «убеждают» производителя предотвратить отключение безопасной загрузки.
источник