NoctisNode
← БлогБезопасность2026-10-237 мин

Что такое warrant canary и как проверить его через GPG

Warrant canary — подписанное, регулярно обновляемое заявление о том, что тайных юридических требований не поступало. Его ограничения и как проверить canary.txt через GPG.

Коротко: warrant canary — это регулярно обновляемое подписанное заявление, в котором сервис сообщает, что не получал определённых тайных юридических требований, например повесток с запретом на разглашение (gag order) или national security letters. Если заявление перестаёт обновляться или меняется его формулировка, читатели воспринимают это молчание как предупреждение. Проверяется он сверкой PGP-подписи с отпечатком ключа издателя и тем, что дата подписи свежая.

В этой статье — юридическая идея, стоящая за canary, его реальные ограничения, что должен содержать хороший canary, и пошаговая проверка через GPG на примере canary NoctisNode.

Как работает warrant canary

Название пришло от канареек, которых шахтёры когда-то брали под землю: пока птица жива, воздух безопасен. Warrant canary работает так же. Сервис публикует датированное заявление вроде «мы не получали тайных судебных приказов или запретов на разглашение» и обновляет его по фиксированному расписанию.

Юридическая идея, возникшая в основном в США, опирается на различие: власти могут запретить компании раскрывать факт получения тайного приказа, но принудить компанию опубликовать ложное заявление — другое и куда более сложное требование. Если компания просто перестаёт обновлять canary, она ничего не раскрыла, но читатели могут сами сделать выводы из его отсутствия.

Ограничения warrant canary

Canary — полезный сигнал, а не гарантия. Помните об этих ограничениях, прежде чем на него полагаться.

  • ▹Юридическая теория почти не проверена в судах, и ответ может различаться между странами.
  • ▹Он покрывает только то, что явно перечислено. Canary о тайных приказах ничего не говорит об обычных публичных юридических запросах.
  • ▹Пропуск обновления неоднозначен: он может означать юридическое требование, а может — что ответственный человек был в отъезде или ошибся.
  • ▹Он не скажет, что именно запросили, когда и каких клиентов это затронуло.
  • ▹Он ничего не говорит о том, какие данные существуют. Сочетайте его с понятной политикой логирования; см. [что значит VPS без логов](/blog/no-logs-vps-explained).
  • ▹Он заслуживает доверия ровно настолько, насколько ключ подписи и люди, которые его держат.

Что содержит хороший warrant canary

ЭлементПочему это важно
Дата выпускаПозволяет сразу оценить свежесть
График обновленияОпределяет, когда отсутствие обновления становится значимым
Явный список заявленийЧитатели видят, какие именно требования покрываются
Правило, что означает пропускУбирает догадки, например «считайте сигналом через N дней»
PGP-подпись опубликованным ключомДоказывает, что текст исходит от оператора и не изменён
Полный отпечаток ключа, опубликованный отдельноПозволяет убедиться, что вы импортировали правильный ключ
Постоянный URLУпрощает мониторинг и архивирование canary

Warrant canary NoctisNode

NoctisNode публикует подписанный PGP текстовый canary по адресу `/canary.txt`, открытый ключ подписи — по адресу `/canary-pubkey.asc`, а пояснения — на странице warrant canary. Canary обновляется вручную каждый месяц. Если он не обновлялся больше 35 дней, считайте это сигналом.

Отпечаток ключа подписи: `3804 DA83 956F B4C1 1D87 36C3 129C E677 8F20 92E9`. Всегда сравнивайте полный отпечаток, а не только последние 8 или 16 символов.

Как проверить warrant canary пошагово

Эти команды работают в Debian 12/13 и Ubuntu 24.04. Если инструментов нет, сначала установите их: `sudo apt install gnupg curl`. Для дополнительной приватности можно скачивать файлы через Tor командой `torsocks curl`, установив пакеты `tor` и `torsocks`.

  1. 01.Сравните отпечаток, выведенный на шагах 2 и 4, с опубликованным на странице canary и в этой статье. Если отличается хоть один символ — остановитесь: у вас не тот ключ.
  2. 02.В выводе `gpg --verify` ищите `Good signature from`. Строка `BAD signature` означает, что текст изменён или файл повреждён, — не доверяйте ему.
  3. 03.Строка `WARNING: This key is not certified with a trusted signature!` нормальна, если вы сами не подписывали ключ. Доверие устанавливает именно сверка отпечатка на шаге 1.
  4. 04.Проверьте дату `Signature made` и дату, написанную внутри текста canary. Обе должны быть свежими.
  5. 05.Если подписи больше 35 дней, считайте это сигналом и проверьте страницу canary на наличие объявлений.
# 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

Автоматизация проверки 35 дней

Если вы следите за canary с сервера или из cron, используйте машиночитаемый статусный вывод GPG, а не разбирайте текст для людей. Скрипт ниже завершается с ошибкой, если подписи нет, она сделана другим ключом или старше 35 дней. Запускайте его в каталоге со свежескачанным `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 · Пропуск обновления — повод разобраться, а не доказательство юридического требования. Проверьте страницу canary и объявления оператора и храните собственные архивные копии предыдущих canary для сравнения.

FAQ

QЧто такое warrant canary?

AWarrant canary — регулярно обновляемое подписанное заявление о том, что сервис не получал определённых тайных юридических требований. Если оно перестаёт обновляться, читатели воспринимают молчание как тревожный знак.

QЧто такое canary.txt?

A`canary.txt` — распространённое имя файла для текстового warrant canary, обычно подписанного PGP, чтобы любой мог проверить, кто его выпустил. NoctisNode публикует свой canary по адресу `/canary.txt`, а ключ — по адресу `/canary-pubkey.asc`.

QКак проверить warrant canary?

AИмпортируйте открытый ключ издателя через `gpg --import`, убедитесь, что полный отпечаток совпадает с опубликованным, затем выполните `gpg --verify canary.txt` и проверьте, что подпись верна и дата свежая.

QИмеют ли warrant canary юридическую силу и гарантированно ли работают?

AНет. Юридическая теория почти не проверена в судах и различается по странам, а пропуск обновления может быть вызван и простой операционной ошибкой. Считайте canary одним сигналом из нескольких.

QЧто делать, если warrant canary не обновлён?

AПроверьте страницу canary и объявления издателя, сравните с архивными копиями и решите, стоит ли переносить чувствительные данные. Для NoctisNode canary, не обновлявшийся больше 35 дней, следует считать сигналом.

Что такое warrant canary и как проверить его через GPG · NoctisNode