عمل النفق، وظهرت الواجهة، وبقيت الجلسة مستقرة أسبوعًا كاملًا. لا شيء من ذلك يخبرك من بنى المثبّت. يعمل عميل VPN بامتيازات كافية لإعادة كتابة المسارات وقراءة بيانات الاعتماد، لذا فإن الناشر جزء من نموذج التهديد لا حاشية.

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

الخطوة الأولى: نزّل من القناة التي يسمّيها المشروع

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

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

الخطوة الثانية: تحقّق من التوقيع مقابل هوية معروفة

التحقّق من التوقيع يجيب عن سؤال ضيّق إجابة جيدة. يخبرك أن هوية معيّنة وقّعت هذا الملف التنفيذي وأن الملف لم يتغيّر منذ ذلك الحين. يجيب عن سؤال ويرفض آخر. لا يستطيع أن يخبرك ما إذا كانت تلك الهوية هي التي قصدت الوثوق بها.

# macOS: who signed this app, and is the signature intact?
codesign -dv --verbose=4 /Applications/Tunnel.app
spctl -a -vvv -t install /Applications/Tunnel.app

# Windows: signature and publisher of the installer
Get-AuthenticodeSignature .\tunnel-setup.exe | Format-List Status, SignerCertificate

# Linux: detached signature from the project's release page
gpg --verify tunnel-1.4.2.tar.gz.asc tunnel-1.4.2.tar.gz

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

الخطوة الثالثة: قارن البصمة بمصدر مستقل

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

# Linux and macOS
shasum -a 256 tunnel-1.4.2.dmg

# compare against the value published on the project's own release page
# not against a value copied from the same mirror

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

بعد التثبيت: حافظ على مسار التحديث

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

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

أصلان، لا أصل واحد

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

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

مقالات ذات صلة