Overenie podpisov APK: Ako zabezpečiť, aby bola vaša aplikácia bezpečná

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

Sideload aplikácií v systéme Android ponúka slobodu a flexibilitu, ale prináša so sebou veľké riziko: manipulované aplikácie. Škodliví herci často upravujú populárne aplikácie tak, aby obsahovali spyware alebo adware predtým, ako ich znova distribuujú na neoficiálnych stránkach. Ako si môžete byť istí, že súbor APK, ktorý ste práve stiahli, je presne ten istý, ktorý vývojár odovzdal do služby Google Play?

Odpoveď prichádza na Digitálne podpisy APK. Nižšie popíšeme, ako podpisovanie aplikácií skutočne funguje, a prejdeme si pomocou nášho Online overovač súborov APK na kontrolu hash a certifikátu súboru APK skôr, ako sa mu rozhodnete dôverovať.

60-sekundová verzia:

Android podpisuje každý súbor APK kľúčom vydavateľa. Telefón odmietne "aktualizáciu", ktorej podpis sa nezhoduje s existujúcou inštaláciou; to je hlavná obrana OS proti napodobňovaniu. Ak chcete overiť stiahnutý súbor APK, vypočítajte jeho hodnotu hash SHA-256 a odtlačok jeho podpisového certifikátu a potom oba porovnajte s hodnotami, ktorým dôverujete (existujúca inštalácia Obchodu Play, zverejnený digitálny odtlačok vývojára alebo známa dobrá skoršia kópia). Zhoda znamená, že súbor je bajtovo identický a podpísaný rovnakým vydavateľom; nesúlad znamená neinštalujte.

Čo je to podpis súboru APK?

Digitálny podpis je kryptografickým dôkazom identity. Keď vývojár dokončí aplikáciu, „podpíše“ ju pomocou súkromného kľúča (úložisko kľúčov). Android potom použije zodpovedajúci verejný kľúč vložený v súbore APK na zabezpečenie:

  1. Integrita: Súbor sa od podpísania nezmenil.
  2. Autenticita: Vývojár je tým, za koho sa vydáva.
  3. Aktualizácie: Iba súbory APK podpísané rovnakým kľúčom môžu aktualizovať existujúcu aplikáciu v telefóne.

Vývoj podpisovania: V1, V2, V3 a V4

Google v priebehu rokov neustále vylepšoval zabezpečenie súborov APK:

Ako overiť podpisy APK online

Náš Nástroj na overovanie súborov APK nepočíta len hash; vykonáva úplný kryptografický audit certifikačného reťazca. Tu je návod, ako ho použiť:

Kroky na overenie:

  1. Prejdite na stránku Verifikátor súboru APK.
  2. Vyberte súbor APK alebo XAPK.
  3. Náš nástroj analyzuje adresár META-INF/ a extrahuje údaje certifikátu (.RSA, .DSA alebo .EC).
  4. Počkajte na dokončenie analýzy (trvá to len niekoľko sekúnd).
  5. Prečítajte si Informácie o certifikáte: Názov vývojára, organizácia a krajina pôvodu.
  6. Skontrolujte Haše: Porovnajte SHA-256 zobrazený na našej stránke s hodnotou, ktorú vydavateľ zverejnil na svojej vlastnej oficiálnej stránke, na stránke vydania projektu alebo v manifeste podpisu.

Bezpečnostné varovanie

Ak overovateľ zobrazuje "Certifikát ladenia" alebo neznámu entitu s vlastným podpisom pre hlavnú aplikáciu, ako je Facebook alebo WhatsApp, NEINŠTALUJTE HO. Takmer určite je ohrozená.

Porozumenie kontrolným súčtom (MD5, SHA-1, SHA-256)

Kontrolné súčty sú reťazce s pevnou dĺžkou predstavujúce celý súbor. Ak zmeníte jeden pixel v ikone aplikácie, hash SHA-256 sa úplne zmení.

Typ hash Úroveň zabezpečenia Poznámky
MD5 Legacy Zraniteľný voči kolíziám. Nie kvôli bezpečnosti.
SHA-1 Mierne Stále široko používaný na rýchle vyhľadávanie.
SHA-256 Výborne Moderný štandard overovania aplikácií.

Čo vám vlastne hovorí podpisový certifikát

Keď overovateľ vráti certifikát, časti, ktoré sú dôležité pre bezpečnosť bočného načítania, nie sú farebné kúsky metadát X.509, ale malá hŕstka polí. Z praktického hľadiska:

Hash vs Signature: Rozdiel Väčšina tutoriálov Preskočiť

Ľudia často spájajú „hash“ a „podpis“. Slúžia na veľmi odlišné účely a bezpečné overenie si vyžaduje oboje:

V prípade súboru APK nahraného z druhej strany najsilnejšie uistenie kombinuje tieto dve veci: odtlačok certifikátu sa zhoduje so známym odtlačkom vydavateľa a, pričom SHA-256 súboru sa zhoduje s hodnotou, ktorú vydavateľ zverejnil pre túto presnú zostavu.

Kde získať dôveryhodný referenčný odtlačok prsta

Najťažšou časťou overenia je poznať správnu hodnotu, s ktorou sa dá porovnávať. Niekoľko spoľahlivých prístupov v hrubom poradí spoľahlivosti:

  1. Vlastná webová lokalita alebo stránka vydania vydavateľa. Mnoho open source projektov a predajcov, ktorí si uvedomujú bezpečnosť, zverejňuje odtlačok SHA-256 svojho podpisového certifikátu spolu s ich stiahnutím. Toto je zlatý štandard.
  2. Existujúca inštalácia Obchodu Play. Ak je aplikácia už nainštalovaná na zariadení spravovanom službou Play, jej odtlačok certifikátu je podľa definície odtlačok vydavateľa. Porovnajte s tým odtlačok vášho súboru APK. Nástroje ako Apk Analyzer (v Android Studio) alebo apksigner verify --print-certs ho čítajú priamo z nainštalovaného súboru APK.
  3. Prvý súbor APK tejto aplikácie, ktorý ste si nainštalovali. Ak aplikáciu používate už nejaký čas a nikdy sa vám nezobrazila výzva „nesúlad podpisu“, môžete ako referenciu použiť ktorúkoľvek zo svojich starších kópií. Nasledujúce aktualizácie od toho istého vydavateľa musia používať rovnaký kľúč (alebo rotovať cez v3, v takom prípade reťazec stále overuje).
  4. Archivovaná verejná snímka. Internetový archív a podobné služby príležitostne uchovávajú staré stránky vydania APK spolu s ich deklarovanými hodnotami hash. Užitočné pre veľmi staré zostavy, kde je pôvodná stránka vydavateľa preč.

Bežné chyby pri overovaní

Je vaša aplikácia bezpečná?

Nehádajte. Overte svoje súbory APK načítané bokom podľa oficiálnych certifikátov vývojárov v priebehu niekoľkých sekúnd.

Spustite overenie súboru APK

Často kladené otázky (FAQ)

Prečo mi Android blokuje inštaláciu upraveného súboru APK?

Pretože podpis nového súboru APK sa nezhoduje s už nainštalovaným. Hackerom to zabráni „prepísať“ vašu skutočnú bankovú aplikáciu falošnou.

Môžem znova podpísať súbor APK po jeho úprave?

Áno, ale budete používať iný kľúč. Aplikácia sa nainštaluje na „čistý“ telefón, ale už nebude dostávať aktualizácie od pôvodného vývojára.

Čo je pripnutie certifikátu?

Ide o pokročilú bezpečnostnú funkciu, pri ktorej aplikácia pred komunikáciou so svojimi servermi explicitne kontroluje konkrétny certifikát, vďaka čomu sú sfalšované aplikácie zbytočné, aj keď sa správne nainštalujú.

Urobte overenie podpisu súčasťou každého vedľajšieho zaťaženia

Podpisy robia veľa ťažkej práce v modernom zabezpečení Androidu. Stráviť niekoľko sekúnd navyše na spustenie súboru cez Verifikátor súboru APK je lacný spôsob, ako udržať sfalšovanú aplikáciu mimo vášho zariadenia skôr, ako sa vôbec nainštaluje.

Navrhol a zdokumentoval Mst Shaefale Vedúci vývojár a architekt balíkov Android • Overené na Android 12–15

Mst Shaefale spravuje nástroj na zlučovanie XAPK/APKS na strane klienta, analyzátor binárnych manifestov a nástroje na podpisovanie APK v1+v2 na xapktoapk.com. Všimli ste si zastaraný príkaz alebo zmenu operačného systému? Pošlite redakčnú poznámku.