NoctisNode
← BlogBeveiliging2026-10-237 min

Wat is een warrant canary en hoe verifieer je er een met GPG

Een warrant canary is een ondertekende, regelmatig vernieuwde verklaring dat er geen geheime juridische eisen zijn ontvangen. Leer de beperkingen kennen en hoe je canary.txt met GPG verifieert.

Kort gezegd: een warrant canary is een regelmatig vernieuwde, ondertekende verklaring waarin een dienst zegt dat hij bepaalde geheime juridische eisen niet heeft ontvangen, zoals dagvaardingen met een spreekverbod of national security letters. Wordt de verklaring niet meer vernieuwd of verandert de formulering, dan zien lezers die stilte als waarschuwing. Je verifieert er een door de PGP-handtekening te controleren tegen de vingerafdruk van de sleutel van de uitgever en na te gaan of de datum van de handtekening recent is.

Dit artikel behandelt het juridische idee achter canaries, hun echte beperkingen, wat een goede canary bevat en een stapsgewijze verificatie met GPG, met de NoctisNode-canary als uitgewerkt voorbeeld.

Hoe een warrant canary werkt

De naam komt van de kanaries die mijnwerkers vroeger mee ondergronds namen: zolang de vogel leefde, was de lucht veilig. Een warrant canary werkt op dezelfde manier. De dienst publiceert een gedateerde verklaring zoals 'we hebben geen geheime gerechtelijke bevelen of spreekverboden ontvangen' en vernieuwt die volgens een vast schema.

Het juridische idee, dat vooral in de Verenigde Staten is ontstaan, berust op een onderscheid: autoriteiten kunnen een bedrijf misschien verbieden bekend te maken dat het een geheim bevel heeft ontvangen, maar een bedrijf dwingen een onware verklaring te publiceren is een andere en moeilijkere eis. Stopt het bedrijf gewoon met het vernieuwen van de canary, dan heeft het niets bekendgemaakt, maar kunnen lezers uit de afwezigheid hun eigen conclusies trekken.

Beperkingen van warrant canaries

Een canary is een nuttig signaal, geen garantie. Houd rekening met deze beperkingen voordat je erop vertrouwt.

  • ▹De juridische theorie is grotendeels niet getoetst in de rechtszaal, en het antwoord kan per land verschillen.
  • ▹Hij dekt alleen wat er expliciet in staat. Een canary over geheime bevelen zegt niets over gewone, openbare juridische verzoeken.
  • ▹Een onderbreking is dubbelzinnig: die kan een juridische eis betekenen, of gewoon dat de verantwoordelijke persoon afwezig was of een fout maakte.
  • ▹Hij kan je niet vertellen wat er is gevraagd, wanneer, of welke klanten erdoor geraakt zijn.
  • ▹Hij zegt niets over welke gegevens er bestaan. Combineer hem met een duidelijk logbeleid; zie [no-logs-VPS uitgelegd](/blog/no-logs-vps-explained).
  • ▹Hij is maar zo betrouwbaar als de ondertekeningssleutel en de mensen die die sleutel beheren.

Wat een goede warrant canary bevat

OnderdeelWaarom het ertoe doet
UitgiftedatumLaat je in één oogopslag zien hoe actueel hij is
VernieuwingsschemaBepaalt wanneer een ontbrekende update betekenis krijgt
Expliciete lijst van verklaringenLezers zien precies welke eisen worden gedekt
Een regel voor wat een onderbreking betekentHaalt het giswerk weg, bijvoorbeeld 'beschouw het na N dagen als signaal'
PGP-handtekening van een gepubliceerde sleutelBewijst dat de tekst van de beheerder komt en niet is gewijzigd
Volledige vingerafdruk van de sleutel, apart gepubliceerdLaat je controleren of je de juiste sleutel hebt geïmporteerd
Vaste URLMaakt de canary makkelijk te monitoren en te archiveren

De warrant canary van NoctisNode

NoctisNode publiceert een met PGP ondertekende canary in platte tekst op `/canary.txt`, met de publieke ondertekeningssleutel op `/canary-pubkey.asc` en uitleg op de warrant canary-pagina. De canary wordt elke maand met de hand vernieuwd. Is hij meer dan 35 dagen niet vernieuwd, beschouw dat dan als een signaal.

De vingerafdruk van de ondertekeningssleutel is `3804 DA83 956F B4C1 1D87 36C3 129C E677 8F20 92E9`. Vergelijk altijd de volledige vingerafdruk, nooit alleen de laatste 8 of 16 tekens.

Zo verifieer je een warrant canary stap voor stap

Deze commando's werken op Debian 12/13 en Ubuntu 24.04. Installeer de tools eerst met `sudo apt install gnupg curl` als ze ontbreken. Voor extra privacy kun je de bestanden via Tor ophalen met `torsocks curl` nadat je de pakketten `tor` en `torsocks` hebt geïnstalleerd.

  1. 01.Vergelijk de vingerafdruk die in stap 2 en 4 wordt getoond met die op de canary-pagina en in dit artikel. Wijkt er één teken af, stop dan: je hebt de verkeerde sleutel.
  2. 02.Zoek in de uitvoer van `gpg --verify` naar `Good signature from`. Een regel `BAD signature` betekent dat de tekst is gewijzigd of het bestand beschadigd is, dus vertrouw hem niet.
  3. 03.Een regel `WARNING: This key is not certified with a trusted signature!` is normaal als je de sleutel niet zelf hebt ondertekend. De controle van de vingerafdruk in stap 1 is wat het vertrouwen vestigt.
  4. 04.Controleer de datum bij `Signature made` en de datum in de tekst van de canary. Beide moeten recent zijn.
  5. 05.Is de handtekening ouder dan 35 dagen, beschouw dat dan als een signaal en lees de canary-pagina voor eventuele aankondigingen.
# 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

De controle op 35 dagen automatiseren

Monitor je de canary vanaf een server of met een cronjob, gebruik dan de machineleesbare statusuitvoer van GPG in plaats van voor mensen bedoelde tekst te parsen. Het script hieronder faalt als de handtekening ontbreekt, van een andere sleutel komt of ouder is dan 35 dagen. Voer het uit in de map met een vers gedownloade `canary.txt`.

#!/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 · Een onderbreking is een signaal om uit te zoeken, geen bewijs van een juridische eis. Controleer de canary-pagina en de aankondigingen van de beheerder, en bewaar je eigen gearchiveerde kopieën van eerdere canaries om te vergelijken.

Veelgestelde vragen

QWat is een warrant canary?

AEen warrant canary is een regelmatig vernieuwde, ondertekende verklaring dat een dienst bepaalde geheime juridische eisen niet heeft ontvangen. Wordt hij niet meer vernieuwd, dan zien lezers die stilte als waarschuwingssignaal.

QWat is canary.txt?

A`canary.txt` is een gangbare bestandsnaam voor een warrant canary in platte tekst, meestal met PGP ondertekend zodat iedereen kan verifiëren wie hem heeft uitgegeven. NoctisNode publiceert zijn canary op `/canary.txt` met de sleutel op `/canary-pubkey.asc`.

QHoe verifieer ik een warrant canary?

AImporteer de publieke sleutel van de uitgever met `gpg --import`, controleer of de volledige vingerafdruk overeenkomt met de gepubliceerde, voer dan `gpg --verify canary.txt` uit en controleer op een geldige handtekening met een recente datum.

QZijn warrant canaries juridisch bindend of werken ze gegarandeerd?

ANee. De juridische theorie is grotendeels niet getoetst in de rechtszaal en verschilt per land, en een onderbreking kan ook door een simpele operationele fout komen. Zie een canary als één signaal tussen andere.

QWat moet ik doen als een warrant canary niet wordt bijgewerkt?

AControleer de canary-pagina en aankondigingen van de uitgever, vergelijk met gearchiveerde kopieën en beslis of je gevoelige gegevens verhuist. Bij NoctisNode moet een canary die meer dan 35 dagen niet is vernieuwd als signaal worden beschouwd.

Wat is een warrant canary en hoe verifieer je er een met GPG · NoctisNode