Les versions d’Eclipse Temurin incluent des signatures GPG que vous pouvez utiliser pour vérifier que vos téléchargements sont authentiques et n’ont pas été altérés depuis leur construction. Cette page explique comment vérifier ces signatures.
Qu’est-ce que la signature GPG ?
La signature GPG est un processus cryptographique utilisant une paire de clés privée/publique pour confirmer qu’un fichier n’a pas été altéré entre sa publication et sa livraison. Adoptium utilise la clé privée pour produire un fichier de signature distribué aux côtés des binaires OpenJDK. Vous pouvez obtenir la clé publique correspondante et l’utiliser pour vérifier que la signature est valide, prouvant ainsi l’intégrité du fichier et confirmant qu’il a été signé par Adoptium et non modifié par un tiers.
Pourquoi utiliser les signatures GPG plutôt que les sommes de contrôle SHA-256 ?
Bien que les sommes de contrôle SHA-256 vérifient qu’un téléchargement n’a pas été corrompu en transit, elles peuvent également être compromises lors d’une attaque de l’homme du milieu. La signature GPG évite ce problème en utilisant une signature certifiée séparément que vous pouvez faire confiance de manière indépendante, puis vérifier les téléchargements ultérieurs.
Obtention des signatures
La signature GPG de chaque binaire est disponible via les métadonnées de l’API Adoptium. Dans les exemples suivants, nous utilisons JDK 25, mais vous pouvez adapter les appels API pour d’autres versions.
Téléchargez les métadonnées de la version :
curl 'https://api.adoptium.net/v3/assets/feature_releases/25/ga' > adopt.json
Extrayez le lien de téléchargement du binaire et le lien de signature correspondant à l’aide de l’outil en ligne de commande JSON
jq. Les informations se trouvent dans les champs
binaries[].package.link et binaries[].package.signature_link.
Par exemple, pour télécharger le JDK Linux x64 et sa signature :
jq '.[0].binaries[] | select(.architecture=="x64") | select (.os=="linux") | select (.image_type=="jdk") .package.link' adopt.json | xargs curl -LO
jq '.[0].binaries[] | select(.architecture=="x64") | select (.os=="linux") | select (.image_type=="jdk") .package.signature_link' adopt.json | xargs curl -LO
Vous pouvez également obtenir la somme de contrôle SHA-256 depuis les métadonnées :
jq '.[0].binaries[] | select(.architecture=="x64") | select (.os=="linux") | select (.image_type=="jdk") .package.checksum' adopt.json
Vérifiez la somme de contrôle SHA-256 par rapport au résultat de l’une des commandes suivantes :
-
Linux :
sha256sum <file> -
macOS :
shasum -a 256 <file> -
Windows :
certUtil -hashfile <file> SHA256
Vérification des signatures
Vous devez avoir l’outil gpg installé. Exécutez la commande de vérification en fournissant le fichier de signature et le binaire correspondant :
gpg --verify <binary_filename>.sig <binary_filename>
Si vous ne possédez pas encore la clé de signature publique d’Adoptium, vous verrez un message comme celui-ci :
gpg: Signature made Mon Jul 4 18:20:31 2022 UTC
gpg: using RSA key 3B04D753C9050D9A5D343F39843C48A565F8F04B
gpg: Can't check signature: No public key
Importation de la clé publique Adoptium
Téléchargez la clé depuis un serveur de clés GPG de confiance :
gpg --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B
Exécutez à nouveau la commande de vérification. Vous verrez que la signature est valide, mais que la clé n’est pas encore approuvée :
gpg: Good signature from "Adoptium GPG Key (DEB/RPM Signing Key) <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Approbation de la clé
Pour approuver entièrement la clé et supprimer l’avertissement, exécutez ce qui suit et suivez les invites pour accorder une approbation totale :
gpg --edit-key 3B04D753C9050D9A5D343F39843C48A565F8F04B trust
La vérification devrait alors réussir :
gpg: Signature made Mon Jul 4 18:20:31 2022 UTC
gpg: using RSA key 3B04D753C9050D9A5D343F39843C48A565F8F04B
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: Good signature from "Adoptium GPG Key (DEB/RPM Signing Key) <[email protected]>" [ultimate]

