Overenie podpisov APK: Ako zabezpečiť, aby bola vaša aplikácia bezpečná
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:
- Integrita: Súbor sa od podpísania nezmenil.
- Autenticita: Vývojár je tým, za koho sa vydáva.
- 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:
- V1 (podpisovanie pohárov): Podpíše jednotlivé záznamy v ZIP. Pomalé a zraniteľné voči určitým útokom.
- V2 (Schéma podpisu APK): Podpíše celý blok súboru. Oveľa rýchlejšie na overenie a bezpečnejšie. (Android 7.0 a novší)
- V3 (otočenie kľúča): Umožňuje vývojárom zmeniť ich podpisový kľúč pri zachovaní aktualizácií aplikácií. (Android 9.0 a novší)
- V4 (Streamovanie): Optimalizované pre prírastkové inštalácie cez ADB. (Android 11+)
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:
- Prejdite na stránku Verifikátor súboru APK.
- Vyberte súbor APK alebo XAPK.
- Náš nástroj analyzuje adresár META-INF/ a extrahuje údaje certifikátu (.RSA, .DSA alebo .EC).
- Počkajte na dokončenie analýzy (trvá to len niekoľko sekúnd).
- Prečítajte si Informácie o certifikáte: Názov vývojára, organizácia a krajina pôvodu.
- 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:
- SHA-256 odtlačok certifikátu. Toto je jediná najdôležitejšia hodnota: 64-hex-znakový hash, ktorý jednoznačne identifikuje podpisový kľúč. Dva súbory APK s rovnakým odtlačkom SHA-256 boli podpísané rovnakým súkromným kľúčom. To je to, čo znamená "kontinuita podpisu" v logike aktualizácie operačného systému.
- Charakteristický názov subjektu. Často niečo ako CN=Some App, O=Example Inc., C=US. Užitočné ako nápoveda, nie ako dôkaz identity, pretože útočník môže do DN svojho vlastného certifikátu vložiť ľubovoľný reťazec. Vždy si skontrolujte odtlačok prsta, nie meno.
- Doba platnosti. Väčšina legitímnych publikačných kľúčov sa generuje s ~25-ročnou platnosťou (historické odporúčanie je 10 000 dní). Certifikát, ktorého platnosť vyprší budúci mesiac, alebo certifikát, ktorého platnosť sa už prekrýva s minulosťou, je červenou vlajkou.
- Podpisový algoritmus. Moderné aplikácie používajú SHA256withRSA alebo SHA256withECDSA. MD5 je zlomený; SHA1withRSA je zastarané. Súbor APK podpísaný iba s v1 / SHA-1 je v roku 2026 podozrivý.
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:
- hash (SHA-256 celého súboru APK) vám povie, či sú bajty súboru identické s referenčnou kópiou. Ak sa váš hash zhoduje s publikovaným hashom vydavateľa, súbor nebol zmenený, odkedy tento hash vypočítali. Samotná kontrola hash nehovorí nič o tom, kto vytvoril bajty.
- podpis dokazuje, kto vytvoril bajty, konkrétne, že tento súbor vytvoril držiteľ súkromného kľúča spárovaného s podpisovým certifikátom. Samotná kontrola podpisu nehovorí nič o tom, či bol súbor po podpísaní nefalšovaný (OS to zistí a odmietne, ale samotný certifikát o obsahu súboru „nevie“).
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:
- 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.
- 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.
- 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).
- 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í
- Porovnanie nesprávneho poľa. „MD5 súboru APK“ nie je to isté ako „MD5 certifikátu“. Pre súbor kandidátov a referenciu použite rovnaké pole.
- Dôverovať vlastným metadátam súboru. Súbor APK môže vo svojom manifeste obsahovať ľubovoľný reťazec verzie, ľubovoľný štítok balíka alebo značku autora. Žiadna z nich nie je kryptografická. Blok podpisu je jediná vec, ktorú OS skutočne overuje.
- Overenie sa preskakuje, pretože súbor odoslal priateľ. Priateľ, ktorý hovorí „toto je oficiálny súbor APK“, to neoveril o nič viac ako vy. Trvajte na zdroji, ktorý zverejňuje odtlačok prsta, ktorý si môžete skontrolovať.
- Jedno zodpovedajúce pole sa považuje za dostatočné. Zhoduje sa s odtlačkom SHA-256 súboru a SHA-256 certifikátu; zhoda jedného, ale nie druhého je znakom toho, že bajty sú pozmenené alebo sa zdroj vydáva za vydavateľa.
- Vypnutie funkcie Play Protect kvôli „pohodliu“. Play Protect je skener druhého názoru, ktorý nenahrádza overenie podpisu, ale zachytáva skutočný malvér, ktorý overenie podpisu nedokáže, pretože Protect vie o známych chybných balíkoch podľa obsahu, nie podľa podpisového kľúča. Nechajte to zapnuté.
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.