Verificação de Assinaturas GPG do Eclipse Temurin

As versões do Eclipse Temurin incluem assinaturas GPG que você pode usar para verificar que seus downloads são legítimos e não foram adulterados desde que foram compilados. Esta página explica como verificar essas assinaturas.

O Que É Assinatura GPG?

A assinatura GPG é um processo criptográfico que utiliza um par de chaves privada/pública para confirmar que um arquivo não foi adulterado entre o momento em que foi publicado e quando foi entregue a você. A Adoptium usa a chave privada para gerar um arquivo de assinatura que é distribuído junto com os binários OpenJDK. Você pode obter a chave pública correspondente e usá-la para verificar que a assinatura é válida, comprovando a integridade do arquivo e confirmando que foi assinado pela Adoptium e não foi modificado por terceiros.

Por Que Usar Assinaturas GPG em Vez de Checksums SHA-256?

Embora os checksums SHA-256 verifiquem que um download não foi corrompido em trânsito, eles também podem ser comprometidos em um ataque man-in-the-middle. A assinatura GPG evita esse problema usando uma assinatura certificada separadamente, na qual você pode confiar de forma independente e, em seguida, verificar os downloads subsequentes.

Obtendo as Assinaturas

A assinatura GPG de cada binário está disponível por meio dos metadados da API da Adoptium. Nos exemplos a seguir usamos o JDK 25, mas você pode ajustar as chamadas da API para outras versões.

Faça o download dos metadados da versão:

curl 'https://api.adoptium.net/v3/assets/feature_releases/25/ga' > adopt.json

Extraia o link de download do binário e o link da assinatura correspondente usando a ferramenta de linha de comando JSON jq. As informações estão nos campos binaries[].package.link e binaries[].package.signature_link.

Por exemplo, para baixar o JDK Linux x64 e sua assinatura:

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

Você também pode obter o checksum SHA-256 dos metadados:

jq '.[0].binaries[] | select(.architecture=="x64") | select (.os=="linux") | select (.image_type=="jdk") .package.checksum' adopt.json

Verifique o checksum SHA-256 comparando com a saída de um dos seguintes comandos:

  • Linux: sha256sum <file>

  • macOS: shasum -a 256 <file>

  • Windows: certUtil -hashfile <file> SHA256

Verificando as Assinaturas

Você precisa ter a ferramenta gpg instalada. Execute o comando de verificação fornecendo o arquivo de assinatura e o binário correspondente:

gpg --verify <binary_filename>.sig <binary_filename>

Se você ainda não tiver a chave pública de assinatura da Adoptium, verá uma mensagem como esta:

gpg: Signature made Mon Jul  4 18:20:31 2022 UTC
gpg:                using RSA key 3B04D753C9050D9A5D343F39843C48A565F8F04B
gpg: Can't check signature: No public key

Importando a Chave Pública da Adoptium

Baixe a chave de um servidor de chaves GPG confiável:

gpg --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B

Execute o comando de verificação novamente. Você verá que a assinatura é válida, mas a chave ainda não é confiável:

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.

Atribuindo Confiança à Chave

Para confiar plenamente na chave e remover o aviso, execute o seguinte e siga as instruções para conceder confiança total:

gpg --edit-key 3B04D753C9050D9A5D343F39843C48A565F8F04B trust

A verificação deverá ser concluída com sucesso:

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]
edit icon

Ajude-nos a melhorar esta documentação!

Toda a documentação do Adoptium é open source. Viu algo errado ou confuso?

Autores da Documentação
sxagdams
Join our Slack channel to discuss and reach out to maintainers.Join Slack