التقرير 03 — Olvid Messenger

عندما لا يكون التسريب
خللًا برمجيًا.

Olvid تطبيق مراسلة يركّز على الخصوصية. وجدت طريقتين قد يكشف بهما عنوان IP. وخلال مراجعة بتنسيق من ANSSI / CERT-FR، شرحت الشركة لماذا تعتبرهما خيارين مقصودين في التصميم، لا ثغرتين أمنيتين. وبعد مراجعة مبرراتها، وافقت على هذا التقييم. يعرض التقرير التحليل ووجهتي النظر.

بقلم عباس حسيني·بتنسيق مع ANSSI / CERT-FR·الشركة: Olvid SAS

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

مكالمة تمر عبر خادم ترحيل يمكنه رؤية عنوان المستلِمعنوان IP للمستلِم
الشكل 1 — خادم الترحيل أثناء المكالمة

تمر مكالمات Olvid عبر خادم ترحيل TURN. وفي Android يستطيع المتصل تحديد ذلك الخادم. إذا حدّد خادمًا يسيطر عليه، يتصل به جهاز الطرف الآخر عند قبول المكالمة، فيصبح عنوان IP لذلك الطرف ظاهرًا للخادم.

موقف Olvid. أوقفت الشركة إلزام المستخدمين بخادم الترحيل الخاص بها استعدادًا لميزة مستقبلية. وتقول أيضًا إن بدء أي محادثة في Olvid يتطلب معرفة معلومات عن الطرف الآخر، مثل اسمه أو رقم هاتفه، تراها أكثر تعريفًا به من المعلومة الوحيدة المكشوفة هنا: عنوان IP العام للهاتف. لذلك لا تعتبر الشركة هذا الكشف ذا أهمية كبيرة ولا تصنّفه ثغرة أمنية.

وجهة نظري. عنوان IP العام نوع مختلف من البيانات عن معلومات الاتصال؛ فقد يشير إلى موقع تقريبي ويتغير بمرور الوقت. معرفة شخص أو امتلاك رقمه لا تعني معرفة عنوان IP الخاص به. لكن تقدير الخطر هنا يعتمد على نموذج التهديد، وأنا أقبل استنتاج Olvid بأن الخطر المتبقي مقبول ضمن نموذجها.

هاتف يستخدم خوادم ترحيل ثابتة، وآخر يقبل الخادم الذي يحدده المتصلiOS — خوادم ثابتةAndroid — خادم المتصل
الشكل 2 — اختلاف سلوك التطبيقين

يستخدم تطبيق iOS عناوين ثابتة لخوادمه ويتجاهل ما يرسله المتصل، بينما يقبل تطبيق Android عناوين المتصل. تصف Olvid إزالة هذا القيد في Android بأنها خطوة مقصودة لميزة مخططة، وليست سهوًا.

السلوك الثاني

معاينة الروابط: عنوان المرسِل،
لا المستلِم.

ينشئ Olvid المعاينة على جهاز المرسِل ويضمّنها داخل الرسالة المشفّرة. يعرضها المستلِم دون جلب أي محتوى من الشبكة؛ لذلك لا يحدث تسريب دون نقرة عند الاستقبال، خلافًا لكثير من تطبيقات المراسلة. لكن جهاز المرسِل يجلب الرابط مباشرةً دون وكيل، فيكشف عنوان IP الخاص به للخادم الذي يستضيف الرابط.

موقف Olvid. استخدام وكيل على الخادم، كما يفعل Signal، سيسمح لـOlvid برؤية كل الروابط التي يشاركها مستخدموها. ترى الشركة أن ذلك يتعارض مع هدف الخصوصية في التصميم. وتضيف أن المرسِل يكون قد فتح الرابط عادةً. لذا تبقي التصميم الحالي إلى أن تتوفر طريقة تحمي عنوان المرسِل دون أن ترى جهة مركزية جميع الروابط.

أقبل هذا التبرير. هنا تعارض بين جانبين من الخصوصية، وقد اختارت Olvid ما يناسب نموذجها.

ما الذي تعلّمته من هذه الحالة

خلاف جرت مراجعته بشكل سليم.

السلوكان حقيقيان ومقصودان. أُبلغ عنهما عبر ANSSI / CERT-FR، ثم روجعا مع الشركة. وبعد دراسة المبررات، قبلت اعتبارهما خيارين في التصميم لا عيبين. سحبت أيضًا عدة ملاحظات أولية أثناء العملية. هكذا ينبغي أن يجري الإفصاح المنسّق: ليس كل تقرير ينتهي بإصلاح، وتوضيح الشركة لنموذجها الأمني قد يكون نتيجة مفيدة بحد ذاته.

التقرير التقني

Olvid Messenger — التحليل ومواقف الشركة

الملخص

جرى تحليل Olvid، من شركة Olvid SAS الفرنسية، على Android (v4.2.4) وiOS/macOS (v4.0.3) وDesktop (v2.8.0)، بالاستناد جزئيًا إلى شيفرته المصدرية المرخّصة بموجب AGPL-3.0. يصف التقرير سلوكين يكشفان عنوان IP. بعد المراجعة المنسّقة، اعتبرتهما الشركة خيارين مقصودين في التصميم، لا ثغرتين، وقبلت هذا الاستنتاج. سبق أن حصل Olvid على شهادة ANSSI CSPN في 2020/2021، انتهت صلاحيتها منذ ذلك الحين وكانت تقتصر أساسًا على نواة التشفير؛ وليس بالضرورة أن السلوكين هنا كانا ضمن نطاقها. يتناول التقرير الاستخدام العام والتجاري للتطبيق فقط.

السلوك الأول · اختيار خادم الترحيل للمكالمة

ظهور IP المستلِم لخادم يحدده المتصل في Android

ما الذي يحدث

تمر مكالمات Olvid عبر خادم TURN. يقبل تطبيق Android عناوين الخوادم التي يزوّده بها المتصل؛ إذ تعيد الدالة pickTurnServers() تلك العناوين دون التحقق من قائمة سماح. لذلك يستطيع المتصل مراقبة عنوان IP للطرف الآخر بعد قبول المكالمة إذا حدّد خادمًا يسيطر عليه. أما تطبيق iOS/macOS فيستخدم عناوين ثابتة ويتجاهل عناوين المتصل.

موقف الشركة

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

ملاحظة الباحث

عنوان IP العام نوع مختلف من المعلومات عن بيانات الاتصال: قد يدل على موقع تقريبي ويتغير بمرور الوقت. يعتمد التقييم على نموذج التهديد؛ ولا أعترض على استنتاج الشركة.

السلوك الثاني · جلب معاينة الرابط

كشف IP المرسِل عند إنشاء المعاينة

ما الذي يحدث

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

تطبيق المراسلةجلب المعاينةحماية IP المرسِلحماية IP المستلِم
Signalوكيل على الخادمنعمنعم
WhatsAppوكيل على الخادمنعمنعم
Olvidجهاز المرسِللانعم

موقف الشركة

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

حول تقييم الخطورة

لماذا لا توجد شارات للخطورة هنا لا تعتبر Olvid هذين السلوكين ثغرتين، وقد قبلت هذا التقييم. وللمقارنة فقط: لو خضعا لتقييم CVSS لوقعا ضمن نطاق منخفض إلى متوسط، لأن المعلومة المكشوفة هي عنوان IP واحد (C:Low)، وهو السقف نفسه لأي كشف يقتصر على IP. لا أضع درجة خطورة لسلوك نتفق أنا والشركة على أنه خيار في التصميم، لا عيب برمجي.

التنسيق والإفصاح


جرى الإفصاح المنسّق عبر فرق CERT الوطنية. عُرضت مواقف الشركة وفق ما اتُّفق عليه أثناء التنسيق. التقرير لأغراض البحث والدفاع.