Asosiy matnga o'tish
Blog

Jarayon

APK va IPA nazorat qiymatlari (MD5, SHA-1, SHA-256): nima uchun so'raladi va qanday olinadi

Mobil ekspertiza topshirilgan fayl uchun MD5, SHA-1 va SHA-256 qiymatlarini so'raydi. Ular nima, qanday olinadi va nega aynan topshirilgan fayldan olinishi kerak.

· 6 daq. o'qish

Foto: Frettie, CC BY 3.0 · Wikimedia Commons

Mobil ilovani kiberxavfsizlik ekspertizasiga topshirishda APK yoki IPA fayl bilan birga uning nazorat qiymatlari — MD5, SHA-1 va SHA-256 — ham so'raladi. Birinchi marta bu talabni ko'rgan jamoa ko'pincha "buni qayerdan olamiz?" deb so'raydi. Aslida bu bir daqiqalik ish. Lekin bitta nozik qoida bor, uni buzish ortiqcha yozishmalar va vaqt yo'qotishga olib keladi.

Nazorat qiymati nima

Nazorat qiymati (hash, checksum) — fayl tarkibidan hisoblangan qisqa "barmoq izi". Bir xil fayl har doim bir xil qiymat beradi. Faylda bitta bayt o'zgarsa ham, qiymat butunlay boshqacha bo'ladi.

Ekspertiza uchun bu bir nechta savolga javob beradi:

  • Aynan qaysi fayl tekshirildi? Hisobotdagi topilmalar ma'lum bir build'ga tegishli. Hash shu build'ni aniq belgilaydi.
  • Fayl yo'lda o'zgarmadimi? Yuklash yoki uzatish paytida fayl buzilmagani yoki almashtirilmaganini tekshirish mumkin.
  • Tekshirilgan va tarqatilayotgan fayl bir xilmi? Keyinchalik solishtirish uchun asos bo'ladi.

MD5 va SHA-1 bugungi kunda kriptografik jihatdan zaif hisoblanadi — ularga to'qnashuv (collision) hujumlari ma'lum. Shuning uchun asosiy ishonchli qiymat SHA-256. MD5 va SHA-1 esa odatda moslik va qulaylik uchun qo'shimcha identifikator sifatida so'raladi.

Qanday olinadi

Linux

md5sum app-release.apk
sha1sum app-release.apk
sha256sum app-release.apk

macOS

md5 app-release.ipa
shasum -a 1 app-release.ipa
shasum -a 256 app-release.ipa

Windows (PowerShell)

Get-FileHash .\app-release.apk -Algorithm MD5
Get-FileHash .\app-release.apk -Algorithm SHA1
Get-FileHash .\app-release.apk -Algorithm SHA256

PowerShell bo'lmasa, oddiy buyruq qatorida certutil ham ishlaydi:

certutil -hashfile app-release.apk SHA256

Natijalarni bitta matn faylga yozib, fayl nomi, versiya raqami va build sanasi bilan birga topshirish qulay. Masalan: app-release.apk, versiya 2.3.1 (build 45), SHA-256: ....

Asosiy qoida: aynan topshirilgan fayl

Nazorat qiymati faqat aynan o'sha fayl uchun to'g'ri. Shuning uchun:

  1. Avval yakuniy faylni yig'ing, keyin hash oling, keyin aynan shu faylni topshiring.
  2. Hash olgandan keyin qayta yig'mang. Bir xil kod va bir xil sozlamalar bilan qayta yig'ilgan build ham ko'pincha boshqa hash beradi: build vaqt belgilari, imzo va boshqa omillar farq qiladi.
  3. Faylni qayta imzolamang va arxivlab qayta ochib o'zgartirmang. Imzo o'zgarsa, hash ham o'zgaradi.
  4. Bir nechta fayl bo'lsa, har biri uchun alohida hash. APK va IPA, yoki turli arxitekturalar uchun alohida APK'lar — har birining o'z qiymati bor.
  5. Faylni zip'ga solsangiz, ekspertiza qaysi fayl uchun hash kutayotganini aniqlashtiring: arxivning o'zi uchunmi yoki ichidagi APK/IPA uchunmi.

Ekspertiza jarayonida tuzatish kiritib, yangi build topshirsangiz, yangi fayl uchun hash'larni ham yangidan oling. Eski qiymatlarni yangi fayl bilan yuborish — tez-tez uchraydigan xato.

Qiymatni qanday solishtirish

Hash'ni olish bilan birga uni tekshirishni ham bilish foydali. Masalan, faylni ekspertiza portaliga yuklashdan oldin yoki hamkasbingizdan olganingizdan keyin. Linux'da qiymatlarni faylga yozib, keyin avtomatik solishtirish mumkin:

sha256sum app-release.apk > app-release.apk.sha256
sha256sum -c app-release.apk.sha256

Natijada app-release.apk: OK chiqsa, fayl o'zgarmagan. PowerShell'da esa ikki qiymatni oddiy solishtirish yetarli: (Get-FileHash .\app-release.apk).Hash -eq "KUTILGAN_QIYMAT" buyrug'i True qaytarishi kerak. Qiymatlarni ko'z bilan solishtirsangiz, faqat boshi va oxiriga emas, to'liq qatorga qarang.

Do'kondagi fayl boshqacha bo'lishi mumkin

Bu ko'pincha savol tug'diradi, shuning uchun oldindan bilib qo'ygan yaxshi:

  • Google Play. Agar Play App Signing ishlatilsa, siz AAB yuklaysiz, Google esa undan APK'larni o'zi yig'ib, o'z kaliti bilan imzolaydi. Foydalanuvchiga boradigan APK siz topshirgan fayldan boshqa hash'ga ega bo'ladi.
  • App Store. Apple do'kondagi ilovani qo'shimcha qayta ishlaydi va shifrlaydi, shuning uchun do'kondan yuklangan ilova ham sizning IPA faylingiz bilan bir xil hash bermaydi.

Bu normal holat. Shuning uchun ekspertizaga do'kondan yuklab olingan nusxani emas, aynan siz yig'gan va tekshirishga tayyorlagan faylni topshiring hamda uning hash'ini ko'rsating. Kod va sozlamalar tekshirilgan build bilan bir xil bo'lishi kerak.

Faylni tayyorlash tartibi

Biz o'z mahsulotimizni topshirishda quyidagi tartibga amal qildik va mijozlarga ham shuni tavsiya qilamiz:

  1. Barcha tuzatishlar kiritilgan, release sozlamalari (obfuskatsiya, R8, RASP) yoqilgan holda yakuniy build yig'iladi.
  2. Fayl test qurilmada o'rnatilib, asosiy ssenariylar va himoya choralari (root/jailbreak, tamper) qisqacha tekshiriladi.
  3. Shundan keyingina MD5, SHA-1, SHA-256 olinadi.
  4. Fayl, hash'lar, versiya va build raqami bitta paketda topshiriladi.
  5. Fayl nusxasi va hash'lar o'zingizda ham saqlanadi — keyingi savollar va qayta tekshiruv uchun.

Shu oddiy tartib "biz boshqa fayl tekshirdik" yoki "qiymatlar mos kelmayapti" kabi holatlarning oldini oladi.

Skanerlash

Ilovangizni ekspertizaga topshirishdan oldin tayyorlab olmoqchimisiz? Skanerlash uchun ariza qoldiring. Claude AI agenti va mutaxassisimiz APK yoki IPA faylingizni tekshirib, topshirishdan oldin nimalarni yopish kerakligini ko'rsatib beramiz.