الأمان، خطوة بخطوة

كيف تعمل وصلة

سبعة رسوم توضيحية بالترتيب الذي تقابلها به: الإعداد، وإضافة شخص، والمحادثة، والإرسال وهو غير متصل، والمكالمات، والمجموعات، والاحتفاظ بمحادثاتك. للنسخة المبسّطة انظر كيف تحافظ وصلة على أمانك. المصطلحات التقنية تُترك بالإنجليزية.

1. الإعداد: حسابك يعيش على هاتفك

لا رقم هاتف، ولا حساب على خادم. مفاتيحك تُصنع على هاتفك ولا تغادره أبدًا.

الهوية من عبارة BIP-39 (Ed25519)؛ المفاتيح في Keychain / Keystore؛ قاعدة البيانات بـSQLCipher؛ الوسائط بـAES-256-GCM.

1حسابك يُصنع على هاتفك

عند التشغيل الأول، يختار هاتفك 12 كلمة عشوائية. كل شيء آخر يُحسب منها، على الهاتف.

12 كلمة عشوائيةعبارة الاسترداد
←
البذرةBIP-39
←
مفتاح الهويةEd25519، خاص، يبقى على الهاتف
←
معرّف وصلةالنصف العام، آمن للمشاركة
لا حاجة إلى رقم هاتف أو بريد أو كلمة مرور، ولا ينشئ الخادم حسابًا لك أبدًا. اكتب الكلمات الاثنتي عشرة: إنها السبيل الوحيد للعودة.

2مفاتيح في عتاد آمن

Keychain (iPhone) · Keystore (Android)
مفتاح الهويةمن أنت
مفتاح التخزينعشوائي، 256 بت
لا تستطيع التطبيقات الأخرى قراءتها، ولا تدخل أبدًا في نسخة احتياطية. لا يستعيد هاتف جديد هويتك إلا من كلماتك الاثنتي عشرة.

3ثلاث طبقات من التشفير

قاعدة البيانات كاملةSQLCipher، بمفتاح من مفتاح التخزين
نص الرسائل والتعليقات والاقتباساتمشفّرة مجددًا، حقلًا حقلًا
الصور والملاحظات الصوتيةAES-256-GCM، بشكل أصلي

4أقفال وشاشات خصوصية

  • قفل التطبيق ببصمة الوجه أو الإصبع
  • المحادثات مخفية في مبدّل التطبيقات
  • يمكن إخفاء معاينات الرسائل من شاشة القفل
  • تُنسخ عبارة الاسترداد لوقت قصير فقط
  • iPhone: تُستثنى قاعدة البيانات من نسخ الجهاز الاحتياطية

5فحوصات قبل الإرسال

قبل تشفير رسالة، تبحث وصلة عن أشياء قد تندم على مشاركتها، على الهاتف فقط.

عبارات الاستردادأرقام البطاقاتIBANكلمات المروررموز لمرة واحدة
لا يُرفع شيء ولا تشارك أي خدمة ذكاء اصطناعي.

2. إضافة الناس

لا يستطيع أحد الوصول إليك حتى توافق، ولا يرى الغرباء حتى أنك موجود.

طلبات موقّعة (Ed25519)، أسماء مختومة بـnacl.box، "اعثر عليّ" محفوظ كبصمات HMAC-SHA256.

1معرّفك هو مفتاحك العام

شاركه كرابط دعوة أو رمز QR. الجزء بعد # لا يصل إلى أي خادم أبدًا.

https://api.waslachat.app/add#id=…&n=…&k=…
رابط دعوةرمز QRالبريد (إن كان قابلًا للعثور عليه)

2طلب موقّع ومختوم

الطلب موقّع من مرسله. اسمه بالداخل مختوم فلا تقرؤه إلا أنت، ومحشوّ فلا يكشف طوله شيئًا.

أحمد
←
طلب موقّعالاسم مختوم · صالح 7 أيام
←
سارة
لا يستطيع الخادم تزوير طلب، أو تغيير الاسم، أو تحويل "لا" إلى "نعم".

3لا شيء حتى تقبل

طلبلا رسائل، لا مكالمات
←
مقبولالآن يمكنكما الحديث
يظهر "متصل" فقط بين من أضافوا بعضهم. لا يستطيع غريب معرفة ما إذا كان معرّف موجودًا.

4"اعثر عليّ" بالبريد (اختياري)

تثبت البريد برمز. يحتفظ الخادم ببصمة وتلميح مقنّع، لا بالعنوان أبدًا.

stored = HMAC-SHA256(secret server key, email)
shown = "a***@gmail.com"
الرمز نفسه يُحفظ مجزّأً لمدة 10 دقائق فقط.

5البحث عن شخص

يكتب أحدهم البريد
←
البصمة نفسهايحسبها الخادم
←
معرّف وصلةفقط إن كان قابلًا للعثور عليه
عمليات البحث محدودة لكل شخص ولكل شبكة ولكل يوم، فلا يستطيع أحد مسح القائمة.

6التحقق وجهًا لوجه

يعرض الهاتفان رقم الأمان نفسه المكوّن من 60 رقمًا، مصنوعًا من المعرّفين. قارناه وجهًا لوجه أو في مكالمة.

31415 92653 58979
32384 62643 38327
95028 84197 16939
93751 05820 97494
=
31415 92653 58979
32384 62643 38327
95028 84197 16939
93751 05820 97494
إن تطابقا، فلا أحد يجلس بينكما.

3. المحادثة: التشفير التام بين الطرفين

هاتفان. سرّ لا يُرسل أبدًا. هاتف سارة وحده يقرأ ما يكتبه أحمد.

أحمد وسارة مثال. مبني بـEd25519 وX25519 وHKDF-SHA256 وسقّاطة HMAC وXSalsa20-Poly1305.

1كل هاتف يصنع زوج مفاتيح جديدًا

كلما بدأ هاتفان الحديث، يصنع كل منهما زوج مفاتيح مؤقتًا جديدًا تمامًا، يُحفظ في الذاكرة فقط.

هاتف أحمد
المفتاح الخاص aلا يغادر الذاكرة أبدًا
هاتف سارة
المفتاح الخاص bلا يغادر الذاكرة أبدًا
مفاتيح هويتهما الدائمة (المصنوعة من الكلمات الاثنتي عشرة) تبقى في Keychain / Keystore. المفاتيح المؤقتة وحدها تُستخدم للرسائل.

2توقيع، ثم تبادل

يوقّع كل هاتف مفتاحه العام المؤقت بمفتاح هويته الدائم. تذكر المذكرة الموقّعة ممن هي، ولمن، ومتى، ورقمًا عشوائيًا.

أحمد
مذكرة موقّعة
الخادميمرّرها
مذكرة موقّعة
سارة
sign(identity key, "wasla-kx-v2 | from | to | A | time | nonce")
تتحقق سارة من التوقيع مقابل معرّف وصلة لأحمد (المعرّف هو مفتاحه العام)، ومن أنه أحدث من 5 دقائق ولم يُرَ من قبل. المفتاح المستبدل يفشل.

3الهاتفان يحسبان السرّ نفسه

بـX25519، يمزج كل هاتف مفتاحه الخاص بالمفتاح العام للآخر. فيحصلان على النتيجة نفسها. ولا تُرسل أبدًا.

X25519(a, B)على هاتف أحمد
X25519(b, A)على هاتف سارة
↓ ↓
السرّ المشترك نفسه Sلا يُرسل أبدًا
من يرى A وB لا يستطيع استنتاج S. تلك رياضيات X25519.

4سلسلتان باتجاه واحد

يمرّ السرّ عبر HKDF مع المعرّفين والمفتاحين العامين. فيخرج مفتاحا سلسلة، واحد لكل اتجاه.

S
←
HKDF-SHA256"wasla-session-v2" · المعرّفان · A · B
↓ 96 بايت
أحمد ← سارةمفتاح سلسلة، 32 بايت
سارة ← أحمدمفتاح سلسلة، 32 بايت
يُمسح S من الذاكرة مباشرة بعدها.

5مفتاح جديد لكل رسالة

كل سلسلة سقّاطة لا تدور إلا للأمام. تحصل كل رسالة على مفتاحها، ويُحذف بعد الاستخدام.

مفتاح السلسلة CKn
↓HMAC-SHA256
مفتاح الرسالةHMAC(CK, 0x01)
يُستخدم مرة ثم يُمسح
مفتاح السلسلة التاليHMAC(CK, 0x02)
يحل محل القديم
العودة إلى الوراء مستحيلة، فلا يفتح مفتاح سُرق اليوم رسائل أقدم.

6مقفلة ومختومة ضد العبث

تُشفَّر الرسالة بـXSalsa20 وتُختم بـPoly1305. أي تغيير في الطريق يكسر الختم.

"مرحبًا سارة"
↓
تشفير XSalsa20 · ختم Poly1305بمفتاح هذه الرسالة
↓
نص مشفّر+ علامة + عدّاد
  1. يصنع هاتف سارة مفتاح الرسالة نفسه من نسخته من السلسلة.
  2. يتحقق من الختم أولًا.
  3. عندها فقط يفك التشفير. الختم المكسور يعني أن الرسالة تُرمى.

7لا تكرار، بأي ترتيب

تحمل كل رسالة عدّادًا. تُرفض النسخ، وتُفتح الرسائل المتأخرة.

#1#3#2#2
#2 تصل متأخرةتُفتح بمفتاح محفوظ
#2 مجددًاتُرفض كتكرار
يمكن فتح حتى 1,000 رسالة متخطاة لاحقًا؛ تُحفظ مفاتيحها حتى ذلك الحين فقط.

8من هاتف إلى هاتف، لا عبر خادم

بعد المصافحة، تنتقل الرسائل المختومة عبر اتصال مباشر مشفّر (WebRTC) بين الهاتفين.

أحمد
رسائل مختومة
سارة
الخادمليس على هذا المسار
الإيصالاتالكتابةالحالاتالاسم والصورةإعداد المكالمة
ما زال الخادم يعرف أن معرّفي وصلة اتصلا، ومتى. لا يرى ما يقولانه أبدًا.

9تنتهي الجلسة، تختفي المفاتيح

تعيش الجلسات في الذاكرة فقط. حين تُغلق وصلة أو ينقطع الاتصال، تُمسح كل المفاتيح المؤقتة. وفي المرة التالية تبدأ مصافحة جديدة.

جلسة مفتوحةمفاتيح مؤقتة قيد الاستخدام
↓
التطبيق مغلق / غير متصل
↓
كل المفاتيح مُسحتلا شيء يُسرق لاحقًا
لا تحتوي نسخة الهاتف الاحتياطية مفاتيح رسائل أبدًا، ومن يسرق الكلماتِ الاثنتي عشرة لاحقًا لا يستطيع فتح محادثات سابقة سجّلها.
سرّيةالهاتفان وحدهما يقرآن الرسالة.
موثوقةالمفاتيح الموقّعة تثبت مع من تتحدث.
محمية من العبثأي تغيير يكسر الختم.
سرية أماميةالرسائل القديمة تبقى آمنة إن تسرّب مفتاح.
خادم أعمىالخادم لا يملك مفتاحًا أبدًا.

4. حين يكون تطبيق صديقك مغلقًا

كل طريقة تصل بها رسالة إلى هاتف غير مفتوح، ولا تسمح أي منها لأحد بقراءتها أو تحفظها على خادم.

الإشعارات المختومة والصور المجلوبة تستخدم X25519 وHKDF-SHA256 وChaCha20-Poly1305 وتوقيع Ed25519، الأدوات نفسها المضمّنة في CryptoKit من Apple.

1أي طريق تسلك؟

تطبيق سارة مفتوح؟
نعم
من هاتف إلى هاتفانظر المحادثة
لا ↓
نص قصير؟
نعم
إشعار مختوماللوحة 2
لا ↓
صورة أو ملاحظة صوتية أو نص طويل؟
نعم
معاينة في الإشعار، والباقي يُجلب فور الوصولاللوحة 4
أحمد غير متصل أيضًا ↓
تنتظر على هاتف أحمداللوحة 5

2مختومة داخل إشعار

النصوص القصيرة (نحو 1,500 حرف لاتيني أو 800 حرف عربي) تركب داخل الإشعار، مختومة لمفتاح تسليم سارة.

eph = new X25519 key
key = HKDF(X25519(eph, Sara), "wasla-push-v1")
box = ChaCha20-Poly1305(key, message + Ahmed’s signature)
يُصنع مفتاح جديد لكل إشعار، وتوقيع أحمد بالداخل يثبت أن الرسالة له فعلًا.
يُستبدل مفتاح تسليم سارة كل أسبوع وتُحذف القديمة بعد أسبوعين، فلا يفتح مفتاح سُرق يومًا ما إشعارات من زمن بعيد.

3Apple وGoogle تحملانه فقط

أحمد
Apple / Googleخدمة الإشعارات
سارة
  • أن إشعارًا وصل
  • حجمه
  • من أرسله
  • ما يقول
يفتحه iPhone في امتداد صغير يملك المفتاح؛ ويفتحه Android في وصلة. ويمكن إيقاف معاينات الرسائل.

4يُجلب فور الوصول

يرسل أحمد صورة وتطبيق سارة مغلق. يجلب الإشعار معاينة ضبابية. وفي اللحظة نفسها، يفتح هاتف سارة اتصالًا مباشرًا قصيرًا بهاتف أحمد، الذي غالبًا ما يزال في وصلة، فتأتي الصورة مباشرة من هاتفه، مختومة لسارة. الخادم يعرّف الهاتفين فقط؛ والصورة لا تمرّ عبره أبدًا.

أحمدما زال في وصلة
اتصال مباشرالصورة من هاتف إلى هاتف
سارةالتطبيق مغلق
  1. معاينة. يصل إشعار مختوم إلى هاتف سارة: ممن هو، ونسخة ضبابية صغيرة من الصورة.
  2. تعريف. يرسل هاتف سارة إلى هاتف أحمد عرض اتصال لـ"الصورة 42" عبر الخادم، الذي يتحقق أنهما جهتا اتصال. يجيب هاتف أحمد بالطريقة نفسها.
  3. اتصال. يفتح الهاتفان اتصالًا مباشرًا مشفّرًا ببعضهما.
  4. ختم وإرسال. يتحقق هاتف أحمد أنها صورته إلى سارة فعلًا، ويختمها لمفتاح سارة مع توقيعه بالداخل، ويرسلها مباشرة إلى هاتفها. ثم يُغلق الاتصال.
  5. فتح. يتحقق هاتف سارة من توقيع أحمد ويفتحها. تظهر الصورة الحقيقية في الإشعار، وتكون في المحادثة حين تفتح وصلة.
على iPhone، يفعل امتداد إشعارات وصلة الصغير هذا بنفسه خلال ثوانٍ، بتذكرة جلب لا تسمح إلا بهذا الشيء الواحد. وإن تعذّر على الهاتفين الاتصال مباشرة (بعض الشبكات الصارمة)، لا تُرسل الصورة بطريقة أخرى: تنتظر على هاتف أحمد حتى يتصل الاثنان (اللوحة 5).

5إن كان أحمد غير متصل أيضًا

إن أرسلها أحمد وأغلق وصلة فورًا، فلا يستطيع هاتفه الإجابة. تبقى الصورة على هاتفه، مشفّرة، حتى يتصل الهاتفان، ثم تذهب من هاتف إلى هاتف. وتستطيع سارة الضغط عليها لتطلب من هاتف أحمد الاستيقاظ.

أحمديحتفظ بها
←
إشعار إيقاظبلا محتوى، بلا مرسل
←
سارةتصلها حين يتصل الاثنان
لا شيء ينتظر على أي خادم. ترى سارة المعاينة فورًا؛ وتتبعها الصورة الكاملة حين يكون الهاتفان متاحين.
بينما يجمعها هاتف سارة، تقول محادثة أحمد "جارٍ التسليم… أبقِ وصلة مفتوحة لحظة". وإن غادر وصلة رغم ذلك، يطلب هاتف iPhone بضع ثوانٍ إضافية لإنهائها.

6ما يحتفظ به الخادم

الرسائل والصور والملاحظات الصوتيةلا شيء
صورة مجلوبةلا تمرّ عبره أبدًا
علامة "لدى أحدهم رسالة لك"24 ساعة، بلا محتوى
تذكرة الجلب لـiPhoneبصمة فقط
ملاحظات "استُلمت" (العلامات)تُمرَّر مختومة، لا تُحفظ

7علامات رمادية وزرقاء

العلامات إيصالات من هاتف سارة، مشفّرة كالرسائل. لا تحتاج إلى فتح التطبيقين في الوقت نفسه.

أحمديرى العلامات
"استُلمت" / "قُرئت" مختومة
سارةالتطبيق مغلق أو مفتوح
  1. استُلمت، فورًا. حين تصل رسالة أحمد إلى هاتف سارة عبر إشعار، يرسل هاتفها ملاحظة "استُلمت" قصيرة عبر الخادم، مختومة: لا يستطيع الخادم قراءتها أو معرفة أي رسالة تخص. يرى أحمد علامتين رماديتين خلال ثوانٍ.
  2. داخل كل رد. تحمل كل رسالة ترسلها سارة أحدث إيصالاتها داخل محتواها المشفّر. وحين تردّ، حتى عبر إشعار، تلحق علامات أحمد.
  3. قُرئت. علامات زرقاء فقط إن كانت إشعارات القراءة مفعّلة لدى سارة؛ والرد لا يجعلها زرقاء وإلا.
لا يستطيع أحد تزوير علامة: يوقّع تطبيق سارة ملاحظاتها، وامتداد إشعارات iPhone لديها، الذي لا يملك مفتاح هويتها أبدًا، يثبتها بمفتاح لا يستطيع حسابه إلا هاتفها وهاتف أحمد.

5. المكالمات: صوت وفيديو ومشاركة شاشة

الخادم يرنّ الهاتف. والمكالمة نفسها تذهب مباشرة بين الهاتفين.

الإشارات داخل القناة المشفّرة بين الطرفين؛ الصوت والفيديو والشاشة بـWebRTC DTLS-SRTP؛ العناوين من STUN العام. لا خادم TURN وسيط.

1الرنين

تنتقل الدعوة داخل المحادثة المشفّرة. وإن كان هاتف سارة نائمًا، يوقظه الخادم بإشعار مختوم.

أحمد
الخادمإيقاظ فقط
سارةيرنّ
iPhone: شاشة CallKitAndroid: مكالمة بملء الشاشة

2لا شيء يعمل قبل القبول

يرنّالكاميرا مغلقة · الميكروفون مغلق
←
قبولثم الكاميرا والميكروفون
تُفحص الأذونات قبل أن ترنّ مكالمة أو يُرد عليها، فلا تفشل مكالمة بصمت أبدًا.

3إيجاد مسار

يسأل كل هاتف خدمة عناوين عامة (STUN) عن عنوانه على الإنترنت، ثم يشارك الجواب داخل المحادثة المشفّرة.

الهاتف
↔
STUN"ما عنواني؟"
يرى STUN طلب عنوان، لا المكالمة أبدًا.

4الاتفاق على مفتاح المكالمة

يسافر إعداد المكالمة، بما فيه بصمة DTLS لكل هاتف، داخل القناة المشفّرة بين الطرفين فقط. ثم يجري الهاتفان مصافحة DTLS لصنع مفاتيح المكالمة (SRTP).

الإعداد + البصماتمشفّرة بين الطرفين
←
مصافحة DTLSمفاتيح المكالمة تُصنع على الهاتفين
لا يستطيع خادم دسّ بصمة خاصة به، فلا يستطيع أحد الجلوس في المنتصف.

5صوت وفيديو، من هاتف إلى هاتف

أحمد
SRTP، مشفّر
سارة
فيديو ≤ 800 kbpsمؤشرات الجودةلا خادم في المنتصف
من دون خادم وسيط، لا تستطيع بعض الشبكات الصارمة الاتصال من هاتف إلى هاتف. تعرض وصلة "تعذّر الاتصال" بدلًا من تمرير مكالمتك عبر خادم.

6أثناء المكالمة

  • تغيّر الشبكة (Wi-Fi ↔ بيانات): تعاود الاتصال حتى 45 ثانية
  • صوت ← فيديو: يُعاد التفاوض داخل المحادثة المشفّرة
  • مكالمة هاتفية واردة: يرى الطرفان "قيد الانتظار"
  • مكالمة وصلة أخرى: شريط "مكالمة منتظرة" هادئ
  • مغادرة شاشة المكالمة أو التطبيق: تستمر المكالمة في نافذة عائمة
  • انتهاء المكالمة: تُتلف المفاتيح وتُسمع نغمة قصيرة

7مشاركة شاشتك

تُحجز قناة فيديو ثانية عند إعداد كل مكالمة، فتبدأ المشاركة وتتوقف دون إعادة تفاوض، محمية بمفاتيح DTLS-SRTP نفسها. على iPhone يلتقط امتداد بث الشاشة ويسلّم الإطارات إلى وصلة عبر مقبس محلي في مجلد التطبيق الخاص؛ وعلى Android يُستخدم MediaProjection النظامي.

اضغط "مشاركة"ثم أكّد في نافذة النظام
←
شريط ظاهر طوال الوقتضغطة واحدة توقفها
←
الشاشة إلى الهاتف الآخرمشفّرة كالكاميرا
لا يُعلن شيء للطرف الآخر قبل أن يبدأ البث فعلًا، ولا يمرّ شيء عبر خادم.

6. المجموعات: مجموعة تعيش على هواتف الأعضاء فقط

لا توجد مجموعة على الخادم. العضوية سجل موقّع يتحقق منه كل هاتف بنفسه؛ وكل رسالة موقّعة من كاتبها.

توقيعات Ed25519 على كل تغيير ورسالة؛ سلسلة تجزئة للتغييرات؛ SHA-256 لكل ملف؛ القنوات المشفّرة والإشعارات المختومة نفسها كالمحادثات الفردية.

1العضوية سلسلة من التغييرات الموقّعة

1 إنشاءموقّع من أحمد
←
2 إضافة سارةموقّع من أحمد
←
3 سارة تنضم"نعم" موقّعة من سارة نفسها
←
4 إعادة تسميةموقّع من مشرف
يسمّي كل تغيير سابقه. يطوي كل هاتف السلسلة بالطريقة نفسها، فيتفق الجميع على من هو عضو، والمشرفون وحدهم يكتبون فيها. لا أحد في مجموعة دون "نعم" موقّعة منه.

2كل رسالة موقّعة من كاتبها

المجموعة · المعرّف · الكاتب · الوقت · النص
←
Ed25519مفتاح هوية الكاتب
←
رسالة موقّعة
يستطيع أي عضو تمرير رسالة إلى عضو كان غائبًا؛ وتبقى حاملة توقيع كاتبها، فلا يمكن تغييرها أو تزويرها أو نقلها إلى مجموعة أخرى. بصمة الصورة (SHA-256) موقّعة، فيمكن أن يأتي الملف من أي من يملكه.

3تُرسل إلى كل عضو، من هاتف إلى هاتف

أحمد
نسخة مختومة لكل عضو
سارة، عمر…
يربط الخادم هواتف الأعضاء تمامًا كما يربط جهات الاتصال؛ ولا يعرف أبدًا أنها تشكّل مجموعة. العضو غير المتصل يصله إشعار مختوم واحد، كرسالة فردية.

4التفاعلات والتعديلات والحذف موقّعة أيضًا

التفاعل أو التعديل أو "الحذف للجميع" رسالة موقّعة صغيرة تسمّي الرسالة التي تغيّرها. يطبّقها كل هاتف فقط إن كان التوقيع للشخص الصحيح: الجميع يتفاعلون، والكاتب وحده يعدّل أو يحذف. لا تُرسل أبدًا كإشعارات؛ تصل حين تتصل الهواتف مجددًا.

5الغرباء يبقون معلَّمين

العضو الذي ليس من جهات اتصالك يظهر كـ~ اسمه، لا باسم من جهات اتصالك أبدًا، فلا يستطيع أحد انتحال شخصية من تعرفه. لا يستطيع هاتفه إرسال سوى رسائل المجموعة إلى هاتفك؛ أما الحالات والمكالمات والرسائل الفردية فتبقى لجهات الاتصال فقط.

6اللحاق بالركب

  1. يتصل هاتفا عضوين ويتبادلان ما لديهما: إصدار السلسلة ومعرّفات الرسائل الأخيرة
  2. يطلب كل منهما ما ينقصه، ويرسل ما ينقص الآخر
  3. إن غيّر مشرفان المجموعة في اللحظة نفسها، تختار القاعدة نفسها على كل هاتف فائزًا ويُعاد التغيير الآخر

7. الاحتفاظ بمحادثاتك: النسخ الاحتياطي والهواتف الجديدة

كلماتك الاثنتا عشرة هي المفتاح الوحيد. تخزّن Apple وGoogle صناديق لا تستطيعان فتحها.

HKDF-SHA256 من عبارة الاسترداد؛ XSalsa20-Poly1305؛ أسماء ملفات HMAC؛ عمليات نقل مختومة بمفتاح لا ينتقل إلا عبر الكاميرا.

1مفتاح نسخ احتياطي من كلماتك الاثنتي عشرة

12 كلمة
←
البذرة
←
HKDF"wasla-backup-v1"
مفتاح المحتوىيشفّر
مفتاح الأسماءيشوّش أسماء الملفات
منفصل عن مفتاح هويتك: مفتاح النسخ الاحتياطي لا يستطيع التوقيع أو قراءة الرسائل.

2مختوم على الهاتف

المحادثات والصور
←
محشوّة إلى أحجام ثابتةالأحجام تكشف القليل
←
XSalsa20-Poly1305
لا تغادر الهاتف إلا الملفات المختومة.

3محفوظ حيث تختار

هاتفك
←
Google Drive مجلد تطبيق مخفي
iCloudاسم الملف: a7f3c9e1….bin
تطلب وصلة من Google مجلدها المخفي فقط، لا ملفاتك الأخرى.

4الاستعادة

  1. ثبّت وصلة، واختر "لديّ عبارة استرداد"
  2. تعيد الكلمات الاثنتا عشرة بناء هويتك ومفاتيح النسخ الاحتياطي
  3. تنزّل وصلة الملفات المختومة، وتتحقق من كل ختم، ثم تفتحها

5الانتقال بين الهواتف مباشرة

يعرض الهاتف الجديد رمز QR يحمل مفتاحًا عشوائيًا 256 بت. لا ينتقل إلا عبر الكاميرا.

الهاتف الجديديعرض QR
→→
الهاتف القديميمسحه
QR = wasla://transfer#r=room&k=secret

6النقل نفسه

القديم
رسائل مختومة ومرقّمة
الجديد
الخادميقرن الغرفة فقط
تُختم كل رسالة بمفاتيح من سرّ رمز QR وتُرقَّم، فلا يستطيع الخادم قراءة شيء أو تغييره أو تكراره أو إعادة ترتيبه.