الأمان والإفصاح المسؤول
هذه ترجمة. إذا اختلفت عن الصفحة الإنجليزية فالنص الإنجليزي هو المعتمد.
لم يُجرَ أي تدقيق أمني مستقل لـYapmesh حتى الآن. البروتوكول مكتوب والمكتبة الأساسية علنية حتى يمكن إجراء تدقيق. وإلى أن يحدث ذلك، تعامل مع Yapmesh على أنه واعد، لا مُثبَت.
ما يحميه Yapmesh
- محتوى الرسائل المباشرة والرسائل الصوتية والملفات الخاصة والمكالمات والإيصالات. مختوم بمفتاح المستلم. يوفّر Double Ratchet على طريقة Signal السرية الأمامية والتعافي من اختراق مفتاح الجلسة، وتجعل مفاتيح X3DH المسبقة أولَ رسالة إلى جهة اتصال متمتعة بالسرية الأمامية أيضًا. وإيصالات التسليم والقراءة مختومة كالرسائل، فلا يستطيع المرحّل التمييز بينها. وأصالة المرسِل هي توقيع الإطار.
- محتوى المجموعات الخاصة والمسيّجة. مشفّر بمفتاح الحقبة الحالية للمجموعة؛ ولكل مرسِل سلسلة مفاتيحه الخاصة في كل حقبة، فلا يفتح مفتاح رسالة واحد الرسائل التي قبلها. وتُشفَّر الملفات قبل تقطيعها إلى أجزاء. والعضو الذي يغادر، أو يُزال، أو يخرج من السور، لا يحصل أبدًا على المفتاح التالي.
- من كتب رسالة المجموعة، أمام الغرباء عنها. تحمل رسائل المجموعة اسمًا مستعارًا للمرسِل يتغير مع كل مفتاح للمجموعة، وإثبات من كتبها موجود داخل التشفير، فيرى المرحّل من خارج المجموعة غريبًا مختلفًا في كل حقبة، ولا يرى مفتاح العضو أبدًا. أما إعلانات المجموعة نفسها (قائمة الأعضاء، وتغييرات المفاتيح) فلا تزال تسمّي من أصدرها.
- صورتك. مختومة لجهات اتصالك فقط؛ ولا يتسلّمها أحد غيرهم.
- من في المجموعة. العضوية قائمة أعضاء موقّعة؛ والانضمام إلى مجموعة خاصة يحتاج إلى إثبات من سر الدعوة؛ وإزالة المشرف لعضو حظرٌ موقّع.
- مع من تتحدث. رقم أمان من 60 خانة، يُحسب تمامًا كما في Signal، يمكن مقارنته وجهًا لوجه أو مسحه؛ والمفتاح المتغير يُعرَض ولا يُخفى. وبطاقة جهة الاتصال التي يمرّرها صديق تصل معلَّمة بأنها غير موثَّقة إلى أن تتحقق منها.
- سلامة كل شيء. كل إطار موقّع؛ والإطار المزوَّر أو المعدَّل يُتخلَّص منه قبل النظر فيه. وكل جزء من ملف يُتحقق منه مقابل جذر Merkle للملف قبل تخزينه. ولا يُحترم "الحذف لدى الجميع" إلا إذا صدر عن مفتاح المرسِل الأصلي.
- كل ما هو مخزّن. المحادثات وجهات الاتصال والمجموعات والحمولة والحضور والأصوات وحالات الحظر والبلاغات مشفّرة على الهاتف بمفتاح بيانات عشوائي يغلّفه مخزن المفاتيح العتادي. ومفاتيح الهوية والجلسات تعيش في التخزين الآمن لأندرويد.
- الوصول عبر الإنترنت، حين تستخدمه. ترى المرحّلات وسمًا مشتقًا من مفاتيح يتشاركها الطرفان مسبقًا، يتبدّل كل ساعة، ومفتاحًا من جهة المرحّل يُشتق من جديد كل يوم؛ والإشارات مختومة وموقّعة؛ والإطارات التي تُمرَّر عبر مرحّل مختومة كأي إطار مباشر. ولا يستطيع المرحّل أن يقرأ، أو يزوّر، أو يجعل هاتفًا يقبل أي شيء كان مسار الاستلام العادي سيرفضه.
- أداة التثبيت (إصدار yapmesh.com). لا يُثبَّت إصدار وصل عبر الشبكة إلا إذا طابق مفتاح توقيعه مفتاح التطبيق العامل.
ما لا يحميه Yapmesh
- البيانات الوصفية أمام جار في مدى الراديو. أي هاتف في المدى يرى إشارة التحية (hello) الخاصة بك: اسم عرض (فارغ حين تختفي؛ ومعرّف مثل @yap#0421، مصنوع من مفتاحك العام، إن أخفيت اسمك عن الغرباء)، وأي الدرجات تعمل، وإصدار التطبيق، ومستوى البطارية، وأسماء جيرانك المباشرين، وأعلى مستوى حضور تستجيب عنده، ومرشّحًا بحجم 256 بايت لمعرّفات الرسائل والملفات التي يحملها هذا الهاتف بالفعل، حتى لا يرسلها الجيران مرتين. ويرى أن إطارات بحجم معين تنتقل بين مفاتيح معينة في أوقات معينة. والاختفاء يزيل اسمك من الأثير، لا وجودك.
- تحليل حركة البيانات. يرى الهاتف المرحِّل مفتاح المرسِل ومفتاح المستلم وعدد القفزات والحجم لكل إطار مباشر يحمله. ومع الوقت، يصبح من يتحدث إلى من مرئيًا لأي شخص يبقى في المدى أو يجمع سجلات هواتف كثيرة. لا يحشو Yapmesh حركة البيانات ولا يؤخرها ولا يخلطها.
- عنوان IP الخاص بك، ما دام الوصول عبر الإنترنت مفعّلًا (وهو الوضع الافتراضي). المرحّل العام، ووسيط MQTT، وخادم STUN، وموزّع إشعارات الدفع، وصندوق البريد (spool)، وجهة الاتصال التي تتصل بها مباشرةً، يعرف كلٌّ منهم عنوان IP الذي يستخدمه هاتفك، ويستطيع المرحّل أن يعدّ كم مرة يكون وسم ما نشطًا. والحل لذلك هو Tor، وهو موصوف في المواصفات لكنه غير مبني. والمفتاح الرئيسي مفعّل افتراضيًا ويمكن إيقافه من القائمة ← الإعدادات ← الإنترنت؛ ووسطاء MQTT معطّلون افتراضيًا، ويمكن تعليم أي جهة اتصال بـ"الإنترنت: أبدًا".
- الهاتف المخترَق. البرمجيات الخبيثة، أو لوحة مفاتيح خبيثة، أو شخص يمسك هاتفك وهو غير مقفل، يرى ما تراه. قفل التطبيق باب على الهاتف، وليس تشفيرًا؛ وتظل الرسائل تصل وتُرحَّل وهو مقفل. والتشفير أثناء التخزين يحمي نسخة من الملفات، لا هاتفًا يعمل.
- غرفة Nearby، ومنطقة الإلقاء، والاستغاثة، والتحدث بالضغط، والمجموعات المفتوحة. هذه موقّعة ويقرؤها أو يسمعها كل من في المدى، عن قصد. ومفتاح المجموعة المفتوحة علني، وكذلك رمز الانضمام المنطوق لها. وإطارات صوت التحدث بالضغط غير موقّعة واحدًا واحدًا: فهي لا تُقبل إلا بعد بداية موقّعة من الجار نفسه، على بعد قفزة واحدة.
- ما تحمله بالفعل. تحمل إشارة التحية مرشّحًا لمعرّفات الرسائل والملفات التي يحملها هاتفك. والجار الذي يعرف معرّف رسالة أو ملف علني يستطيع أن يختبر هل يحمله هاتفك (مع نحو 3% من النتائج الإيجابية الكاذبة). ومعرّفات الرسائل المختومة لا تقول شيئًا عن محتواها.
- قناة LoRa. القناة الافتراضية في Meshtastic مشفّرة بمفتاح يملكه الجميع، فهي علنية عمليًا: رسائل غرفة Nearby عليها يقرؤها أي لوحة في المدى، والرسائل المختومة تُظهر ترويساتها لكل لوحة تمرّرها. ومفتاح القناة الخاصة يُضبط في تطبيق Meshtastic، لا في Yapmesh.
- إثباتات الحضور والأسوار الجغرافية. يمكن تزييف GPS؛ يعامل Yapmesh الموقع الوهمي على أنه خارج السور لكنه لا يستطيع كشف كل تزييف. وسور المرساة (رابط راديو بهاتف معيَّن، مع نقرة أو صوت لغرفة أو طاولة) هو النوع الذي يُوثق به في مستشفى أو مكتب.
- الدرجات المحمولة يدويًا. الرسالة المرسلة بالرسائل القصيرة مختومة، لكن شركة الاتصالات تسجّل أنك راسلت ذلك الرقم ومتى، وحيث تُسجَّل الشرائح على بطاقة هوية (في باكستان، بطاقة CNIC) فإن ذلك السجل يذكر اسمك. والرسالة المشارَكة عبر تطبيق آخر مختومة، لكن ذلك التطبيق يرى أنك شاركت نصًا. وصف القمر الصناعي ليس Yapmesh أصلًا: فهو يرسل نصًا عاديًا.
- معاينات الروابط. معطّلة افتراضيًا؛ وحين تُفعَّل، يجلب هاتفك الصفحة، فيرى الموقع عنوان IP الخاص بك. والمعاينة مأخوذة مما تقوله الصفحة عن نفسها وقد تكذب.
- الملفات الضارة. لا شيء يفحص بحثًا عن الفيروسات. يرفض التطبيق الملفات الواردة من الغرباء أو يحتجزها حسب سياستك، ويتعرّف على النوع الحقيقي للملف قبل أن يفتحه نظام التشغيل، ويحذّر باللون الأحمر من البرامج والنصوص البرمجية والأرشيفات، ويتخلص من ملفات المرسِل المحظور. ومع ذلك تستطيع جهة اتصال أن ترسل إليك شيئًا ضارًا، وتستطيع أنت أن تفتحه بعد التأكيد الثاني.
- النص المسيء. المرشّح قائمة كلمات على هاتفك، من السهل خداعه ومن السهل إيقافه. إنه مواساة، لا ضابط.
- حجب الخدمة. يستطيع هاتف أن يغرق الأثير بإطارات تبدو صالحة؛ والحصص وذاكرة "ما سبقت رؤيته" وحدود الحمل تقلّل الضرر لكنها لا تزيله. والتشويش على الراديو يوقف كل شيء. ويستطيع مرحّل أن يُسقط حركة بياناتك؛ فيُستخدم مرحّل آخر.
- لقطات الشاشة والنسخ. الاحتفاظ والأسوار و"الحذف لدى الجميع" تزيل البيانات من الهواتف الملتزمة بالبروتوكول؛ لكنها لا تستطيع منع عضو من تصوير الشاشة، ولا هاتفٍ عُبث به قبل أن يغادر.
- فقدان الهاتف. مفتاحك لا يعيش إلا على الهاتف ما لم تصنع نسخة احتياطية (24 كلمة، أو رمز أو ملف مختوم بعبارة مرور). من دون نسخة لا يوجد استرداد ويجب على جهات اتصالك التحقق من مفتاحك الجديد وجهًا لوجه؛ ومع نسخة، يستطيع أي شخص يملك النسخة وعبارة مرورها معًا، أو الكلمات الأربع والعشرين، أن يصبح أنت.
- الهاتف المُدار. على هاتف مسجَّل في مدير أجهزة تابع لمدرسة أو صاحب عمل، تستطيع تلك الجهة أن تدفع جهات اتصال ومجموعات إلى Yapmesh وأن تسمّي مديرًا قد يمسحه هاتفُه. ولا تستطيع قراءة الرسائل.
التشفير المستخدم
تواقيع Ed25519؛ واتفاق مفاتيح X25519 مع بنية الصندوق المختوم (sealed box)؛ وأسماء مستعارة للمرسِلين في المجموعات مشتقة بـHKDF لكل حقبة؛ وChaCha20-Poly1305 بمفتاح لكل حديث لصوت التحدث بالضغط (IMA ADPCM بتردد 8 كيلوهرتز)؛ وX3DH مع مفاتيح مسبقة موقّعة لمرة واحدة؛ وHKDF-SHA256 وHMAC-SHA256 في Double Ratchet؛ وChaCha20-Poly1305 لرسائل الـratchet؛ وXChaCha20-Poly1305 مع رقم nonce عشوائي من 24 بايت لصناديق المجموعات وللخزنة المخزّنة؛ وأشجار Merkle بخوارزمية SHA-256 فوق أجزاء من 16 كيبيبايت؛ ورموز حضور HMAC-SHA256 لكل حقبة من 15 دقيقة ووسوم التلاقي لكل ساعة؛ وتواقيع Schnorr على secp256k1 لمغلّف مرحّل Nostr فقط، تُشتق لكل يوم ولا تُستخدم أبدًا على إطار Yapmesh. وكلها من مكتبات لبنات أساسية مدقَّقة؛ ولا يخترع Yapmesh أي لبنات أساسية. والتفاصيل في المواصفات، الأقسام 3 و4a و5a و7 و8 و8a و8b و9، وفي نموذج التهديد.
تحفّظات على الإصدار الحالي
- الإصدارات على مكتب المطوّر موقّعة بمفتاح تطوير. لم يُنشر أي إصدار موقّع للإطلاق حتى الآن؛ والبصمة التي ستُنشر هنا يجب أن تطابق شاشة "حول" في التطبيق.
- كل ما هو معلَّم بأنه "مبني، لم يُختبر ميدانيًا بعد" في الصفحة الرئيسية اجتاز اختبارات الوحدات وجُمِّع ضمن التطبيق لكنه لم يعمل على هواتف حقيقية. وحتى هذه المراجعة يشمل ذلك الوصول عبر الإنترنت، وصناديق البريد (spools)، ودرجة LoRa، وWi-Fi Aware، والمفاتيح المسبقة، وأرقام الأمان، ومرشّح الإساءة، وسلامة الملفات، وصور جهات الاتصال، والبلاغات إلى مشرف المجموعة، والأسماء المستعارة للمرسِلين في المجموعات، ومرشّح ما يحمله الهاتف، والبلوتوث بعيد المدى، وصف القمر الصناعي. وقد أُعيد اختبار التحدث بالضغط بين هاتفين في 23 أكتوبر 2026 بعد إصلاح: وصلت 276 من 276 حزمة صوتية في تجربة نظيفة، وضاع الصوت في تجارب أخرى حين أُعيد بناء روابط الواي فاي أثناء الحديث.
- مفتاح الخزنة المغلَّف بالعتاد (StrongBox أو TEE) مبني لكنه معطّل افتراضيًا؛ وإلى أن يُفعَّل، يحمي مفتاحَ الخزنة التخزينُ الآمن في أندرويد كما وُصف أعلاه.
- كل مفكّك رسائل يُختبر بالتشويش (fuzzing) في كل إصدار؛ وجُرّبت قواعد التسليم في محاكٍ يصل إلى 200 هاتف، وفُحص أصعب سباقين بنموذج شامل، فوجد خللًا واحدًا وأُصلح. والمحاكاة ليست قياسًا.
- إصدار Play وإصدار yapmesh.com موقّعان بمفتاحين مختلفين، فلا يستطيع أحدهما تحديث الآخر.
الإبلاغ عن ثغرة
راسل hello@yapmesh.com واكتب "Security:" في بداية الموضوع، أو اتبع security.txt. اذكر ما وجدته، وكيف يمكن إعادة إنتاجه، وأي إصدار. ستتلقى إشعارًا بالاستلام خلال 72 ساعة، وردًا بالفرز (مؤكَّد أم لا، ومدى خطورته، وأي الإصدارات، وموعد مخطط للإصلاح) خلال 14 يومًا، وإصلاحًا أو تنبيهًا علنيًا خلال 90 يومًا، وشكرًا علنيًا في ملاحظات الإصدار إن رغبت. ولك حرية النشر بعد 90 يومًا، أو قبل ذلك حين يُطرح إصلاح. والسياسة الكاملة، مع الإصدارات المدعومة وقائمة المكوّنات، موجودة في SECURITY.md. لا توجد مكافآت على اكتشاف الثغرات؛ ولا توجد شركة. لم يُنشر بعد مفتاح PGP للبلاغات المشفّرة؛ وإلى أن يُنشر، فإن تبادل جهات الاتصال في Yapmesh وجهًا لوجه هو القناة المختومة الوحيدة إلينا.
الملاذ الآمن. الاختبار على هواتفك الخاصة، ومرحّلاتك الخاصة، وهذا الموقع مرحَّب به ولن نلاحقه، بشرط ألا تختبر على هواتف أشخاص آخرين، وألا تشنّ هجمات حجب الخدمة على شبكة حية، وألا تصل إلى بيانات الآخرين أو تحتفظ بها أو تشاركها.
ضمن النطاق: مواصفات البروتوكول، والمكتبة الأساسية، وتطبيق أندرويد بإصداريه، وعميل المتصفح، وحزمة المرحّل، وهذا الموقع. خارج النطاق: نظام تشغيل أندرويد، وNearby Connections في خدمات Google Play، وحزم البلوتوث والواي فاي، وبرنامج Meshtastic الثابت، والمرحّلات العامة وخوادم STUN، والهندسة الاجتماعية للأشخاص.