Como verificar o cliente quando a nova tecnologia do Bitcoin é atualizada? O Bitcoin foi atualizado com a nova tecnologia. .
Existem três etapas importantes para garantir que o cliente Bitcoin que você instala seja seguro:
Verifique a chave OpenPGP;
Verifique a assinatura;
Verifique o próprio documento;
Observe que, por exemplo, verificarei minha própria assinatura no cliente Bitcoin Knots v0.19.0.1.knots20200104 para ppc64le Linux, enquanto para verificar a assinatura de outra pessoa ou outros arquivos você precisará alterar a linha de comando para Use that impressão digital ou nome do arquivo.
Etapa 0: Instale o software de criptografia GNU Privacy Guard (GPG)
Antes de começar, você precisa ter a ferramenta GNU Privacy Guard (GPG) instalada, necessária para verificação de criptografia de arquivos.
Se você estiver executando um sistema baseado em Linux, que geralmente é instalado pelo fornecedor do sistema operacional (recentemente, isso geralmente é instalado por padrão), você pode verificar isso executando gpg –version. Caso contrário, tente instalá-lo usando um dos seguintes comandos (se falhar, vá para o próximo):
apt-get instalar gnupg
dnf instalar gnupg2
yum instale o gnupg2
emerge app-crypt/gnupg
pacman -S gnupg
apk adicionar gnupg
Se você tiver a infelicidade de usar um sistema operacional Windows ou macOS, poderá baixar o GnuPG do site oficial, mas não conheço nenhuma maneira segura de verificar esse download e, é claro, eles fornecem uma assinatura, mas aqui está o problema. O problema do ovo: você não pode verificar essas assinaturas até instalar uma boa cópia!
Passo 1: Verifique a chave OpenPGP
Esta etapa é sem dúvida a parte mais difícil do processo de verificação: você precisa confirmar se a chave que está realmente usando é a correta, emitida por alguém em quem você confia. Se você não tomar cuidado, poderá obter uma chave "Luke Dashjr" falsa!
Cada chave OpenPGP possui uma "impressão digital", que tem 40 caracteres hexadecimais (os dígitos 0-9 e aF), com espaços às vezes mostrados para facilitar a leitura. Você saberá que tem a chave correta se certificar-se de que a impressão digital da chave usada corresponde à impressão digital de um assinante confiável.
Obtenha uma chave ou impressão digital
A maneira mais segura de verificar uma chave é encontrar-se pessoalmente e confirmar a “impressão digital” da chave. Quase ninguém se lembra da impressão digital da sua chave, por isso talvez tenhamos que procurá-la no nosso próprio laptop ou telefone e, ocasionalmente (geralmente em uma conferência), pode haver um "signatário da chave", um grupo de pessoas na conferência confirmando outras pessoas. impressões digitais, cada participante teria sua própria impressão digital lida em voz alta ou confirmaria manualmente se o que todos viram ou ouviram estava correto. Se você se envolver em uma reunião como esta, esta é uma boa maneira de verificar muitas chaves de uma só vez.
Se você não estiver interessado ou não tiver a oportunidade de se encontrar pessoalmente, o ideal é verificar a chave em várias fontes. Ocasionalmente, as conferências publicam vídeos de apresentação nos quais a impressão digital principal pode aparecer nos slides. Claro que, devido à existência de novas tecnologias como os “deep fakes”, saiba que os slides do vídeo podem ser facilmente manipulados.
Os desenvolvedores geralmente publicam suas chaves ou impressões digitais em seus sites e talvez de alguma outra forma (por exemplo, minha chave ou impressão digital está em meu site pessoal, bitcoinknots.org, bitcoin.org e GitHub).
Se você instalou uma cópia do software em que confia, às vezes ela conterá as chaves necessárias para verificar as atualizações (atualmente o Bitcoin Core contém apenas o código-fonte).
Verifique a impressão digital do arquivo de chave
Para visualizar a impressão digital de um arquivo de chave, você pode usar o seguinte comando:
gpg –import-options show-only –import –with-fingerprint luke-jr.asc
Isso produzirá muitas informações sobre o arquivo-chave, com as informações relevantes no topo:
pub rsa8192 23/03/2012 [SC] [expira em: 09/06/2020]
E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F
Neste exemplo, E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F é minha impressão digital principal.
NOTA: Se o GPG disser que a chave expirou, provavelmente não há problema. Na etapa 2, você atualizará para a versão mais recente da mesma chave, o que geralmente estende a data de expiração.
Importar chaves verificadas
Não importa como você verifica a chave, lembre-se de qual chave usou para que atualizações futuras possam verificar se a mesma chave foi usada. Mesmo se você pular a etapa de verificação da chave (que é insegura), pelo menos isso garantirá que suas atualizações tenham o mesmo signatário.
Quando tiver certeza de que possui a chave correta, você pode importá-la assim (substitua luke-jr.asc pelo nome do arquivo que contém a chave desejada):
gpg –import < luke-jr.asc
Ou se você tiver apenas impressões digitais, como esta (coloque a impressão digital da chave que deseja usar!):
gpg –keyserver hkp://keyserver.ubuntu.com –recv-key E463A93F5F3117EEDE6C7316BD02942421F4889F
Etapa 2: verificar a assinatura
Agora que você sabe qual chave usar para verificação, a próxima etapa é verificar se a assinatura é válida.
Antes de prosseguir com esta etapa, você deve garantir que sua cópia da chave do assinante esteja atualizada. Se você não fizer isso, poderá receber uma mensagem informando que a chave expirou. Execute (usando a impressão digital desejada):
gpg –keyserver hkp://keyserver.ubuntu.com –refresh-key E463A93F5F3117EEDE6C7316BD02942421F4889F
A seguir (além do arquivo do programa que você está verificando) você precisará de dois arquivos: o arquivo ".assert" contendo a lista de impressões digitais dos arquivos e o arquivo ".assert.sig" contendo as assinaturas dessa lista. Isso ocorre porque o que estamos fazendo não é assinar os arquivos do programa em si, mas capturar as impressões digitais de todos os arquivos e depois assinar essa lista. Portanto, você precisa de ambos os arquivos.
O par de arquivos “assert” do Bitcoin Core está postado aqui: https://github.com/Bitcoin-Core/gitian.sigs/find/master;
Os pares de arquivos "assert" para Bitcoin Knots são postados aqui: https://github.com/bitconinkots/gitian.sigs/find/Knots
Observe que há um par de arquivos separado para cada signatário. Se você estiver verificando se várias pessoas assinaram seu arquivo (o que deveria ser feito), será necessário verificar cada par de arquivos. Além disso, você precisa ter certeza de que está obtendo a versão do arquivo que deseja verificar!
Depois de encontrar o arquivo desejado na lista, clique no link para abri-lo em seu navegador, clique com o botão direito do mouse no botão "Raw" ou "Download" e selecione "Salvar link como".
Depois de ter esses dois arquivos "assert", você pode verificar a assinatura executando (ajuste o nome do arquivo para o .assert.sig específico)
gpg –verifique bitcoin-core-linux-0.19-build.assert.sig
Se esta etapa for bem-sucedida, você obterá o próximo resultado:
gpg: Assinatura feita em domingo, 19 de janeiro de 2020, 03:47:15 UTC
gpg: usando a chave RSA E463A93F5F3117EEDE6C7316BD02942421F4889F
gpg: Boa assinatura de “Luke Dashjr” [final]
Observe que a impressão digital da chave é mostrada em negrito. A impressão digital deve corresponder à chave que você verificou na etapa 1, caso contrário, poderá ser assinada por outra pessoa! A parte sobre uma “boa assinatura” também é importante, enquanto o nome e o endereço de e-mail não o são, pois ambos podem ser falsos se a impressão digital estiver errada.
Supondo que tudo correu bem, agora você sabe que o arquivo “.assert” é garantido pelo controlador da referida chave e pode verificar se o seu arquivo de programa real é aquele listado nesse arquivo “.assert”.
Etapa 3: verifique o próprio arquivo
Para autenticar um arquivo de programa, ele deve primeiro ser criptografado (basicamente extrair sua impressão digital).
Isso é feito com um comando simples (tenha cuidado ao substituir o nome do arquivo que você está validando!):
Linux: sha256sum bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz
Windows: certUtil -hashfile bitcoin-0.19.0.1.knots20200104-win64.zip SHA256
macOS: shasum -a 256 bitcoin-0.19.0.1.knots20200104-osx-unsigned.dmg
Isso produzirá algo assim:
d370692590c4546ac0de250da91c6c288d9ee5252f1a4b857a5b80c4e3d81149 bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz
Esta é a impressão digital do conteúdo do arquivo, seguida pelo nome do arquivo especificado.
Agora, abra o arquivo ".assert" em qualquer editor/visualizador de texto simples e procure a impressão digital. Deve estar na seção "out_manifest" no topo, se você chegar a "in_manifest" ou "base_manifests", então você foi longe demais.
Se você encontrá-lo no arquivo ".assert", então você verificou que o arquivo que possui é o mesmo arquivo que o signatário atestou (você o verá no arquivo ".assert" à direita da impressão digital do nome do arquivo , que pode ser igual ao seu).
E se estiver faltando no arquivo ".assert", pode significar que você está usando o arquivo ".assert" errado ou que seu arquivo é incompatível (nesse caso, você verá ao lado do nome do arquivo esperado para outro impressão digital). Se um arquivo estiver listado, mas tiver uma impressão digital diferente, não abra o arquivo, mas salve-o (podemos solicitar uma cópia) e entre em contato com a equipe de segurança do projeto afetado.