Red Hat und Google haben Sigstore vorgestellt, einen Dienst zur kryptografischen Verifizierung von Code.

Die Unternehmen Red Hat und Google haben in Zusammenarbeit mit der Purdue University das Projekt Sigstore ins Leben gerufen, das darauf abzielt, Werkzeuge und Dienste zur Verifizierung von Software mittels digitaler Signaturen und zur Führung eines öffentlichen Logs zur Bestätigung der Authentizität (transparency log) zu schaffen. Das Projekt wird unter der Schirmherrschaft der Non-Profit-Organisation Linux Foundation weiterentwickelt.

Das vorgeschlagene Projekt wird die Sicherheit der Verbreitungskanäle von Software erhöhen und Schutz gegen Angriffe bieten, die auf die Manipulation von Softwarekomponenten und Abhängigkeiten (supply chain) abzielen. Ein zentrales Sicherheitsproblem in der Open-Source-Software ist die Schwierigkeit, die Quelle des Programms zu überprüfen und den Build-Prozess zu verifizieren. Zum Beispiel nutzen die meisten Projekte zur Überprüfung der Integrität von Releases Hashes, doch oft werden die für die Authentifizierung erforderlichen Informationen in unsicheren Systemen und in gemeinsamen Code-Repositories aufbewahrt, deren Kompromittierung es Angreifern ermöglicht, die zur Verifizierung notwendigen Dateien zu manipulieren und ohne Verdacht schädliche Änderungen einzuführen.

Lediglich ein geringer Teil der Projekte verwendet digitale Signaturen beim Verbreiten von Releases, da es Schwierigkeiten beim Schlüsselmanagement, der Verbreitung öffentlicher Schlüssel und dem Widerruf kompromittierter Schlüssel gibt. Damit die Verifizierung sinnvoll ist, muss auch ein zuverlässiger und sicherer Prozess zur Verbreitung öffentlicher Schlüssel und Prüfziffern organisiert werden. Selbst bei Vorhandensein einer digitalen Signatur ignorieren viele Benutzer die Überprüfung, da sie Zeit aufwenden müssen, um den Verifizierungsprozess zu verstehen und herauszufinden, welcher Schlüssel vertrauenswürdig ist.

Sigstore wird als das Pendant zu Let’s Encrypt für Code vorgestellt und bietet Zertifikate zur Bescheinigung von Code durch digitale Signaturen sowie Werkzeuge zur Automatisierung der Überprüfung. Mit Sigstore können Entwickler digitale Signaturen für mit der Anwendung verbundene Artefakte erstellen, wie z.B. Release-Dateien, Container-Images, Manifeste und ausführbare Dateien. Ein besonderes Merkmal von Sigstore ist, dass das für die Signatur verwendete Material in einem unveränderbaren öffentlichen Log festgehalten wird, das zur Überprüfung und Auditing verwendet werden kann.

Anstelle von dauerhaften Schlüsseln verwendet Sigstore kurzfristig lebende, flüchtige Schlüssel, die auf der Grundlage von Berechtigungen generiert werden, die von OpenID Connect-Anbietern bestätigt werden (zum Zeitpunkt der Schüsselgenerierung identifiziert sich der Entwickler über den OpenID-Anbieter unter Verwendung seiner E-Mail-Adresse). Die Echtheit der Schlüssel wird anhand eines öffentlichen, zentralisierten Logs überprüft, das sicherstellt, dass der Unterzeichner wirklich derjenige ist, für den er sich ausgibt, und dass die Unterschrift von demselben Teilnehmer erstellt wurde, der auch für frühere Releases verantwortlich war.

Sigstore bietet sowohl einen bereitgestellten Dienst an, der bereits genutzt werden kann, als auch ein Set von Tools, mit dem ähnliche Dienste auf eigener Hardware bereitgestellt werden können. Der Dienst ist für alle Entwickler und Softwareanbieter kostenlos und wird auf einer neutralen Plattform, der Linux Foundation, bereitgestellt. Alle Komponenten des Dienstes sind Open Source, in Go geschrieben und unter der Apache 2.0-Lizenz veröffentlicht.

Zu den entwickelten Komponenten gehören:

  • Rekor – eine Logimplementierung zur Speicherung von durch digitale Signaturen beglaubigten Metadaten, die Informationen über Projekte widerspiegeln. Um die Integrität zu gewährleisten und Datenmanipulationen rückblickend zu verhindern, wird eine baumartige Struktur, der "Merkle-Baum", verwendet, in der jeder Ast alle darunterliegenden Äste und Knoten verifiziert, dank des gemeinsamen (baumartigen) Hashings. Mit einem endgültigen Hash kann der Benutzer die Korrektheit der gesamten Historie von Operationen sowie der vergangenen Zustände der Datenbank überprüfen (der Root-Hash des neuen Zustands der Datenbank wird unter Berücksichtigung des vorherigen Zustands berechnet). Zur Verifizierung und zum Hinzufügen neuer Einträge steht eine Restful API sowie eine CLI-Schnittstelle zur Verfügung.
  • Fulcio (SigStore WebPKI) – ein System zur Erstellung von Zertifizierungsstellen (Root-CA), die kurzfristig lebende Zertifikate auf der Grundlage von E-Mails ausstellen, die über OpenID Connect authentifiziert sind. 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).
  • Cosign (Container Signing) – ein Toolset zur Erstellung von Signaturen für Container, zur Überprüfung von Signaturen und zur Ablage von signierten Containern in OCI (Open Container Initiative) konformen Repositories.

Quelle: opennet.ru

60GB SSD 8Gb DDR4