7 мин чтения
Proof of Existence против Sigstore: нужны ли вам оба?
Sigstore подписывает программные артефакты и публично фиксирует это событие в журнале; Label 309 добавляет независимую блокчейн-привязку во времени поверх всех ваших данных о релизе. Они решают разные задачи и хорошо работают вместе.

Sigstore и Proof of Existence на самом деле не конкуренты. Sigstore отвечает на вопрос: кто подписал этот программный артефакт и зафиксировано ли событие подписания в публичном журнале? Label 309 отвечает на другой: существовали ли эти конкретные байты к определённому публичному моменту времени, причём так, что это можно подтвердить, не доверяя ни одному отдельному сервису? Большинству команд разработки надёжнее всего использовать оба инструмента сразу: подписывайте и фиксируйте релизы через Sigstore, а затем закрепляйте данные о релизе в Label 309.
Sigstore — это экосистема подписания ПО и прозрачности. Label 309 закрепляет в Cardano хеши содержимого, манифесты, запечатанные файлы или корень Merkle, чтобы любой мог позже подтвердить, что эти данные существовали к определённому времени блока, — используя только транзакцию и публичный обозреватель блокчейна, без участия сервера издателя.
Что такое Sigstore?
Sigstore — это экосистема с открытым исходным кодом для подписания артефактов цепочки поставок ПО и записи событий подписания в публичный журнал.
Её распространённый бесключевой рабочий процесс использует идентичность OpenID Connect (OIDC), краткоживущий сертификат, выпущенный Fulcio, подпись, созданную на стороне клиента, и запись в журнале прозрачности Rekor. Смысл в том, чтобы упростить подписание артефактов, сохраняя при этом проверяемую публичную запись о том, кто и что подписал.
Sigstore хорошо подходит для:
- образов контейнеров;
- бинарных файлов и пакетов;
- программных ведомостей материалов (SBOM);
- подтверждений происхождения;
- процессов CI/CD и подписания релизов;
- проверки того, что артефакт подписан ожидаемой идентичностью.
Он создан для доверия в цепочке поставок ПО.
Что такое Label 309?
Label 309 — это открытый, не зависящий от вендора стандарт для записей Proof of
Existence в Cardano. Предложение подано в процесс Cardano CIP и сейчас
рассматривается редакторами CIP; идентификатор в блокчейне — метка метаданных
309.
Запись Label 309 может зафиксировать один или несколько хешей содержимого, корень Merkle над множеством файлов, необязательные подписи уровня записи, запечатанные данные, адресованные ключам получателей, и URI контентно-адресуемого хранилища. Основное подтверждение проверяется независимо — на основе транзакции Cardano и проверяемых байтов, без аккаунта, без входа в систему и без зависимости от какого бы то ни было отдельного поставщика.
Для команд разработки это делает его полезным для закрепления данных о релизе:
- дайджестов артефактов;
- бандлов Sigstore;
- утверждений происхождения SLSA и in-toto;
- SBOM;
- манифестов релиза;
- журналов сборки и результатов тестов;
- свидетельств об инцидентах.
Это публичный слой фиксации с метками времени.
В чём же реальная разница?
Sigstore отвечает на вопросы об идентичности и подписании для ПО. Label 309 отвечает на вопросы о существовании и времени для любых байтов.
Sigstore помогает ответить:
- Был ли подписан этот образ контейнера?
- Какая идентичность OIDC была привязана к сертификату подписания?
- Зафиксировано ли событие подписания в журнале прозрачности?
- Можно ли проверить подпись артефакта?
- Соответствует ли это моей политике доверенных подписантов?
Label 309 помогает ответить:
- Существовал ли этот дайджест артефакта к данному времени блока Cardano?
- Входил ли этот SBOM в зафиксированные данные о релизе?
- Существовал ли этот манифест релиза до инцидента?
- Подписала ли запись известная идентичность проекта (по желанию)?
- Сможет ли получатель позже расшифровать запечатанный пакет свидетельств?
Эти два набора вопросов скорее дополняют друг друга, чем пересекаются.
Разве Rekor уже не делает это?
Если вы используете Sigstore — используйте Rekor: для своей задачи это правильный инструмент.
Rekor — это журнал прозрачности для подписей и метаданных ПО, спроектированный так, чтобы события подписания было легко находить и проверять. Документация Sigstore описывает его как журнал, доступный только для добавления и устойчивый к изменениям, за согласованностью которого могут следить аудиторы: цель устройства в том, чтобы любая попытка изменить или удалить запись была обнаружимой, а не проходила незаметно.
Label 309 не заменяет Rekor. Он даёт другой вид привязки:
- публичную метку времени, укоренённую в консенсусе Cardano, а не в журнале, которым управляет сервис;
- определённую схему записи под меткой метаданных
309; - необязательное запечатанное сохранение чувствительных свидетельств;
- доставку конкретным получателям;
- пакетирование Merkle для больших наборов свидетельств;
- проверку, которая не зависит от того, остаётся ли какой-то конкретный поставщик в сети.
Если у релиза уже есть свидетельства Sigstore — закрепите их. Не выбрасывайте их.
Как выглядел бы совместный рабочий процесс?
Конвейер CI/CD может собрать папку с данными о релизе, а затем зафиксировать её.
В этой папке могут лежать манифест релиза, дайджесты артефактов, подписи или бандлы Cosign, ссылки на записи Rekor, происхождение SLSA, утверждения in-toto, SBOM, журналы сборки, отчёты о тестах и манифесты развёртывания.
Конвейер хеширует каждый файл, строит дерево Merkle и публикует одну запись Label 309 с корнем Merkle. Поскольку корень — это единственное значение длиной 32 байта, одна транзакция может заменить собой сколь угодно большой набор свидетельств; доказательство включения затем показывает, что любой конкретный файл входил в этот корень. Запись также может нести необязательную подпись идентичности проекта или компании. О том, как свернуть множество файлов в один корень, читайте в статье одна запись для тысяч файлов; о сквозном шаблоне конвейера — в статье закрепление данных о сборке в CI/CD.
Позже аудитор проверяет две независимые вещи:
- Sigstore — кто что подписал, под какой идентичностью и в каком контексте журнала прозрачности;
- Label 309 — какой набор свидетельств существовал к публичному времени Cardano.
Проверяет ли Label 309 подпись ПО?
Нет. Label 309 не знает, действительна ли подпись Cosign, доверена ли идентичность OIDC, выполнена ли политика и соответствует ли сборка ожиданиям SLSA.
Подтвердить он может лишь одно: что файл подписи, бандл, утверждение, SBOM или манифест релиза существовали к публичному моменту времени. Инструменты цепочки поставок ПО по-прежнему проверяют собственные форматы по собственным правилам.
Такое разделение полезно. Proof of Existence не должен притворяться движком политик подписания ПО.
Сохраняет ли Sigstore весь ваш набор свидетельств?
Сам по себе — нет. Sigstore сосредоточен на подписании и прозрачности для программных артефактов. Реальному процессу релиза часто также нужно сохранить журналы сборки, SBOM, отчёты о тестах, манифесты развёртывания, хронологию инцидентов и приватные пакеты свидетельств.
Label 309 может зафиксировать все эти материалы как один набор. Если часть материалов чувствительна, они могут остаться приватными и быть зафиксированными через корень Merkle без публикации содержимого — или запечатаны так, что шифротекст лежит в контентно-адресуемом хранилище, а расшифровать его может только владелец ключа. Запечатанная запись сохраняет открытый текст читаемым только для предполагаемых получателей; сама по себе она не гарантирует анонимности, и получатель всё равно может раскрыть открытый текст после расшифровки.
Это делает Label 309 полезным для аудита, реагирования на инциденты, закупок, проверок безопасности со стороны клиентов и долгосрочного хранения данных о релизах.
Когда стоит использовать Sigstore?
Используйте Sigstore, когда вам нужно подписание программных артефактов и проверка, подкреплённая идентичностью. Он хорошо подходит для подписания образов контейнеров, бинарных файлов и пакетов; публичных процессов релиза ПО с открытым исходным кодом; бесключевого подписания с идентичностями OIDC; прозрачности цепочки поставок; политик проверки на основе ожидаемых подписантов; и интеграции с существующими инструментами распространения.
Sigstore — надёжный выбор по умолчанию для современного подписания ПО.
Когда стоит использовать Label 309?
Используйте Label 309, когда вам нужна публичная фиксация с меткой времени вокруг свидетельств — закрепить манифесты релиза, подтвердить, что SBOM существовал до раскрытия уязвимости, зафиксировать корень Merkle над набором свидетельств о релизе, сохранить запечатанные материалы об инциденте, подтвердить набор артефактов, переданных клиенту, или сохранить подтверждение, которое не зависит от того, остаётся ли в сети CI-поставщик или панель реестра артефактов.
Label 309 не заменяет подписание. Это привязка во времени и формат фиксации
свидетельств. CLI cardanowall с открытым
исходным кодом создан именно для такой автоматизации: он не зависит от шлюза и
работает напрямую с сидом, поэтому встраивается в конвейер без участия сайта.
Полный процесс
описан в статье использование CLI в
автоматизации.
Чего не доказывает ни одна из систем?
Ни одна из систем не доказывает, что ПО безопасно.
Подписанный артефакт всё равно может содержать уязвимость. SBOM с меткой времени может быть неполным. Журнал сборки может документировать конвейер, который был настроен неправильно. Релиз может быть хорошо задокументирован и всё равно небезопасен.
Sigstore и Label 309 помогают подтвердить целостность, идентичность, прозрачность, время и непрерывность свидетельств. Сама же безопасность по-прежнему зависит от ревью исходного кода, изоляции сборки, управления зависимостями, тестирования, реагирования на уязвимости и операционного контроля. Об общих границах того, что подтверждение может и не может установить, читайте в статье что подтверждение не доказывает.
Коротко
Используйте Sigstore, чтобы подписывать ПО и делать события подписания прозрачными. Используйте Label 309, чтобы закрепить данные о релизе — манифесты, журналы и утверждения — к публичному времени Cardano, которое ни один вендор не сможет незаметно сдвинуть. Вместе они делают историю вашего ПО гораздо проще для последующей проверки.
Что почитать дальше
- Закрепление данных о сборке в CI/CD — полный шаблон конвейера для хеширования, пакетирования и публикации свидетельств о сборке.
- Одна запись для тысяч файлов — как один корень Merkle фиксирует сколь угодно большой набор свидетельств.
- Использование CLI в автоматизации — как запускать публикацию и проверку из конвейера с помощью CLI
cardanowall. - Что подтверждение не доказывает — честные границы Proof of Existence.
- Sigstore и его документация — бесключевое подписание, сертификаты Fulcio и журнал прозрачности Rekor.