Jump to content
Korean Random
Sign in to follow this  
yepev

Sigstore - бесплатное подписание программного кода

Recommended Posts

Компании Red Hat и Google совместно с Университетом Пердью основали проект Sigstore, нацеленный на создание инструментов и сервисов для верификации программного обеспечения при помощи цифровых подписей и ведения публичного лога для подтверждения подлинности (transparency log). Проект будет развиваться под эгидой некоммерческой организации Linux Foundation.


Предложенный проект позволит повысить безопасность каналов распространения программ и защититься от атак, нацеленных на подмену программных компонентов и зависимостей (supply chain). Одной из ключевых проблем с безопасностью в открытом ПО называется сложность проверки источника получения программы и верификации процесса сборки. Например, для проверки целостности релиза большинство проектов используют хеши, но часто необходимая для проверки подлинности информация хранится на незащищенных системах и в общих репозиториях с кодом, в результате компрометации которых атакующие могут подменить необходимые для верификации файлы и, не вызывая подозрений, внедрить вредоносные изменения.

 

Лишь незначительная часть проектов использует цифровые подписи при распространении релизов из-за сложностей в управлении ключами, распространении открытых ключей и отзыве скомпрометированных ключей. Для того, чтобы верификация имела смысл, также требуется организовать надёжный и безопасный процесс распространения открытых ключей и контрольных сумм. Даже при наличии цифровой подписи многие пользователи игнорируют проверку, так как необходимо потратить время на изучение процесса верификации и понять, какой ключ заслуживает доверия.

 

Sigstore преподносится как аналог Let’s Encrypt для кода, предоставляющий сертификаты для заверения кода цифровыми подписями и инструментарий для автоматизации проверки. При помощи Sigstore разработчики смогут формировать цифровые подписи для связанных с приложением артефактов, таких как файлы с релизами, образы контейнеров, манифесты и исполняемые файлы. Особенностью Sigstore является то, что используемый для подписи материал отражается в защищённом от внесения изменений публичном логе, который можно использовать для проверки и аудита.

 

Вместо постоянных ключей в Sigstore применяются короткоживущие эфемерные ключи, которые генерируются на основе полномочий, подтверждённых провайдерами OpenID Connect (на момент генерации ключей для цифровой подписи разработчик идентифицирует себя через провайдера OpenID с привязкой к email). Подлинность ключей проверяется по публичному централизованному логу, который позволяет убедиться, что автор подписи именно тот, за кого себя выдаёт, и подпись сформирована тем же участником, что отвечал за прошлые релизы.

Sigstore предоставляет как готовый сервис, которым уже можно пользоваться, так и набор инструментов, позволяющих развернуть аналогичные сервисы на своём оборудовании. Сервис бесплатен для всех разработчиков и поставщиков ПО, и развёрнут на нейтральной площадке - Linux Foundation. Все компоненты сервиса являются открытыми, написаны на языке Go и распространяются под лицензией Apache 2.0.

 

Из развиваемых компонентов можно отметить:

 

  • Rekor - реализация лога для хранения заверенных цифровыми подписями метаданных, отражающих информацию о проектах. Для обеспечения целостности и защиты от искажения данных задним числом применяется древовидная структура "дерево Меркла" (Merkle Tree), в которой каждая ветка верифицирует все нижележащие ветки и узлы благодаря совместному (древовидному) хешированию. Имея конечный хеш, пользователь может удостовериться в корректности всей истории операций, а также в корректности прошлых состояний БД (корневой проверочный хеш нового состояния базы вычисляется с учётом прошлого состояния). Для верификации и добавления новых записей предоставляется RESTful API, а также интерфейс командной строки.
  • Fulcio (SigStore WebPKI) - система для создания удостоверяющих центров (root CA), выдающих короткоживущие сертификаты на основе email, аутентифицированного через OpenID Connect. Время жизни сертификата составляет 20 минут, за которые разработчик должен успеть сформировать цифровую подпись (если в дальнейшем сертификат попадёт к руки злоумышленника, то он уже будет просрочен).
  • Сosign (Container Signing) - инструментарий для формирования подписей к контейнерам, проверки подписей и размещения подписанных контейнеров в репозиториях, совместимых с OCI (Open Container Initiative).

 

https://www.opennet.ru/opennews/art.shtml?num=54731

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...