Alkalmazás aláírásának ellenőrzése: hogyan működik, hogyan lehet letiltani az Xposed segítségével, és miért nem?

Az Android-alkalmazások (APK) aláírás-ellenőrzését egyszerűen letilthatja az Xposed Framework segítségével, de ezt az esetek túlnyomó többségében nem szabad megtennie.

Ha valaha is megpróbált módosítani és újratelepíteni egy rendszeralkalmazást, valószínűleg találkozott az alkalmazás aláírás-ellenőrzésével ilyen vagy olyan formában. Vagy eltávolította az eredeti alkalmazást a folytatás előtt, vagy másik csomagnevet adott a módosított APK-nak, hogy a régi alkalmazás eltávolítása nélkül telepíthető legyen. És mindkét esetben újra alá kellett írnia az alkalmazást, hogy először telepíthesse.

Mindezeket a viselkedéseket megkerülheti, ha ideiglenesen letiltja az alkalmazások aláírás-ellenőrzését. Mielőtt azonban rátérnénk ennek a cikknek a metaforikus húsára és burgonyára, és elmondanánk, hogyan kell ezt megtenni, Nagyon fontos, hogy beszéljünk egy kicsit az alkalmazás aláírás-ellenőrzéseiről, arról, hogy mit csinálnak, és miért kellene soha az esetek túlnyomó többségében távolítsa el őket.

Az Android aláírás-ellenőrzésének alapjai

Alapértelmezés szerint az Android operációs rendszer megköveteli minden alkalmazásokat alá kell írni a telepítéshez. Alapvetően ez azt jelenti, hogy az alkalmazás aláírását egy alkalmazás szerzőjének azonosítására használják (azaz ellenőrizze annak legitimitását), valamint bizalmi kapcsolatokat hozzon létre az azonos aláírással rendelkező alkalmazások között. Az előbbivel biztos lehetsz (ésszerű mértékben), hogy egy érvényes aláírással rendelkező alkalmazás a várt fejlesztőktől érkezik. Ez utóbbin keresztül pedig az azonos titkos kulccsal aláírt alkalmazások ugyanabban a folyamatban futhatnak, és megoszthatnak személyes adatokat. Ezután az alkalmazásfrissítés telepítésekor az Android OS ellenőrzi ezt az aláírást, hogy megbizonyosodjon arról, hogy: A) az APK nem lett Az aláírás óta eltelt idő megszabott, és B) az alkalmazás tanúsítványa megegyezik a jelenleg telepített tanúsítványával változat.

Szóval hogyan hat rám mindez a való világban? Egyszerű, tényleg. Ha a Google Play Áruházon kívülről szerez be egy APK-t, és megpróbálja telepíteni a jelenleg telepített alkalmazás frissítéseként (lásd: ugyanaz a csomagnév), az operációs rendszer megpróbálja érvényesíteni az alkalmazás tanúsítványát, hogy megbizonyosodjon arról, hogy az ugyanabból a kezdőbetűből származik fejlesztők. Ha a tanúsítvány egyezik, az alkalmazás telepítése a tervek szerint halad, az alkalmazás megőrzi meglévő adatait, és minden kész. Ha az aláírás nem érvényes (ami azt jelzi, hogy az APK-t manipulálták), vagy ha a tanúsítvány nem egyezik az eredeti alkalmazás tanúsítványával, a telepítés sikertelen lesz. És ahogy korábban említettük, az alkalmazástanúsítvány csak akkor fog egyezni, ha ugyanazzal a privát kulccsal van aláírva, mint az előző verzió aláírásához. Más szóval, csak akkor telepíthet egy alkalmazást, ha annak érvényes aláírása megegyezik az APK-val tartalmát, és csak akkor telepíthet frissítést, ha annak tanúsítványa megegyezik a korábbi verzióban található tanúsítvánnyal az alkalmazásból.

[A humort félretéve ebben az egyébként sűrű cikkben, van egy nagyon nyilvános példa, amikor egy privát alkalmazás-aláíró kulcs elveszett vagy kompromittálódott. Természetesen a Google saját Hitelesítő alkalmazására gondolok, amely olyan frissítést kapott, amely megváltoztatta a csomag nevét com.google.android.apps.authenticator nak nek com.google.android.apps.authenticator2 körülbelül két évvel ezelőtti frissítésben. A változás miatt az összes későbbi Hitelesítő alkalmazás-frissítést csak az új csomagnév alatt lehetett kiadni – az új privát aláíró kulcs által generált új aláírással.]

Miért szeretné (ideiglenesen) letiltani az aláírás-ellenőrzést?

Most pedig vessünk egy pillantást egy lehetséges forgatókönyvre, amelyben ideiglenesen le szeretnénk tiltani az alkalmazás aláírásának ellenőrzését. Ahogy a cikk elején említettük, az aláírás-ellenőrzés némi fejtörést okozhat a meglévő rendszeralkalmazások módosításakor. Ha egy rendszeralkalmazás módosított verzióját telepíti, nem tudja aláírni az alkalmazást érvényes és megfelelő tanúsítvánnyal. Ilyen esetekben általában először a meglévő alkalmazást kell eltávolítani, majd a szokásos módon telepíteni a módosított verziót. Az aláírás-ellenőrzést is letilthatja, de jobb (és biztonságosabb), ha engedélyezve hagyja az aláírás-ellenőrzést, és egyszerűen eltávolítja a régi verziót, hogy az új telepíthető legyen. Ez azonban egy kis problémát jelenthet, ha a lecserélni kívánt alkalmazásban olyan adatok vannak, amelyeket nem szeretne elveszíteni. Minden bizonnyal vannak módok az adatok manuális megőrzésére root hozzáféréssel, és átültethetők az új verzióba az alkalmazást, de a felhasználók egyszerűen ideiglenesen letilthatják az aláírás-ellenőrzést, majd folytathatják az ellenőrzéseket később. Alternatív megoldásként, ahogy az XDA vezető tagja rámutatott mcbyte_it a kommentekben ez is hasznos lehet az alkalmazásfejlesztésben.

Hogyan kell így csinálni

Eddig az aláírás-ellenőrzés letiltása borzalmas megoldás volt szinte minden problémára. Ennek az az oka, hogy ezzel lényegében eldobja az Android beépített védelmét, amely gondoskodik róla hogy az alkalmazásait nem módosították, és a frissítéseik az eredeti verzióból származnak fejlesztők. Most azonban az Xposed Framework varázslatának köszönhetően ideiglenesen letilthatja az aláírás-ellenőrzést, majd újra engedélyezheti, ha végzett a módosított alkalmazás telepítésével. Egy ilyen Xposed modul amely pontosan erre képes, nemrégiben adta ki az XDA Senior Member pyler, és az Xposed futtatására alkalmas összes eszközön a tervek szerint működik. Így, ha olyan módosított alkalmazásfrissítést szeretne telepíteni, amely nincs megfelelően aláírva, egyszerűen megteheti engedélyezze a modult, indítsa újra, telepítse a módosított alkalmazásfrissítést, tiltsa le a modult, indítsa újra, és legyen boldog út.

Most, hogy tudja, hogyan lehet ideiglenesen letiltani az aláírás-ellenőrzést, fontos megismételni ennek fontosságát az aláírás-ellenőrzést mindig engedélyezve kell hagyni, hacsak nincs nagyon-nagyon jó oka annak letiltására azt. Ilyen eszközt csak a saját maga által létrehozott alkalmazásfrissítések alkalmazásához érdemes használnia, és mikor vannak enyhítő körülmények, amelyek megkövetelik, hogy ezt tegye, ahelyett, hogy először egyszerűen eltávolítaná a régi alkalmazást.

Legyen biztonságban, és használja ezt megfontoltan.