How can I verify tor source code?
Attention: These instructions are to verify the tor source code. Please follow the right instructions to verify Tor Browser's signature.
Assinatura digital é um processo que certifica que um determinado pacote foi gerado pelas pessoas que o desenvolveram e que não sofreram nenhuma alteração. Below we explain why it is important and how to verify that the tor source code you download is the one we have created and has not been modified by some attacker.
Each file on our download page is accompanied by a file labelled "sig" with the same name as the package and the extension ".asc". These .asc files are OpenPGP signatures. Eles permitem que você verifique se o documento baixado é exatamente aquele que pretendíamos que você baixasse. This will vary by web browser, but generally you can download this file by right-clicking the "sig" link and selecting the "save file as" option.
For example, tor-0.4.6.7.tar.gz
is accompanied by tor-0.4.6.7.tar.gz.asc
.
Estes são exemplos de nomes de arquivos e não irão corresponder exatamente aos nomes dos arquivos que você baixou.
Agora vamos lhe mostrar como você pode verificar a assinatura digital de cada documento baixado em vários sistemas operacionais. Por favor, lembre que a assinatura é datada do momento em que o pacote foi assinado. Assim, todas as vezes que um novo documento for carregado, uma nova assinatura é gerada com a nova data. Se você tiver verificado a assinatura, não se preocupe com a mudança das datas.
Instalando GnuPG
Primeiro de tudo você precisa ter o GnuPG instalado antes de verificar as assinaturas.
Para quem usa Windows:
Se você utiliza Windows, baixe o Gpg4win e execute o instalador.
Para verificar a assinatura, você precisará digitar alguns comandos na linha de comando do Windows, cmd.exe
.
Para usuários do macOS:
Se você estiver utilizando macOS, pode instalar o GPGTools.
Para verificar a assinatura, você precisará digitar alguns comandos no Prompt de Comando do Windows (ver "Aplicações").
Para quem usa GNU/Linux:
Se você está usando GNU/Linux, então provavelmente já tem o GnuPG em seu sistema, já que a maioria das distribuições Linux já o possui pré-instalado.
In order to verify the signature you will need to type a few commands in a terminal window. How to do this will vary depending on your distribution.
Buscando a chave de desenvolvedores do Tor
Roger Dingledine (0xEB5A896A28988BF5 and 0xC218525819F78451), Nick Mathewson (0xFE43009C4607B1FB) sign Tor source tarballs.
Fetching Nick Mathewson most recent key:
$ gpg --auto-key-locate nodefault,wkd --locate-keys nickm@torproject.org
Isso deverá exibir algo como:
gpg: key FE43009C4607B1FB: public key "Nick Mathewson <nickm@torproject.org>" imported
gpg: Número total processado: 1
gpg: importado: 1
pub rsa4096 2016-09-21 [C] [expires: 2025-10-04]
2133BC600AB133E1D826D173FE43009C4607B1FB
uid [ unknown] Nick Mathewson <nickm@torproject.org>
sub rsa4096 2016-09-23 [S] [expires: 2025-10-04]
sub rsa4096 2016-09-23 [E] [expires: 2025-10-04]
If you get an error message, something has gone wrong and you cannot continue until you've figured out why this didn't work. You might be able to import the key using the Workaround (using a public key) section instead.
Após importar a chave, você pode salvá-la em um arquivo (identificando-o através dessa impressão digital):
$ gpg --output ./tor.keyring --export 0x2133BC600AB133E1D826D173FE43009C4607B1FB
Este comando resulta em salvar a chave em um arquivo encontrado no caminho ./tor.keyring
, ou seja, no diretório atual.
Se ./tor.keyring
não existe após a execução deste comando, algo deu errado e você não pode continuar até descobrir por que isso não funcionou.
Verificando a assinatura
Para verificar a assinatura do pacote baixado, é necessário fazer o download do arquivo de assinatura ".asc" correspondente, bem como do próprio arquivo de instalação. Então, a partir de um comando, será solicitado ao GnuPG que verifique o arquivo baixado.
Os exemplos abaixo consideram que você tenha baixado estes dois arquivos para a pasta "Downloads". Observe que estes comandos usam exemplos de nomes de documentos e os seus serão diferentes: você terá baixado uma versão diferente da 9.0 e você pode não ter escolhido a versão em Inglês (en-US).
Para quem usa Windows:
gpgv --keyring .\tor.keyring Downloads\tor-0.4.6.7.tar.gz.asc Downloads\tor-0.4.6.7.tar.gz
Para usuários do macOS:
gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.7.tar.gz.asc ~/Downloads/tor-0.4.6.7.tar.gz
Para quem usa GNU/Linux:
gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.7.tar.gz.asc ~/Downloads/tor-0.4.6.7.tar.gz
O uso do comando deve resultar em algo deste tipo:
gpgv: Signature made Mon 16 Aug 2021 04:44:27 PM -03
gpgv: using RSA key 7A02B3521DC75C542BA015456AFEE6D49E92B601
gpgv: Good signature from "Nick Mathewson <nickm@torproject.org>"
Se você receber mensagens de erro contendo 'Nenhum arquivo ou diretório', algo deu errado com uma das etapas anteriores ou você esqueceu que esses comandos usam nomes de arquivo de exemplo e o seu será um pouco diferente.
Alternativa (usando uma chave pública)
Caso encontre erros que não possam ser resolvidos, sinta-se à vontade para baixar e usar essa chave pública. Como alternativa, também é possível utilizar o seguinte comando:
$ curl -s https://openpgpkey.torproject.org/.well-known/openpgpkey/torproject.org/hu/kounek7zrdx745qydx6p59t9mqjpuhdf |gpg --import -
Nick Mathewson key is also available on keys.openpgp.org and can be downloaded from https://keys.openpgp.org/vks/v1/by-fingerprint/2133BC600AB133E1D826D173FE43009C4607B1FB.
If you're using macOS or GNU/Linux, the key can also be fetched by running the following command:
$ gpg --keyserver keys.openpgp.org --search-keys nickm@torproject.org
Você também pode aprender mais sobre GnuPG.