Skip to main content

Vérification des attestations hors connexion

Vous pouvez vérifier les attestations d’artefact sans connexion Internet.

Introduction

Les attestations d’artefact vous permettent de créer des garanties de provenance et d’intégrité non vérifiables pour le logiciel que vous créez.

Par défaut, les attestations sont stockées dans l’API d’attestation de GitHub, que gh attestation verify interroge quand vous vérifiez votre attestation. Cette commande contacte également les serveurs de GitHub pour rechercher les éléments clés mis à jour à utiliser pour vérifier l’attestation.

Cette commande peut fonctionner sans connectivité Internet, mais vous devez manuellement fournir le bundle d’attestation et le matériel de clé dans la racine approuvée.

Avant de commencer ce guide, vous devez utiliser la génération d’attestations d’artefact. Consultez « Utilisation d’attestations d’artefact pour établir la provenance des builds ».

Étape 1 : Télécharger le bundle d’attestation

Tout d’abord, obtenez le bundle d’attestation à partir de l’API d’attestation.

Vous pouvez le faire avec la commande suivante à partir d’un ordinateur en ligne :

Bash
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME

Voici un exemple de sortie de cette commande :

Wrote attestations to file sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl.
Any previous content has been overwritten

The trusted metadata is now available at sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl

Étape 2 : Télécharger les racines approuvées

Ensuite, obtenez le matériel clé auprès des racines approuvées.

Les attestations d’artefact utilisent l’instance publique Sigstore correcte pour les dépôts publics et l’instance Sigstore de GitHub pour les dépôts privés. Vous pouvez utiliser une commande pour obtenir les deux racines approuvées :

Bash
gh attestation trusted-root > trusted_root.jsonl

Mise à jour des informations racines approuvées dans un environnement hors connexion

Il est recommandé de générer un nouveau fichier trusted_root.jsonl chaque fois que vous importez de nouveaux documents signés dans votre environnement hors connexion.

Le matériel de clé dans trusted_root.jsonl n’a pas de date d’expiration intégrée. Par conséquent, tout ce qui est signé avant de générer le fichier racine approuvé continuera à être vérifié correctement. Tout ce qui est signé après la génération du fichier est vérifié jusqu’à ce que l’instance Sigstore change de matériel de clé, ce qui se produit généralement quelques fois par an. Vous ne saurez pas si le matériel de clé a été révoqué depuis la dernière génération du fichier racine approuvé.

Étape 3 : Effectuer la vérification hors connexion

Vous pouvez maintenant vérifier l’artefact hors connexion.

Dans votre environnement hors connexion, vous devez importer :

  • GitHub CLI
  • Votre artefact
  • Le fichier de bundle
  • Le fichier racine approuvé

Vous pouvez ensuite effectuer une vérification hors connexion avec la commande suivante :

Bash
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl

Conclusion

Vous vérifiez maintenant les attestations d’artefact dans un environnement hors connexion. Nous vous recommandons d’importer une nouvelle racine approuvée chaque fois que vous introduisez de nouveaux artefacts signés dans votre environnement hors connexion.