Skip to content

NIP-17: الرسائل الخاصة المباشرة - دليل شامل

تعرف على NIP-17، البديل الآمن لـ NIP-04، وكيفية ترحيل رسائلك الخاصة في Nostr

advanced

NIP-17 يمثل ترقية أمنية كبيرة في كيفية عمل الرسائل الخاصة في Nostr. يشرح هذا الدليل لماذا يجب أن تهتم بهذا التحسين في البروتوكول، وكيفية الترحيل من معيار NIP-04 القديم، والخطوات العملية لتأمين اتصالاتك.

ما هو NIP-17؟

NIP-17 هو مواصفة بروتوكول Nostr التي تحدد الرسائل الخاصة المباشرة باستخدام نظام تشفير مزدوج الطبقات يسمى “seal + gift wrap”. تم إنشاؤه لمعالجة عيوب الأمان الأساسية في طريقة تشفير NIP-04 السابقة.

على عكس NIP-04، الذي استخدم طبقة واحدة من تشفير AES-256-CBC، يستخدم NIP-17:

  1. Seal - طبقة التشفير الداخلية لحماية محتوى الرسالة
  2. Gift Wrap - طبقة التشفير الخارجية التي تخفي بيانات المرسل والمستلم الوصفية

يضمن هذا النهج المزدوج:

  • بقاء محتوى الرسالة خاصًا
  • حتى مشغلو الـ relay لا يمكنهم رؤية من يتحدث مع من
  • حماية أنماط الرسائل والبيانات الوصفية من مراقبي الشبكة

لماذا يهم NIP-17: مشكلة أمان NIP-04

كان NIP-04 هو بروتوكول الرسائل المباشرة الأصلي لـ Nostr، لكنه يحتوي على العديد من مشاكل الأمان الحرجة التي تجعله غير مناسب للاتصال الخاص الحقيقي.

المقارنة: NIP-04 مقابل NIP-17

الميزةNIP-04NIP-17
التشفيرطبقة واحدة AES-256-CBCمزدوج الطبقات (seal + gift wrap)
بيانات المرسل الوصفيةمرئية للـ relaysمخفية عن الجميع ما عدا المستلم
بيانات المستلم الوصفيةمرئية للـ relaysمخفية عن الجميع ما عدا المستلم
محتوى الرسالةمشفرمشفر
حماية Replayلا يوجدطوابع زمنية مدمجة
Forward Secrecyلاأفضل (مفاتيح لكل رسالة)
حالة الأمانمهملموصى به
التوافقيةمدعوم على نطاق واسعدعم متزايد

المشكلة الأساسية في NIP-04

تكشف رسائل NIP-04 عن من يتحدث مع من على البلوكتشين. بينما يكون جسم الرسالة مشفرًا، يحتوي المظروف على:

# بنية حدث NIP-04 (مبسطة)
{
  "pubkey": "<sender_public_key>",      # يمكن لأي شخص رؤية من أرسل هذا
  "tags": [["p", "<recipient_pubkey>"]], # يمكن لأي شخص رؤية من استلمه
  "content": "<encrypted_content>"       # فقط المحتوى مخفي
}

وهذا يعني أن مشغلي الـ relay، ومراقبي الشبكة، وجامعي البيانات يمكنهم:

  • بناء رسوم اجتماعية تُظهر من يتواصل مع من
  • تتبع أنماط وترددات الاتصال
  • استنتاج العلاقات من توقيت الرسائل

يحل NIP-17 هذه المشكلة عن طريق تغليف بنية الرسالة بأكملها في طبقة تشفير إضافية، مما يجعل من المستحيل رؤية معلومات المرسل أو المستلم دون مفتاح فك التشفير.

كيف يعمل NIP-17: Seal + Gift Wrap

فهم التنفيذ التقني يساعد على تقدير تحسينات الأمان.

طبقة Gift Wrap (الخارجية)

Gift wrap هو المظروف الخارجي الذي يخفي جميع البيانات الوصفية. يتم تشفيره لمفتاح “gift wrap” خاص مشتق من مفتاح المستلم العام. تحتوي هذه الطبقة على:

  • مفتاح عام عشوائي (غير مرتبط بالمرسل الحقيقي)
  • المفتاح العام للمستلم
  • طابع زمني
  • الرسالة الداخلية المختومة (sealed)

طبقة Seal (الداخلية)

داخل gift wrap يوجد seal، الذي يحتوي على الرسالة الفعلية. هذه الطبقة:

  • مشفرة باستخدام زوج مفاتيح ephemeral جديد
  • تحتوي على المفتاح العام الحقيقي للمرسل
  • تتضمن محتوى الرسالة
  • لديها طابع زمني خاص لحماية replay
التمثيل المرئي:
┌─────────────────────────────────────┐
│ Gift Wrap (الطبقة الخارجية)         │
│ ┌─────────────────────────────────┐ │
│ │ Seal (الطبقة الداخلية)          │ │
│ │ ┌─────────────────────────────┐ │ │
│ │ │ محتوى الرسالة الفعلي        │ │ │
│ │ │ المرسل: real_pubkey         │ │ │
│ │ │ الطابع الزمني: 1234567890    │ │ │
│ │ └─────────────────────────────┘ │ │
│ │ مشفر بمفتاح ephemeral           │ │
│ └─────────────────────────────────┘ │
│ مفتاح pubkey عشوائي، تلميح المستلم  │
└─────────────────────────────────────┘

الفوائد الرئيسية

  1. خصوصية البيانات الوصفية: لا يمكن لأحد غير المستلم تحديد من أرسل الرسالة أو إلى من أُرسلت
  2. عدم القابلية للربط: تظهر رسائل متعددة بين نفس الأطراف كأحداث غير مرتبطة للمراقبين
  3. Forward Secrecy أفضل: تستخدم كل رسالة مفاتيح ephemeral فريدة

دليل الترحيل: الانتقال من NIP-04 إلى NIP-17

الترحيل إلى NIP-17 سهل مع عملاء Nostr الحديثين. إليك كيفية إجراء التبديل.

الخطوة 1: التحقق من دعم العميل

قبل الترحيل، تحقق من أن عميلك يدعم NIP-17:

العميلدعم NIP-17الحالة
Damusنعمافتراضي للـ DMs الجديدة
Amethystنعمافتراضي للـ DMs الجديدة
Primalنعممدعوم
Coracleنعممدعوم
Irisنعممدعوم
Snortنعممدعوم
Nosنعممدعوم

الخطوة 2: تمكين NIP-17 في عميلك

Damus (iOS/macOS)

  1. افتح الإعدادات → Privacy & Security
  2. انتقل إلى “Message Encryption”
  3. شغل “Use NIP-17 for new messages” على ON
  4. ستستخدم رسائلك المباشرة الجديدة NIP-17 تلقائيًا

ملاحظة: تظل رسائل NIP-04 القديمة قابلة للقراءة لكن الرسائل الجديدة تستخدم NIP-17.

Amethyst (Android)

  1. اذهب إلى الإعدادات → Messages
  2. شغل “Use NIP-17 for DMs”
  3. أعد تشغيل التطبيق للتأثير الكامل

Primal (iOS/Android/Web)

  1. انتقل إلى الإعدادات → Privacy
  2. تحت “Direct Messages”، اختر “NIP-17 (Recommended)”
  3. يتم تطبيق التغييرات فورًا على المحادثات الجديدة

الخطوة 3: التواصل مع جهات الاتصال

يعمل NIP-17 فقط إذا كان الطرفان يدعمان NIP-17. أرسل ملاحظة إلى جهات الاتصال المتكررة:

nostr:note1... # قالب رسالة الترحيل

"مرحباً! أنا أقوم بالترقية إلى NIP-17 للحصول على خصوصية أفضل في رسائلنا المباشرة.
يرجى تحديث عميل Nostr إذا لم تكن قد فعلت ذلك بالفعل.
ستكون رسائلنا المستقبلية أكثر أماناً!"

الخطوة 4: التحقق من نجاح الترحيل

للتأكد من أن NIP-17 يعمل:

  1. أرسل رسالة اختبار لنفسك أو لصديق
  2. تحقق من نوع الحدث (يجب أن يكون 1059 لـ gift wraps)
  3. ابحث عن kind: 1059 في تفاصيل الرسالة
  4. يجب أن تشير علامة p إلى مفتاح ephemeral عشوائي، وليس مفتاح صديقك الحقيقي
// مثال حدث NIP-17 (مبسط)
{
  "kind": 1059, // حدث gift wrap
  "pubkey": "<random_ephemeral_key>", // ليس المرسل الحقيقي!
  "tags": [["p", "<recipient_pubkey>"]],
  "content": "<encrypted_seal_content>"
}

أدلة الإعداد الخاصة بالعملاء

Damus

جعل Damus NIP-17 افتراضيًا للرسائل المباشرة الجديدة في الإصدارات الأخيرة. إذا كنت تستخدم إصدارًا أقدم:

  1. قم بالتحديث إلى أحدث إصدار من Damus من App Store
  2. يتم تمكين NIP-17 تلقائيًا للمحادثات الجديدة
  3. تحقق من تفاصيل الرسالة (اضغط مع الاستمرار) لرؤية شارة “NIP-17”

نصيحة احترافية: يظهر Damus أيقونة قفل مع نص “NIP-17” على الرسائل الآمنة.

Amethyst

يدعم Amethyst NIP-17 ولكنه قد يتطلب تمكينًا صريحًا:

  1. الإعدادات → Advanced → Protocol Settings
  2. شغل “NIP-17 gift wrap for DMs”
  3. سيتفاوض العميل تلقائيًا على NIP-17 مع جهات الاتصال المدعومة

ملاحظة: يعود Amethyst بأناقة إلى NIP-04 إذا لم يكن المستلم يدعم NIP-17.

Primal

لدى Primal دعم ممتاز لـ NIP-17:

  1. الإعدادات → Security & Privacy
  2. تحت “Messaging Protocol” اختر “NIP-17 (Private)”
  3. اختياري: شغل “Auto-upgrade NIP-04 conversations” لتحويل المحادثات الموجودة

أفضل ممارسات الأمان

حقق أقصى قدر من خصوصيتك عند استخدام NIP-17:

1. تحقق من دعم العميل قبل الاتصال الحساس

تحقق دائمًا من أن جهة اتصالك تستخدم عميلًا يدعم NIP-17 قبل مشاركة معلومات حساسة. إرسال NIP-17 إلى عميل يدعم NIP-04 فقط سيؤدي إلى رسائل غير قابلة للقراءة.

2. لا تخلط البروتوكولات في نفس المحادثة

تجنب الارتباك باستخدام بروتوكول واحد لكل محادثة. إذا بدأت بـ NIP-04، أكمل بـ NIP-04، أو أشر بوضوح عند التبديل.

3. استخدم مفاتيح جديدة للمحادثات عالية الأمان

للحصول على أقصى قدر من الأمان:

  • أنشئ زوج مفاتيح مخصص للاتصال الحساس
  • شارك المفتاح العام من خلال قناة آمنة خارج النطاق
  • قم بتدوير المفاتيح بشكل دوري

4. كن على دراية بالبيانات الوصفية في أنواع الأحداث الأخرى

يحمي NIP-17 فقط الرسائل المباشرة. لا تزال أنواع الأحداث الأخرى (ملاحظات، تفاعلات، متابعات) تكشف عن بيانات الرسم الاجتماعي. استخدم هويات متعددة للتجزئة.

5. اختر Relays تركز على الخصوصية

حتى مع NIP-17، أنماط حركة المرور الخاصة بك مرئية للـ relays. استخدم:

  • Tor أو VPN للخصوصية الإضافية على مستوى الشبكة
  • Relays التي لا تسجل أو تحتفظ ببيانات الرسائل الوصفية
  • Relays متعددة لتوزيع حركة المرور الخاصة بك

6. فهم القيود

يوفر NIP-17 خصوصية ممتازة لكنه ليس مثاليًا:

  • لا يزال بإمكان الـ relays رؤية عناوين IP (استخدم VPN/Tor)
  • يمكن لتحليل التوقيت كشف أنماط الاتصال
  • يمكن للعملاء المخترقين تسريب المعلومات
  • المستلم دائمًا يرى هوية المرسل

استكشاف الأخطاء وإصلاحها

”تظهر الرسائل غير قابلة للقراءة أو هراء”

السبب: المستلم لا يدعم NIP-17 الحل: اطلب من المستلم تحديث عميله، أو انتقل مؤقتًا إلى NIP-04

”لا يمكن رؤية ما إذا كان شخص ما قرأ رسالتي NIP-17”

السبب: إيصالات القراءة غير موحدة لـ NIP-17 بعد الحل: هذا السلوك المتوقع. يعطي NIP-17 الأولوية للخصوصية على تأكيد التسليم.

”تظهر الرسائل بترتيب غير صحيح”

السبب: اختلاف الساعة بين الأجهزة الحل: تأكد من أن وقت جهازك متزامن (شغل المزامنة التلقائية للوقت)

“يرفض Relay أحداث NIP-17”

السبب: برنامج relay قديم الحل:

  1. تحقق من NIPs المدعومة للـ relay
  2. أضف relays حديثة تدعم NIP-17
  3. أبلغ مشغل relay

”يظهر العميل خيارات NIP-04 و NIP-17”

السلوك المتوقع: يدعم العديد من العملاء كليهما خلال فترة الانتقال. اختر دائمًا NIP-17 عندما يكون متاحًا.

مستقبل الرسائل الخاصة في Nostr

NIP-17 هو المعيار الذهبي الحالي للرسائل الخاصة في Nostr، لكن التطوير مستمر:

  • NIP-44: نظام تشفير محسن قد يحل محل NIP-17
  • تشفير المجموعات: يتم تطوير بروتوكولات الرسائل الخاصة للمجموعات
  • تكامل المدفوعات: رسائل خاصة مع مدفوعات Lightning

ابقَ على اطلاع بمتابعة:

  • nostr:npub1… # تطوير بروتوكول Nostr
  • nostr:npub1… # أفضل ممارسات الأمان

الخلاصة

يمثل NIP-17 خطوة كبيرة إلى الأمام للخصوصية في Nostr. من خلال معالجة مشاكل تسرب البيانات الوصفية في NIP-04، يتيح الرسائل المباشرة الخاصة الحقيقية التي تحمي كل المحتوى وأنماط الاتصال.

عملية الترحيل سهلة: قم بتحديث عميلك، تحقق من أن جهات اتصالك تدعم NIP-17، واستمتع بخصوصية محسّنة. مع توفر الدعم الواسع للعملاء بالفعل، لا يوجد سبب لمواصلة استخدام بروتوكول NIP-04 المهمل.

المهام العملية:

  1. ✅ قم بتحديث عميل Nostr إلى أحدث إصدار
  2. ✅ شغل NIP-17 في الإعدادات
  3. ✅ تحقق مع جهات الاتصال أنها تدعم NIP-17
  4. ✅ ابدأ في استخدام NIP-17 لجميع المحادثات الخاصة الجديدة

تذكر: الخصوصية هي ممارسة، وليست منتجًا. يمنحك NIP-17 الأدوات - استخدمها بحكمة.


اختبر معرفتك بـ NIP-17

جاهز للتحقق من فهمك للمراسلة الآمنة؟

NIP-17 Private Messages Quiz

NIP-17 Purpose

Question 1 of 5

0/5 answered
What is NIP-17?
P0 Critical

آخر تحديث: 11 فبراير 2025

لديك أسئلة؟ انضم إلى النقاش على Nostr أو افتح issue في مستودع التوثيق هذا.