ما هو Warrant Canary وكيف تتحقق منه باستخدام GPG
الـ warrant canary بيان موقّع يُجدَّد بانتظام يؤكد عدم تلقي طلبات قانونية سرية. تعرّف على حدوده وكيف تتحقق من canary.txt باستخدام GPG.
باختصار: الـ warrant canary بيان موقّع يُجدَّد بانتظام تقول فيه الخدمة إنها لم تتلقَّ طلبات قانونية سرية معينة، مثل مذكرات استدعاء مشفوعة بأوامر حظر نشر أو خطابات الأمن القومي. إن توقف تجديد البيان أو تغيّرت صياغته، يعتبر القراء هذا الصمت تحذيراً. وتتحقق منه بفحص توقيع 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 من مفتاح منشور | يثبت أن النص صادر عن المشغّل ولم يُعدَّل |
| بصمة المفتاح الكاملة منشورة بشكل منفصل | تتيح لك التأكد من أنك استوردت المفتاح الصحيح |
| رابط ثابت | يجعل مراقبة الـ canary وأرشفتها سهلة |
الـ warrant canary الخاصة بـ NoctisNode
ينشر NoctisNode canary بنص عادي موقّعة بـ PGP على `/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`.
- 01.قارن البصمة المطبوعة في الخطوتين 2 و4 بتلك المنشورة في صفحة الـ canary وفي هذا المقال. إن اختلف أي حرف، توقف: لديك المفتاح الخطأ.
- 02.في مخرجات `gpg --verify`، ابحث عن `Good signature from`. سطر `BAD signature` يعني أن النص عُدّل أو أن الملف تالف، فلا تثق به.
- 03.سطر يقول `WARNING: This key is not certified with a trusted signature!` أمر طبيعي إن لم توقّع المفتاح بنفسك. فحص البصمة في الخطوة 1 هو ما يرسّخ الثقة.
- 04.تحقق من تاريخ `Signature made` والتاريخ المكتوب داخل نص الـ canary. يجب أن يكون كلاهما حديثاً.
- 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 السابقة للمقارنة.
الأسئلة الشائعة
Qما هو الـ warrant canary؟
Aالـ warrant 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 يوماً إشارة.