Ankündigung des kryptografischen Verifizierungssystems Sigstore

Google kündigte die Veröffentlichung der ersten stabilen Versionen der Komponenten des Sigstore-Projekts an, die für die Erstellung funktionierender Implementierungen geeignet sind. Sigstore entwickelt Tools und Dienste zur Softwareverifizierung mithilfe digitaler Signaturen und der 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 Google, Red Hat, Cisco, vmWare, GitHub und HP Enterprise unter Beteiligung von OpenSSF (Open Source Security Foundation) und der Purdue University entwickelt.

Sigstore kann als Let’s Encrypt für Code betrachtet werden, das Zertifikate für die digitale Signatur von Code und Tools zur Automatisierung der Verifizierung bereitstellt. Mit Sigstore können Entwickler anwendungsbezogene Artefakte wie Release-Dateien, Container-Images, Manifeste und ausführbare Dateien digital signieren. Das zum Signieren verwendete Material wird in einem manipulationssicheren öffentlichen Protokoll widergespiegelt, das zur Überprüfung und Prüfung verwendet werden kann.

Anstelle permanenter Schlüssel verwendet Sigstore kurzlebige ephemere Schlüssel, die auf der Grundlage der von OpenID Connect-Anbietern überprüften Anmeldeinformationen generiert werden (zum Zeitpunkt der Generierung der für die Erstellung einer digitalen Signatur erforderlichen Schlüssel identifiziert sich der Entwickler über den OpenID-Anbieter mit E-Mail-Bindung). ). Die Authentizität der Schlüssel wird durch ein öffentliches zentrales Protokoll überprüft, wodurch Sie sicherstellen können, dass der Autor der Signatur genau der ist, für den er sich ausgibt, und dass die Signatur von demselben Teilnehmer erstellt wurde, der für frühere Veröffentlichungen verantwortlich war.

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

Die Rekor-Komponente enthält eine Protokollimplementierung zum Speichern digital signierter Metadaten, die Informationen über Projekte widerspiegeln. Um die Integrität und den Schutz vor Datenkorruption sicherzustellen, wird eine Merkle-Tree-Baumstruktur verwendet, bei der jeder Zweig alle zugrunde liegenden Zweige und Knoten durch gemeinsames (Baum-)Hashing überprüft. Mit einem endgültigen Hash kann der Benutzer die Richtigkeit des gesamten Betriebsverlaufs sowie die Richtigkeit der vergangenen Zustände der Datenbank überprüfen (der Root-Verifizierungs-Hash des neuen Zustands der Datenbank wird unter Berücksichtigung des vergangenen Zustands berechnet). ). Zur Überprüfung und zum Hinzufügen neuer Datensätze wird eine RESTful-API sowie eine Befehlszeilenschnittstelle bereitgestellt.

Die Fulcio-Komponente (SigStore WebPKI) umfasst ein System zum Erstellen von Zertifizierungsstellen (Stamm-CAs), die kurzlebige Zertifikate auf der Grundlage von über OpenID Connect authentifizierten E-Mails ausstellen. Die Lebensdauer des Zertifikats beträgt 20 Minuten, in denen der Entwickler Zeit haben muss, eine digitale Signatur zu erstellen (falls das Zertifikat in Zukunft in die Hände eines Angreifers gerät, ist es bereits abgelaufen). Darüber hinaus entwickelt das Projekt das Cosign-Toolkit (Container Signing), das darauf ausgelegt ist, Signaturen für Container zu generieren, Signaturen zu überprüfen und signierte Container in mit OCI (Open Container Initiative) kompatiblen Repositories zu platzieren.

Die Einführung von Sigstore ermöglicht es, die Sicherheit von Software-Vertriebskanälen zu erhöhen und vor Angriffen zu schützen, die auf die Substitution von Bibliotheken und Abhängigkeiten (Lieferkette) abzielen. Eines der größten Sicherheitsprobleme bei Open-Source-Software ist die Schwierigkeit, die Quelle des Programms und den Erstellungsprozess zu überprüfen. Beispielsweise verwenden die meisten Projekte Hashes, um die Integrität einer Veröffentlichung zu überprüfen. Oftmals werden die für die Authentifizierung erforderlichen Informationen jedoch auf ungeschützten Systemen und in gemeinsam genutzten Repositorys mit Code gespeichert, sodass Angreifer im Falle einer Kompromittierung die dafür erforderlichen Dateien ersetzen können Überprüfung durchführen und, ohne Verdacht zu erregen, böswillige Änderungen einführen.

Der Einsatz digitaler Signaturen zur Freigabeverifizierung hat sich aufgrund von Schwierigkeiten bei der Schlüsselverwaltung, der Verteilung öffentlicher Schlüssel und dem Widerruf kompromittierter Schlüssel noch nicht durchgesetzt. Damit die Verifizierung sinnvoll ist, ist es darüber hinaus erforderlich, einen zuverlässigen und sicheren Prozess zur Verteilung öffentlicher Schlüssel und Prüfsummen zu organisieren. Selbst bei einer digitalen Signatur ignorieren viele Benutzer die Verifizierung, weil es Zeit braucht, den Verifizierungsprozess zu erlernen und zu verstehen, welcher Schlüssel vertrauenswürdig ist. Das Sigstore-Projekt versucht, diese Prozesse zu vereinfachen und zu automatisieren, indem es eine vorgefertigte und bewährte Lösung bereitstellt.

Source: opennet.ru

Kommentar hinzufügen