نام یک کلاینت را جست‌وجو کنید؛ در صفحه اول نتایج همیشه چند سایت هست که خود پروژه نیستند. بعضی فقط بازنشر بی‌آزارند و بعضی نصب‌کننده‌ای به شما می‌دهند که چیزهای اضافه در آن جاسازی شده. و این یک اپلیکیشن معمولی نیست: بنا به طراحی جلوی ترافیک شبکه شما می‌ایستد، پس نسخه دست‌کاری‌شده همه چیز را می‌بیند. همین نامتقارنی، تمام دلیلِ ارزش داشتن این پنج دقیقه است.

اول منبع؛ این یکی از تمام مراحل بعدی مهم‌تر است

  • به چه چیزی اعتماد کنید: مخزن کد خود پروژه و صفحه releases آن، جایی که فایل‌ها زیر یک برچسب نسخه به شکل پیوست فهرست شده‌اند.
  • به چه چیزی نه: سایت‌های دانلود، بازنشر روی فضای ابری، پیوست انجمن‌ها، و آن نتیجه تبلیغاتی که بالای نتیجه واقعی نشسته است.
  • این سایت فقط یک سایت اطلاع‌رسانی است، همین. هر مسیر دانلودی که اینجا فهرست شده در نهایت به صفحه انتشار خود پروژه برمی‌گردد و مرجع همان صفحه است، نه این صفحه.
  • هر چیزی که خودش را آینه رسمی، نسخه شتاب‌داده یا نسخه بی‌نیاز از تنظیم معرفی کند، دلیلی برای ترک کردن است، نه راحتی.

رسیدن به صفحه درست بیش از هر چیز به نام حساب و نام مخزن در نشانی بستگی دارد، نه به آشنا بودن ظاهر صفحه — کپی کردن قالب هیچ زحمتی ندارد. بار اول چند ثانیه وقت بگذارید و مالک و مخزن را تأیید کنید، بعد نشانک بگذارید و از آن به بعد از همان نشانک وارد شوید. این عادت موتور جست‌وجو را کاملاً از زنجیره بیرون می‌کشد، و بخش عمده خطر همان‌جا زندگی می‌کند.

پیشنهاد همکاریلینک اشتراک را از کجا بیاوریم؟سرویس همکار ما هنگام ثبت‌نام ۱ گیگابایت ترافیک پرسرعت هنگ‌کنگ رایگان می‌دهد.دریافت سرور پرسرعت

پیش از هش، خود فایل را بررسی کنید

  • معماری. روی ویندوز و لینوکس x64 در برابر arm64، روی مک Intel در برابر Apple Silicon. نسخه اشتباه یا اصلاً اجرا نمی‌شود یا روی لایه ترجمه به‌زحمت راه می‌افتد.
  • پسوند. روی ویندوز .exe یا .msi، روی مک .dmg یا .pkg، روی لینوکس .AppImage یا بسته خود توزیع، و روی اندروید .apk. اینکه کدام قالب بسته‌بندی به کارتان می‌آید بحث دیگری است؛ اینجا فقط دارید تأیید می‌کنید همان چیزی را گرفته‌اید که می‌خواستید.
  • اندازه. با عددی که کنار همان پیوست در صفحه انتشار نوشته شده مقایسه کنید. چند کیلوبایت اختلاف چیزی نیست؛ چند مگابایت ارزش ایست کردن دارد.

هش را حساب کنید

certutil -hashfile installer.exe SHA256
Get-FileHash .\installer.exe -Algorithm SHA256
shasum -a 256 app.dmg
sha256sum app.AppImage

دو خط اول برای ویندوز است و یکی‌شان کافی است — certutil روی هر نصبی هست و Get-FileHash روش PowerShell است. خط سوم برای مک و خط چهارم برای لینوکس. خروجی را با مقداری که در صفحه انتشار آمده مقایسه کنید. کل رشته را بخوانید، نه فقط چند نویسه اول و آخر: کسی که توان جایگزین کردن یک بسته را دارد، توان ساختن هشی را هم دارد که رقم‌های ابتدایی‌اش آشنا به نظر برسد. بزرگی و کوچکی حروف اهمیتی ندارد، پس خروجی با حروف کوچک در برابر مقدار منتشرشده با حروف بزرگ مشکلی ندارد.

وقتی صفحه انتشار هیچ هشی منتشر نکرده

این حالت رایج است و یک راه جایگزین دارد. روی ویندوز، روی فایل راست‌کلیک کنید، Properties را باز کنید و دنبال زبانه Digital Signatures بگردید. اگر بود، جزئیات امضاکننده را باز کنید و از خودتان بپرسید آیا این نام همان نهادی است که انتظارش را داشتید. نبودن این زبانه یعنی بسته امضا نشده — که برای پروژه‌های متن‌باز کوچک عادی است و به‌خودی‌خود هشدار نیست؛ فقط یعنی این بررسی اینجا چیزی به شما نمی‌دهد. روی مک معادلش یک دستور است.

codesign -dv --verbose=4 /Applications/YourApp.app
gpg --import publisher-key.asc
gpg --verify app.AppImage.asc app.AppImage

خط اول هویت امضای یک برنامه نصب‌شده را چاپ می‌کند. دو خط بعد وقتی به کار می‌آید که صفحه انتشار کنار فایل باینری یک .asc یا .sig هم گذاشته باشد: اول کلید عمومی منتشرکننده را وارد کنید، بعد تأیید کنید. اینجا با خودتان صادق باشید. امضا فقط نشان می‌دهد فایل با همان کلیدی که وارد کرده‌اید می‌خواند؛ اگر آن کلید را از همان صفحه‌ای گرفته باشید که یک نسخه جعلی هم به شما می‌داد، هیچ چیز این زنجیره را مهار نمی‌کند. کلید را از مسیری مستقل بگیرید یا بپذیرید که این مرحله ضعیف‌تر از ظاهرش است. امضای GPG و امضای کد هر دو از هیچ بهترند و هیچ‌کدام اثبات نیستند.

یک چیز دیگر هم هست که در هیچ جهتی مدرک نیست: آنتی‌ویروس شما. ابزارهایی که تنظیمات شبکه را بازنویسی می‌کنند و آداپتور مجازی نصب می‌کنند مدام تشخیص اکتشافی را فعال می‌کنند، پس هشدار روی یک نسخه سالم معنای چندانی ندارد. عکسش هم چیز زیادی نمی‌گوید: یک بسته تازه دست‌کاری‌شده هنوز امضایی برای تطبیق ندارد. تصمیم را بر اساس منبع و هش بگیرید. نگذارید اسکنر به‌جای شما تصمیم بگیرد.

نسخه‌ای را که نصب کرده‌اید یادداشت کنید. وقتی انتشار بعدی چیزی را که به آن تکیه دارید خراب کند، برگشتن به عقب به این بستگی دارد که دقیقاً بدانید روی کدام بسته بودید — و شش ماه بعد، صفحه انتشار پر از برچسب‌هایی است که همه شبیه هم به نظر می‌رسند.