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 -