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]

