Ověřování podpisů APK: Jak zajistit, aby byla vaše aplikace bezpečná

A magnifying glass over a phone showing a certificate and fingerprint, illustrating verifying APK signatures

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:

  1. Integrita: Soubor nebyl od podepsání změněn.
  2. Autenticita: Vývojář je ten, za koho se vydávají.
  3. 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:

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í:

  1. Přejděte na stránku Ověřovač APK.
  2. Vyberte soubor APK nebo XAPK.
  3. Náš nástroj analyzuje adresář META-INF/ a extrahuje data certifikátu (.RSA, .DSA nebo .EC).
  4. Počkejte na dokončení analýzy (trvá to jen několik sekund).
  5. Přečtěte si Informace o certifikátu: Jméno vývojáře, organizace a země původu.
  6. 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:

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í:

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:

  1. 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.
  2. 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.
  3. 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).
  4. 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í

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.

Navrhl a zdokumentoval Mst Shaefale Vedoucí vývojář a architekt balíčku Android • Ověřeno na Androidu 12–15

Mst Shaefale spravuje nástroje pro slučování XAPK/APKS na straně klienta, analyzátor binárních manifestů a nástroje pro podepisování APK v1+v2 na xapktoapk.com. Zaznamenali jste zastaralý příkaz nebo změnu operačního systému? Pošlete redakční poznámku.