THREAT MODEL
نموذج الأمان
جملة واحدة تحمل التصميم كله: المهاجم الذي يستولي على الخادم بأكمله — قاعدة البيانات والأسرار والشيفرة والذاكرة الحية — لا يستطيع قراءة البريد المخزَّن فيه. كل ما يلي هو هذه الجملة، مفحوصةً.
ما الذي يُختَم
النصوص، والمرسِلون، والمستقبِلون، والمواضيع، والمعاينات، وبايتات المرفقات وأسماء ملفاتها، والمسودات، وجهات اتصالك، وكلمات المرور التي تحفظها إلى جانب أسمائك مع ملفاتها ونسخها السابقة المحفوظة للتراجع، وقائمة المرسِلين الذين تحظرهم. كل ذلك مختوم بالمشربية — هجينٌ من مخطط ما بعد الكمّ ومخطط كلاسيكي — إلى هوية خزانة نصفُها السري لا يوجد إلا داخل تبويب متصفحك المفتوح. عاملُ الاستقبال الذي يتلقى بريدك يحمل النصف العام: يستطيع أن يختم الرسائل إليك، ولا يستطيع أن يفتح واحدة أبدًا.
ممّن ندافع
المشغّل — نحن
مُدافَع ضده، وهو مركز التصميم. مفتاح بريد الخادم التاريخي دُمِّر بعد أن أُعيد ختم كل رسالة مخزّنة؛ لقطات قاعدة البيانات القديمة غير قابلة للقراءة لأن المفتاح الذي كان يفتحها لم يعد له وجود في أي مكان.
سارق قاعدة البيانات
مُدافَع ضده في المحتوى. النسخة المسروقة أو اللقطة المصادَرة قضائيًا لا تُسفر إلا عن نص مشفّر، وأغلفة مفاتيح الخزانة (لا قيمة لها دون عبارة سرّك أو عبارة الاسترداد)، وبيانات التوجيه المذكورة أدناه — أشكالٌ، لا مراسلات.
مهاجم الشبكة
مُدافَع ضده. TLS مع HSTS، وسياسة CSP صارمة برموز لكل طلب — والحمولات المختومة نصٌّ مشفّر قبل أن تلمس السلك، فيغدو TLS عمقًا لا الجدار الوحيد.
سارقو كلمات السر
مُدافَع ضدهم. كلمة سر حسابك تفتح الصدفة: عدّادات المجلدات والقدرة على الإرسال. أما البريد فيحتاج عبارة سر الخزانة، سرًّا منفصلًا يُمَدّ بـArgon2id على جهازك ولا يُرسَل إلينا أبدًا.
القوة الغاشمة
مُدافَع ضدها. حدودٌ لكل عنوان ولكل حساب على كل نقطة اعتماد، مدعومة بقاعدة البيانات كي لا يُستزرَع خادم جديد للمحاولات. عاملان بـTOTP مع رموز استرداد تُستعمل مرة واحدة.
المرسِلون الخبيثون
مُدافَع ضدهم في المسارات المعتادة: المحتوى البعيد محجوب حتى تطلبه (بكسلات التتبع معطَّلة)، وHTML يُعقَّم مرتين، والمرفقات لا تُنفَّذ أبدًا، وأحكام SPF/DKIM/DMARC معروضة.
ما لا ندافع ضده
الصدق في الحدود هو الفرق بين نموذج تهديد وإعلان:
- جهازك المفتوح. الخزانة المفتوحة صندوق بريد مفتوح — هذا معنى «مفتوحة». قفلُ الخمول والمسحُ الحثيث للمفاتيح يضيّقان النافذة؛ ولا يغلقانها.
- حقن البرمجيات أثناء الفتح. هجوم XSS ناجح يقرأ ما تقرؤه أنت. سياسة CSP بالرموز، وعرض HTML المرسِلين في صندوق معزول، والتعقيم المزدوج تجعل ذلك صعبًا؛ ولا شيء يجعله مستحيلًا.
- تحليل حركة المرور. يرى الخادم أن بريدًا وصل إليك، ومتى، وبأي حجم تقريبًا. الختم يخفي المحتوى، لا الوجود. لا نضيف حركة تمويه ونقولها صراحة.
- البحث، جهازًا جهازًا. يجري البحث على كل جهاز، في فهرس يبنيه بفتح بريدك: لا نعرف أبدًا عمّ تبحث ولا ماذا وجد. أما ما نراه فعاديّ: كل جهاز ينزّل كل رسالة مرة واحدة ليقرأها، ونقلُ الرسالة إلى البريد المزعج حين يطبّق جهازٌ حظرًا. والجهاز الذي لم يقرأ رسالة بعد لا يجدها، والخزانة المقفلة لا تبحث في شيء.
- تحديث عميل خبيث. الشيفرة التي يشغّلها متصفحك تأتي منا. بناءٌ معادٍ يمكنه خيانة الخزانة عند الفتح. الشيفرة قابلة للفحص، وهذا الحدّ يشترك فيه كل منتج تشفير يُسلَّم عبر المتصفح — نصرّح به بدل أن نجمّله.
- استقبالٌ مُعدَّل. يصل البريد عبر SMTP نصًّا صريحًا، كما يصل كل بريد، ويُختم لحظة وصوله. ومشغّلٌ يعدّل شيفرة الاستقبال يستطيع قراءة البريد الجديد وهو يصل — لا ما خُزّن من قبل. والشيفرة المنشورة وبيان البناء على صفحة الشفافية هما سبيل التحقق من ذلك.
- البريد إلى عناوين خارجية. على البريد العادي أن يصل إلى Gmail أو Outlook بصيغة تقرؤها خوادمهم، فيقرأ هذا الخادم الرسالة المرسَلة إلى عنوان خارجي وهو ينقلها؛ أما النسخة في مجلد المرسَل فمختومة. وبين أعضاء روك ميل يختم متصفحك الرسالة قبل أن تغادر، فلا ينقل الخادم إلا نصًا مشفّرًا — مختومًا بمفتاح طلبه متصفحك من الخادم، ولا يختم به إلا بعد أن يتحقق منه في سجلّ المفاتيح، الذي يراقبه تطبيقك بحثًا عن أي مفتاح ليس لك. وليس للسجلّ شهود من خارجه بعدُ: خادمٌ يُري الناسَ سجلّات مختلفة لا يُكشف إلا حين يقارنون رأسه على صفحة الشفافية. والبريد إلى عضو بلا خزانة يختمه الخادم لحظة وصوله؛ أما الجسر المكتبي فيختم كما يختم متصفحك، متحققًا من السجلّ نفسه.
- أسماؤك جنبًا إلى جنب. لكي يختم الأعضاء رسائلهم بعضهم إلى بعض، يعطي الدليلُ العضوَ المسجَّل دخوله المفتاحَ الذي يُختم به الاسم. لكل اسم من أسمائك مفتاحه الخاص، يُصنع في متصفحك من مفتاح صندوقك، فيجيب اسمان من أسمائك بمفتاحين لا صلة بينهما، ولا يستطيع عضو يعرفهما أن يستدل بهما على أنهما لشخص واحد. يبقى حدّان: الإجابات المسجَّلة قبل 25 تشرين الأول/أكتوبر 2026، حين كانت أسماء الحساب الواحد تشترك في مفتاح واحد، ما زالت تربط تلك الأسماء؛ والاسم الذي يُنشأ خارج التطبيق يجيب بمفتاح حسابك حتى تفتح الخزانة مرة أخرى. أما الخادم نفسه فيعرف دائمًا أيّ الأسماء لك.
- تصدير كلمات مرورك بلا تشفير. تغادر كلمات مرورك بإحدى صيغتين. النسخة الاحتياطية المشفّرة تُختم على جهازك بعبارة مرور تختارها لذلك الملف (Argon2id وXChaCha20-Poly1305)، وتبقى بعد إعادة تعيين الخزانة؛ فإن نسيت تلك العبارة لم يفتح الملفَّ شيءٌ، لا لنا ولا لك. أما التصدير غير المشفّر، المصنوع للانتقال إلى مدير كلمات مرور آخر، فلا تشفير فيه أصلًا: كل من يصل إلى الملف — من مجلد متزامن، أو خدمة نسخ احتياطي، أو حاسوب مُعار — يقرأ كل كلمة مرور فيه، وكل سرّ رموز لمرة واحدة، وكل ملاحظة. ينبّهك التطبيق مرتين قبل أن يكتبه؛ وبعد ذلك، حراسة الملف وحذفه عليك.
- كلمة مرور مُشارَكة برابط. يحمل رابط المشاركة نسخةً مختومة من أجزاء الإدخال التي تختارها، ومفتاحَها بعد علامة `#`، وهي ما لا ترسله المتصفحات إلى أي خادم: نحتفظ بنص مشفّر لا نستطيع فتحه، وبعدد مرات المشاهدة المتبقية وموعد الانتهاء، ونحذفه عند آخر مشاهدة أو عند انتهاء مدته. **كل من يملك الرابط يستطيع فتحه** ما دام قائمًا — من يُعاد إرساله إليه، ومن يقرأ المحادثة التي لُصق فيها، وسجلّ تصفّح متزامن. المشاهدة الواحدة، وهي الافتراضية، تغلقه لحظة يفتحه قارئك؛ وفتح الصفحة لا يستهلك شيئًا، فلا تستطيع معاينة الروابط في تطبيق محادثة أن تستنفده — وحده «اعرض» يفعل. وإن قال رابطٌ ذو مشاهدة واحدة إنه استُنفد حين يفتحه قارئك أول مرة، فقد فتحه أحدٌ قبله: اعتبر ما حمله مكشوفًا. ومشاركة سرّ الرموز لمرة واحدة تسلّم العامل الثاني أيضًا.
- جهاز مُصادَر. من يستولي على الخادم يأخذ ما فيه بلا تشفير: بيانات التوجيه أدناه، والسجلات الأمنية في حدود مدة حفظها، وسجل التسليم القصير الأجل لدى المضيف. المحتوى يبقى مختومًا؛ أما شكل مراسلاتك فلا.
البيانات الوصفية التي يحفظها الخادم
كل صف موجود لأن على الخادم أن يتصرف به وخزانتك مقفلة، ولا شيء منه محتوى. عناوين إعادة التوجيه وأسرار العاملَين ومفاتيح توقيع DKIM وطابور الإرسال المجدول مشفّرة فوق ذلك بمفتاح إعدادات خاص بالخادم؛ والباقي أعمدة عادية في قاعدة البيانات، مخزّنة بلا تشفير على قرص هذا الخادم.
| البيان | لماذا يحتاجه الخادم |
|---|---|
| معرّف الرسالة | رفض التسليم المكرر يحتاج قيمة قابلة للمقارنة |
| حالة المجلد والقراءة والنجمة | الفرز على الخادم وعدّ غير المقروء |
| طوابع الوصول الزمنية وأحجام الرسائل | الترتيب وترقيم الصفحات وحصة التخزين |
| أيّ اسم استقبل كل رسالة | إيداعها في الصندوق الصحيح لحظة الوصول |
| أحكام SPF وDKIM وDMARC | معروضة بجانب كل رسالة، مشروحة بجملة |
| عدد المرفقات وحجمها | عرض القوائم دون فتح النصوص |
| عناوين إعادة التوجيه لأسمائك | إعادة التوجيه تحدث لحظة الوصول والخزانة مقفلة |
| نطاقات المرسِلين التي تصنّفها مزعجة أو غير مزعجة | تُفرز رسالتهم التالية بالطريقة نفسها، لحظة الوصول |
| شروط القواعد | القواعد تعمل لحظة الوصول |
| الإرسالات المجدولة | على المجدوِل أن يقرأ ما يرسله — الصفوف تُمسح بعد دقائق |
| أسرار العاملَين | يتحقق TOTP عند الدخول، قبل أن توجد أي خزانة |
| النطاقات الخاصة ومفاتيح DKIM لها | التوجيه يحتاج الاسم، وتوقيع البريد الصادر يحتاج المفتاح |
MASHRABIYA
المشربية — الختم باسمه
المشربية اسمُ البنية التي تختم كل رسالة هنا. والمشربية هي الشبكة الخشبية المنقوشة في البيوت العربية: يمرّ منها الضوء ولا تمرّ النظرات — وهي الشبكة نفسها التي يرسمها التطبيق وهو يفكّ ختم رسالة. الخادم يقف على الجانب الآخر من تلك الشبكة: يحفظ بريدك ولا يستطيع أن ينظر فيه أبدًا.
يعلن كل عنصر مختوم الإصدار الذي ختمه — الصف المختوم يحمل الوسم msh2:، والملف المختوم يبدأ بـMSH وبايتٍ للإصدار — والقارئ الذي يصادف إصدارًا لا يعرفه يرفضه بدل أن يخمّن. والإصدار الثاني، منذ تشرين الأول/أكتوبر 2026، يربط كل قطعة مختومة بمكانها: الرسالة بصفّها، والملف برسالته، وجهة الاتصال أو المسودة بمعرّفها، وكلها بمفتاحك. فمن يملك قاعدة البيانات لم يعد يستطيع أن يبدّل أجزاء رسالة، أو ينقل رسالة إلى أخرى، أو يغيّر شارة التحقق أو الملفات بجانب رسالة أصيلة دون أن يرفضها جهازك. ويبقى البريد المختوم بالإصدار الأول مقروءًا.
| مفتاح الرسالة | X-Wing hybrid KEM (draft-connolly-cfrg-xwing-kem): ML-KEM-768 + X25519, combined with SHA3-256 |
| محتوى الرسائل والمرفقات | AES-256-GCM — مفتاح جديد لكل رسالة ولكل مرفق |
| مدّ عبارة السر | Argon2id (libsodium crypto_pwhash) — ops 3, memory 64 MiB — يُشتق على جهازك |
| تغليف المفاتيح | XChaCha20-Poly1305 |
| فهرس البحث | على أجهزتك وحدها: XChaCha20-Poly1305 بمفتاح مشتقّ من خزانتك، ولا يُرسَل إلى الخادم أبدًا |
| عبارة الاسترداد | BIP-39 — أربع وعشرون كلمة (256 بت) |
| مفاتيح الأمان | WebAuthn PRF — مفتاح عتادي أو مفتاح مرور يستطيع فتح الخزانة |
| الصيغة | v2 منذ تشرين الأول/أكتوبر 2026: كل قطعة مختومة مربوطة بمكانها؛ وما خُتم بـv1 يبقى مقروءًا |
المواصفة الكاملة هي MASHRABIYA.md، في الشيفرة المصدرية.
وخارج الختم، تستعمل الجلسات وحماية CSRF رموزًا عشوائية، ومقارنة بزمن ثابت، وكوكي إرسال مزدوج.
ما الذي قد يسوء نهائيًا
افقد عبارة سر خزانتك وعبارة الاسترداد ذات الأربع والعشرين كلمة معًا، يذهب بريدك — لا إعادة تعيين، ولا وديعة، ولا تجاوز. يُقال هذا عند التسجيل، وعند إنشاء الخزانة، وهنا، لأنه الحقيقة نفسها التي يعلنها عنواننا الرئيسي منظورًا إليها من الجهة الأخرى. مكتبُ الاسترداد مفتاحٌ يحمله شخص آخر.
أسئلة لا تجيب عنها الصفحة؟ نموذج التهديد الهندسي يُشحَن مع الشيفرة — الخدمة بأكملها علنية. أو ابدأ من صفحة الأخلاقيات — التصميم نفسه، محاجًّا عنه من المبادئ بدل الأوّليات.