Qu'est-ce qu'un warrant canary et comment le vérifier avec GPG
Un warrant canary est une déclaration signée et renouvelée régulièrement attestant qu'aucune demande légale secrète n'a été reçue. Ses limites et comment vérifier canary.txt avec GPG.
En bref : un warrant canary est une déclaration signée et renouvelée régulièrement par laquelle un service affirme ne pas avoir reçu certaines demandes légales secrètes, comme des assignations assorties d'une obligation de silence ou des national security letters. Si la déclaration cesse d'être renouvelée ou si sa formulation change, les lecteurs interprètent ce silence comme un avertissement. Pour le vérifier, contrôlez sa signature PGP avec l'empreinte de la clé de l'éditeur et confirmez que la date de signature est récente.
Cet article présente l'idée juridique derrière les canaries, leurs limites réelles, ce que contient un bon canary, et une vérification GPG pas à pas en prenant le canary de NoctisNode comme exemple.
Comment fonctionne un warrant canary
Le nom vient des canaris que les mineurs emportaient autrefois sous terre : tant que l'oiseau vivait, l'air était respirable. Un warrant canary fonctionne de la même façon. Le service publie une déclaration datée, par exemple « nous n'avons reçu aucune ordonnance judiciaire secrète ni obligation de silence », et la renouvelle selon un calendrier fixe.
L'idée juridique, née principalement aux États-Unis, repose sur une distinction : les autorités peuvent interdire à une entreprise de révéler qu'elle a reçu une ordonnance secrète, mais la contraindre à publier une déclaration fausse est une exigence différente et plus difficile à imposer. Si l'entreprise cesse simplement de renouveler le canary, elle n'a rien révélé, mais les lecteurs peuvent tirer leurs propres conclusions de cette absence.
Les limites des warrant canaries
Un canary est un signal utile, pas une garantie. Gardez ces limites à l'esprit avant de vous y fier.
- ▹La théorie juridique est largement inéprouvée devant les tribunaux, et la réponse peut varier d'un pays à l'autre.
- ▹Il ne couvre que ce qu'il énumère explicitement. Un canary portant sur les ordonnances secrètes ne dit rien des demandes légales ordinaires et publiques.
- ▹Une interruption est ambiguë : elle peut signifier une demande légale, ou simplement que la personne responsable était absente ou a commis une erreur.
- ▹Il ne peut pas vous dire ce qui a été demandé, quand, ni quels clients sont concernés.
- ▹Il ne dit rien des données qui existent. Associez-le à une politique de journalisation claire ; voir [le VPS no-logs expliqué](/blog/no-logs-vps-explained).
- ▹Il ne vaut que ce que valent la clé de signature et les personnes qui la détiennent.
Ce que contient un bon warrant canary
| Élément | Pourquoi c'est important |
|---|---|
| Date d'émission | Permet de juger d'un coup d'œil de sa fraîcheur |
| Calendrier de renouvellement | Définit à partir de quand une mise à jour manquante devient significative |
| Liste explicite des déclarations | Les lecteurs voient exactement quelles demandes sont couvertes |
| Une règle sur la signification d'une interruption | Évite les suppositions, par exemple « considérez-le comme un signal après N jours » |
| Signature PGP d'une clé publiée | Prouve que le texte vient de l'opérateur et n'a pas été modifié |
| Empreinte complète de la clé publiée séparément | Permet de vérifier que vous avez importé la bonne clé |
| URL stable | Facilite la surveillance et l'archivage du canary |
Le warrant canary de NoctisNode
NoctisNode publie un canary en texte brut signé PGP sur `/canary.txt`, avec la clé publique de signature sur `/canary-pubkey.asc` et une explication sur la page du warrant canary. Le canary est renouvelé manuellement chaque mois. S'il n'a pas été renouvelé depuis plus de 35 jours, considérez-le comme un signal.
L'empreinte de la clé de signature est `3804 DA83 956F B4C1 1D87 36C3 129C E677 8F20 92E9`. Comparez toujours l'empreinte complète, jamais seulement les 8 ou 16 derniers caractères.
Vérifier un warrant canary pas à pas
Ces commandes fonctionnent sur Debian 12/13 et Ubuntu 24.04. Installez d'abord les outils avec `sudo apt install gnupg curl` s'ils manquent. Pour plus de confidentialité, vous pouvez récupérer les fichiers via Tor avec `torsocks curl` après avoir installé les paquets `tor` et `torsocks`.
- 01.Comparez l'empreinte affichée aux étapes 2 et 4 avec celle publiée sur la page du canary et dans cet article. Si un seul caractère diffère, arrêtez-vous : vous n'avez pas la bonne clé.
- 02.Dans la sortie de `gpg --verify`, cherchez `Good signature from`. Une ligne `BAD signature` signifie que le texte a été modifié ou que le fichier est endommagé : ne vous y fiez pas.
- 03.Une ligne `WARNING: This key is not certified with a trusted signature!` est normale si vous n'avez pas signé la clé vous-même. C'est la vérification de l'empreinte à l'étape 1 qui établit la confiance.
- 04.Vérifiez la date `Signature made` et la date écrite dans le texte du canary. Les deux doivent être récentes.
- 05.Si la signature date de plus de 35 jours, considérez-le comme un signal et consultez la page du canary pour toute annonce.
# 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.txtAutomatiser la vérification des 35 jours
Si vous surveillez le canary depuis un serveur ou une tâche cron, utilisez la sortie d'état lisible par machine de GPG plutôt que d'analyser le texte destiné aux humains. Le script ci-dessous échoue si la signature est absente, provient d'une autre clé ou date de plus de 35 jours. Lancez-le dans le répertoire contenant un `canary.txt` fraîchement téléchargé.
#!/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 · Une interruption est un signal qui appelle une vérification, pas la preuve d'une demande légale. Consultez la page du canary et les annonces de l'opérateur, et conservez vos propres copies archivées des canaries précédents pour comparaison.
FAQ
QQu'est-ce qu'un warrant canary ?
AUn warrant canary est une déclaration signée et renouvelée régulièrement attestant qu'un service n'a pas reçu certaines demandes légales secrètes. S'il cesse d'être renouvelé, les lecteurs interprètent ce silence comme un signe d'alerte.
QQu'est-ce que canary.txt ?
A`canary.txt` est un nom de fichier courant pour un warrant canary en texte brut, généralement signé PGP pour que chacun puisse vérifier qui l'a émis. NoctisNode publie son canary sur `/canary.txt` avec la clé sur `/canary-pubkey.asc`.
QComment vérifier un warrant canary ?
AImportez la clé publique de l'éditeur avec `gpg --import`, confirmez que l'empreinte complète correspond à celle publiée, puis lancez `gpg --verify canary.txt` et vérifiez la présence d'une signature valide à une date récente.
QLes warrant canaries ont-ils une valeur juridique ou un fonctionnement garanti ?
ANon. La théorie juridique est largement inéprouvée devant les tribunaux et varie selon les pays, et une interruption peut aussi résulter d'une simple erreur opérationnelle. Considérez un canary comme un signal parmi d'autres.
QQue faire si un warrant canary n'est pas mis à jour ?
AConsultez la page du canary et les annonces de l'éditeur, comparez avec les copies archivées et décidez s'il faut déplacer vos données sensibles. Pour NoctisNode, un canary non renouvelé depuis plus de 35 jours doit être considéré comme un signal.