Никто в Linux-сообществе не рад тому, как компания Microsoft
реализовала механизм проверки цифровой подписи кода Unified Extensible
Firmware Interface (UEFI) Secure Boot в сертифицированных компьютерах
под Windows 8. Однако, разработчикам приходится как-то решать эту
проблему, чтобы пользователи имели возможность поставить на такие
компьютеры дистрибутив Linux. Каким образом это лучше всего сделать —
этот вопрос вызывает бурные дискуссии. Наконец-то своё мнение по этому
поводу чётко высказал и Линус Торвальдс.
Всё началось несколько дней назад, когда разработчик Red Hat прислал патч, который динамически внедряет в ядро Linux при загрузке в Secure Boot бинарные ключи с подписью Microsoft.
Конкретно, речь идёт о бинарниках EFI PE [Extensible Firmware Interface
Portable Executable], заверенных цифровой подписью Microsoft, внутри
которых помещается сертификат X.509. Торвальдс сказал, что такой способ
включения сертификата X.509 в ядро неприемлем. Он ответил в своём стиле,
используя нецензурную лексику.
Причина его реакции понятна: в ядре Linux есть поддержка X.509, зачем
же производителям оборудования дополнительный «посредник» в виде
бинарника Microsoft для срабатывания схемы UEFI Secure Boot.
Линус Торвальдс сказал буквально следующее:
«Если Red Hat хочет отсо#ать у Microsoft, то это *ваша* проблема. Это
никогда не случится с ядром, которое я поддерживаю. Вам, ребята, кажется
нормальным иметь дело с машиной для подписи, которая парсит PE
бинарники, проверяет подпись и подписывает результат своим собственным
ключом. Вы уже написали такой код, мать вашу, и прислали его для
включения в ядро.
Почему *меня* это должно волновать? Почему ядро должно заботиться о
чьей-то глупости «мы подписываем только бинарники PE»? Мы поддерживаем
X.509, что является стандартом для подписи.
Делайте это на уровне пользователя на доверенной машине. Нет никаких оправданий для того, чтобы делать это в ядре».
Позже Линус Торвальдс подтвердил свой бескомпромиссный подход. В отдельном письме к разработчикам он призвал их перестать бояться и сформулировал несколько принципов.
- Дистрибутив должен подписывать только свои собственные модули и ничего больше. Цифровой подписи Microsoft тут не место.
- Перед загрузкой стороннего модуля нужно спросить разрешения у пользователя, через текстовую консоль.
- Можно использовать случайно сгенерированные ключи с полным
отключением проверки UEFI, по возможности. Даже случайно сгенерированные
ключи надёжнее, чем «центр доверия» в одной-единственной компании,
которая выдаёт ключи каждому, у кого есть кредитная карта.
- Поощрять пользователей к генерации своих собственных одноразовых случайных ключей.
По мнению Торвальдса, вся система UEFI Secure Boot создана скорее для контроля, чем для безопасности.
|