APK-aláírások ellenőrzése: Hogyan biztosítható az alkalmazás biztonsága
Az Android-alkalmazások oldalbetöltése szabadságot és rugalmasságot kínál, de komoly kockázattal jár: manipulált alkalmazások. A rosszindulatú szereplők gyakran módosítják a népszerű alkalmazásokat, hogy kémprogramokat vagy reklámprogramokat tartalmazzanak, mielőtt újraterjesztenék őket nem hivatalos webhelyeken. Hogyan lehet biztos abban, hogy a most letöltött APK pontosan ugyanaz, mint amit a fejlesztő töltött fel a Google Playre?
A válasz a APK digitális aláírások. Az alábbiakban bemutatjuk, hogyan működik valójában az alkalmazás-aláírás, és végigvezetjük a Online APK-ellenőrző-nket, hogy ellenőrizzük az APK kivonatát és tanúsítványát, mielőtt úgy döntene, hogy megbízik benne.
A 60 másodperces verzió:
Az Android minden APK-t kiadói kulccsal ír alá. A telefon elutasítja az olyan „frissítést”, amelynek aláírása nem egyezik a meglévő telepítésével – ez az operációs rendszer legfőbb védelme a megszemélyesítés ellen. Egy külső forrásból származó APK ellenőrzéséhez számítsa ki annak SHA-256 kivonatát és az aláíró tanúsítvány ujjlenyomatát, majd vesse össze mindkettőt egy megbízható értékkel (egy meglévő Play Áruházbeli telepítéssel, a fejlesztő által közzétett ujjlenyomattal vagy egy igazoltan tiszta korábbi verzióval). Az egyezés azt jelenti, hogy a fájl bájtról bájtra azonos és ugyanaz a kiadó írta alá; az eltérés viszont azt jelenti, hogy nem szabad telepíteni.
Mi az APK aláírás?
A digitális aláírás a személyazonosság kriptográfiai igazolása. Amikor a fejlesztő befejez egy alkalmazást, privát kulccsal (kulcstárral) "aláírja". Az Android ezután az APK-ba ágyazott megfelelő nyilvános kulcsot használja a következők biztosítására:
- Integritás: A fájl aláírása óta nem változott.
- Hitelesség: A fejlesztő az, akinek mondják magukat.
- Frissítések: Csak az azonos kulccsal aláírt APK-k frissíthetik a telefonon meglévő alkalmazásokat.
Az aláírás fejlődése: V1, V2, V3 és V4
A Google az évek során folyamatosan javította az APK biztonságát:
- V1 (tégely aláírása): Az egyes bejegyzéseket aláírja a ZIP-ben. Lassú és érzékeny bizonyos támadásokra.
- V2 (APK aláírási séma): A teljes fájlblokkot aláírja. Sokkal gyorsabban ellenőrizhető és biztonságosabb. (Android 7.0+)
- V3 (billentyűk elforgatása): Lehetővé teszi a fejlesztők számára, hogy módosítsák aláíró kulcsukat, miközben fenntartják az alkalmazásfrissítéseket. (Android 9.0+)
- V4 (streamelés): Az ADB-n keresztüli növekményes telepítésekhez optimalizálva. (Android 11+)
Az APK aláírások online ellenőrzése
A APK-ellenőrző eszköz-ünk nem csak kivonatokat számol; teljes kriptográfiai ellenőrzést végez a tanúsítványláncon. Így használhatja:
Az ellenőrzés lépései:
- Navigáljon a APK-ellenőrző oldalra.
- Válassza ki az APK- vagy XAPK-fájlt.
- Eszközünk elemzi a META-INF/ könyvtárat, és kivonja a tanúsítvány adatait (.RSA, .DSA vagy .EC).
- Várja meg, amíg az elemzés befejeződik (csak másodpercekig tart).
- Tekintse át a Tanúsítvány információ: Fejlesztő neve, szervezete és származási országa.
- Ellenőrizze a Hashes-t: Hasonlítsa össze a webhelyünkön megjelenő SHA-256-ot azzal az értékkel, amelyet a kiadó a saját hivatalos webhelyén, a projekt kiadási oldalán vagy az aláírási jegyzékben tett közzé.
Biztonsági figyelmeztetés
If the verifier shows a "Hibakeresési tanúsítvány" or an unknown "Self-Signed" entity for a major app like Facebook or WhatsApp, NE TELEPÍTSE. Szinte biztos, hogy kompromittált.
Az ellenőrző összegek megértése (MD5, SHA-1, SHA-256)
Az ellenőrző összegek rögzített hosszúságú karakterláncok, amelyek az egész fájlt reprezentálják. Ha egyetlen képpontot módosít egy alkalmazás ikonjában, az SHA-256 hash teljesen megváltozik.
| Hash típus | Biztonsági szint | Megjegyzések |
|---|---|---|
| MD5 | Örökség | Ütközésekre érzékeny. Nem a biztonság kedvéért. |
| SHA-1 | Mérsékelt | Még mindig széles körben használják gyors keresésekhez. |
| SHA-256 | Kiváló | Az alkalmazások ellenőrzésének modern szabványa. |
Mit mond az aláírási tanúsítvány valójában
Amikor a hitelesítő visszaküld egy tanúsítványt, az oldalbetöltés biztonsága szempontjából nem az X.509 metaadatainak színes részei számítanak, hanem néhány mező. Gyakorlati szempontból:
- A tanúsítvány SHA-256 ujjlenyomata. Ez az egyetlen legfontosabb érték: egy 64 hexa karakterből álló hash, amely egyedileg azonosítja az aláíró kulcsot. Két azonos SHA-256-ujjlenyomattal rendelkező APK-t ugyanazzal a privát kulccsal írtak alá. Ezt jelenti az "aláírás folytonossága" az operációs rendszer frissítési logikájában.
- Tárgy megkülönböztetett neve. Gyakran olyasmi, mint a CN=Some App, O=Example Inc., C=US. Hasznos célzás-ként, nem személyazonosság igazolásaként, mivel a támadó bármilyen karakterláncot beilleszthet saját maga aláírt tanúsítványának DN-ébe. Mindig az ujjlenyomatot ellenőrizze, ne a nevet.
- Érvényességi idő. A legtöbb legitim közzétételi kulcs ~25 éves érvényességgel jön létre (a korábbi ajánlás 10000 nap). A következő hónapban lejáró tanúsítvány, vagy olyan tanúsítvány, amelynek érvényessége már átfedi a múltat, piros zászló.
- Aláírási algoritmus. A modern alkalmazások a SHA256withRSA-t vagy a SHA256withECDSA-t használják. A MD5 elromlott; A SHA1withRSA elavult. A csak v1/SHA-1 verzióval aláírt APK gyanús 2026-ban.
Hash vs Signature: A különbség A legtöbb oktatóanyag kihagyja
Az emberek gyakran összekeverik a "kivonatot" és az "aláírást". Nagyon eltérő célokat szolgálnak, és a biztonságos ellenőrzéshez mindkettőre szükség van:
- A hash (a teljes APK SHA-256-ja) jelzi, hogy a fájl bájtjai megegyeznek-e egy referenciapéldányéval. Ha a kivonat megegyezik a kiadó közzétett hash-ével, akkor a fájl nem módosult a kivonat kiszámítása óta. A hash ellenőrzés önmagában semmit sem mond arról, hogy ki hozta létre a bájtokat.
- A aláírás igazolja, hogy ki hozta létre a bájtokat, pontosabban azt, hogy az aláíró tanúsítványhoz tartozó privát kulcs birtokosa készítette ezt a fájlt. Az aláírás-ellenőrzés önmagában semmit sem mond arról, hogy a fájlt az aláírás után manipulálták-e (az operációs rendszer ezt észleli és elutasítja, de maga a tanúsítvány nem "tud" a fájl tartalmáról).
Oldalról betöltött APK esetén a legerősebb biztosíték a kettőt ötvözi: a tanúsítvány ujjlenyomata megegyezik a kiadó ismert ujjlenyomatával, és a fájl SHA-256-ja megegyezik a kiadó által az adott buildhez közzétett értékkel.
Hol szerezhet be megbízható referencia-ujjlenyomatot
Az ellenőrzés legnehezebb része az összehasonlításhoz szükséges megfelelő érték ismerete. Néhány megbízható megközelítés durva megbízhatósági sorrendben:
- A kiadó saját webhelye vagy kiadási oldala. Számos nyílt forráskódú projekt és biztonságtudatos szállító teszi közzé aláírási tanúsítványának SHA-256 ujjlenyomatát a letöltések mellett. Ez az aranystandard.
- Meglévő Play Áruház-telepítés. Ha az alkalmazás már telepítve van egy Play által felügyelt eszközre, a tanúsítvány ujjlenyomata értelemszerűen a kiadó ujjlenyomata. Hasonlítsa össze az oldalról betöltött APK ujjlenyomatát ezzel. Az olyan eszközök, mint az Apk Analyzer (Android Studio-ban) vagy a apksigner verify --print-certs, közvetlenül olvassák be a telepített APK-ból.
- Az első APK, amelyet valaha telepített ebből az alkalmazásból. Ha egy ideje használja az alkalmazást, és soha nem kapott „aláírási eltérés” üzenetet, referenciaként használhatja bármelyik régebbi példányát. Az ugyanattól a kiadótól származó későbbi frissítéseknek ugyanazt a kulcsot kell használniuk (vagy forgatniuk kell a v3-on keresztül, ebben az esetben a lánc továbbra is ellenőrzi).
- Archivált nyilvános pillanatkép. Az Internet Archívum és a hasonló szolgáltatások időnként megőrzik a régi APK kiadási oldalakat a deklarált hashekkel együtt. Nagyon régi buildeknél hasznos, ahol az eredeti kiadói oldal eltűnt.
Gyakori ellenőrzési hibák
- Rossz mező összehasonlítása. „Az APK-fájl MD5-je” nem ugyanaz, mint a „tanúsítvány MD5-je”. Használja ugyanazt a mezőt a jelöltfájlhoz és a hivatkozáshoz.
- Bízunk a fájl saját metaadataiban. Az APK bármilyen verziókarakterláncot, csomagcímkét vagy szerzői címkét tartalmazhat a manifestben. Ezek egyike sem kriptográfiai. Az aláírásblokk az egyetlen dolog, amit az operációs rendszer ténylegesen ellenőriz.
- Az ellenőrzés kihagyása, mert a fájlt egy barát küldte. Egy barát, aki azt mondja, hogy „ez a hivatalos APK”, nem igazolta jobban, mint te. Ragaszkodjon olyan forráshoz, amely egy ellenőrizhető ujjlenyomatot tesz közzé.
- Egy megfelelő mező kezelése elegendőnek. Egyezzen a fájl SHA-256 és a tanúsítvány SHA-256 ujjlenyomatával; ha az egyik egyezik, de a másik nem, az annak a jele, hogy a bájtok megváltoztak, vagy a forrás a kiadót személyesíti meg.
- A A Play Protect kikapcsolása a "kényelem" kedvéért. Play Protect egy második vélemény-ellenőrző, amely nem helyettesíti az aláírás-ellenőrzést, de tényleges kártevőket fog el, amelyeket az aláírás-ellenőrzés nem tud, mivel a Protect tartalom alapján ismeri az ismert rossz csomagokat, nem pedig aláíró kulcs alapján. Hagyd rajta.
Biztonságos az alkalmazása?
Ne találgass. Másodpercek alatt igazolja az oldalt betöltött APK-kat a hivatalos fejlesztői tanúsítványok alapján.
Indítsa el az APK ellenőrzésétGyakran Ismételt Kérdések (GYIK)
Miért tiltja le az Android egy módosított APK telepítését?
Mert az új APK aláírása nem egyezik a már telepítettével. Ez megakadályozza, hogy a hackerek „felülírják” valódi banki alkalmazását egy hamis alkalmazással.
Újra aláírhatok egy APK-t a módosítás után?
Igen, de Ön egy más kulcs-t fog használni. Az alkalmazás továbbra is települ egy "tiszta" telefonra, de már nem kap frissítéseket az eredeti fejlesztőtől.
Mi az a tanúsítvány rögzítése?
Ez egy fejlett biztonsági funkció, amelyben az alkalmazás kifejezetten ellenőrzi, hogy van-e egy adott tanúsítvány, mielőtt kommunikálna a szervereivel, így a manipulált alkalmazásokat akkor is használhatatlanná teszi, ha megfelelően telepítik őket.
Tegye az aláírás-ellenőrzést minden oldalbetöltés részévé
Az aláírások nagy részét teszik ki a modern Android biztonság terén. Az extra néhány másodperc elköltése a fájlok APK-ellenőrző-n keresztüli futtatására egy olcsó módja annak, hogy távol tartsa a manipulált alkalmazást az eszközről, mielőtt az telepítésre kerülne.