O que é um warrant canary e como verificá-lo com GPG
Um warrant canary é uma declaração assinada e renovada com regularidade de que não foram recebidas exigências legais secretas. Conheça seus limites e como verificar o canary.txt com GPG.
Resposta curta: um warrant canary é uma declaração assinada e renovada com regularidade em que um serviço afirma não ter recebido determinadas exigências legais secretas, como intimações com ordem de sigilo ou national security letters. Se a declaração deixa de ser renovada ou se o texto muda, os leitores tratam esse silêncio como um alerta. Você o verifica checando a assinatura PGP contra a impressão digital da chave de quem o publica e confirmando que a data da assinatura é recente.
Este artigo aborda a ideia jurídica por trás dos canaries, seus limites reais, o que um bom canary contém e uma verificação passo a passo com GPG, usando o canary da NoctisNode como exemplo prático.
Como funciona um warrant canary
O nome vem dos canários que os mineiros levavam para o subsolo: enquanto o pássaro estivesse vivo, o ar era seguro. Um warrant canary funciona do mesmo jeito. O serviço publica uma declaração datada como "não recebemos nenhuma ordem judicial secreta nem ordem de sigilo" e a renova num calendário fixo.
A ideia jurídica, que surgiu principalmente nos Estados Unidos, se apoia numa distinção: as autoridades podem conseguir proibir uma empresa de revelar que recebeu uma ordem secreta, mas obrigá-la a publicar uma declaração falsa é uma exigência diferente e mais difícil. Se a empresa simplesmente para de renovar o canary, ela não revelou nada, mas os leitores podem tirar as próprias conclusões da ausência.
Limites dos warrant canaries
Um canary é um sinal útil, não uma garantia. Tenha estes limites em mente antes de confiar em um.
- ▹A teoria jurídica é em grande parte não testada nos tribunais, e a resposta pode variar de país para país.
- ▹Ele só cobre o que lista explicitamente. Um canary sobre ordens secretas não diz nada sobre pedidos legais comuns e públicos.
- ▹Uma interrupção é ambígua: pode significar uma exigência legal ou simplesmente que o responsável estava ausente ou cometeu um erro.
- ▹Ele não diz o que foi pedido, quando nem quais clientes foram afetados.
- ▹Ele não diz nada sobre quais dados existem. Combine-o com uma política de logs clara; veja [VPS sem logs explicado](/blog/no-logs-vps-explained).
- ▹Ele é tão confiável quanto a chave de assinatura e as pessoas que a detêm.
O que um bom warrant canary contém
| Elemento | Por que importa |
|---|---|
| Data de emissão | Permite avaliar a atualidade num relance |
| Calendário de renovação | Define quando uma atualização ausente passa a ter significado |
| Lista explícita de declarações | Os leitores veem exatamente quais exigências estão cobertas |
| Uma regra sobre o que significa uma interrupção | Elimina a adivinhação, por exemplo "trate como sinal após N dias" |
| Assinatura PGP de uma chave publicada | Prova que o texto veio do operador e não foi alterado |
| Impressão digital completa da chave publicada separadamente | Permite conferir se você importou a chave certa |
| URL estável | Facilita monitorar e arquivar o canary |
O warrant canary da NoctisNode
A NoctisNode publica um canary em texto simples assinado com PGP em `/canary.txt`, com a chave pública de assinatura em `/canary-pubkey.asc` e uma explicação na página do warrant canary. O canary é renovado manualmente todo mês. Se ele não for renovado por mais de 35 dias, trate isso como um sinal.
A impressão digital da chave de assinatura é `3804 DA83 956F B4C1 1D87 36C3 129C E677 8F20 92E9`. Compare sempre a impressão digital completa, nunca só os últimos 8 ou 16 caracteres.
Como verificar um warrant canary passo a passo
Estes comandos funcionam no Debian 12/13 e no Ubuntu 24.04. Instale antes as ferramentas com `sudo apt install gnupg curl`, se estiverem faltando. Para mais privacidade, você pode baixar os arquivos via Tor com `torsocks curl` depois de instalar os pacotes `tor` e `torsocks`.
- 01.Compare a impressão digital exibida nos passos 2 e 4 com a publicada na página do canary e neste artigo. Se qualquer caractere for diferente, pare: você está com a chave errada.
- 02.Na saída do `gpg --verify`, procure `Good signature from`. Uma linha `BAD signature` significa que o texto foi alterado ou o arquivo está danificado, então não confie nele.
- 03.Uma linha dizendo `WARNING: This key is not certified with a trusted signature!` é normal se você mesmo não assinou a chave. É a verificação da impressão digital no passo 1 que estabelece a confiança.
- 04.Confira a data de `Signature made` e a data escrita dentro do texto do canary. As duas devem ser recentes.
- 05.Se a assinatura tiver mais de 35 dias, trate isso como um sinal e leia a página do canary em busca de algum comunicado.
# 1. Download the canary and the public key
curl -fsSLO https://noctisnode.com/canary.txt
curl -fsSLO https://noctisnode.com/canary-pubkey.asc
# 2. Inspect the key without importing it
gpg --show-keys --with-fingerprint canary-pubkey.asc
# 3. Import the key
gpg --import canary-pubkey.asc
# 4. Confirm the fingerprint of the imported key
gpg --fingerprint 3804DA83956FB4C11D8736C3129CE6778F2092E9
# 5. Verify the signature on the canary
gpg --verify canary.txtAutomatizando a verificação de 35 dias
Se você monitora o canary a partir de um servidor ou de um cron job, use a saída de status legível por máquina do GPG em vez de interpretar o texto para humanos. O script abaixo falha se a assinatura estiver ausente, vier de outra chave ou tiver mais de 35 dias. Rode-o no diretório que contém um `canary.txt` recém-baixado.
#!/bin/sh
FPR=3804DA83956FB4C11D8736C3129CE6778F2092E9
line=$(gpg --status-fd 1 --verify canary.txt 2>/dev/null | grep ' VALIDSIG ')
case "$line" in
*"$FPR"*) ;;
*) echo "FAIL: no valid signature from $FPR"; exit 1 ;;
esac
ts=$(echo "$line" | awk '{print $5}')
age=$(( ( $(date +%s) - ts ) / 86400 ))
echo "Canary signature is $age days old"
[ "$age" -le 35 ] || { echo "WARNING: older than 35 days"; exit 2; }Note · Uma interrupção é um sinal para investigar, não uma prova de exigência legal. Confira a página do canary e os comunicados do operador e guarde suas próprias cópias arquivadas dos canaries anteriores para comparação.
Perguntas frequentes
QO que é um warrant canary?
AUm warrant canary é uma declaração assinada e renovada com regularidade de que um serviço não recebeu determinadas exigências legais secretas. Se ele deixa de ser renovado, os leitores tratam o silêncio como um sinal de alerta.
QO que é o canary.txt?
A`canary.txt` é um nome de arquivo comum para um warrant canary em texto simples, normalmente assinado com PGP para que qualquer pessoa possa verificar quem o emitiu. A NoctisNode publica seu canary em `/canary.txt`, com a chave em `/canary-pubkey.asc`.
QComo verifico um warrant canary?
AImporte a chave pública de quem o publica com `gpg --import`, confirme que a impressão digital completa corresponde à publicada e então rode `gpg --verify canary.txt` e verifique se há uma assinatura válida com data recente.
QOs warrant canaries têm validade jurídica ou funcionam com certeza?
ANão. A teoria jurídica é em grande parte não testada nos tribunais e varia por país, e uma interrupção também pode ser causada por um simples erro operacional. Trate um canary como um sinal entre vários.
QO que devo fazer se um warrant canary não for atualizado?
AConfira a página do canary e os comunicados de quem o publica, compare com cópias arquivadas e decida se vai mover dados sensíveis. No caso da NoctisNode, um canary não renovado por mais de 35 dias deve ser tratado como um sinal.