Verifique downloads com GPG


Quero fazer umas postagens sobre autocustódia de Bitcoin no futuro, mas saber como verficar arquivos com GPG é um pré-requisito e por isso escrevi esta explicação simples e introdutória sobre GPG. Vou explicar aqui apenas o mínimo que você precisa saber.


Criptografia Assimétrica

GPG ou GnuPG é uma ferramenta de criptografia simétrica e assimétrica. O que interessa para nós é a assimétrica. Que porra é isso?

Diferente da criptografia simétrica, que se usa uma senha para criptografar dados, a assimétrica usa duas chaves, a chave privada ou secreta e a chave pública. Vou me referir a elas como 🔑Secret Key (ou private key) e 🔓Public Key a partir de agora.


Não vou me aprofundar, mas os conceitos principais que você tem que entender são:

  1. A 🔑Secret Key é criada aleatoriamente e a 🔓Public Key é gerada a partir da 🔑Secret Key.
  2. Como dito no item 1, você pode descobrir qual é a 🔓Public Key se tiver a 🔑Secret Key.
  3. Você NÃO pode descobrir a 🔑Secret Key a partir da 🔓Public Key.
  4. A 🔓Public Key é pública e você mostra para todo mundo, estampa na camiseta, faz uma tatuagem, etc...
  5. A 🔑Secret Key é SECRETA, PRIVADA, e se você deixar vazar você se lascou.

E o mais importante:

1. Uma mensagem* encriptada pela 🔓Public Key só pode ser decriptada pela 🔑Secret Key associada.

2. Uma mensagem* encriptada pela 🔑Secret Key só pode ser decriptada pela 🔓Public Key associada.

*= entenda mensagem como dado, informação, arquivo, etc...


Usos do GPG

Você pode usar GPG para basicamente duas coisas:

  1. Encriptar mensagens usando a 🔓Public Key do destinatário, ele usará a 🔑Secret Key dele para decriptar.
  2. Encriptar mensagens usando sua própria 🔑Secret Key, de forma que qualquer um que tenha sua 🔓Public Key possa decriptar.

Leia novamente o item 2 e pense sobre isso. Se todos conhecem minha 🔓Public Key, todos podem decriptar uma mensagem assinada pela minha 🔑Secret Key.

Qual é a utilidade de encriptar uma mensagem que todos podem decriptar?

É útil porque se eles conseguem decriptar a mensagem com sua 🔓Public Key, então ela, a mensagem, com certeza foi encriptada com sua 🔑Secret Key.

Ou seja, você pode usar essa característica para assinar uma mensagem, gerar uma assinatura digital.


O que é assinar uma mensagem?

Assinar uma mensagem é encriptá-la com sua 🔑Secret Key de forma que somente quem tem sua 🔓Public Key possa decriptá-la.

Isso é uma simplificação, mas é uma boa forma de entender.


E por que é útil?

Porque isso serve como uma 🔏assinatura. Quem recebeu a mensagem terá a CERTEZA matemática de que aquela mensagem foi assinada com sua 🔑Secret Key e que ela veio de você - a não ser que você tenha cagado no pau de deixado a 🔑Secret Key vazar.


Nesse contexto, faria sentido chamar a 🔑Secret Key de 🔑Signing Key e a 🔓Public Key de 🔓Verifying Key. Chave de assinatura e de verificação. Mas vou continuar com o nome mais padrão.


E o que acontece se eu deixar vazar a 🔑Secret Key?

  1. Qualquer um com sua 🔑Secret Key que tiver acesso a mensagens enviadas para você (encriptadas na sua 🔓Public Key) poderá ler todas essas mensagens.
  2. Qualquer um com sua 🔑Secret Key poderá assinar mensagens e se passar por você.

É assim que criptografia assimétrica funciona. Se ficou confuso, peço que leia novamente. É mais simples do que parece.


Como verificar mensagens com GPG

Em outras palavras, como checar se o software que baixei tem autenticidade e integridade.

  1. Autenticidade: se foi assinado com uma 🔑Secret Key que confio.
  2. Integridade: se não foi alterado no meio do caminho.

Se você não estiver usando Linux, pesquise na internet como usar o GPG no seu sistema operacional. Mas se você realmente quiser fazer autocustódia, use Linux. Windows é muito menos seguro.

Não somente leia, faça você mesmo os passos e pratique para aprender como funciona.


Para fins de exemplo, nós vamos baixar e verificar o Tor Browser.

Os passos são:

  1. Baixe o software.
  2. Baixe a 🔏assinatura.
  3. Baixe e importe a 🔓Public Key do signatário do software.
  4. Verifique em VÁRIOS lugares se a 🔓Public Key é mesmo confiável, checando o fingerprint.
  5. Verifique a integridade e a autenticidade do arquivo baixado usando GPG.

1. Baixe o software

Vá até o site do Tor, em https://www.torproject.org e baixe. Escolhi a versão para Linux.


2. Baixe a 🔏assinatura

Procure no site por checksums, signatures, ou algo assim. No caso do Tor, você encontra Signature abaixo do link de download.


$ ls

tor-browser-linux-x86_64-14.0.6.tar.xz

tor-browser-linux-x86_64-14.0.6.tar.xz.asc


Geralmente a 🔏assinatura terá o mesmo nome do arquivo, mas com um .asc no final.

Uma 🔏assinatura pode estar em binário, mas geralmente será um arquivo em texto mesmo e você pode lê-lo:


$ cat tor-browser-linux-x86_64-14.0.6.tar.xz.asc

-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEyq5AiuviKI6W/F1eFXQyz3imVykFAmemQBoACgkQFXQyz3im

VymtIRAAmWa4evWPVsCOjmhRIxQKsUxLBXjcUrOQkGKWIDfLadSsKaiEQjcF3d6d

dVTWLE7HNmcEbcEczdTGrTAPGccoIBPIHVN1Rk5ij+Ov5xyzBReEto3xTeyEAP25

057jITJR8gHNKnW/1eza+oAvPUOrjD3zTxyD7dTn7NjLaL9HIUNLUy+/2CaH1M1L

xzeNE9MSVP6R8SkEHdQmYbB7CITjthQo3v6owHN7lVn2nx4a3Kg2rbRMDfYqlXOa

Oo+JL8qiN7lHbvvCgSpmTvWsuIRYhYiG8BGttFi3wYOPYQe5ZSRMBp9c+4uTZo9D

JUV8tLPbMic2r0fNL4wQhxR1Jp5P9R0dqf5XsZ+NTo6Ip/cjer2CXKDIff0JnG7T

sO2Ccc6PEcR20vDwotcKcH/HIeyfIuQoqBYwamm+eepYP4rRN+56rknqalPLnWu0

gNMKuw63azuGkyiEEdl4ZAvJpm7z+64Bht/dZPMJ4KplyMytahJokH2kFilvCsKh

6gQbP6Xsh1B1zfyNGCjXMhfx8ciAjul7ocV1S67tt0rfSonWuJUp/h/QdpVoJjOi

d3Vn0az+R6r02qfLflHPxYQKzcpp8Do62b26EZQGScI3/0SFtFm40neXi7zNe2gQ

wohJg7PjntB2nClQPbuWPVBf74t8kH7iDe9El6GhQzv2CSFQ85o=

=q3ol

-----END PGP SIGNATURE-----


Há um cabeçalho informando que é uma 🔏assinatura PGP. PGP é o protocolo, GPG é a implementação que estamos usando. Não se preocupe com isso agora. Esse monte de texto é a 🔏assinatura em si.


Temos o arquivo e a 🔏assinatura .asc, mas não podemos verificar porque falta a 🔓Public Key do signatário.


3. Baixe e importe a 🔓Public Key do signatário do software

Geralmente você não irá encontrar a 🔓Public Key no mesmo site onde baixou os outros arquivos. Por quê? Por segurança. Se alguém hackear o site poderá facilmente trocar a 🔓Public Key e fazer uma fraude.


Por isso se deixa a 🔓Public Key em outro lugar e por isso você pesquisa sobre a fingerprint da 🔓Public Key antes de confiar nela - mais sobre isso abaixo. Você pode encontrar um link para a 🔓Public Key ou às vezes nem isso e terá que pesquisar.


No caso do exemplo, abaixando a página, você encontra um link: How can I verify Tor Browser signature? e entrando nessa página eles te explicam como baixar a 🔓Public Key para fazer a verificação.


Abaixo na mesma página, na seção Workaround (using a public key) eles dão o link para a 🔓Public Key: https://keys.openpgp.org/vks/v1/by-fingerprint/EF6E286DDA85EA2A4BA7DE684E2C6E8793298290. O openpgp.org é um keyserver. Não vou entrar no mérito de keyservers, mas são repositórios de 🔓Public Keys na internet, você coloca sua 🔓Public Key lá para as pessoas usarem.


$ ls

EF6E286DDA85EA2A4BA7DE684E2C6E8793298290.asc

tor-browser-linux-x86_64-14.0.6.tar.xz

tor-browser-linux-x86_64-14.0.6.tar.xz.asc


A chave pública também é geralmente um arquivo .asc que pode ser lido:


$ head EF6E286DDA85EA2A4BA7DE684E2C6E8793298290.asc

-----BEGIN PGP PUBLIC KEY BLOCK-----

Comment: EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290

Comment: Tor Browser Developers (signing key)

xsFNBFSOr7oBEADQMs+Q5cAshRhj3YkKgCBKyrjFWMZqVhlf9Y3ePtFQ9kFEnYIS

G9rzMhFC6KMXPn9bgg6OBPPUnnJ29UsKvAk+qa8F35R+s0ZXmPRfmv5/6PqxLOn4

G733K67K0/eXYW1mTkz9sjY8u9E3T10JNT0zE/60WihuZGKZQDIqqig0fOsdvdGa

g+srAW91T56kAT+y59VcvqVCQNjS897E3T9hsUNkQNCdOitQcnN8/5VNQUL0SjyD

BV0y5ry+pUt1rnojj82KQ3WzZuD+XsDE+w2JSGqhcqf9b7D6puy1smhCNwZJ9L1l

pJlrCap6YQN8TPFTkf4aFBctxonAdQDDxbON6sPJALc/myPwTVTxD3nJJhv12yft

...


Esse é o começo do arquivo. Ele tem um cabeçalho informando que é uma chave pública (🔓Public Key) PGP, um comentário, e o conteúdo.


Podemos importá-la com:


$ gpg --import EF6E286DDA85EA2A4BA7DE684E2C6E8793298290.asc

gpg: key 4E2C6E8793298290: 2 signatures not checked due to missing keys

gpg: key 4E2C6E8793298290: public key "Tor Browser Developers (signing key) " imported

gpg: Total number processed: 1

gpg: imported: 1

gpg: marginals needed: 3 completes needed: 1 trust model: pgp

gpg: depth: 0 valid: 3 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 3u

gpg: next trustdb check due at 2027-02-10


A chave está importada no seu keyring. Keyring (chaveiro) é o nome que se dá para seu conjunto de chaves.


Você pode ver todas as suas chaves com:


$ gpg --fingerprint

/home/anon/.gnupg/pubring.kbx

-----------------------------

pub rsa4096 2014-12-15 [C] [expires: 2027-07-15]

EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290

uid [ unknown] Tor Browser Developers (signing key)

sub rsa4096 2024-07-15 [S] [expires: 2026-10-26]


Agora você pode verificar os arquivos? Não.

Como sabemos se essa chave é confiável? E se alguém hackeou o site do Tor e colocou lá um link para uma chave fraudulenta?


4. Verifique em VÁRIOS lugares se a 🔓Public Key é mesmo confiável, checando o fingerprint

Cada 🔓Public Key tem um fingerprint único. No caso da chave que importamos, o fingerprint é EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290, como pudemos ver no comando acima.


Não é só porque está no keyserver que é confiável. Qualquer um pode subir uma chave lá.

O que eu faço é pesquisar na internet "what is Tor public key fingerprint" e geralmente eu encontro alguma postagem em fóruns citando o fingerprint. Também vale olhar tutoriais de pessoas checando a 🔏assinatura no youtube e checar se o fingerprint bate.


Convenhamos, o hacker teria que forjar vídeos do Youtube, posts em fóruns, hackear o site do Tor e mais um monte de coisas para fazer essa fraude. Se você encontra a fingerprint em posts na internet que estão lá há anos e com centenas de comentários sem ninguém apontar que ela é falsa, você pode ter quase 100% de certeza que é a chave real. Outra forma é a web of trust, mas isso daria um post inteiro e não é introdutório.


Achei esse post no reddit https://www.reddit.com/r/TOR/comments/s25eoq/cant_check_signature_no_public_key/?rdt=34735 de 3 anos atrás e a 🔓Public Key tem a mesma fingerprint da que baixei, então me sinto seguro que a chave é real.


A parte mais especial foi esta: baixar a 🔓Public Key correta e verificar se ela é confiável.


5. Verifique a integridade e a autenticidade do arquivo baixado usando GPG

Agora é só usar o comando na 🔏assinatura .asc:


$ gpg --verify tor-browser-linux-x86_64-14.0.6.tar.xz.asc

gpg: assuming signed data in 'tor-browser-linux-x86_64-14.0.6.tar.xz'

gpg: Signature made Fri 07 Feb 2025 02:17:14 PM -03

gpg: using RSA key CAAE408AEBE2288E96FC5D5E157432CF78A65729

gpg: Good signature from "Tor Browser Developers (signing key) " [unknown]

gpg: WARNING: This key is not certified with a trusted signature!

gpg: There is no indication that the signature belongs to the owner.

Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290

Subkey fingerprint: CAAE 408A EBE2 288E 96FC 5D5E 1574 32CF 78A6 5729


O resultado foi Good signature. Isso significa que a 🔏assinatura bate com o arquivo - arquivo está integro e não foi alterado - e bate com a 🔓Public Key - 🔏assinatura é autêntica a foi feita pela chave dos desenvolvedores do Tor que você baixou. A sua parte nisso tudo é checar o fingerprint a ter certeza de que baixou uma chave confiável.


Se você não teve o resultado "Good signature", não use o software.


É extremamente simples fazer uma verificação dessas. Você só precisou de dois comandos, um pra importar e chave e outro para verificar.

A parte principal é baixar os arquivos corretos.

Lembre-se:

  • Geralmente 🔏assinaturas e 🔓Public Keys são arquivos de texto terminados em .asc. Mas também podem ser arquivos binários terminados em .gpg. Também ocorrem com a extensão .sig. Elas são distribuidas junto com o software.
  • Geralmente as pessoas deixam suas fingerprints e vários lugares da internet, como redes sociais, sites pessoais, etc, para os outros encontrarem e verificarem. Sempre procure em mais de um lugar.
  • Uma fingerprint se parece com isso: EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290.


Mais um exemplo, baixando e verificando a carteira Electrum

Vamos fazer mais uma vez para consolidar.


O primeiro cuidado é verificar se está entrando no site correto. A URL do site da carteira electrum é https://electrum.org/.

SEMPRE olhe a URL para não entrar em sites falsos!


Vá em downloads e baixe o software. Eu irei baixar o appimage para Linux como exemplo.


$ ls

electrum-4.5.8-x86_64.AppImage


Procure pela 🔏assinatura do arquivo.

No caso do Electrum, clique em "signatures" ao lado do arquivo que você baixou.


$ ls

electrum-4.5.8-x86_64.AppImage

electrum-4.5.8-x86_64.AppImage.asc


Nós temos o software e a 🔏assinatura .asc, mas não temos a 🔓Public Key do signatário.


O que acontece se tentarmos verificar mesmo assim?


$ gpg --verify electrum-4.5.8-x86_64.AppImage.asc

gpg: assuming signed data in 'electrum-4.5.8-x86_64.AppImage'

gpg: Signature made Wed 23 Oct 2024 04:13:28 AM -03

gpg: using RSA key 637DB1E23370F84AFF88CCE03152347D07DA627C

gpg: Can't check signature: No public key

gpg: Signature made Wed 23 Oct 2024 03:03:11 AM -03

gpg: using RSA key 0EEDCFD5CAFB459067349B23CA9EEEC43DF911DC

gpg: Can't check signature: No public key

gpg: Signature made Wed 23 Oct 2024 12:26:58 AM -03

gpg: using RSA key 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6

gpg: Can't check signature: No public key


A saída mostra que o arquivo foi assinado por três chaves diferentes e exibe os fingerprints de cada chave. Para as três tivemos o resultado 'No public key'.

O GPG automaticamente procurou pelas chaves que possuem esses fingerprints no nosso keyring, mas não as encontrou.


Agora vamos voltar ao site e procurar pelas chaves. Lá está escrito: The current executables have been signed by ThomasV, SomberNight, Emzy.

Baixamos a chave do ThomasV que está em https://raw.githubusercontent.com/spesmilo/electrum/master/pubkeys/ThomasV.asc e importamos.


Mas antes de usar essa chave, precisamos confiar nela. Pesquisando na internet, encontrei vários posts de fóruns com a fingerprint batendo.

Tem também um vídeo no youtube onde o ThomasV aparece ao lado de sua fingerprint em uma palestra.


Então essa é mesmo a fingerprint da 🔓Public Key dele. Podemos continuar.


$ ls

electrum-4.5.8-x86_64.AppImage electrum-4.5.8-x86_64.AppImage.asc ThomasV.asc


$ gpg --import ThomasV.asc

gpg: key 2BD5824B7F9470E6: public key "Thomas Voegtlin (https://electrum.org) " imported

gpg: Total number processed: 1

gpg: imported: 1


Verificamos novamente com o mesmo comando de antes:


$ gpg --verify electrum-4.5.8-x86_64.AppImage.asc

gpg: assuming signed data in 'electrum-4.5.8-x86_64.AppImage'

gpg: Signature made Wed 23 Oct 2024 04:13:28 AM -03

gpg: using RSA key 637DB1E23370F84AFF88CCE03152347D07DA627C

gpg: Can't check signature: No public key

gpg: Signature made Wed 23 Oct 2024 03:03:11 AM -03

gpg: using RSA key 0EEDCFD5CAFB459067349B23CA9EEEC43DF911DC

gpg: Can't check signature: No public key

gpg: Signature made Wed 23 Oct 2024 12:26:58 AM -03

gpg: using RSA key 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6

gpg: Good signature from "Thomas Voegtlin (https://electrum.org) " [unknown]

gpg: aka "ThomasV " [unknown]

gpg: aka "Thomas Voegtlin " [unknown]

gpg: WARNING: This key is not certified with a trusted signature!

gpg: There is no indication that the signature belongs to the owner.

Primary key fingerprint: 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6


O resultado é Good signature from... e a 🔓Public Key que o GPG encontrou em nosso keyring.

Note que este arquivo foi assinado por três chaves, e conseguimos o Good signature em uma delas.

O ideal é que você importe as outras duas chaves e consiga verificar nas três, assim terá mais segurança.


Verificando mensagens

Só para finalizar, você também pode verificar mensagens de texto da mesmíssima forma.


Eu escrevi uma mensagem que você pode baixar aqui.

A 🔏assinatura da mensagem está aqui.

Minha 🔓Public Key está aqui.

A fingerprint está na home deste blog.


Como exercício, tente verificar a mensagem. Só para ficar claro que não serve apenas para softwares.

Depois tente editar o arquivo .txt e verifique novamente para ver o que acontece. Você vai ter um BAD signature, pois o arquivo foi alterado e não está mais íntegro.


O exemplo acima funciona, mas não é ideal. Quando são softwares você precisa de uma 🔏assinatura separada, dois arquivos, mas se é apenas texto, um arquivo só basta. Quando eu criei a 🔏assinatura acima, usei a opção de separar a 🔏assinatura do arquivo de texto, mas no próximo exemplo eu deixei tudo em um arquivo só:


Arquivo de texto com a mensagem e a 🔏assinatura juntos aqui.


$ cat mensagem-exemplo-gpg-embutido.txt.asc

-----BEGIN PGP SIGNED MESSAGE-----

Hash: SHA512

Mensagem de exemplo.

Qualquer um pode lê-la, mas você deve verificar a autênticidade.

A assinatura está embutida neste arquivo, então você não precisa de dois arquivos!

-----BEGIN PGP SIGNATURE-----

iQJGBAEBCgAwFiEEt1revGyMW4nDIhcST7Ayfa9JsiwFAmfB0yISHHNkZl9ib3hA

cHJvdG9uLm1lAAoJEE+wMn2vSbIsly4QAIyaX4WTbIoxDDm18X7SW+jZ8vSms//Z

i6CqJShEHKYhR8wUlYxBDeKRc/roKMtrKKJrEZfJ1rHeAE6/YcLKiSXI9ayWthVU

...


Tente verificar normalmente. Brinque com a ferramenta. Se divirta.


Só mais uma verificação... a última, eu prometo...

Tem uma situação que é um pouco diferente do que já mostrei. Em essência é a mesma coisa, mas tem um detalhe a mais.

São situações onde a 🔏assinatura é indireta, você já vai entender.


Um exemplo dessa situação é quando verificamos o Linux Mint.

Aqui nós vamos baixar três arquivos, além da 🔓Public Key:

  1. O software;
  2. um arquivo .txt com 🧬hashes;
  3. e a 🔏assinatura desse arquivo .txt.

A diferença aqui é que a 🔏assinatura assina o arquivo .txt com os 🧬hashes, e não o software. Já o arquivo .txt tem os 🧬hash do software.

Ou seja, é uma 🔏assinatura indireta.


Integridade e 🧬hashes

O que é um 🧬hash? É bem simples, um algorítimo de 🧬hash pega uma informação e gera outra informação a partir dela.

Por exemplo, usando o algorítimo sha256 e inserindo nele a mensagem "sdf", o resultado será:

18ee24150dcb1d96752a4d6dd0f20dfd8ba8c38527e40aa8509b7adecf78f9c6.


Esse resultado é um 🧬hash. No caso, o 🧬hash da mensagem "sdf".

E apenas o 🧬hash da mensagem "sdf". Nenhuma outra mensagem terá esse mesmo 🧬hash.

Um 🧬hash, apesar de conter letras, é um número muito alto, representado em hexadecimal.


E daí?

  1. Se eu rodar o mesmo algorítmo com a mesma mensagem, resultará SEMPRE o mesmo 🧬hash. Esse 🧬hash NÃO é aleatório, a mesma mensagem sempre gerará o mesmo resultado quando inserido no sha256.
  2. Se eu mudar uma letra da mensagem, o resultado será outro número, completamente diferente.
  3. É um número tão alto, mas tão alto, que é IMPOSSÍVEL duas mensagens gerarem o mesmo número.
  4. E é também impossível eu escolher esse número pelas razões acima. Não é possível eu mexer na mensagem para gerar o número que quero.

Por isso a saída de um algorítimo de 🧬hash é um número único que só aquele arquivo tem, se eu alterar o arquivo essa saída mudará para algo totalmente diferente e imprevissível.


Hashes servem para GARANTIR a INTEGRIDADE de um arquivo.

Então, ao invés de assinar o arquivo, posso assinar o 🧬hash do arquivo.


Então você pode verificar o 🧬hash ao invés do arquivo, e depois ver se o 🧬hash bate com o arquivo.


Voltando ao Mint, temos os arquivos:

$ ls

linuxmint-22.1-xfce-64bit.iso sha256sum.txt sha256sum.txt.gpg


O conteúdo do arquivo sha256sum.txt é:

$ cat sha256sum.txt

ccf482436df954c0ad6d41123a49fde79352ca71f7a684a97d5e0a0c39d7f39f *linuxmint-22.1-cinnamon-64bit.iso

d286306d0f40bd7268f08c523ece5fba87c0369a27a72465a19447e3606c5fa0 *linuxmint-22.1-mate-64bit.iso

6451496af35e6855ffe1454f061993ea9cb884d2b4bc8bf17e7d5925ae2ae86d *linuxmint-22.1-xfce-64bit.iso


Na esquerda estão os 🧬hashes e na direita o nome do arquivo que o gerou.

Precisamos gerar o 🧬hash do nosso arquivo usando o algorítimo sha256 e ele precisa ser identico ao 🧬hash que está na lista.


Usei o comando sha256sum:

$ sha256sum linuxmint-22.1-xfce-64bit.iso

6451496af35e6855ffe1454f061993ea9cb884d2b4bc8bf17e7d5925ae2ae86d linuxmint-22.1-xfce-64bit.iso


Note que o 🧬hash é idêntico. O 🧬hash no arquivo sha256sum.txt é realmente o 🧬hash do arquivo que baixamos.

Agora só precisamos verificar o arquivo sha256sum.txt, pois ele representa nosso software, como confirmamos ao comparar com o 🧬hash que nós mesmos geramos.


Agora é só verificar o arquivo sha256sum.txt para sabermos se ele é autêntico. Eu já tenho a 🔓Public Key do Linux Mint aqui.

$ gpg --verify sha256sum.txt.gpg sha256sum.txt

gpg: Signature made Tue 14 Jan 2025 08:35:18 AM -03

gpg: using RSA key 27DEB15644C6B3CF3BD7D291300F846BA25BAE09

gpg: Good signature from "Linux Mint ISO Signing Key " [unknown]

gpg: WARNING: This key is not certified with a trusted signature!

gpg: There is no indication that the signature belongs to the owner.

Primary key fingerprint: 27DE B156 44C6 B3CF 3BD7 D291 300F 846B A25B AE09


Good signature, deu certo.


É um método um pouco diferente, um passo a mais, mas é a mesma lógica de antes.

Por que é feito assim? Não faço ideia. Talvez seja porque o arquivo é grande e demoraria para verificar, então se usa o 🧬hash que é menor. Mas não sei se é por isso.


Concluindo

O PGP/GPG serve para garantir que você baixou o software da pessoa certa, não que a pessoa é honesta.

Nós testamos o Electrum e temos certeza que veio do Thomas Voegtlin, mas isso não garante que o Thomas seja honesto.


Estamos confiando que o arquivo veio dele por causa do GPG, mas estamos confiando NELE por causa de sua reputação. E também porque é um software de código aberto. A carteira Electrum é uma das mais tradicionais e está sendo usada desde 2011. Não vá sair baixando coisas desenvolvidas por um cara aleatório na internet que ninguém conhece. Usei a Electrum como exemplo, mas isso se aplica a tudo.


É a primeira vez que tento escrever uma explicação e não sei se fui tão claro assim. Acabei escrevendo demais porque queria explicar tudo em detalhes para todos entenderem. Qualquer dúvida ou sugestão de alteração ou correção, usem os comentários ou o e-mail.


Saindo da Falha, Wednesday, 26/02/2025 16:09
Tags: criptografia gpg linux tech

Comentários:

💬 Carregando comentários...

Powered by HTML Comment Box.