Prečo používať podpisovanie aplikácií v službe Play? Registráciou do podpisovania aplikácií v službe Play nielenže zabezpečíte svoje kľúče pred trvalou stratou alebo napadnutím, ale získate aj zlepšenia pre svoje balíky Android App Bundle (.aab). Keď necháte Google podpisovať optimalizované distribučné súbory APK vygenerované z vašich balíkov aplikácie, získate prístup k hodnotným službám, ako sú automatická ochrana a automatický preklad reťazcov pomocou modelov Gemini. Hry získajú prístup k ďalším automatickým službám, ako sú Play Games Sidekick, hranie počas sťahovania a skúšobné obdobia platených titulov bez peňažného poplatku.
Ak chcete nakonfigurovať podpisovanie aplikácií v službe Play, musíte mať správcovské povolenie.
Základné pojmy
Keď používate podpisovanie aplikácií v službe Play, pracujete s dvomi odlišnými kľúčmi. Ak chcete predísť problémom s overením v rozhraniach API tretích strán, je dôležité porozumieť rozdielu medzi nimi a ich technickými formátmi.
| Typ kľúča | Kto ho má? | Technické podrobnosti a účel |
|
Kľúč nahrávania |
Vy (uchovajte ho v bezpečí) |
|
| Podpisový kľúč aplikácie |
Google Play |
|
| Kľúč chránený pred útokmi kvantových počítačov | Google Play |
|
Poznámka: Maximálne zabezpečenie zaistíte vtedy, keď budú kľúč nahrávania a podpisový kľúč aplikácie odlišné.
Ako Google podpisuje vašu aplikáciu: keď Google generuje a podpisuje vaše súbory APK podpisovým kľúčom aplikácie, pomocou nástroja apksigner pridá do manifestu aplikácie dve pečiatky (com.android.stamp.source a com.android.stamp.type). Tieto pečiatky zaisťujú, že vaše súbory APK sa dajú bezpečne vystopovať až k pôvodnému podpisovateľovi.
Nastavenie podpisovania aplikácií v službe Play
Proces nastavenia závisí od toho, či zverejňujete novú aplikáciu alebo migrujete existujúcu.
V prípade nových aplikácií
- Vytvorte novú aplikáciu: vaša aplikácia bude automaticky zaregistrovaná na hybridné podpisovanie chránené pred útokmi kvantových počítačov s kľúčmi vygenerovanými Googlom. Okrem toho vygenerujeme samostatný klasický kľúč, ktorý sa používa v blokoch podpisov rozpoznávaných v zariadeniach s Androidom 16 a starším.
- Vytvorte kľúč nahrávania: vygenerujte úložisko kľúčov na podpísanie balíka aplikácie vydania. Môžete ho vygenerovať v programe Android Studio alebo použiť utilitu Java keytool v príkazovom riadku.
- Nahrajte balík aplikácie: prejdite do služby Play Console a pripravte novinku. Keď nahráte balík aplikácie, vaša aplikácia sa predvolene automaticky zaregistruje na hybridné podpisovanie chránené pred útokmi kvantových počítačov s kľúčmi vygenerovanými Googlom.
- Zmeňte podpisový kľúč aplikácie (nepovinné): pokročilí vývojári, ktorí chcú spravovať vlastný kľúč, môžu zmeniť tento predvolený kľúč ešte pred uvedením vydania na trh v otvorenom testovacom alebo produkčnom kanáli. Môžete to urobiť tak, že prejdete do sekcie Chránené službou Google Play > Distribúcia v Obchode Play > Prejsť na podpisovanie aplikácií v službe Play a kliknete na Zmeniť podpisový kľúč aplikácie. Potom môžete vybrať jednu z týchto možností:
- Použiť rovnaký kľúč ako inú aplikáciu v tomto účte vývojára,
- Poskytnúť kópiu podpisového kľúča aplikácie (podľa pokynov).
V prípade existujúcich aplikácií
Ak momentálne spravujete vlastné kľúče a nahrávate súbory APK, môžete prejsť na podpisovanie aplikácií v službe Play a využívať balíky aplikácie aj zlepšenia služby Google Play.
- V službe Play Console prejdite do sekcie Chránené službou Google Play > Distribúcia v Obchode Play > Prejsť na podpisovanie aplikácií v službe Play.
- Ak ste to ešte neurobili, prijmite zmluvné podmienky.
- Preneste kópiu pôvodného kľúča: stiahnite si nástroj PEPK a podľa jednotných podrobných pokynov zašifrujte a nahrajte existujúci podpisový kľúč aplikácie z ľubovoľného repozitára.
Registrácia u poskytovateľov rozhraní API
Ak vaša aplikácia používa rozhrania API (napríklad Mapy Google, OAuth alebo Prihlásenie cez Facebook), tieto služby overujú vašu aplikáciu pomocou odtlačku podpisového kľúča aplikácie.
Finálny súbor APK podpisuje Google, takže musíte u poskytovateľov rozhraní API zaregistrovať odtlačok podpisového kľúča aplikácie, ktorý má Google, nielen svoj miestny kľúč nahrávania.
- Prejdite do sekcie Chránené službou Google Play > Distribúcia v Obchode Play > Prejsť na podpisovanie aplikácií v službe Play.
- Posuňte sa na sekciu Podpisový kľúč aplikácie.
- Skopírujte požadované odtlačky (SHA-1 alebo SHA-256). Ak vaša aplikácia používa hybridné podpisovanie chránené pred útokmi kvantových počítačov, musíte skopírovať digitálne odtlačky troch kľúčov a každý z nich zaregistrovať u poskytovateľov rozhraní API: nové klasické kľúče a kľúče PQC používané v novších zariadeniach a klasický kľúč používaný v starších zariadeniach.
- Prilepte tieto odtlačky do konzoly poskytovateľa rozhrania API (ako je Google Cloud Console).
Tip: Ak používate odkazy aplikácie v Androide, aktualizujte súbor assetlinks.json pomocou týchto odtlačkov.
Správa kľúčov
Inovácia podpisového kľúča aplikácie
Ak je váš podpisový kľúč aplikácie napadnutý alebo potrebujete kryptograficky silnejší kľúč, môžete požiadať o ročnú inováciu kľúča pre všetky inštalácie v Androide 17 (úroveň API 37) a novšom.
Ako funguje vynucovanie v rôznych verziách Androidu:
- Android 17 (úroveň API 37) a novší: platforma Androidu prísne vynucuje používanie inovovaného hybridného kľúča chráneného pred útokmi kvantových počítačov. Pozrite si podpisovú schému APK v3.2.
- Android 13 (úroveň API 33) až Android 16 (úroveň API 36): platforma Androidu prísne vynucuje používanie najnovšieho klasického kľúča. Pozrite si podpisovú schému APK v3.1.
- Android 7 (úroveň API 24) až Android 12 (úroveň API 32): platforma Androidu nevynucuje inovovaný kľúč a stále rozpoznáva najnovší klasický kľúč. Google Play Protect však poskytuje dodatočné overenie tým, že kontroluje, či sú aktualizácie aplikácie podpísané vašim najnovším klasickým kľúčom (pokiaľ používateľ túto možnosť nevypne).
Dôležité fakty na zváženie:
- Zdieľané údaje: platforma nevynucuje inovovaný kľúč v Androide S (úroveň API 32) a starších verziách, ak používate rovnaký kľúč vo viacerých aplikáciách na zdieľanie údajov, takže tieto staršie verzie Androidu budú rozpoznávať iba starý kľúč pre funkcie, ako je zdieľanie vlastných povolení.
Ako inovovať:
- Prejdite do sekcie Chránené službou Google Play > Distribúcia v Obchode Play > Prejsť na podpisovanie aplikácií v službe Play.
- V sekcii Podpisový kľúč aplikácie kliknite na Inovovať kľúč.
- Vyberte si cestu inovácie:
- Povoliť službe Google Play vygenerovať nový podpisový kľúč aplikácie (odporúčané),
- Použiť rovnaký podpisový kľúč aplikácie ako v prípade ďalšej aplikácie v tomto účte vývojára,
- Poskytnúť kópiu podpisového kľúča aplikácie (podľa pokynov).
- Kliknite na Uložiť.
- Zaregistrujte odtlačky nového kľúča u poskytovateľov rozhraní API. Ak vaša aplikácia používa hybridné podpisovanie chránené pred útokmi kvantových počítačov, musíte zaregistrovať digitálne odtlačky dvoch nových kľúčov: nového klasického kľúča a nového kľúča PQC.
Žiadosť o reset kľúča nahrávania
Ak stratíte kľúč nahrávania alebo máte podozrenie, že bol napadnutý, nebudete mať zablokovaný prístup k aplikácii.
- Vytvorte nový kľúč nahrávania v programe Android Studio.
- Exportujte certifikát do formátu PEM:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(Ďalšiu pomoc s nástrojom keytool a cestami k úložisku kľúčov nájdete v sprievodcovi podpisovaním aplikácií v programe Android Studio). - Po vygenerovaní súboru PEM odošlite žiadosť o reset v službe Play Console.
- Prejdite do sekcie Chránené službou Google Play > Ochrana v Obchode Play > Správa podpisovania aplikácií v službe Play.
- V sekcii Certifikát kľúča nahrávania kliknite na Požiadať o resetovanie kľúča nahrávania.
- Zadajte dôvod resetovania.
- Nahrajte súbor
upload_certificate.pema kliknite na Požiadať.
Osvedčené postupy a alternatívna distribúcia
- Zabezpečenie: chráňte svoj prístup k službe Play Console vynucovaním dvojstupňového overenia pre všetkých používateľov.
- Zlepšenia balíkov aplikácie: registrácia do podpisovania aplikácií v službe Play vám sprístupní zlepšenia vašich balíkov aplikácie. Ak chcete použiť zlepšenia, najprv pri vytváraní novinky vykonajte potrebné zmeny konfigurácie a potom nahrajte nový balík aplikácie.
- Distribúcia mimo služby Google Play: ak distribuujete prostredníctvom iných obchodov s aplikáciami a chcete všade používať rovnaký podpisový kľúč, máte dve možnosti. [1] Môžete nechať Google vygenerovať podpisový kľúč aplikácie a stiahnuť si podpísaný univerzálny súbor APK zo služby Play Console alebo rozhrania Play Developer API na distribúciu inde (v službe Play Console prejdite do sekcie Testovanie a vydanie > Najnovšie vydania a balíky, vyberte balík aplikácie a kliknite na kartu Stiahnutia) alebo [2] môžete vygenerovať podpisový kľúč aplikácie, ktorý chcete použiť pre všetky obchody s aplikáciami, a presunúť jeho kópiu do Googlu pri konfigurovaní podpisovania aplikácií v službe Play. Prečítajte si viac o tom, ako fungujú aktualizácie aplikácií a o možnostiach aktivácie alebo deaktivácie aktualizácií naprieč obchodmi.
- Testovanie: pomocou interného zdieľania aplikácií otestujte, čo presne Google Play doručí používateľom. Prípadne si stiahnite súbory APK pre konkrétne zariadenia z prieskumníka balíkov aplikácie a nainštalujte ich miestne pomocou príkazu adb install-multiple *.apk.
- Podpisová schéma APK v4: podpisovanie aplikácií v službe Play automaticky používa podpisovanie v4 v prípade aplikácií spĺňajúcich podmienky, aby podporovalo optimalizovanú distribúciu v zariadeniach s Androidom 11 alebo novším. Nemusíte podniknúť žiadne ďalšie opatrenia. Vylučuje to všetky aplikácie používajúce hybridné podpisovanie chránené pred útokmi kvantových počítačov, ktoré ešte nie je kompatibilné s podpisovaním verzie 4. Ďalšie informácie o technických výhodách si prečítajte v dokumentácii k podpisovej schéme APK v4.
Projekty Google Cloud hostené samostatne
Ak máte veľmi špecifické požiadavky na zabezpečenie (napríklad používate kľúče OEM), môžete sa zaregistrovať do podpisovania aplikácií v službe Play pomocou projektu Google Cloud hosteného samostatne pomocou rozhrania Play Developer API.
Ide o neštandardné nastavenie, ktoré neodporúčame. Používaním projektu hosteného svojpomocne preberáte plnú zodpovednosť za operácie podpisovania aplikácií.
- Google Play nemôže vykonávať základné funkcie, ako je obnova po havárii.
- Google nemôže znova vygenerovať ani opraviť existujúce vydanie. Ak chcete odstrániť chyby súvisiace s vydaním, musíte nahrať novinku.
- V tejto konfigurácii nemusia byť k dispozícii pokročilé optimalizácie, určité zlepšenia služby Google Play a bezpečnostné funkcie, ako je hybridné podpisovanie chránené pred útokmi kvantových počítačov.
- Vygenerujte alebo importujte podpisové kľúče do služby Cloud KMS, pričom sa uistite, že ako oblasť je nakonfigurovaná možnosť viacero regiónov v USA, a postupujte podľa dokumentácie k importu kľúčov KMS.
- Ak chcete zmeniť podpisový kľúč, použite metódu enrollApp. Podpisové kľúče sa dajú zmeniť iba pred vydaním aplikácie do otvoreného testovacieho alebo produkčného kanála.
- Ak chcete po zverejnení inovovať podpisový kľúč, použite metódu rotateAppSigningKey.
- Udeľte klientovi alebo účtu služby, ktorý sa overuje pomocou rozhrania Google Play Developer API, nasledujúce roly v rámci správy prístupu a identít:
- Uistite sa, že máte dostatočnú kvótu na vykonávanie kryptografických operácií. Odporúčame vám zvýšiť kvótu pre asymmetric_requests aspoň na 350 dopytov za sekundu.
- Ak chcete zistiť, ako sa podpisové kľúče používajú, aktivujte revízny denník v projekte Cloud KMS.