В последнее время намечается довольно-таки интересный тренд в сращивании между собой некими особыми неестественными путями ПО и аппаратного обеспечения, хотя доселе они существовали, в общем-то, вполне сами по себе. Собственно, термин «тивоизация» примерно это и обозначает: когда крупные производители софта договариваются с крупными же производителями железа об эксклюзивных способах/протоколах запуска своих программ/ОС на их железе, этим самым зачастую неявно оставляя менее крупных игроков за бортом процесса конкуренции, да и нормального функционирования на этой аппаратной платформе тоже.
Сегодня мы рассмотрим только два подобных случая: один из них – на примере уже известного механизма UEFI Secure Boot, который будет поддерживать практически все новые брендовые компьютеры и планшеты, другой – на примере сетевых принтеров, перепрошивка новых моделей которых теперь также будет защищена от самовольства пользователей-владельцев этих устройств.
Итак, попробуем разобраться, кому в наш век принадлежит право решать, что делать и что запускать на своем собственном оборудовании – покупателю и фактическому владельцу этого оборудования или всё-таки производителю оборудования/софта, на нём установленного (делающего это, конечно же, из самых светлых и высоких побуждений, во имя безопасности самого пользователя). Как мы увидим ниже, намечается заметный дрейф ко второму варианту решения проблемы; впрочем, давайте обо всём по порядку.
Secure Boot: история болезни
Относительно недавно Фонд свободного ПО (FSF) выпустил подробный разъясняющий документ (доступный в виде PDF), который описывает суть проблем, поджидающих обычных пользователей (например, свободного программного обеспечения), при использовании нового механизма Secure Boot, который в последнее время активно навязывается Microsoft среди производителей аппаратных решений и компьютеров и поддержка которого является обязательным условием для успешной сертификации этого оборудования при получении статуса “Windows 8 Ready”. Пользуясь своим доминирующим положением на рынке операционных систем, Microsoft пытается протащить в индустрию новый механизм, ограничивающий для пользователя свободный запуск любых ОС на своем же оборудовании, для чего пытается обязать всех OEM-производителей компьютеров с предустановленной Windows 8 включать Secure Boot по умолчанию. Данный документ от FSF, кроме констатации проблемы, также рассматривает возможные пути решения возникающих при этом трудностей, а еще анализирует последствия подобных решений в целом для индустрии Open Source. Наш сегодняшний анализ UEFI Secure Boot будет отчасти базироваться именно на нём.
Суть вопроса сводится к убеждению Microsoft, что механизм Secure Boot (являющийся частью нового универсального интерфейса UEFI и призванный в перспективе полностью заменить BIOS), – обеспечит новый уровень безопасности операционной системы путем проверки цифровой подписи ОС и всех её критических составляющих ещё на этапе загрузки оной. Этот механизм построен полностью на известном принципе тивоизации (жесткая привязка аппаратного обеспечения к сертифицированному программному обеспечению). Имея внешне довольно благовидные причины и высокие устремления души по защите пользователя-бедолаги, этот способ, однако, в качестве побочного эффекта делает невозможным загрузку любых альтернативных ОС – в первую очередь, таких, как Linux или FreeBSD, так как аппаратная часть защиты, поставляемая вендорами компьютерного оборудования, просто не будет содержать их верифицирующих ключей, по умолчанию блокируя их загрузку.
FSF усматривает в такой стратегии Microsoft скрытое от широкой публики желание ограничить или, как минимум, затруднить распространение дистрибутивов Linux на новом компьютерном оборудовании. И, если для платформы x86/64 отдельными производителями и предусмотрена возможность отключения механизма Secure Boot, то для платформы ARM (на которой, как правило, изготавливается различное встроенное оборудование, а также смартфоны и планшеты) такая возможность изначально исключена.
Но даже для того «благоприятного случая», когда отключение Secure Boot в принципе возможно через BIOS, система несколько раз уведомляет пользователя, что это «небезопасное решение», которое не рекомендуется использовать. Тем самым неискушенные пользователи ставятся перед фактом, будто решения на базе Linux/FreeBSD/Unix – якобы небезопасны. Специалисты Фонда отмечают, что теперь запуск свободных ОС требует как минимум дополнительных, а порой и весьма нетривиальных манипуляций со стороны пользователя, что искусственно создает дополнительный барьер для прихода новых пользователей в мир свободного ПО.
Обходной метод от Fedora Project
Кроме прочего, упомянутый документ анализирует возможные сценарии получения ключей, а также подходы, реализуемые отдельными дистрибутивами. На данный момент отсутствует некий единый центр получения ключей, поэтому потенциально нужно множество усилий, чтобы согласовать и подписать договора со всем спектром хотя бы основных мировых производителей – именно поэтому Microsoft, как ведущий вендор MS Windows, к которой обращаются за лицензированием сами производители, имеет очень серьезную фору. Поскольку в такой ситуации путь заключения прямых договоров на поддержку своего ключа с вереницей разных производителей очень сложен и долог, некоторые свободные проекты выбрали самое простое техническое решение: получение ключа, ранее одобренного через Microsoft. В частности, проект Fedora присоединился к совместной программе Microsoft и Verisign по выдаче своих ключей для цифровой подписи своего загрузчика, выступая по сути в роли сублицензиата. В этом случае первой стартует специальная «идентифицирующая прокладка», которая проверяет этот микрософовский ключ и загружает на основании его прав уже стандартный загрузчик GRUB 2, который по цепочке инициирует ОС и все её системные компоненты. При таком подходе, поскольку ключ Fedora подписан самой Microsoft, это даёт возможность использовать все без исключения прошивки вендоров, с которыми заключены договора у самой Microsoft, гарантируя широкое распространение Fedora.
Также в этой схеме получения ключей доступен альтернативный – частный вариант, при котором любой разработчик-пользователь ОС может самостоятельно получить и установить собственный персонализированный частный ключ с разрешением Microsoft и который обойдётся ему в 99 долларов. Специфика бинарного формата подписывающего ключа такова, что он допускает только одну стороннюю подтверждающую подпись на свой собственный ключ, поэтому в любом случае вам придётся выбирать лишь какого-то одного вендора для его ратификации (например, Microsoft, как в описанном здесь случае). Большой минус такого подхода ещё и в том, что каждый раз, когда вам потребуется модифицировать свое системное ПО, ответственное за загрузку, вам придётся заново получать и оплачивать новую версию такого «одобренного ключа» для каждой вашей версии.
Но всё же FSF логично замечает, что не всем в мире свободного ПО нравится подход, который, по сути, означает, что для распространения дистрибутива Linux нужно получить персональное согласие от самой Microsoft.
Обходной метод с генерацией private key
Ещё один вариант – это выбор возможности (подчёркиваю, если прошивка компьютера поддерживает custom mode), которая разрешает использовать свой собственный частный ключ подписи загрузки, тогда подобный PK-ключ можно сгенерировать и вовсе самостоятельно (здесь PK – это private key). Отчасти это используется в подходе разработчиков дистрибутива от Ubuntu, которые будут поставлять все свои компьютеры, ранее сертифицированные как "Ubuntu Certified", сразу со своей прошивкой, содержащей их собственный встроенный PK-ключ. Кроме этого варианта, параллельно все официальные копии Ubuntu, распространяемые на CD/DVD, будут содержать одобренный Microsoft ключ, чтобы сделать возможной установку этой ОС на большинстве сторонних компьютеров.
И, хотя FSF собирается продолжить кампанию среди производителей аппаратных средств для обязательного добавления возможности отключения Restricted Boot/Secure Boot, а также возможности добавления своих собственных ключей (custom mode), на данный момент, как видно, после подачи Microsof’a, все производители ОС выживают, кто как может (либо вообще игнорируют эту проблему). FSF также обращает внимание тех, кто увлекся возможностью добавления ключей, что возможность удаления ключей практически нигде не реализована, и это также потенциально ограничивает возможности по замене, скажем, ключа, одобренного Microsoft, на свой собственный.
Следующая важная инициатива FSF – создание единого списка всего нового оборудования и компьютеров с поддержкой режима Restricted Boot, где любой желающий мог бы получить всю необходимую ему объективную и полную информацию по деталям поддержки механизма Restricted Boot в каждой марке интересующего его компьютера. Вся подобная информация будет выкладываться и накапливаться в виде свободно доступной базы данных на ресурсе h-node.org. Перед покупкой нового компьютера вам нужно лишь ознакомиться с этим списком, чтобы выбрать тот вариант, который вас устраивает (повторюсь, в идеале хочется поддержки полного отключения Restricted Boot/Secure Boot в режиме Standard mode либо хотя бы возможности установки своих собственных ключей (PK) в режиме Custom mode).
Мнение сообщества
Кроме разъясняющей кампании фонда FSF, другие известные разработчики также уже высказались на эту тему. Так разработчик Мэтью Гарретт (Matthew Garrett) из Red Hat подробно описал все технические и лицензионные сложности при реализации Restricted Boot/Secure Boot применительно к миру Linux. Кроме того, создатель и главный идеолог мира Linux Линус Торвальдс также высказался в том смысле, что в целом неплохая идея UEFI получила плохую конкретную реализацию. В частности, Линус говорит: «Я не большой фанат реализации UEFI, но если вопрос, как в случае с Fedora, свёлся к 99 долларам, я вообще не вижу, в чем может заключаться проблема». Основатель же проекта Ubuntu Марк Шаттлворт (Mark Shuttleworth) сообщил прессе, что Canonical рассматривает возможность переговоров с крупными вендорами оборудования, чтобы создать свою собственную независимую сеть из компаний-производителей, поддерживающих ключ-подпись от Canonical, сопоставимую по размерам с Microsoft. Хотя, как справедливо заметил Марк, в условиях, когда загрузчик может ссылаться только на один-единственный подписанный ключ, возможности для маневра явно ограничены, но он уверил всех, что Canonical будет продолжать искать наиболее сбалансированное для всех решение. Высказался также и Ричард Столлман, в том смысле, что «не имеет значения, какая система установлена на компьютере пользователя: если он сам не контролирует ключи для формирования подписей, то в любом случае имеет место ограничение свободы пользователя».
Принтеры: когда лекарство хуже болезни
Идеологически очень похоже развивается и ситуация с принтерным оборудованием.
Если кратко: суть проблемы связана с современными сетевыми принтерами и заключается в том, что многие сетевые принтеры/МФУ позволяют довольно просто менять свою программную прошивку, в том числе удаленно, и во многих случаях для этого даже не требуется знание некоего пароля.
Характерная черта текущих методов решения этой проблемы в том, что некоторые производители принтеров предлагают лечение подобной уязвимости даже ещё худшее, чем первоначальная проблема. С недавних пор вендорами решено, что будет производиться подписывание оригинальных прошивок уникальной цифровой подписью самого производителя, чтобы эти принтеры могли запускать исключительно только тот код, который ранее был подписан или верифицирован производителем этого принтера.
Безусловно, оборудование, которое может работать только с подписанным кодом, теоретически безопасно, но тут важно дополнение: только в том случае, если у самого владельца этого принтера (или его администратора) есть хоть какое-то право решать, какие подписи (прошивки) принимать, а какие – нет. Если же под ширмой «усиления безопасности» и вовсе неявным образом передать все права по установке принтерного ПО исключительно производителям оборудования (в некий Удаленный Центр Принятия Важных Решений), – то это вовсе никакая не безопасность. На самом деле это – отсутствие выбора вообще. При реализации такого подхода вы лишаетесь права запускать не только чужой код по своему выбору, но даже и свой личный код на честно купленном вами устройстве, полностью делегировав возможности по удаленной модификации его логики работы исключительно производителю принтера или прошивки.
Попытка осмысления тренда
Существует известная научная концепция-модель государства, называемая «государство как стационарный бандит» (автор которой, кстати, небезызвестный МакГир). Смысл этой концепции сводится к тому, что государство – эта некая банда, которая захватывает власть над неким мирным и беспечным народом, живущим на определенной и условной территории. И вот однажды банда обнаруживает, что она не может бесконечно расширять свои владения: мешают другие банды – здесь перестаёт работать первая и самая простая фаза роста власти через экстенсивный рост.
Тогда эта «условная банда» начинает «эксплуатировать свой народ» – расти уже вертикально, а не горизонтально. Очень скоро она понимает, что, если она эксплуатирует народ слишком жестко, то народ либо начинает вымирать, либо восстает. Со временем экспериментально устанавливается некая разумная мера эксплуатации, баланс интересов, когда банда забирает лишь ту часть добавленной стоимости, которая оставляет народу достаточно средств для его расширенного воспроизводства. В этих условиях богатеют и банда, и народ. Таким образом, в этом случае банда превращается в «рациональную власть». Но если общество по какой-то причине достаточно пассивно и этот взаимный гомеостаз так и не найден – в итоге погибают оба: и зарвавшаяся банда и народ-терпила под её безмерной властью.
Возвращаясь от теории МакГира к наше теме: безопасность – это, конечно, хорошо в нашем бушующем и нестабильном мире, но, как прямо заявил Салливан в своём памфлете насчет Restricted Boot/Secure Boot: «”Майкрософт" и есть самая большая проблема безопасности и всего остального, кстати, тоже». Лично мне кажется, что для ИТ-мира ярко выраженные монополии типа Microsoft, которые, как могут, агрессивно прессуют и огораживают свой рынок, как раз и являются тем самым сферическим «стационарным бандитом», который каждый раз своим каждым следующим шагом осторожно прощупывает, как далеко ему позволят зайти на этот раз. И уж если таки позволят…
Кстати, популярное в нашей социально ориентированной стране выражение «одно окно» – термин из теории «стационарного бандита». Власть по-настоящему безмерна (стационарна), лишь когда любой гражданин, обратившись к представителю такой власти, может гарантированно решить абсолютно любой вопрос на подконтрольной ей территории и в одном месте – такая власть обладает абсолютными (суверенными) полномочиями «закрыть» любую проблему без согласования с кем-либо. В этом свете попытка Microsoft стать тем самым отсутствующим «единым центром мировой сертификации всего, что только можно загружать на компьютерах» – налицо. В терминологии теории это и есть то самое «одно окно», которое, безусловно, очень удобно, но не всегда выгодно в долгосрочной перспективе простым гражданам-пользователям, ибо это только прелюдия к новому витку нарастания «дефицита возможностей» (данная теория отрицает понятийные обозначения «низкий доход» или «бедность» как бессмысленные, заменяя их своим понятием – «дефицит возможностей»).
Поэтому – немного пофантазируем – возможно, скоро и настанет тот день, когда для запуска на своем компьютере своей же собственной ОС или программы нам понадобится пройти длинную процедуру бюрократических согласований с третьей стороной (например, Microsoft) на предмет самой возможности этого.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.