Qué es un warrant canary y cómo verificarlo con GPG
Un warrant canary es una declaración firmada y renovada con regularidad de que no se han recibido requerimientos legales secretos. Conoce sus límites y cómo verificar canary.txt con GPG.
Respuesta corta: un warrant canary es una declaración firmada y renovada con regularidad en la que un servicio afirma que no ha recibido determinados requerimientos legales secretos, como citaciones con orden de silencio o national security letters. Si la declaración deja de renovarse o cambia su redacción, los lectores interpretan ese silencio como una advertencia. Se verifica comprobando su firma PGP con la huella de la clave del editor y confirmando que la fecha de la firma es reciente.
Este artículo explica la idea legal que hay detrás de los canaries, sus límites reales, qué contiene un buen canary y una verificación paso a paso con GPG usando como ejemplo práctico el canary de NoctisNode.
Cómo funciona un warrant canary
El nombre viene de los canarios que los mineros llevaban antiguamente bajo tierra: mientras el pájaro seguía vivo, el aire era seguro. Un warrant canary funciona igual. El servicio publica una declaración fechada del tipo 'no hemos recibido ninguna orden judicial secreta ni orden de silencio' y la renueva con una periodicidad fija.
La idea legal, surgida sobre todo en Estados Unidos, se basa en una distinción: las autoridades pueden prohibir a una empresa revelar que ha recibido una orden secreta, pero obligarla a publicar una declaración falsa es una exigencia distinta y más difícil. Si la empresa simplemente deja de renovar el canary, no ha revelado nada, pero los lectores pueden sacar sus propias conclusiones de la ausencia.
Límites de los warrant canaries
Un canary es una señal útil, no una garantía. Ten presentes estos límites antes de fiarte de uno.
- ▹La teoría legal está en gran medida sin probar en los tribunales, y la respuesta puede variar de un país a otro.
- ▹Solo cubre lo que enumera explícitamente. Un canary sobre órdenes secretas no dice nada de las peticiones legales ordinarias y públicas.
- ▹Una interrupción es ambigua: puede significar un requerimiento legal o simplemente que la persona responsable estaba fuera o cometió un error.
- ▹No puede decirte qué se pidió, cuándo ni a qué clientes afectó.
- ▹No dice nada sobre qué datos existen. Combínalo con una política de logs clara; consulta [VPS sin logs explicado](/blog/no-logs-vps-explained).
- ▹Solo es tan fiable como la clave de firma y las personas que la custodian.
Qué contiene un buen warrant canary
| Elemento | Por qué importa |
|---|---|
| Fecha de emisión | Te permite juzgar de un vistazo si está al día |
| Calendario de renovación | Define cuándo una actualización que falta pasa a ser significativa |
| Lista explícita de declaraciones | Los lectores ven exactamente qué requerimientos están cubiertos |
| Una regla sobre qué significa una interrupción | Elimina las conjeturas, por ejemplo 'trátalo como una señal pasados N días' |
| Firma PGP con una clave publicada | Demuestra que el texto procede del operador y no ha sido alterado |
| Huella completa de la clave publicada por separado | Te permite comprobar que importaste la clave correcta |
| URL estable | Facilita monitorizar y archivar el canary |
El warrant canary de NoctisNode
NoctisNode publica un canary en texto plano firmado con PGP en `/canary.txt`, con la clave pública de firma en `/canary-pubkey.asc` y una explicación en la página del warrant canary. El canary se renueva a mano cada mes. Si lleva más de 35 días sin renovarse, trátalo como una señal.
La huella de la clave de firma es `3804 DA83 956F B4C1 1D87 36C3 129C E677 8F20 92E9`. Compara siempre la huella completa, nunca solo los últimos 8 o 16 caracteres.
Cómo verificar un warrant canary paso a paso
Estos comandos funcionan en Debian 12/13 y Ubuntu 24.04. Instala antes las herramientas con `sudo apt install gnupg curl` si no las tienes. Para más privacidad, puedes descargar los archivos por Tor con `torsocks curl` tras instalar los paquetes `tor` y `torsocks`.
- 01.Compara la huella mostrada en los pasos 2 y 4 con la publicada en la página del canary y en este artículo. Si cualquier carácter difiere, detente: tienes la clave equivocada.
- 02.En la salida de `gpg --verify`, busca `Good signature from`. Una línea `BAD signature` significa que el texto se alteró o el archivo está dañado, así que no confíes en él.
- 03.Una línea que diga `WARNING: This key is not certified with a trusted signature!` es normal si no has firmado tú mismo la clave. Lo que establece la confianza es la comprobación de la huella del paso 1.
- 04.Comprueba la fecha de `Signature made` y la fecha escrita dentro del texto del canary. Ambas deben ser recientes.
- 05.Si la firma tiene más de 35 días, trátalo como una señal y lee la página del canary por si hay algún aviso.
# 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.txtAutomatizar la comprobación de 35 días
Si monitorizas el canary desde un servidor o un cron, usa la salida de estado legible por máquina de GPG en lugar de analizar el texto para humanos. El script de abajo falla si falta la firma, si procede de otra clave o si tiene más de 35 días. Ejecútalo en el directorio que contenga un `canary.txt` recién descargado.
#!/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 · Una interrupción es una señal para investigar, no la prueba de un requerimiento legal. Consulta la página del canary y los avisos del operador, y guarda tus propias copias archivadas de canaries anteriores para compararlos.
Preguntas frecuentes
Q¿Qué es un warrant canary?
AUn warrant canary es una declaración firmada y renovada con regularidad de que un servicio no ha recibido determinados requerimientos legales secretos. Si deja de renovarse, los lectores interpretan el silencio como una señal de alarma.
Q¿Qué es canary.txt?
A`canary.txt` es un nombre de archivo habitual para un warrant canary en texto plano, normalmente firmado con PGP para que cualquiera pueda verificar quién lo emitió. NoctisNode publica su canary en `/canary.txt` con la clave en `/canary-pubkey.asc`.
Q¿Cómo verifico un warrant canary?
AImporta la clave pública del editor con `gpg --import`, confirma que la huella completa coincide con la publicada, ejecuta `gpg --verify canary.txt` y comprueba que la firma es buena y tiene fecha reciente.
Q¿Los warrant canaries son legalmente vinculantes o funcionan con garantías?
ANo. La teoría legal está en gran medida sin probar en los tribunales y varía según el país, y una interrupción también puede deberse a un simple error operativo. Trata un canary como una señal entre varias.
Q¿Qué hago si un warrant canary no se actualiza?
AConsulta la página del canary y los avisos del editor, compáralo con copias archivadas y decide si trasladar los datos sensibles. En el caso de NoctisNode, un canary que lleve más de 35 días sin renovarse debe tratarse como una señal.