Fuchsia Friday: Amber поддерживает Fuchsia в актуальном состоянии и безопасности

Если что-то не растет, оно умирает. Учитывая множество заброшенных устройств, не получающих Android Oreo, можно утверждать, что система обновлений является одним из фатальных недостатков Android. Fuchsia стремится быть другим. В этом выпуске Fuchsia Friday мы рассмотрим амбициозную систему обновлений Fuchsia.

Одним из новейших дополнений к Fuchsia является Amber, система обновлений, «с амбициями обновлять все компоненты, работающие в системе Fuchsia», включая базовые вещи, такие как приложения, вплоть до ядра Zircon и загрузчика. На момент написания она имеет возможность обновлять только пакеты (пакеты содержат приложения).

В настоящее время Amber работает на системе безопасности обновлений с открытым исходным кодом под названием The Update Framework. The Update Framework (или TUF), разрабатываемая почти 10 лет, предназначена для защиты нескольких уровней процесса обновления программного обеспечения, и ее реализация в настоящее время используется в Docker под названием «Notary».

Реклама — прокрутите дальше, чтобы увидеть больше контента

Пожалуйста, обратите внимание, что Amber находится на очень ранней стадии, и команда Fuchsia еще не полностью решила использовать TUF. Таким образом, более чем обычно, аспекты этой статьи, скорее всего, изменятся к моменту выпуска.

Безопасность

The Update Framework — это невероятно детализированная система, но суть ее такова: когда создается новое обновление, вся информация о нем подписывается закрытым ключом. Эта информация затем хранится в одном или нескольких онлайн-репозиториях. Когда вы ищете обновление, выполняется поиск и сравнение нескольких репозиториев, не только для обеспечения последней версии, но и для гарантии того, что ни один из репозиториев не был скомпрометирован.

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

В настоящее время для обновлений Fuchsia онлайн-репозитории не настроены. Amber в настоящее время предназначена для того, чтобы помочь собственным разработчикам приложений Google быстрее тестировать изменения. Для этой цели Amber включает инструменты для создания и управления локальным репозиторием обновлений [ссылка на источник].

Версионирование

Каждая система, использующая The Update Framework, будет делать это по-разному. Реализация Fuchsia с Amber работает не совсем так, как Notary от Docker. Самое значительное изменение заключается в том, что при поиске обновлений Amber смотрит на два разных номера версий.

Один из них — это то, что она называет «человеческой версией» (что-то вроде «0.5», «1.0-beta» или «3.4.7»), которая важна для совместимости. Если в обновлении происходит что-то существенное, номер «человеческой» версии должен увеличиваться. В противном случае, при простых обновлениях, таких как исправления ошибок, Amber будет генерировать и назначать уникальный внутренний номер версии.

Цель этой системы версионирования — совместимость. Поскольку Fuchsia разработана как модульная, приложения строятся из более мелких частей (называемых модулями). Каждому приложению необходимо полагаться на некоторые модули, чтобы завтра давать те же результаты, что и сегодня. Одно небольшое изменение в модуле может полностью нарушить работу приложения.

Например, скажем, существует модуль «Контакты», который сегодня возвращает номера телефонов вроде «5551234567». Что, если обновление изменит его на «(555) 123-4567»? Приложения, зависящие от «Контактов», могут отображать визуальные проблемы или полностью сломаться. Наличие двух отдельных номеров версий должно обеспечить совместимость при обновлениях.

Это всего лишь наиболее вероятное предположение, поскольку системы управления версиями еще нет. Трудно быть уверенным, как Amber будет работать в будущем, и нам обязательно придется вернуться к этому вопросу. Мне интересно посмотреть, насколько хорошо она будет обрабатывать обновления драйверов и обновления ядра Zircon. Расскажите, что вы думаете, в комментариях.

Если у вас есть какие-либо вопросы о том, как будет работать Fuchsia, задавайте их в комментариях или в Twitter. Возможно, вы найдете ответы в будущей статье!

Fuchsia Friday — это новая серия, в которой мы погружаемся в исходный код Fuchsia и интерпретируем, что текущее состояние ОС может означать для готового продукта. Вся информация в этой статье является предположением, основанным на доступной информации, и может быть изменена.

Читайте больше в нашей серии Fuchsia Friday:


Смотрите 9to5Google на YouTube, чтобы узнать больше новостей: