Einführung
Mit Artefaktnachweisen kannst du fälschungssichere Herkunfts- und Integritätsgarantien für die von dir entwickelte Software erstellen.
Standardmäßig werden Nachweise in der Nachweis-API von GitHub gespeichert, die gh attestation verify
beim Überprüfen des Nachweises abfragt. Dieser Befehl kontaktiert auch die Server von GitHub, um nach aktualisiertem Schlüsselmaterial zu suchen, mit dem der Nachweis überprüft werden kann.
Dieser Befehl kann ohne Internetverbindung ausgeführt werden, du musst jedoch das Nachweisbundle und das Schlüsselmaterial manuell im vertrauenswürdigen Stamm bereitstellen.
Bevor du mit dieser Anleitung beginnst, solltest du mit dem Generieren von Artefaktnachweisen vertraut sein. Weitere Informationen findest du unter „Verwenden von Artefaktnachweisen zur Ermittlung der Herkunft von Builds“.
Schritt 1: Herunterladen des Nachweisbundles
Rufe zunächst das Nachweisbundle aus der Nachweis-API ab.
Du kannst dies mit dem folgenden Befehl von einem Computer tun, der eine Online-Verbindung hat:
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME
Hier ist eine Beispielausgabe dieses Befehls:
Wrote attestations to file sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl.
Any previous content has been overwritten
The trusted metadata is now available at sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl
Schritt 2: Herunterladen vertrauenswürdiger Stämme
Rufe als Nächstes das Schlüsselmaterial aus den vertrauenswürdigen Stämmen ab.
Artefaktnachweise verwenden die Public Good Instance von Sigstore für öffentliche Repositorys und die Sigstore-Instance von GitHub für private Repositorys. Du kannst einen Befehl verwenden, um beide vertrauenswürdigen Stämme abzurufen:
gh attestation trusted-root > trusted_root.jsonl
gh attestation trusted-root > trusted_root.jsonl
Aktualisieren der Informationen zum vertrauenswürdigen Stamm in einer Offlineumgebung
Es empfiehlt sich, immer dann eine neue trusted_root.jsonl
-Datei zu generieren, wenn du neues signiertes Material in deine Offlineumgebung importierst.
Das Schlüsselmaterial in trusted_root.jsonl
enthält kein integriertes Ablaufdatum, sodass alle vor dem Generieren der vertrauenswürdigen Stammdatei signierten Elemente weiterhin erfolgreich überprüft werden. Alles, was nach dem Generieren der Datei signiert wurde, wird überprüft, bis die Sigstore-Instance das Schlüsselmaterial rotiert, was in der Regel mehrmals pro Jahr geschieht. Du kannst nicht wissen, ob Schlüsselmaterial seit dem letzten Generieren der vertrauenswürdigen Stammdatei widerrufen wurde.
Schritt 3: Durchführen der Offlineüberprüfung
Du kannst das Artefakt jetzt offline überprüfen.
Importiere Folgendes in deine Offlineumgebung:
- GitHub CLI
- Dein Artefakt
- Die Bundledatei
- Die vertrauenswürdige Stammdatei
Du kannst dann die Offlineüberprüfung mit dem folgenden Befehl ausführen:
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl
Zusammenfassung
Du überprüfst jetzt Artefaktnachweise in einer Offlineumgebung. Es wird empfohlen, immer dann einen neuen vertrauenswürdigen Stamm zu importieren, wenn du neue signierte Artefakte zu deiner Offlineumgebung hinzufügst..