عميل VPN مفتوح المصدر: ما يثبته الكود وما لا يستطيع إثباته
المستودع العام دليل على الشيفرة المصدرية، وليس على البناء الذي ثبّتته أو على الخوادم التي تقف خلفه. طابِق الإصدار، ثم وسّع نطاق المراجعة.
نُشر المصدر، ورُخّصت الرخصة بشكل سليم، ومع ذلك لا يزال الاتصال غير قابل للتحقق من طرف إلى طرف. هذه الفجوة أمر عادي، وليست فضيحة. نشر الكود يجعل مكوّناً واحداً قابلاً للفحص من أشخاص لم يُدعوا إلى ذلك، وهذه خاصية حقيقية وغير مألوفة. ولا يترتب على ذلك أن الملف التنفيذي الذي ثبّتته جاء من ذلك الكود، أو أن أي شيء يشغّله المزوّد على الطرف الآخر قد روجع أصلاً.
افصل المكوّن عن المنتج
أربعة أشياء يمكن أن تحمل وسم المصدر المفتوح، ونادراً ما تكون كلها مفتوحة. تطبيق العميل هو المقصود عادةً. أما تنفيذ البروتوكول تحته فهو أثر مختلف، وأحياناً مكتبة وأحياناً كود داخل الشجرة. وبرمجيات الخادم ثالث، والبنية التحتية للمزوّد وبوابة الحساب وأدوات الدعم رابع. وكل واحد منها يمكن أن يكون مفتوحاً أو مغلقاً باستقلال.
لذا فإن عبارات مثل "تطبيقنا مفتوح المصدر" تصف البند الأول وتترك الباقي دون معالجة، وهذا ليس كذباً بقدر ما هو انزلاق في التصنيف. السؤال المفيد هو أي مستودع، وبأي وسم، يقابل المكوّن الذي تعتمد عليه.
هذا التمييز يفسّر أيضاً لماذا يمكن لمنتجين لهما عميلان مفتوحان متطابقان أن يقدّما ضمانات مختلفة جداً. العميل هو الجزء الذي يمكنك فحصه؛ أما سلوك المشغّل فهو الجزء الذي عليك تقييمه بوسائل أخرى.
طابِق البناء المثبَّت مع الوسم المنشور
المستودع سجل للنوايا؛ أما الملف التنفيذي على قرصك فهو الشيء الذي يعمل. سدّ تلك الفجوة تمرين آلي، ويبدأ بتحديد ما هو مثبَّت بالضبط لا بما أعلنته صفحة التنزيل.
| Component | What inspection can show | What it leaves untouched |
|---|---|---|
| Client source | How profiles, packets and optional telemetry are handled | Whether the shipped binary matches that source |
| Build output | Whether a declared build reproduces a matching artefact | Whether the source is correct or the toolchain is clean |
| Server software | What the implementation is capable of logging | What the operator actually configures and retains |
| Account and support systems | Almost nothing, unless they are separately published | Everything about how those systems treat your data |
تخبرك بيانات تعريف الحزمة بالإصدار والأصل، وهذا يستبعد الحالة البسيطة لحزمة قديمة أو مستبدلة. لكنها لا تخبرك كيف جُمّعت تلك الحزمة، وهو السؤال الذي وُجد البناء القابل لإعادة الإنتاج للإجابة عنه. البناء القابل لإعادة الإنتاج يتيح لطرف مستقل أن يعيد البناء من المصدر نفسه ويقارن الناتج بايتاً ببايت، فيصبح عدم التطابق دليلاً لا شكاً.
حتى التطابق التام يثبت أقل مما يأمل الناس. فهو يُظهر أن الأثر يطابق المصدر ووصفة البناء، لا أن المصدر خالٍ من العيوب، ولا أن سلسلة الأدوات المستخدمة كانت موثوقة. وكلا الأمرين يبقى معرفته مفيدة، لكنهما ادّعاءان مختلفان.
dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wgمن أين تبدأ الأعراض عادةً
الشكوى التي تدفع إلى هذه القراءة نادراً ما تكون "الكود مغلق". إنها عادةً ملاحظة محددة: عميل يتصل بمكان غير متوقع، أو إصدار يختلف عن ملاحظات الإصدار، أو عملية دعم تطلب أكثر مما ينبغي أن يحتاجه النفق. وكل واحدة من هذه تشير إلى مكوّن مختلف.
حركة المرور غير المتوقعة من العميل مسألة تتعلق بشيفرة العميل، ويمكن الإجابة عنها بقراءة مسار الكود الذي يفتح الاتصال. وعدم تطابق الإصدار مسألة تغليف. وعملية الدعم التي تطلب وثائق هوية مسألة تتعلق بنظام الحساب، ولن يحلها أي قدر من تدقيق العميل.
تسمية المكوّن تحوّل الشك الغامض إلى فحص محدد. والفحص المحدد يمكن الإجابة عنه أو الجدال حوله أو إغلاقه. البديل هو شك دائم بلا خطوة تالية.
ما لا تصل إليه المراجعة، وما ينبغي فعله بدلاً من ذلك
الاحتفاظ على خوادم المزوّد خارج متناول العميل. وكذلك سلوك بوابة الفوترة أو مورّد فحص الاحتيال أو مكتب دعم يحتفظ بالمرفقات. والمراجعة الخاصة بالعميل التي تُمدّ إلى "دققنا الخدمة" تقدّم ادّعاءً لا تدعمه الأدلة.
اقرأ ما ينشره المشغّل عن الاحتفاظ والطلبات، وسجّل التاريخ، وتعامل معه كبيان من طرف ذي مصلحة لا كقياس. ذلك شكل أضعف من الأدلة، والوضوح بشأن الفرق أنفع من ترقيته في إعادة السرد.
ثم استخدم ما لديك كمدخل واحد بين عدة مدخلات: هوية الإصدار المثبَّت، ما إذا كانت البرمجيات تُصان، وكيفية إعداد العميل، وما يقوله المشغّل عن أنظمته. الكود المفتوح يقوّي ذلك التقييم عند نقطة واحدة. وهو لا يستبدل بقية التقييم.
يجب أن يسمّي أي ادّعاء تدقيق مكوّناته وإصداراته. وإذا لم يستطع تقرير أن يقول أي مستودع وأي بناء فحص، فهو يصف نيّة لا منتجاً.