загрузчик

Безопасная загрузка Linux

Безопасная загрузка Linux

Linux: что такое безопасная загрузка?

При запуске компьютер запускает специальную программу для обнаружения и инициализации его аппаратных компонентов. Традиционно на IBM-совместимых компьютерах используется базовая система ввода-вывода (BIOS). В отличие от Mac, использующих OpenFirmware, у Android есть только загрузчик, а Raspberry Pi запускается с прошивки, хранящейся в системе на чипе (SoC). Этот начальный шаг включает в себя проверку оборудования, а также поиск доступных операционных систем на носителях, которые являются частью компьютера, например, жестким диском, CDROM / DVD или SD-картой, или подключены к нему через сеть (сетевая файловая система (NFS) , Загрузка PXE).

Фактический порядок поиска зависит от настроек BIOS компьютера. На рисунке 2 показан список доступных устройств для загрузки.

В конце список доступных операционных систем с определенными параметрами (так называемые «доступные параметры загрузки») отображается в меню, из которого вы выбираете желаемую операционную систему для запуска.

Безопасная загрузка используется с 2012 года. Эта статья объяснит, что это такое, какова цель и как это работает. Кроме того, мы ответим на вопрос, нужна ли безопасная загрузка для машин на базе Linux, и как дистрибутивы Linux справляются с этим случаем.


Что такое безопасная загрузка?

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

Безопасная загрузка является частью Unified Extensible Firmware Interface (UEFI) - центрального интерфейса между прошивкой, отдельными компонентами компьютера и операционной системой [3]. В течение примерно пяти лет он разрабатывался Intel и Microsoft в качестве замены BIOS. В 2012 году версия 2.3.1 UEFI был представлен в Microsoft Windows 8. Microsoft сделала обязательным для производителей компьютеров внедрение UEFI, если они хотят получить сертификат Windows 8 для своих новых компьютеров [15].

Но почему безопасная загрузка называется безопасной загрузкой?? Что делает его безопасным вариантом загрузки? Безопасная загрузка позволяет загружаться только с ранее назначенных загрузчиков и, следовательно, предназначена для предотвращения запуска вредоносных или других нежелательных программ. Традиционный BIOS загружает любое программное обеспечение. Это даже позволит вредоносным программам, таким как руткит, заменить ваш загрузчик. После этого руткит сможет загрузить вашу операционную систему и оставаться полностью невидимым и необнаружимым в вашей системе. В то время как при безопасной загрузке микропрограмма системы сначала проверяет, подписан ли загрузчик системы криптографическим ключом. Криптографический ключ - это ключ, авторизованный базой данных, содержащейся в прошивке. Только если ключ будет распознан, это позволит системе загрузиться. Такая действительная подпись должна соответствовать спецификации центра сертификации (CA) Microsoft UEFI.


Различные точки зрения

На первый взгляд звучит неплохо, но всегда есть две стороны медали. Как обычно, преимущества и недостатки сосуществуют. Обзоры в прессе либо хвалят, либо демонизируют Secure Boot, в зависимости от того, кто пишет обзор.

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

Во-вторых, не только ваш выбор оборудования ограничен, но и выбор вашей операционной системы должен быть ограничен из-за технологии UEFI, представленной Windows. Это означает, что это усложняет жизнь сообществу Linux. Перед использованием на оборудовании на основе UEFI загрузчики Linux, такие как GRUB, должны быть сначала сертифицированы, и поэтому это замедляет довольно быстрое развитие, поскольку сообщество открытого исходного кода известно. Никто не знает, что произойдет, если центральный валидатор сделает ошибку во время валидации или заблокирует выпуск обновленного программного обеспечения.

В-третьих, что означает термин вредоносное ПО сегодня и завтра?? Включены ли в него операционные системы конкурентов [5] или они исключены? Процесс проверки проходит за кулисами, и никто не может это доказать.

В-четвертых, есть оговорки относительно безопасности. Согласно текущим разработкам, длина криптографических ключей относительно мала. Безопасная загрузка допускает только сертификаты X509 и ключи RSA с фиксированной длиной 2048 бит [16]. Ожидается, что в ближайшем будущем с использованием массового распараллеливания и дальнейшей вычислительной мощности на основе виртуализации этот уровень безопасности будет нарушен. Сегодня рекомендуются криптографические ключи длиной 4096 бит.

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


Решения для открытого исходного кода

Но там, где есть проблема, есть и решение. Microsoft щедро предлагает дистрибьюторам Linux возможность получить доступ к их порталу Microsoft Sysdev, чтобы их загрузчики были подписаны [17]. Тем не менее, за эту услугу есть ценник.

Дистрибутивы Linux имеют только «прокладку» [11], подписанную на портале Microsoft. Прокладка - это небольшой загрузчик, который загружает основной загрузчик GRUB дистрибутивов Linux. Microsoft проверяет только подписанную прокладку, и после этого ваш дистрибутив Linux загружается нормально. Это помогает поддерживать систему Linux в обычном режиме.

Как сообщается из различных источников, (U) EFI отлично работает с Fedora / RedHat, Ubuntu, Arch Linux и Linux Mint. Для Debian GNU / Linux нет официальной поддержки безопасной загрузки [9]. В любом случае, есть интересная запись в блоге о том, как это настроить [18], а также описание в Debian Wiki [14].

Альтернативы UEFI

UEFI - не единственный преемник BIOS ПК - есть альтернативы. Вы можете поближе познакомиться с OpenBIOS [4], libreboot [7], Open Firmware [8,9] и coreboot [10]. В этой статье мы не тестировали их, но полезно знать, что альтернативные реализации существуют и работают без сбоев.


Заключение

Как упоминалось ранее, ключевой вопрос - это доверие. Что касается компьютеров, спросите себя, каким частям вашей системы вы доверяете - аппаратным компонентам (микропрограммам, микросхемам, TPM) и / или программным компонентам (загрузчику, операционной системе, используемому программному обеспечению). Вы не можете отлаживать всю систему. Может быть полезно знать, что ваша операционная система не работает против ваших интересов и что вы делаете то, для чего купили систему, - безопасным способом, без контроля со стороны монополиста.


Ссылки и ссылки

Благодарности

Франк Хофманн и Мэнди Ноймайер являются соавторами статьи.  Авторы хотели бы поблагодарить Джастина Келли за его помощь и критические комментарии при написании этой статьи.

Как изменить направление прокрутки мыши и сенсорной панели в Windows 10
Мышь а также Сенсорная панельs не только упрощают вычисления, но и делают их более эффективными и требуют меньше времени. Мы не можем представить себе...
Как изменить указатель мыши и размер курсора, цвет и схему в Windows 10
Указатель мыши и курсор в Windows 10 - очень важные аспекты операционной системы. То же самое можно сказать и о других операционных системах, так что,...
Бесплатные движки с открытым исходным кодом для разработки игр для Linux
В этой статье будет рассмотрен список бесплатных игровых движков с открытым исходным кодом, которые можно использовать для разработки 2D- и 3D-игр в L...