مفتاح بعد #: كيف تُبقي الروابط المشتركة الخادمَ بعيدًا
تُخزَّن المحادثة المشتركة على خادمنا، ولا نستطيع فتحها. كيف يعمل ذلك، وأين يأتي دور كلمة المرور، وما الذي لا يستطيع الرابط حمايته.
تعني المشاركة عادةً تسليم كلماتك لمن يخزّن الرابط. أما الروابط المشتركة في Undergrove فمبنيّة بحيث يحتفظ الخادم بنسخة لا يستطيع قراءتها. والحيلة قديمة وبسيطة، ولها حدود تستحق المعرفة.
الجزء الذي بعد #
حين تشارك محادثة، يُنشئ متصفحك مفتاحًا عشوائيًا جديدًا، ويشفّر نسخة منها باستخدام AES-GCM، ولا يرفع إلا النص المشفَّر. ويوضع المفتاح في الرابط بعد #. ولا ترسل المتصفحات هذا الجزء من العنوان إلى الخادم عند تحميل الصفحة، لذا يصل المفتاح إلى الشخص الذي ترسل إليه الرابط، ولا يصل إلينا أبدًا.
نحتفظ بالنص المشفَّر لمدة 1 أو 7 أو 30 يومًا. ونرى معرّفه وحجمه ووقت إنشائه وفتحه. وتجلب الصفحة التي تفتحه النص المشفَّر، وتقرأ المفتاح من شريط العنوان، وتفك تشفيره داخل علامة التبويب.
وكلمة مرور أيضًا
ويمكن أن يتطلب الرابط كلمة مرور أيضًا. وعندئذ يُشتق المفتاح الذي يفتح النسخة من كليهما: تُمدَّد كلمة المرور باستخدام PBKDF2-SHA256 بـ 600,000 تكرار، وتُدمج مع مفتاح الرابط عبر HKDF. فلا الرابط ولا كلمة المرور يفتحها وحده، وتُفحص كلمة المرور داخل علامة التبويب مقابل النسخة الموجودة فيها أصلًا، لذا لا نراها أبدًا.
الفتح لمرة واحدة، ومواعيد الفتح
يمكن أن يُفتح الرابط مرة واحدة فقط. فيحذف الخادم نسخته عند قراءتها أول مرة ولا يحتفظ إلا بوقت فتحها، ليتمكن الرابط من الإفادة بأنه استُخدم بدلًا من أن يبدو كأنه لم يوجد قط. وقبل الجلب، تطلب منك الصفحة التأكيد، كي لا تستهلكه معاينة الرابط في تطبيق دردشة.
ويمكن أيضًا ألا يُفتح الرابط إلا في تاريخ محدد. وحتى ذلك الحين يرفض الخادم تسليم النص المشفَّر. وهذا وفاءٌ من الخادم بكلمته، لا ضمانٌ تشفيري: فالنسخة مخزَّنة أصلًا، ومفتاحها موجود أصلًا في الرابط.
ما لا يستطيع الرابط حمايته
- يستطيع أي شخص يملك الرابط كاملًا قراءة النسخة. فتعامل معه كما تتعامل مع المحادثة نفسها.
- تخزّن تطبيقات الدردشة والبريد الإلكتروني الرسائل التي ترسلها، بما فيها الروابط كاملةً، مع الجزء الذي بعد #.
- الصفحة التي تفك تشفير النسخة شيفرةٌ نقدّمها نحن. وتقارن /verify تلك الشيفرة ببيان البناء المنشور.
تسرد صفحة الخصوصية ما يُخزَّن لكل رابط، ويبيّن نموذج التهديدات من قد يرى ماذا.
مزيد من الملاحظات الميدانية
ما الذي يثبته التصديق، وما الذي لا يثبته
يتحقق متصفحك من الجيب الآمن لدى Tinfoil قبل أن يرسل كلمة واحدة. ما الذي يثبته هذا التحقق، وأين يتوقف، وما الذي لا يمكن التحقق منه في المتصفح بعد.
ما الذي لا يزال يراه مُرحِّلٌ لا يستطيع القراءة
يمرّر المُرحِّل لدينا نصًا مشفَّرًا لا يستطيع فتحه. لكن هذا لا يعني أنه لا يرى شيئًا. جردٌ لما يراه فعلًا، ولماذا.