NoctisNode
← BlogSicurezza2026-10-237 min

Cos'è un warrant canary e come verificarlo con GPG

Un warrant canary è una dichiarazione firmata e rinnovata regolarmente in cui si attesta di non aver ricevuto richieste legali segrete. Scopri i suoi limiti e come verificare canary.txt con GPG.

In breve: un warrant canary è una dichiarazione firmata e rinnovata regolarmente in cui un servizio afferma di non aver ricevuto determinate richieste legali segrete, come citazioni con obbligo di riservatezza (gag order) o national security letter. Se la dichiarazione smette di essere rinnovata o il testo cambia, i lettori interpretano quel silenzio come un avvertimento. Lo si verifica controllando la sua firma PGP con il fingerprint della chiave dell'editore e confermando che la data della firma sia recente.

Questo articolo tratta l'idea giuridica alla base dei canary, i loro limiti reali, cosa contiene un buon canary e una verifica GPG passo per passo usando come esempio pratico il canary di NoctisNode.

Come funziona un warrant canary

Il nome deriva dai canarini che un tempo i minatori portavano sottoterra: finché l'uccello era vivo, l'aria era respirabile. Un warrant canary funziona allo stesso modo. Il servizio pubblica una dichiarazione datata come «non abbiamo ricevuto ordini giudiziari segreti né gag order» e la rinnova secondo un calendario fisso.

L'idea giuridica, nata soprattutto negli Stati Uniti, si basa su una distinzione: le autorità possono forse vietare a un'azienda di rivelare di aver ricevuto un ordine segreto, ma obbligarla a pubblicare una dichiarazione falsa è una richiesta diversa e più difficile. Se l'azienda semplicemente smette di rinnovare il canary, non ha rivelato nulla, eppure i lettori possono trarre le proprie conclusioni da quell'assenza.

Limiti dei warrant canary

Un canary è un segnale utile, non una garanzia. Tieni presenti questi limiti prima di farci affidamento.

  • ▹La teoria giuridica è in gran parte non testata in tribunale, e la risposta può variare da paese a paese.
  • ▹Copre solo ciò che elenca esplicitamente. Un canary sugli ordini segreti non dice nulla sulle normali richieste legali pubbliche.
  • ▹Un mancato rinnovo è ambiguo: può indicare una richiesta legale, o semplicemente che il responsabile era assente o ha commesso un errore.
  • ▹Non può dirti cosa è stato richiesto, quando, né quali clienti sono stati coinvolti.
  • ▹Non dice nulla su quali dati esistono. Abbinalo a una policy chiara sui log; vedi [il VPS no-logs spiegato](/blog/no-logs-vps-explained).
  • ▹È affidabile solo quanto la chiave di firma e le persone che la custodiscono.

Cosa contiene un buon warrant canary

ElementoPerché è importante
Data di emissionePermette di valutarne la freschezza a colpo d'occhio
Calendario di rinnovoDefinisce quando un aggiornamento mancante diventa significativo
Elenco esplicito delle dichiarazioniI lettori vedono esattamente quali richieste sono coperte
Una regola su cosa significa un mancato rinnovoElimina le congetture, per esempio «consideralo un segnale dopo N giorni»
Firma PGP da una chiave pubblicataDimostra che il testo proviene dall'operatore e non è stato alterato
Fingerprint completo della chiave pubblicato separatamenteTi permette di verificare di aver importato la chiave giusta
URL stabileRende il canary facile da monitorare e archiviare

Il warrant canary di NoctisNode

NoctisNode pubblica un canary in testo semplice firmato PGP su `/canary.txt`, con la chiave pubblica di firma su `/canary-pubkey.asc` e una spiegazione nella pagina del warrant canary. Il canary viene rinnovato a mano ogni mese. Se non viene rinnovato per più di 35 giorni, consideralo un segnale.

Il fingerprint della chiave di firma è `3804 DA83 956F B4C1 1D87 36C3 129C E677 8F20 92E9`. Confronta sempre il fingerprint completo, mai solo gli ultimi 8 o 16 caratteri.

Come verificare un warrant canary passo per passo

Questi comandi funzionano su Debian 12/13 e Ubuntu 24.04. Se mancano, installa prima gli strumenti con `sudo apt install gnupg curl`. Per maggiore privacy puoi scaricare i file via Tor con `torsocks curl` dopo aver installato i pacchetti `tor` e `torsocks`.

  1. 01.Confronta il fingerprint stampato nei passaggi 2 e 4 con quello pubblicato nella pagina del canary e in questo articolo. Se anche un solo carattere è diverso, fermati: hai la chiave sbagliata.
  2. 02.Nell'output di `gpg --verify`, cerca `Good signature from`. Una riga `BAD signature` significa che il testo è stato alterato o il file è danneggiato, quindi non fidarti.
  3. 03.Una riga che dice `WARNING: This key is not certified with a trusted signature!` è normale se non hai firmato tu stesso la chiave. È il controllo del fingerprint al passaggio 1 a stabilire la fiducia.
  4. 04.Controlla la data `Signature made` e la data scritta nel testo del canary. Entrambe devono essere recenti.
  5. 05.Se la firma ha più di 35 giorni, consideralo un segnale e leggi la pagina del canary per eventuali comunicazioni.
# 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.txt

Automatizzare il controllo dei 35 giorni

Se monitori il canary da un server o con un cron job, usa l'output di stato leggibile dalle macchine di GPG invece di analizzare il testo per umani. Lo script qui sotto fallisce se la firma manca, proviene da una chiave diversa o ha più di 35 giorni. Eseguilo nella directory che contiene un `canary.txt` appena scaricato.

#!/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 · Un mancato rinnovo è un segnale da approfondire, non la prova di una richiesta legale. Controlla la pagina del canary e le comunicazioni dell'operatore, e conserva copie archiviate dei canary precedenti per fare confronti.

FAQ

QCos'è un warrant canary?

AUn warrant canary è una dichiarazione firmata e rinnovata regolarmente in cui un servizio afferma di non aver ricevuto specifiche richieste legali segrete. Se smette di essere rinnovata, i lettori interpretano il silenzio come un campanello d'allarme.

QCos'è canary.txt?

A`canary.txt` è un nome di file comune per un warrant canary in testo semplice, di solito firmato PGP in modo che chiunque possa verificare chi lo ha emesso. NoctisNode pubblica il suo canary su `/canary.txt` con la chiave su `/canary-pubkey.asc`.

QCome verifico un warrant canary?

AImporta la chiave pubblica dell'editore con `gpg --import`, conferma che il fingerprint completo corrisponda a quello pubblicato, poi esegui `gpg --verify canary.txt` e verifica che la firma sia valida e con una data recente.

QI warrant canary sono legalmente vincolanti o garantiti?

ANo. La teoria giuridica è in gran parte non testata in tribunale e varia da paese a paese, e un mancato rinnovo può dipendere anche da un semplice errore operativo. Considera un canary come un segnale tra tanti.

QCosa devo fare se un warrant canary non viene aggiornato?

AControlla la pagina del canary e le comunicazioni dell'editore, confronta con le copie archiviate e decidi se spostare i dati sensibili. Per NoctisNode, un canary non rinnovato per più di 35 giorni va considerato un segnale.

Cos'è un warrant canary e come verificarlo con GPG · NoctisNode