Signaturen sollen beweisen, dass ein Artefakt von einer bestimmten Stelle stammt und seitdem nicht verändert wurde. In der Praxis scheitert das selten an der Kryptografie und fast immer am Drumherum: Schlüssel liegen jahrelang auf Build-Servern, niemand weiß, wer wann was signiert hat, und ein geleakter Key fällt erst auf, wenn es zu spät ist. Sigstore geht das Problem anders an. Statt Vertrauen in geheime Schlüssel setzt es auf öffentliche Nachvollziehbarkeit. Die technische Grundlage dafür sind Merkle-Trees und Transparenz-Logs.
Das Problem mit klassischen Signaturen
Wer heute Container-Images oder Pakete signiert, braucht einen privaten Schlüssel. Dieser Schlüssel muss erzeugt, verteilt, rotiert und geschützt werden. Jeder dieser Schritte ist eine Fehlerquelle. Dazu kommt ein zweites Problem: Eine Signatur sagt nur, dass jemand mit diesem Schlüssel signiert hat. Sie sagt nicht, ob das legitim war. Wird ein Schlüssel gestohlen, sind alle damit erzeugten Signaturen formal gültig. Der Diebstahl selbst hinterlässt keine Spur.
Merkle-Trees in zwei Minuten
Ein Merkle-Tree ist eine Baumstruktur aus Hashwerten. Die Blätter sind Hashes einzelner Einträge, jeder innere Knoten ist der Hash seiner beiden Kinder, und an der Spitze steht ein einziger Wurzel-Hash. Das hat zwei nützliche Eigenschaften. Erstens: Ändert sich irgendein Eintrag, ändert sich der Wurzel-Hash. Manipulation ist damit sofort erkennbar. Zweitens: Man kann mit wenigen Hashes beweisen, dass ein bestimmter Eintrag im Baum enthalten ist, ohne den ganzen Baum zu übertragen. Bei einer Million Einträgen reichen rund zwanzig Hashwerte für den Nachweis.
Transparenz-Logs: das öffentliche Journal
Ein Transparenz-Log ist ein öffentliches, nur anfügbares Verzeichnis, das intern als Merkle-Tree organisiert ist. Einträge können hinzugefügt, aber nie unbemerkt verändert oder entfernt werden. Das Konzept stammt aus der Zertifikatswelt: Certificate Transparency zwingt Zertifizierungsstellen seit Jahren, jedes ausgestellte TLS-Zertifikat in öffentliche Logs zu schreiben. Falsch ausgestellte Zertifikate fliegen dadurch auf. Sigstore überträgt dieses Prinzip auf Software-Signaturen. Das Log heißt Rekor. Jede Signatur wird dort mit Zeitstempel eingetragen und ist ab diesem Moment für jeden überprüfbar.
Wie Sigstore die Teile zusammensetzt
Sigstore kombiniert drei Komponenten. Fulcio stellt kurzlebige Zertifikate aus, die an eine Identität gebunden sind, etwa ein OIDC-Login von GitHub oder Google. Der private Schlüssel existiert nur für Minuten und wird danach weggeworfen. Cosign signiert damit Artefakte wie Container-Images. Rekor protokolliert die Signatur im Transparenz-Log. Wer später prüft, verifiziert nicht einen langlebigen Schlüssel, sondern eine Kette: Diese Identität hat zu diesem Zeitpunkt dieses Artefakt signiert, und der Eintrag steht unveränderbar im Log. Das nennt sich keyless signing. Es gibt keinen Schlüssel mehr, der gestohlen werden kann, und jede Signatur hinterlässt eine öffentliche Spur.
Was das praktisch bedeutet
Für Teams, die heute gar nicht oder mit selbst verwalteten Schlüsseln signieren, ist Sigstore ein deutlicher Schritt nach vorn. Die Einstiegshürde ist niedrig: Cosign ist ein einzelnes Binary, GitHub Actions bringt die OIDC-Integration mit, und das öffentliche Rekor-Log kostet nichts. Wichtig ist die Reihenfolge. Signieren lohnt sich erst, wenn die Pipeline selbst sauber ist. Eine Signatur aus einem Workflow, in dem jeder Schreibrechte hat und Third-Party-Actions ungeprüft laufen, beweist wenig. Erst kommt die Härtung der Pipeline, dann die Provenance, dann die Signatur. Wer diese Kette aufbaut, bekommt am Ende Artefakte, deren Herkunft sich gegenüber Kunden und Prüfern belegen lässt, ohne interne Schlüsselverwaltung und ohne blindes Vertrauen in eine zentrale Stelle.
Wie sicher ist Ihre Pipeline heute? Der GitSecOps QuickCheck prüft Ihre CI/CD-Kette in 3 Werktagen auf die Punkte, die vor Signaturen kommen: Rechte, Secrets, Third-Party-Actions, Nachvollziehbarkeit. Festpreis 1.990 Euro netto, konkreter Maßnahmenbericht inklusive. Kontakt: mm@crank.zone