Ověřování podpisů APK: Jak zajistit, aby byla vaše aplikace bezpečná
Sideloading aplikací pro Android nabízí svobodu a flexibilitu, ale přináší velké riziko: manipulované aplikace. Zlomyslní herci často upravují oblíbené aplikace tak, aby obsahovaly spyware nebo adware, než je znovu distribuují na neoficiálních stránkách. Jak si můžete být jisti, že soubor APK, který jste právě stáhli, je stejný jako ten, který vývojář nahrál na Google Play?
Odpověď přichází na Digitální podpisy APK. Níže se podíváme na to, jak podepisování aplikací skutečně funguje, a projdeme si pomocí našeho Online ověřovač APK ke kontrole hash a certifikátu APK, než se mu rozhodnete důvěřovat.
Verze na 60 sekund:
Android podepisuje každý soubor APK klíčem vydavatele. Telefon odmítne "aktualizaci", jejíž podpis neodpovídá stávající instalaci; to je hlavní obrana OS proti napodobování identity. Chcete-li ověřit sideloaded APK, spočítejte jeho hash SHA-256 a jeho otisk podpisového certifikátu a poté oba porovnejte s hodnotami, kterým důvěřujete (existující instalace z Obchodu Play, otisk zveřejněný vývojářem nebo předchozí kopie, o které víte, že je dobrá). Shoda znamená, že soubor je bajtově identický a podepsaný stejným vydavatelem; neshoda znamená neinstalujte.
Co je podpis APK?
Digitální podpis je kryptografický doklad totožnosti. Když vývojář dokončí aplikaci, „podepíše“ ji pomocí soukromého klíče (úložiště klíčů). Android pak použije odpovídající veřejný klíč vložený v APK, aby zajistil:
- Integrita: Soubor nebyl od podepsání změněn.
- Autenticita: Vývojář je ten, za koho se vydávají.
- Aktualizace: Pouze soubory APK podepsané stejným klíčem mohou aktualizovat stávající aplikaci v telefonu.
Vývoj podepisování: V1, V2, V3 a V4
Google v průběhu let neustále vylepšoval zabezpečení souborů APK:
- V1 (podpis jaru): Podepisuje jednotlivé položky v ZIP. Pomalé a zranitelné vůči určitým útokům.
- V2 (podpisové schéma APK): Podepíše celý blok souboru. Ověření je mnohem rychlejší a bezpečnější. (Android 7.0+)
- V3 (otočení kláves): Umožňuje vývojářům změnit podpisový klíč při zachování aktualizací aplikací. (Android 9.0+)
- V4 (streamování): Optimalizováno pro inkrementální instalace přes ADB. (Android 11+)
Jak ověřit podpisy APK online
Náš Nástroj Ověřovač APK nepočítá pouze hash; provádí úplný kryptografický audit řetězce certifikátů. Zde je návod, jak jej používat:
Kroky k ověření:
- Přejděte na stránku Ověřovač APK.
- Vyberte soubor APK nebo XAPK.
- Náš nástroj analyzuje adresář META-INF/ a extrahuje data certifikátu (.RSA, .DSA nebo .EC).
- Počkejte na dokončení analýzy (trvá to jen několik sekund).
- Přečtěte si Informace o certifikátu: Jméno vývojáře, organizace a země původu.
- Zkontrolujte Hashe: Porovnejte SHA-256 zobrazený na našem webu s hodnotou, kterou vydavatel zveřejnil na svém vlastním oficiálním webu, stránce vydání projektu nebo manifestu podpisu.
Bezpečnostní varování
Pokud ověřovatel zobrazuje "Certifikát ladění" nebo neznámou entitu s vlastním podpisem pro hlavní aplikaci, jako je Facebook nebo WhatsApp, NEINSTALUJTE JI. Téměř jistě je kompromitován.
Vysvětlení kontrolních součtů (MD5, SHA-1, SHA-256)
Kontrolní součty jsou řetězce pevné délky představující celý soubor. Pokud změníte jeden pixel v ikoně aplikace, hash SHA-256 se úplně změní.
| Typ hash | Úroveň zabezpečení | Poznámky |
|---|---|---|
| MD5 | Dědictví | Zranitelný vůči kolizím. Ne kvůli bezpečnosti. |
| SHA-1 | Mírný | Stále široce používaný pro rychlé vyhledávání. |
| SHA-256 | Výborně | Moderní standard pro ověřování aplikací. |
Co vám vlastně říká podpisový certifikát
Když ověřovatel vrátí certifikát, části, které jsou důležité pro bezpečnost bočního načítání, nejsou barevné kousky metadat X.509, ale malá hrstka polí. Z praktického hlediska:
- SHA-256 otisk certifikátu. Toto je jediná nejdůležitější hodnota: hash 64 hexadecimálních znaků, který jednoznačně identifikuje podpisový klíč. Dva soubory APK se stejným otiskem SHA-256 byly podepsány stejným soukromým klíčem. To je to, co znamená "kontinuita podpisu" v logice aktualizace operačního systému.
- Charakteristický název předmětu. Často něco jako CN=Some App, O=Example Inc., C=US. Užitečné jako náznak, nikoli jako důkaz identity, protože útočník si může do DN svého vlastního certifikátu podepsaného sebou vložit libovolný řetězec. Vždy zkontrolujte otisk prstu, nikoli jméno.
- Doba platnosti. Většina legitimních publikačních klíčů je generována s ~25letou platností (historické doporučení je 10 000 dní). Certifikát, jehož platnost vyprší příští měsíc, nebo certifikát, jehož platnost se již překrývá s minulostí, je varovným signálem.
- Podpisový algoritmus. Moderní aplikace používají SHA256withRSA nebo SHA256withECDSA. MD5 je rozbitý; SHA1withRSA je zastaralé. APK podepsaný pouze s v1 / SHA-1 je v roce 2026 podezřelý.
Hash vs Signature: Rozdíl Většina výukových programů Přeskočit
Lidé často spojují „hash“ a „podpis“. Slouží k velmi odlišným účelům a bezpečné ověření vyžaduje obojí:
- hash (SHA-256 celého APK) vám řekne, zda jsou bajty souboru totožné s referenční kopií. Pokud váš hash odpovídá publikovanému hash vydavatele, soubor nebyl změněn od doby, kdy tento hash vypočítal. Samotná kontrola hash neříká nic o tom, kdo vytvořil bajty.
- podpis prokazuje, kdo vytvořil bajty, konkrétně, že tento soubor vytvořil držitel soukromého klíče spárovaného s podpisovým certifikátem. Samotná kontrola podpisu neříká nic o tom, zda byl soubor po podpisu zmanipulován (OS to zjistí a odmítne, ale samotný certifikát o obsahu souboru "neví").
V případě souboru APK složeného ze strany je nejsilnější záruka, která kombinuje obojí: otisk certifikátu se shoduje se známým otiskem vydavatele a, SHA-256 souboru odpovídá hodnotě, kterou vydavatel publikoval pro toto přesné sestavení.
Kde získat důvěryhodný referenční otisk prstu
Nejtěžší částí ověření je znát správnou hodnotu, se kterou lze porovnávat. Několik spolehlivých přístupů v hrubém pořadí spolehlivosti:
- Vlastní web nebo stránka vydavatele. Mnoho projektů s otevřeným zdrojovým kódem a dodavatelů, kteří si uvědomují bezpečnost, zveřejňuje otisk SHA-256 svého podpisového certifikátu spolu se stahováním. Toto je zlatý standard.
- Stávající instalace Obchodu Play. Pokud je aplikace již nainstalována na zařízení spravovaném službou Play, její otisk certifikátu je podle definice otiskem vydavatele. Porovnejte s tím otisk vašeho sideloaded APK. Nástroje jako Apk Analyzer (v Android Studiu) nebo apksigner verify --print-certs jej čtou přímo z nainstalovaného APK.
- První soubor APK této aplikace, který jste kdy nainstalovali. Pokud aplikaci nějakou dobu používáte a nikdy se vám nezobrazila výzva „neshoda podpisu“, můžete jako referenci použít kteroukoli ze svých starších kopií. Následné aktualizace od stejného vydavatele musí používat stejný klíč (nebo rotovat přes v3, v takovém případě řetězec stále ověřuje).
- Archivovaný veřejný snímek. Internetový archiv a podobné služby příležitostně uchovávají staré stránky vydání APK spolu s jejich deklarovanými hodnotami hash. Užitečné pro velmi stará sestavení, kde je původní stránka vydavatele pryč.
Běžné chyby při ověřování
- Porovnání špatného pole. „MD5 souboru APK“ není totéž jako „MD5 certifikátu“. Použijte stejné pole pro soubor kandidáta a odkaz.
- Důvěřovat vlastním metadatům souboru. Soubor APK může ve svém manifestu obsahovat libovolný řetězec verze, jakýkoli štítek balíčku, jakoukoli značku autora. Žádný z nich není kryptografický. Blok podpisu je jediná věc, kterou OS skutečně ověřuje.
- Přeskakování ověření, protože soubor poslal přítel. Přítel, který říká „toto je oficiální APK“, to neověřil o nic víc než vy. Trvejte na zdroji, který zveřejňuje otisk prstu, který můžete zkontrolovat.
- Považovat jedno odpovídající pole za dostatečné. Shoduje se s otiskem SHA-256 souboru a SHA-256 certifikátu; shoda jednoho, ale nikoli druhého, je známkou toho, že bajty jsou změněny nebo že se zdroj vydává za vydavatele.
- Deaktivace Play Protect pro „pohodlnost“. Play Protect je skener druhého názoru, který nenahrazuje ověření podpisu, ale zachytí skutečný malware, který ověření podpisu nedokáže, protože Protect ví o známých špatných balíčcích podle obsahu, nikoli podle podpisového klíče. Nechte to zapnuté.
Je vaše aplikace bezpečná?
Nehádejte. Ověřte své sideloaded APK oproti oficiálním certifikátům vývojáře během několika sekund.
Spusťte ověření APKČasto kladené otázky (FAQ)
Proč mi Android blokuje instalaci upraveného souboru APK?
Protože podpis nového souboru APK neodpovídá již nainstalovanému. Hackerům to zabrání „přepsat“ vaši skutečnou bankovní aplikaci falešnou.
Mohu znovu podepsat soubor APK po jeho úpravě?
Ano, ale budete používat jiný klíč. Aplikace se stále nainstaluje do „čistého“ telefonu, ale již nebude dostávat aktualizace od původního vývojáře.
Co je připnutí certifikátu?
Jedná se o pokročilou bezpečnostní funkci, kdy aplikace před komunikací se svými servery explicitně zkontroluje konkrétní certifikát, takže manipulované aplikace jsou k ničemu, i když se nainstalují správně.
Udělejte ověření podpisu součástí každého vedlejšího zatížení
Podpisy dělají hodně těžké práce v moderním zabezpečení Androidu. Strávit několik sekund navíc spuštěním souboru přes Ověřovač APK je levný způsob, jak udržet neoprávněnou aplikaci mimo vaše zařízení, než se vůbec nainstaluje.