Nós vamos apresentar agora três técnicas: desde a mais fácil até a mais segura. Reforçamos que nenhuma delas é uma solução mágica e perfeita. Sinta-se à vontade para explorá-las de acordo com suas possibilidades e habilidades técnicas.
Note que, como todos os lançamentos do Tails são assinadas com a mesma chave, você não precisa verificar a chave toda vez. Além disso, a confiança que você pode adquirir progressivamente nesta chave em algum momento vai ser adquirida de uma vez por todas. Mesmo assim você tem que verificar a imagem ISO toda vez que baixar uma nova!
Correlacione múltiplos downloads da chave de assinatura do Tails
Uma técnica simples para aumentar a confiança que você pode ter na chave de assinatura do Tails é baixá-la diversas vezes, de diferentes localizações, diferentes computadores, possivelmente diferentes países, etc.
Por exemplo, você pode salvá-la toda vez com um nome diferente no mesmo diretório de uma memória USB. Pode, então, rodar o seguinte comando a partir de um terminal para verificar se todas as chaves são idênticas:
cd [seu diretório de download]
sha256sum tails-signing*.key
Este comando deve retornar algo como o seguinte:
7d4636ed49f6dd09d6e606936b6e686daad4200925875443668843b633ef6df2 tails-signing-desktop.key
7d4636ed49f6dd09d6e606936b6e686daad4200925875443668843b633ef6df2 tails-signing-laptop.key
7d4636ed49f6dd09d6e606936b6e686daad4200925875443668843b633ef6df2 tails-signing-library.key
7d4636ed49f6dd09d6e606936b6e686daad4200925875443668843b633ef6df2 tails-signing-seattle.key
Você tem então que verificar visualmente que todas as somas de verificação da primeira coluna são as mesmas, significando que as chaves são idênticas.
Você também pode usar esta técnica para comparar chaves baixadas pelos seus amigos ou outras pessoas nas quais você confia.
Usando a Rede de Confiança OpenPGP
Se você quiser ser extra cuidadoso e realmente autenticar a chave de uma forma mais forte que o HTTPS padrão te oferece, você vai precisar usar a Rede de Confiança OpenPGP.
Um dos problemas inerentes ao HTTPS padrão é que a confiança que geralmente se coloca em um sítio web é definida por autoridades certificadoras: um conjunto fechado e hierárquico de companhias e instituições governamentais aprovadas pelos desenvolvedores de navegadores. Este modelo de confiança tem sido criticado há muito tempo e provou muitas vezes ser vulnerável a ataques como explicado em nossa página de advertência.
Ao invés disso, acreditamos que os usuários devem dar a última palavra quanto à confiança em um sítio web, e que a indicação de confiança deve ser feita com base em interação humana.
A Rede de Confiança é um modelo de confiança descentralizado baseado em chaves OpenPGP. Vejamos um exemplo.
Você é amigo de Alice e realmente confia em sua forma de gerenciar chaves OpenPGP. Você está confiando na chave de Alice.
Além disso, Alice conheceu Bob, um desenvolvedor do Tails, em uma conferência, e assinou a chave de Bob. Alice está confiando na chave de Bob.
*Bob é um desenvolvedor do Tails que possui diretamente a chave de assinatura do Tails. Bob confia completamente na chave de assinatura do Tails.
Este cenário cria um caminho de confiança de você até a chave de assinatura do Tails que pode te permitir confiar nela sem depender de autoridades certificadoras.
Este modelo de confiança também não é perfeito e requer ambos cautela e supervisão inteligente por parte dos usuários. Os detalhes técnicos sobre a criação, gerenciamento e confiança em chaves GPG estão fora do escopo deste documento.
Nós também reconhecemos que nem todos podem conseguir criar um bom caminho de confiança até a chave de assinatura uma vez que isto está baseado em uma rede de relações humanas diretas e conhecimento de ferramentas tão complexas quanto OpenPGP.
Verifique a chave de assinatura do Tails usando o chaveiro do Debian.
Num cenário seguinte, quando alice conhece bob, que é um desenvolvedor do Tails, ela pode criar uma nova assinatura na chave de assinatura do Tails com a sua própria chave para certificar e tornar pública esta relação de confiança. A chave de assinatua do Tails agora virá junto com a assinatura feita por Alice.
A chave de assinatura do Tails na verdade já está assinada por diversos desenvolvedores do Debian, o sistema operacional no qual Tails é baseado. O Debian faz um uso extensivo de OpenPGP e você pode baixar as chaves de todos os desenvolvedores Debian instalando o pacote debian-keyring. Você pode então verificar as assinaturas destes desenvolvedores, criadas com suas próprias chaves, na chave de assinatura do Tails.
Para baixar o chaveiro do Debian você pode fazer:
sudo apt-get install debian-keyring
Para obter a lista de assinaturas feitas por outras pessoas na chave de assinatura do Tails você pode fazer:
gpg --keyid-format long --list-sigs 1202821CBE2CD9C1
Você vai ver algo mais ou menos assim:
pub 4096R/1202821CBE2CD9C1 2010-10-07 [expires: 2012-10-06]
uid Tails developers (signing key) <tails@boum.org>
sig 3 1202821CBE2CD9C1 2011-04-16 Tails developers (signing key) <tails@boum.org>
sig BACE15D2A57498FF 2011-04-16 [User ID not found]
sig CCD2ED94D21739E9 2011-06-12 [User ID not found]
uid T(A)ILS developers (signing key) <amnesia@boum.org>
sig 3 1202821CBE2CD9C1 2010-10-07 Tails developers (signing key) <tails@boum.org>
sig BACE15D2A57498FF 2010-10-07 [User ID not found]
sig 8CBF9A322861A790 2010-12-24 [User ID not found]
sig 7EF27D76B2177E1F 2010-12-27 [User ID not found]
sig CCD2ED94D21739E9 2010-12-29 [User ID not found]
sig AC0EC35285821C42 2011-03-22 [User ID not found]
sig C2DEE7F336042734 2010-10-24 [User ID not found]
As linhas terminando com '[User ID not found]' -- ID de usuário não encontrado --, são assinaturas feitas com chaves que você ainda não possui no seu chaveiro. Você pode tentar buscá-las no chaveiro do Debian pelo key ID: o código de 16 dígitos entre a etiqueta 'sig' e a data. Você pode por exemplo fazer:
gpg --keyring=/usr/share/keyrings/debian-keyring.gpg --list-key CCD2ED94D21739E9
Se esta assinatura corresponder a uma chave no chaveiro do Debian você vai obter algo assim:
pub 4096R/CCD2ED94D21739E9 2007-06-02 [expires: 2012-05-31]
uid Daniel Kahn Gillmor <dkg@fifthhorseman.net>
uid Daniel Kahn Gillmor <dkg@openflows.com>
uid [jpeg image of size 3515]
uid Daniel Kahn Gillmor <dkg@debian.org>
sub 4096R/C61BD3EC21484CFF 2007-06-02 [expires: 2012-05-31]
sub 2048R/125868EA4BFA08E4 2008-06-19 [expires: 2011-05-31]
Você pode então importá-la no seu próprio chaveiro fazendo:
gpg --keyring=/usr/share/keyrings/debian-keyring.gpg --export CCD2ED94D21739E9 | gpg --import
Agora você pode tentar verificar a assinatura feita por esta nova chave na chave de assinatura do Tails fazendo:
gpg --keyid-format long --check-sigs 1202821CBE2CD9C1
Na saída, o estado da verificação é indicado por sinalizadores posicionados diretamente a seguir da etiqueta "sig". Uma "!" significa que a assinatura foi verificada de forma bem sucedida, um "-" denota uma assinatura ruim e um "%" é usado se um erro ocorreu quando da verificação da assinatura (como por exemplo um algorítmo não suportado). Na seguinte saída, por exemplo, a assinatura de Daniel Kahn Gillmor na chave de assinatura do Tails foi verificada corretamente:
pub 4096R/1202821CBE2CD9C1 2010-10-07 [expires: 2012-10-06]
uid Tails developers (signing key) <tails@boum.org>
sig!3 1202821CBE2CD9C1 2011-04-16 Tails developers (signing key) <tails@boum.org>
sig! CCD2ED94D21739E9 2011-06-12 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
uid T(A)ILS developers (signing key) <amnesia@boum.org>
sig!3 1202821CBE2CD9C1 2010-10-07 Tails developers (signing key) <tails@boum.org>
sig! CCD2ED94D21739E9 2010-12-29 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
pub 4096R/1202821CBE2CD9C1 2010-10-07 [expires: 2012-10-06]
uid T(A)ILS developers (signing key) <amnesia@boum.org>
sig!3 1202821CBE2CD9C1 2010-10-07 T(A)ILS developers (signing key) <amnesia@boum.org>
sig! CCD2ED94D21739E9 2010-12-29 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
3 signatures not checked due to missing keys
Entre na Rede de Confiança!
Uma vez que a Rede de Confiança é de fato baseada em relações humanas e interações na vida real, o melhor é começar a estabelecer contatos com pessoas que tenham conhecimento sobre OpenPGP, começar a usá-lo você mesmo/a e construir relações de confiança para encontrar seu próprio caminho de confiança na chave de assinatura do Tails.
Você pode começar contatando um Wikipedia: Linux User Group ou outros/as entusiastas do Tails próximos/as a você e trocando ideia sobre suas práticas com OpenPGP. # Mais leituras sobre o OpenPGP - [[!wikipedia GnuPG, um software livre que implementa OpenPGP - Apache: How To OpenPGP (em inglês) - Debian: Keysigning, um tutorial sobre como assinar chaves de outras pessoas (em inglês) - rubin.ch: Explicação da rede de confiança do PGP (em inglês) - Gpg4win: Certificate inspection, instructions to manage key trust with Gpg4win -
