Die Bereitstellung des Systems zur kryptografischen Verifizierung von Code Sigstore wurde angekündigt

Das Unternehmen Google hat die ersten stabilen Versionen der Komponenten des Projekts Sigstore veröffentlicht, das als geeignet erachtet wird, um produktive Implementierungen zu erstellen. Sigstore entwickelt Werkzeuge und Dienste zur Verifizierung von Software durch digitale Signaturen und die Führung eines öffentlichen Protokolls, das die Authentizität von Änderungen bestätigt (Transparenzprotokoll). Das Projekt wird unter der Schirmherrschaft der gemeinnützigen Organisation Linux Foundation von den Unternehmen Google, Red Hat, Cisco, VMware, GitHub und HP Enterprise mit der Unterstützung der OpenSSF (Open Source Security Foundation) und der Purdue University vorangetrieben.

Sigstore kann als das Pendant zu Let’s Encrypt für Code angesehen werden, das Zertifikate zur Bestätigung von Code mit digitalen Signaturen und Werkzeuge zur Automatisierung der Überprüfung bereitstellt. Mit Sigstore werden Entwickler in der Lage sein, digitale Signaturen für anwendungsspezifische Artefakte zu erstellen, wie z. B. Release-Dateien, Container-Images, Manifeste und ausführbare Dateien. Das für die Signatur verwendete Material wird in einem gegen Änderungen geschützten öffentlichen Protokoll festgehalten, das für Überprüfungen und Audits verwendet werden kann.

Statt dauerhafter Schlüssel verwendet Sigstore kurzlebige, temporäre Schlüssel, die auf der Grundlage von Berechtigungen generiert werden, die von OpenID Connect-Anbietern bestätigt werden (zum Zeitpunkt der Generierung der Schlüssel, die für die Erstellung einer digitalen Signatur erforderlich sind, identifiziert sich der Entwickler über einen OpenID-Anbieter, wobei er seine E-Mail-Adresse angibt). Die Authentizität der Schlüssel wird durch ein öffentliches, zentrales Protokoll überprüft, das sicherstellt, dass der Unterzeichner tatsächlich die Person ist, für die er sich ausgibt, und dass die Signatur von demselben Teilnehmer erstellt wurde, der auch für frühere Releases zuständig war.

Die Einsatzbereitschaft von Sigstore ist auf die Veröffentlichung von zwei Schlüsselkomponenten — Rekor 1.0 und Fulcio 1.0 — zurückzuführen, deren Programmierschnittstellen als stabil erklärt wurden und künftig abwärtskompatibel bleiben. Die Servicekomponenten sind in der Programmiersprache Go geschrieben und unter der Lizenz Apache 2.0 verfügbar.

Die Komponente Rekor beinhaltet eine Log-Implementierung zur Speicherung von mit digitalen Signaturen verifizierten Metadaten, die Informationen über Projekte widerspiegeln. Um die Integrität zu gewährleisten und Datenverfälschungen nachträglich zu verhindern, wird eine baumartige Struktur namens "Merkle-Baum" (Merkle Tree) verwendet, bei der jeder Zweig alle darunterliegenden Zweige und Knoten durch gemeinsames (baumartiges) Hashing verifiziert. Mit einem endgültigen Hash kann der Benutzer die Richtigkeit der gesamten Transaktionshistorie sowie der vergangenen Zustände der Datenbank überprüfen (der Root-Überprüfungs-Hash des neuen Zustands der Datenbank wird unter Berücksichtigung des vorherigen Zustands berechnet). Für die Verifizierung und Hinzufügung neuer Einträge steht eine RESTful API sowie eine Kommandozeilenoberfläche zur Verfügung.

Die Komponente Fulcio (SigStore WebPKI) umfasst ein System zur Erstellung von Zertifizierungsstellen (Root CA), die kurzlebige Zertifikate basierend auf einer über OpenID Connect authentifizierten E-Mail ausstellen. Die Lebensdauer des Zertifikats beträgt 20 Minuten, in denen der Entwickler eine digitale Signatur erstellen muss (wenn das Zertifikat später in die Hände eines Angreifers gelangt, ist es bereits abgelaufen). Darüber hinaus entwickelt das Projekt das Werkzeug Cosign (Container Signing), das zur Erstellung von Signaturen für Container, zur Überprüfung von Signaturen und zur Ablage signierter Container in OCI-kompatiblen Repositories dient.

Die Implementierung von Sigstore ermöglicht eine Verbesserung der Sicherheit von Softwareverbreitungskanälen und schützt vor Angriffen, die auf den Austausch von Bibliotheken und Abhängigkeiten (Supply Chain) abzielen. Ein zentrales Sicherheitsproblem in der Open-Source-Software ist die Komplexität der Überprüfung der Herkunft des Programms und der Verifizierung des Build-Prozesses. Beispielsweise verwenden die meisten Projekte zur Überprüfung der Integrität eines Releases Hashes, aber oft sind die zur Überprüfung der Echtheit erforderlichen Informationen auf ungeschützten Systemen und in öffentlichen Repositories mit Code gespeichert, die, wenn sie kompromittiert werden, es Angreifern ermöglichen können, die zur Verifizierung notwendigen Dateien zu ersetzen und schadhafte Änderungen unbemerkt einzuführen.

Die Verwendung digitaler Signaturen zur Verifizierung von Releases hat bisher aufgrund der Komplexität des Schlüsselmanagements, der Verteilung öffentlicher Schlüssel und des Widerrufs kompromittierter Schlüssel nicht flächendeckend Einzug gehalten. Damit die Verifizierung sinnvoll ist, ist es zusätzlich erforderlich, einen zuverlässigen und sicheren Prozess zur Verteilung öffentlicher Schlüssel und Prüfziffern zu organisieren. Selbst bei Vorhandensein einer digitalen Signatur ignorieren viele Benutzer die Überprüfung, da sie Zeit investieren müssen, um den Verifizierungsprozess zu verstehen und herauszufinden, welcher Schlüssel vertrauenswürdig ist. Das Projekt Sigstore versucht, diese Prozesse zu vereinfachen und zu automatisieren, indem es eine fertige und geprüfte Lösung bereitstellt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4