اثر انگشت یک فایل ناشناس؛ پیش از نصب APK چگونه SHA-256 را بررسی کنیم؟

دکمه نصب در اندروید آخرین مرحله یک تصمیم است، نه اولین مرحله آن. کاربر معمولا نام فایل، حجم تقریبی و آیکون برنامه را می بیند و اگر همه چیز آشنا به نظر برسد، نصب را ادامه می دهد. مشکل اینجاست که این سه نشانه به سادگی قابل کپی هستند. یک فایل دستکاری شده می تواند همان نام و همان آیکون نسخه اصلی را داشته باشد و حتی اختلاف حجم آن به چشم نیاید. در چنین موقعیتی، رشته ای ۶۴ کاراکتری به نام SHA-256 اطلاعات مفیدتری از ظاهر فایل در اختیار ما می گذارد.

این بررسی مخصوص برنامه نویس ها نیست. هر کسی که یک فایل APK را بیرون از فروشگاه رسمی دریافت می کند، می تواند در چند دقیقه اثر انگشت آن را بسازد و با مقدار درج شده در صفحه دانلود مقایسه کند. البته باید بدانیم هش چه چیزی را ثابت می کند و چه چیزی را نه؛ وگرنه یک ابزار فنی درست، احساس امنیت اشتباهی ایجاد خواهد کرد.

SHA-256 به زبان ساده چه می کند؟

تابع هش، محتوای یک فایل را می خواند و از آن یک خروجی با طول ثابت می سازد. اگر حتی بخش بسیار کوچکی از فایل تغییر کند، خروجی جدید معمولا کاملا متفاوت خواهد بود. به همین دلیل می توان هش را به اثر انگشت فایل تشبیه کرد. دو نسخه با محتوای یکسان، SHA-256 یکسان دارند؛ دو فایل متفاوت نباید خروجی یکسانی داشته باشند.

کاربرد روزمره این ویژگی روشن است. منتشرکننده برنامه مقدار هش نسخه سالم را در صفحه دانلود می نویسد. کاربر پس از دریافت فایل، هش نسخه موجود روی دستگاه خود را محاسبه می کند. اگر دو رشته دقیقا برابر باشند، فایل در مسیر انتقال ناقص یا عوض نشده است. اگر حتی یک نویسه فرق کند، نصب باید متوقف شود.

مرز مهم: برابر بودن هش فقط می گوید فایل شما با فایل معرفی شده در منبع یکسان است. این برابری به تنهایی ثابت نمی کند که خود فایل اولیه امن، بدون بدافزار یا متعلق به سازنده واقعی بوده است.

پیش از محاسبه هش، منبع را بررسی کنید

اثر انگشت زمانی ارزش دارد که مقدار مرجع از جای مستقلی آمده باشد. اگر فایل و هش هر دو در یک کانال ناشناس منتشر شده باشند، گرداننده کانال می تواند هش همان فایل آلوده را کنار آن بنویسد. بهتر است مقدار مرجع در صفحه شناخته شده منتشرکننده، مخزن رسمی پروژه یا صفحه ای باشد که مشخصات نسخه، تاریخ به روزرسانی و منبع دانلود را شفاف نشان می دهد.

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

محاسبه SHA-256 در ویندوز

در ویندوز ۱۰ و ۱۱ نیازی به نصب ابزار جانبی نیست. فایل APK را در یک پوشه مشخص قرار دهید، PowerShell را باز کنید و دستور زیر را اجرا کنید. به جای نام نمونه، نام واقعی فایل را بنویسید:

Get-FileHash .app-release.apk -Algorithm SHA256

PowerShell نام الگوریتم، رشته هش و مسیر فایل را نمایش می دهد. رشته را کامل انتخاب و با مقدار مرجع مقایسه کنید. مقایسه چشمی فقط ابتدا و انتهای رشته کافی نیست؛ تغییر ممکن است در میانه آن باشد. بهتر است هر دو مقدار را در یک ویرایشگر متن زیر هم قرار دهید یا از ابزار مقایسه متن استفاده کنید.

روش دوم، ابزار قدیمی تر ویندوز است:

certutil -hashfile app-release.apk SHA256

هر دو دستور باید برای یک فایل خروجی یکسان بسازند. اگر دستور فایل را پیدا نکرد، احتمالا PowerShell در پوشه دیگری قرار دارد؛ مسیر کامل فایل را داخل گیومه وارد کنید.

محاسبه هش در مک و لینوکس

در بیشتر توزیع های لینوکس دستور زیر در دسترس است:

sha256sum app-release.apk

در macOS می توان از این دستور استفاده کرد:

shasum -a 256 app-release.apk

در هر دو حالت، ترمینال یک رشته و سپس نام فایل را برمی گرداند. بزرگی یا کوچکی حروف انگلیسی در نمایش هش تفاوت محتوایی ایجاد نمی کند، اما همه کاراکترها و ترتیب آنها باید برابر باشند.

اگر فقط گوشی در دسترس باشد چه کنیم؟

اندروید در همه گوشی ها ابزار داخلی آشکاری برای نمایش SHA-256 فایل ندارد. برخی فایل منیجرهای معتبر این قابلیت را در بخش جزئیات یا Properties ارائه می کنند. راه دیگر، استفاده از ابزار محاسبه هش است؛ اما نصب یک برنامه ناشناس برای بررسی برنامه ناشناس، مسئله را حل نمی کند. ابزار بررسی باید از فروشگاه معتبر گرفته شود، دسترسی اضافه نخواهد و برای محاسبه محلی هش به اینترنت نیاز نداشته باشد.

اگر فایل حساس است و رایانه در دسترس دارید، انتقال APK به رایانه و استفاده از دستورات سیستم عامل راه ساده تری است. انتقال فایل محتوای آن را تغییر نمی دهد؛ بنابراین هش محاسبه شده روی رایانه باید با نسخه روی گوشی برابر باشد.

چهار دلیل رایج برای نابرابر بودن دو هش

  1. دانلود ناقص: قطع اتصال یا خطای مرورگر ممکن است فایلی بسازد که ظاهرا در پوشه دانلود وجود دارد، اما کامل نیست.
  2. نسخه متفاوت: مقدار مرجع برای نسخه قبلی نوشته شده، در حالی که فایل جدیدتری دریافت شده است.
  3. بازبسته بندی فایل: شخص ثالث APK را امضا یا محتوای آن را تغییر داده است. حتی تغییر کوچک منابع داخلی، هش را عوض می کند.
  4. اشتباه در انتخاب فایل: چند APK هم نام یا مشابه در پوشه دانلود قرار دارند و هش فایل دیگری محاسبه شده است.

در هر چهار حالت، راه حل «نادیده گرفتن اختلاف» نیست. فایل را حذف کنید، صفحه منبع را دوباره باز کنید، نسخه و تاریخ را بخوانید و دانلود را از ابتدا انجام دهید. اگر اختلاف باقی ماند، تا روشن شدن علت نصب نکنید.

هش در کنار امضای دیجیتال و مجوزها معنا پیدا می کند

برای ارزیابی یک APK سه لایه متفاوت وجود دارد. هش یکسان بودن فایل را می سنجد. امضای دیجیتال نشان می دهد نسخه های یک برنامه با کلید یکسان امضا شده اند. فهرست مجوزها نیز روشن می کند برنامه پس از نصب به چه بخش هایی از گوشی دسترسی می خواهد. هیچ کدام جای دیگری را نمی گیرد.

برای مثال، یک پیام رسان برای ارسال تصویر ممکن است دسترسی انتخاب فایل یا دوربین بخواهد، اما درخواست دسترسی هایی که با کارکرد اعلام شده ارتباطی ندارند باید سوال ایجاد کند. توضیحات مربوط به  حریم خصوصی و داده های کاربر  می تواند یک چک لیست اولیه برای بررسی مجوز، نشست فعال و رمز دومرحله ای باشد.

یک روال پنج دقیقه ای پیش از نصب

مرحله سوال اقدام
منبع فایل را چه کسی منتشر کرده است؟ دامنه، سابقه صفحه و مسیر دریافت را ببینید.
نسخه نام، تاریخ و معماری فایل درست است؟ مشخصات صفحه را با فایل تطبیق دهید.
هش SHA-256 کاملا برابر است؟ با ابزار سیستم عامل محاسبه و کامل مقایسه کنید.
مجوز دسترسی ها با کار برنامه تناسب دارند؟ موارد اضافه را نپذیرید و علت را جستجو کنید.
حساب ورود به برنامه چه ریسکی دارد؟ برای حساب حساس، نسخه رسمی و رمز دومرحله ای را در اولویت بگذارید.

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

رشته ای که باید قبل از دکمه نصب دیده شود

SHA-256 ابزار ترسناک یا پیچیده ای نیست؛ یک پاسخ دقیق به یک سوال محدود است: «آیا این همان فایلی است که منبع معرفی کرده؟» اگر پاسخ منفی باشد، ادامه نصب توجیهی ندارد. اگر پاسخ مثبت باشد، بررسی منبع، امضا، مجوزها و حساسیت حساب هنوز باقی است. امنیت خوب معمولا از یک ابزار جادویی نمی آید؛ از چند کنترل کوچک و درست در زمان مناسب ساخته می شود.

 

دکمه بازگشت به بالا