Mengesahkan Tandatangan APK: Cara Memastikan Apl Anda Selamat
Apl pemuatan sisi pada Android menawarkan kebebasan dan fleksibiliti, tetapi ia datang dengan risiko utama: aplikasi yang diganggu gugat. Pelakon berniat jahat sering mengubah suai apl popular untuk memasukkan perisian pengintip atau perisian iklan sebelum mengedarkannya semula di tapak tidak rasmi. Bagaimanakah anda boleh memastikan APK yang anda baru muat turun adalah sama persis dengan yang dimuat naik oleh pembangun ke Google Play?
Jawapannya datang kepada tandatangan digital APK. Di bawah, kami akan membincangkan cara menandatangani apl sebenarnya berfungsi dan berjalan menggunakan Pengesah APK Dalam Talian kami untuk menyemak cincang dan sijil APK sebelum anda memutuskan untuk mempercayainya.
Versi 60 saat:
Android menandatangani setiap APK dengan kunci penerbit. Telefon menolak "kemas kini" yang tandatangannya tidak sepadan dengan pemasangan sedia ada; itu adalah pertahanan anti-penyamaran utama OS. Untuk mengesahkan APK yang dimuatkan sisi, hitung cincang SHA-256 dan cap jari sijil tandatangannya, kemudian bandingkan kedua-duanya dengan nilai yang anda percayai (pemasangan Gedung Play sedia ada, cap jari yang diterbitkan oleh pembangun atau salinan awal yang terkenal). Padanan bermakna fail adalah sama bait dan ditandatangani oleh penerbit yang sama; ketidakpadanan bermakna jangan pasang.
Apakah Tandatangan APK?
Tandatangan digital ialah bukti identiti kriptografi. Apabila pembangun menyelesaikan aplikasi, mereka "menandatangani"nya menggunakan kunci peribadi (keystore). Android kemudian menggunakan kunci awam sepadan yang dibenamkan dalam APK untuk memastikan:
- Integriti: Fail tidak ditukar sejak ia ditandatangani.
- Ketulenan: Pembangun adalah siapa yang mereka katakan.
- Kemas kini: Hanya APK yang ditandatangani dengan kunci yang sama boleh mengemas kini apl sedia ada pada telefon anda.
Evolusi Tandatangan: V1, V2, V3 dan V4
Google telah terus meningkatkan keselamatan APK selama ini:
- V1 (Tandatangan Balang): Menandatangani entri individu dalam ZIP. Perlahan dan terdedah kepada serangan tertentu.
- V2 (Skim Tandatangan APK): Menandatangani keseluruhan blok fail. Lebih cepat untuk mengesahkan dan lebih selamat. (Android 7.0+)
- V3 (Putaran Kekunci): Membenarkan pembangun menukar kunci tandatangan mereka sambil mengekalkan kemas kini apl. (Android 9.0+)
- V4 (Penstriman): Dioptimumkan untuk pemasangan tambahan ke atas ADB. (Android 11+)
Cara Mengesahkan Tandatangan APK Dalam Talian
Alat Pengesah APK kami bukan sahaja mengira cincang; ia menjalankan audit kriptografi penuh bagi rantaian sijil. Berikut ialah cara menggunakannya:
Langkah-langkah untuk Mengesahkan:
- Navigasi ke halaman Pengesah APK.
- Pilih fail APK atau XAPK anda.
- Alat kami menghuraikan direktori META-INF/ dan mengekstrak data sijil (.RSA, .DSA atau .EC).
- Tunggu analisis selesai (hanya mengambil masa beberapa saat).
- Semak Maklumat Sijil: Nama pembangun, organisasi dan negara asal.
- Semak Hashes: Bandingkan SHA-256 yang dipaparkan di tapak kami dengan nilai yang diterbitkan oleh penerbit di tapak rasmi mereka sendiri, halaman keluaran projek atau menandatangani manifes.
Amaran Keselamatan
Jika pengesah menunjukkan "Sijil Nyahpepijat" atau entiti "Ditandatangani Sendiri" yang tidak diketahui untuk apl utama seperti Facebook atau WhatsApp, JANGAN PASANGNYA. Ia hampir pasti terjejas.
Memahami Jumlah Semakan (MD5, SHA-1, SHA-256)
Checksum ialah rentetan panjang tetap yang mewakili keseluruhan fail. Jika anda menukar satu piksel dalam ikon apl, cincang SHA-256 akan berubah sepenuhnya.
| Jenis Hash | Tahap Keselamatan | Nota |
|---|---|---|
| MD5 | Legasi | Terdedah kepada perlanggaran. Bukan untuk keselamatan. |
| SHA-1 | Sederhana | Masih digunakan secara meluas untuk carian pantas. |
| SHA-256 | Cemerlang | Standard moden untuk pengesahan apl. |
Apa yang Diberitahukan oleh Sijil Menandatangani Kepada Anda
Apabila pengesah mengembalikan sijil, bahagian yang penting untuk keselamatan pemuatan sisi bukanlah bit berwarna-warni metadata X.509 tetapi segelintir kecil medan. Dari segi praktikal:
- SHA-256 cap jari sijil. Ini ialah satu-satunya nilai yang paling penting: cincang aksara 64-hex yang mengenal pasti kunci tandatangan secara unik. Dua APK dengan cap jari SHA-256 yang sama telah ditandatangani oleh kunci peribadi yang sama. Itulah maksud "kesinambungan tandatangan" dalam logik kemas kini OS.
- Nama Terbilang Subjek. Selalunya sesuatu seperti CN=Some App, O=Example Inc., C=US. Berguna sebagai petunjuk, bukan sebagai bukti identiti, kerana penyerang boleh meletakkan sebarang rentetan yang mereka suka dalam DN sijil yang ditandatangani sendiri. Sentiasa semak silang cap jari, bukan nama.
- Tempoh sah laku. Kebanyakan kunci penerbitan yang sah dijana dengan kesahan ~25 tahun (syor sejarah ialah 10000 hari). Sijil yang tamat tempoh bulan depan, atau sijil yang kesahihannya sudah bertindih dengan masa lalu, ialah bendera merah.
- Algoritma tandatangan. Apl moden menggunakan SHA256withRSA atau SHA256withECDSA. MD5 rosak; SHA1withRSA tidak digunakan lagi. APK yang ditandatangani hanya dengan v1 / SHA-1 adalah mencurigakan pada tahun 2026.
Hash vs Tandatangan: Perbezaan Kebanyakan Tutorial Langkau
Orang sering menggabungkan "cincang" dan "tandatangan". Mereka mempunyai tujuan yang sangat berbeza dan pengesahan yang selamat memerlukan kedua-duanya:
- hash (SHA-256 daripada keseluruhan APK) memberitahu anda sama ada bait fail adalah sama dengan salinan rujukan. Jika cincangan anda sepadan dengan cincangan penerbit yang diterbitkan, fail itu tidak diubah sejak mereka mengira cincang itu. Semakan cincang sahaja tidak mengatakan apa-apa tentang siapa yang mencipta bait.
- tandatangan membuktikan siapa yang mencipta bait, khususnya, bahawa pemegang kunci peribadi yang dipasangkan dengan sijil tandatangan menghasilkan fail ini. Semakan tandatangan sahaja menyatakan apa-apa tentang sama ada fail telah diganggu selepas menandatangani (OS akan mengesannya dan menolaknya, tetapi sijil itu sendiri tidak "tahu" tentang kandungan fail).
Untuk APK dimuat sisi, jaminan paling kukuh menggabungkan kedua-duanya: cap jari sijil sepadan dengan cap jari penerbit yang diketahui dan, SHA-256 fail sepadan dengan nilai yang diterbitkan oleh penerbit untuk binaan tepat itu.
Tempat Mendapatkan Cap Jari Rujukan Yang Boleh Dipercayai
Bahagian paling sukar dalam pengesahan ialah mengetahui nilai yang betul untuk dibandingkan. Beberapa pendekatan yang boleh dipercayai, mengikut urutan kasar keyakinan:
- Laman web atau halaman keluaran penerbit sendiri. Banyak projek sumber terbuka dan vendor yang mementingkan keselamatan menerbitkan cap jari SHA-256 sijil tandatangan mereka bersama muat turun mereka. Ini adalah piawaian emas.
- Pemasangan Gedung Play sedia ada. Jika apl sudah dipasang pada peranti yang diuruskan Play, cap jari sijilnya ialah cap jari penerbit mengikut definisi. Bandingkan cap jari APK anda yang dimuat sisi dengan cap jari itu. Alat seperti Penganalisis Apk (dalam Android Studio) atau apksigner verify --print-certs membacanya terus daripada APK yang dipasang.
- APK pertama yang pernah anda pasang untuk apl ini. Jika anda telah menggunakan apl itu untuk seketika dan tidak pernah mendapat gesaan "tanda tangan tidak sepadan", anda boleh menggunakan mana-mana salinan lama anda sebagai rujukan. Kemas kini berikutnya daripada penerbit yang sama mesti menggunakan kunci yang sama (atau berputar melalui v3, dalam hal ini rantaian masih mengesahkan).
- Gambar awam yang diarkibkan. Arkib Internet dan perkhidmatan serupa kadangkala mengekalkan halaman keluaran APK lama bersama-sama cincang yang diisytiharkan. Berguna untuk binaan yang sangat lama di mana halaman penerbit asal hilang.
Kesilapan Pengesahan Biasa
- Membandingkan bidang yang salah. "MD5 fail APK" tidak sama dengan "MD5 sijil." Gunakan medan yang sama untuk fail calon dan rujukan.
- Mempercayai metadata fail itu sendiri. APK boleh memasukkan sebarang rentetan versi, sebarang label pakej, sebarang teg pengarang dalam manifesnya. Tiada satu pun daripadanya adalah kriptografi. Blok tandatangan adalah satu-satunya perkara yang sebenarnya disahkan oleh OS.
- Melangkau pengesahan kerana fail telah dihantar oleh rakan. Rakan yang mengatakan "ini adalah APK rasmi" belum mengesahkannya lebih daripada yang anda miliki. Tegaskan sumber yang menerbitkan cap jari yang boleh anda semak.
- Anggap satu medan sepadan sebagai mencukupi. Padankan kedua-dua SHA-256 fail dan cap jari SHA-256 sijil; memadankan satu tetapi bukan yang lain adalah tanda bahawa bait diubah atau sumbernya menyamar sebagai penerbit.
- Melumpuhkan Play Protect untuk "kemudahan." Play Protect ialah pengimbas pendapat kedua, bukan pengganti untuk pengesahan tandatangan, tetapi ia menangkap perisian hasad sebenar yang pengesahan tandatangan tidak boleh, kerana Protect mengetahui tentang pakej yang diketahui buruk melalui kandungan, bukan dengan kunci tandatangan. Biarkan ia menyala.
Adakah Apl Anda Selamat?
Jangan meneka. Sahkan APK dimuat sisi anda terhadap sijil pembangun rasmi dalam beberapa saat.
Mulakan Pengesahan APKSoalan Lazim (FAQ)
Mengapakah Android menyekat saya daripada memasang APK yang diubah suai?
Kerana tandatangan APK baharu tidak sepadan dengan tandatangan yang telah dipasang. Ini menghalang penggodam daripada "menimpa" apl perbankan sebenar anda dengan apl palsu.
Bolehkah saya menandatangani semula APK selepas mengubah suainya?
Ya, tetapi anda akan menggunakan kunci yang berbeza. Apl itu masih akan dipasang pada telefon yang "bersih", tetapi ia tidak lagi menerima kemas kini daripada pembangun asal.
Apakah penyematan sijil?
Ia adalah ciri keselamatan lanjutan di mana apl menyemak sijil tertentu secara eksplisit sebelum berkomunikasi dengan pelayannya, menjadikan apl yang diusik tidak berguna walaupun ia dipasang dengan betul.
Jadikan Pengesahan Tandatangan Sebahagian daripada Setiap Muatan Sisi
Tandatangan melakukan banyak kerja berat dalam keselamatan Android moden. Menghabiskan beberapa saat tambahan untuk menjalankan fail melalui Pengesah APK ialah cara yang murah untuk memastikan apl yang diusik daripada peranti anda sebelum ia dipasang.