Utilizzare la funzionalità firma dell'app di Google Play

Con la funzionalità firma dell'app di Google Play, Google gestisce e protegge automaticamente la chiave di firma della tua app e la utilizza per firmare APK di distribuzione ottimizzati generati dagli app bundle. La firma dell'app di Google Play archivia la chiave di firma dell'app nell'infrastruttura sicura di Google e offre opzioni di upgrade per migliorare la sicurezza.

Per attivare la firma dell'app di Google Play, devi essere il proprietario di un account o un utente con l'autorizzazione Rilascio per il gruppo di produzione, esclusione di dispositivi e utilizzo della funzionalità firma dell'app di Google Play e devi accettare i Termini di servizio della firma dell'app di Google Play.

Come funziona

Se utilizzi la funzionalità firma dell'app di Google Play, le tue chiavi vengono archiviate nella stessa infrastruttura sicura su cui Google archivia le proprie chiavi. Le chiavi sono protette dal sistema Key Management Service di Google. Per scoprire di più sull'infrastruttura di Google, leggi il white paper sulla sicurezza di Google Cloud.

Le app Android vengono firmate con una chiave privata. Per garantire l'attendibilità degli aggiornamenti delle app, a ogni chiave privata è associato un certificato pubblico che viene usato da dispositivi e servizi per verificare che l'aggiornamento dell'app provenga dalla stessa fonte. I dispositivi accettano gli aggiornamenti soltanto se la relativa firma corrisponde alla firma dell'app installata. Se consenti a Google di gestire la chiave di firma dell'app, questo processo diventa più sicuro.

Nota: per le app create prima di agosto 2021, puoi comunque caricare un APK e gestire le tue chiavi invece che usare la firma dell'app di Google Play e usare un Android App Bundle per la pubblicazione. Se però perdi il tuo archivio chiavi o se l'archivio viene compromesso, non potrai aggiornare la tua app; dovrai pubblicare una nuova app con un nuovo nome di pacchetto. Per queste app, Google Play consiglia di utilizzare la firma dell'app di Google Play e di passare agli app bundle.

Descrizioni di chiavi, elementi e strumenti
Termine Descrizione
Chiave di firma dell'app

La chiave utilizzata da Google Play per firmare gli APK da destinare al dispositivo di un utente. Se usi la firma dell'app di Google Play, puoi caricare una chiave di firma dell'app esistente o farne generare una a Google.

È consigliabile tenere segreta la chiave di firma dell'app, ma puoi condividere il certificato pubblico dell'app.

Chiave di caricamento

La chiave che usi per firmare l'app bundle prima di caricarlo su Google Play. È consigliabile tenere segreta la chiave di caricamento, ma puoi condividere il certificato pubblico dell'app. Per motivi di sicurezza, è opportuno usare chiavi di firma e di caricamento dell'app diverse.

Esistono due modi per generare una chiave di caricamento:

  • Usa la chiave di firma dell'app. Se decidi che sia Google a generare una chiave di firma dell'app, la chiave usata per la prima release corrisponde anche alla chiave di caricamento.
  • Usa una chiave di caricamento separata. Se fornisci la tua chiave di firma dell'app, hai la possibilità di generare una nuova chiave di caricamento per maggiore sicurezza. Se non ne generi una, usa la chiave di firma dell'app come chiave di caricamento per firmare le release.
Certificato (.der o .pem)

Il certificato contiene una chiave pubblica e alcune informazioni aggiuntive che identificano il proprietario della chiave. Il certificato di chiave pubblica consente a chiunque di verificare chi ha firmato l'app bundle o l'APK e puoi condividerlo con tutti perché non contiene la tua chiave privata.

Per registrare le tue chiavi con i provider di API, puoi scaricare il certificato pubblico per la chiave di firma dell'app e la chiave di caricamento dalla pagina Firma dell'app di Google Play (Release > Configurazione > Integrità dell'app) in Play Console. Il certificato di chiave pubblica può essere condiviso con chiunque. Non contiene la tua chiave privata.

Fingerprint del certificato

Una rappresentazione breve e univoca di un certificato che viene spesso richiesta dai provider di API insieme al nome del pacchetto per registrare un'app allo scopo di utilizzare il loro servizio.

Le fingerprint MD5, SHA-1 e SHA-256 dei certificati di firma dell'app e di caricamento sono disponibili nella pagina Firma dell'app di Google Play (Release > Configurazione > Integrità dell'app) in Play Console. È possibile elaborare altre fingerprint scaricando il certificato originale (.der) dalla stessa pagina.

Archivio chiavi Java (.jks o .keystore) Un repository di certificati di sicurezza e chiavi private.
Strumento Play Encrypt Private Key (PEPK)

Uno strumento per esportare chiavi private da un archivio chiavi Java e criptarle per il trasferimento su Google Play.

Quando fornisci la chiave di firma dell'app da far usare a Google, seleziona l'opzione di esportazione e caricamento della chiave (e, se necessario, del relativo certificato) e segui le istruzioni per scaricare e usare lo strumento. Se preferisci, puoi scaricare, esaminare e usare il codice open source dello strumento PEPK.

Procedura di firma dell'app

Ecco come funziona la procedura:

  1. Firma l'app bundle e caricalo su Play Console.
  2. Google genera APK ottimizzati dall'app bundle e li firma con la chiave di firma dell'app.
  3. Google utilizza apksigner per aggiungere due indicatori al file manifest dell'app (com.android.stamp.source e com.android.stamp.type), quindi firma gli APK con la chiave di firma dell'app. I timbri aggiunti dallo strumento apksigner consentono di tracciare gli APK a chi li firma.
  4. Google mette a disposizione degli utenti gli APK firmati.

Configurare la firma dell'app di Google Play

Istruzioni per le app create dopo agosto 2021

Passaggio 1: crea una chiave di caricamento

  1. Segui queste istruzioni per creare una chiave di caricamento.
  2. Firma l'app bundle con la chiave di caricamento.

Passaggio 2: prepara la release

  1. Segui le istruzioni per preparare e implementare la release.
  2. Dopo aver selezionato un canale di release, nella sezione "Integrità dell'app" viene visualizzato lo stato della firma dell'app di Google Play per la tua app.
  3. Per procedere con una chiave di firma dell'app generata da Google, carica l'app bundle. In alternativa, puoi selezionare Cambia la chiave di firma dell'app per accedere alle seguenti opzioni:
    • Usa una chiave di firma dell'app generata da Google: oltre il 90% delle nuove app utilizza chiavi di firma dell'app generate da Google. L'utilizzo di una chiave generata da Google protegge da perdita o compromissione (la chiave non può essere scaricata). Se scegli questa opzione, puoi scaricare gli APK di distribuzione dallo strumento Explorer per app bundle firmato con la chiave generata da Google per altri canali di distribuzione oppure utilizzare una chiave diversa per questi canali.
    • Usa una chiave di firma dell'app diversa: se scegli la chiave di firma dell'app puoi usare la stessa chiave di un'altra app nell'account sviluppatore o conservare una copia locale della chiave di firma dell'app per una maggiore flessibilità. Ad esempio, potresti aver già deciso una chiave perché la tua app è preinstallata su alcuni dispositivi. Avere una copia della tua chiave all'esterno dei server di Google aumenta il rischio se la copia locale viene compromessa. Per utilizzare una chiave diversa hai le seguenti opzioni:
      • Usa la stessa chiave di firma dell'app di un'altra app in questo account sviluppatore
      • Esporta e carica una chiave dal keystore Java
      • Esporta e carica una chiave (non utilizzando l'archivio chiavi Java)
  4. Segui le istruzioni rimanenti per preparare e implementare la release.

Nota: per continuare devi accettare i Termini di servizio e attivare la funzionalità di firma dell'app.

Passaggio 3: registra la chiave di firma dell'app con provider di API

Se usi delle API nell'app, in genere devi registrare la chiave di firma dell'app ai fini dell'autenticazione usando la fingerprint del certificato. Ecco dove trovare il certificato:

  1. Apri Play Console e vai alla pagina Firma dell'app di Google Play (Release > Configurazione > Integrità dell'app).
  2. Scorri fino alla sezione "Certificato della chiave di firma dell'app" e copia le fingerprint (MD5, SHA-1 e SHA-256) del certificato di firma della tua app.
    • Se il provider dell'API richiede un tipo diverso di fingerprint, puoi anche scaricare il certificato originale in formato .der e convertirlo usando gli strumenti di trasformazione richiesti dal provider dell'API.
Requisiti della chiave di firma dell'app

Quando utilizzi una chiave generata da Google, Google genera automaticamente una chiave RSA con una crittografia efficace da 4096 bit. Se scegli di caricare una chiave di firma dell'app personalizzata, questa deve essere una chiave RSA da almeno 1024 bit.

Istruzioni per le app create prima di agosto 2021

Passaggio 1: configura la firma dell'app di Google Play

  1. Apri Play Console e vai alla pagina Firma dell'app di Google Play (Release > Configurazione > Integrità dell'app).
  2. Se non l'hai ancora fatto, leggi i Termini di servizio della firma dell'app di Google Play e seleziona Accetto.

Passaggio 2: invia una copia della chiave originale a Google e crea una chiave di caricamento

  1. Cerca la chiave di firma dell'app originale.
  2. Apri Play Console e vai alla pagina Firma dell'app di Google Play (Release > Configurazione > Integrità dell'app).
  3. Seleziona l'opzione di esportazione e caricamento più adatta al tuo processo di rilascio e carica una chiave di firma dell'app esistente.

Passaggio 3: crea una chiave di caricamento (operazione facoltativa, ma consigliata)

  1. Crea una chiave di caricamento e carica il certificato su Google Play.
    • Puoi anche continuare a usare la chiave di firma dell'app come chiave di caricamento.
  2. Copia le fingerprint (MD5, SHA-1 e SHA-256) del certificato di firma della tua app.
    • A scopo di test, potresti dover registrare il certificato della chiave di caricamento con i provider di API utilizzando la fingerprint del certificato e la chiave di firma dell'app.

Passaggio 4: firma il prossimo aggiornamento dell'app con la chiave di caricamento

Quando rilasci degli aggiornamenti dell'app, devi firmarli con la chiave di caricamento.

  • Se non hai generato una nuova chiave di caricamento, continua a usare la chiave di firma dell'app originale per firmare gli app bundle prima di caricarli su Google Play. Se perdi la chiave di firma dell'app originale, puoi generare una nuova chiave di caricamento e registrarla su Google per continuare ad aggiornare la tua app.
  • Se hai generato una nuova chiave di caricamento, usa la nuova chiave di caricamento per firmare gli app bundle prima di caricarli su Google Play. Google utilizza la chiave di caricamento per verificare la tua identità. Se perdi la chiave di caricamento, puoi contattare l'assistenza per reimpostarla.

Creare una chiave di caricamento e aggiornare gli archivi chiavi

Per maggiore sicurezza, ti consigliamo di firmare la tua app con una nuova chiave di caricamento anziché con la chiave di firma dell'app.

Puoi creare una chiave di caricamento quando attivi la funzionalità firma dell'app di Google Play oppure puoi creare una chiave di caricamento in un secondo momento dalla pagina Firma dell'app di Google Play (Release > Configurazione > Integrità dell'app).

Ecco come creare una chiave di caricamento:

  1. Segui le istruzioni sul sito Android Developers. Archivia la chiave in un posto sicuro.
  2. Esporta il certificato della chiave di caricamento in formato PEM. Sostituisci i seguenti argomenti sottolineati:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Quando richiesto durante la procedura di rilascio, carica il certificato per registrarlo su Google.

Se usi una chiave di caricamento:

  • La chiave di caricamento viene registrata su Google soltanto per autenticare l'identità dell'autore dell'app.
  • La tua firma viene rimossa da tutti gli APK caricati prima che questi diventino disponibili per gli utenti.
Requisiti della chiave di caricamento
  • Deve essere una chiave RSA di almeno 2048 bit.
Aggiornare gli archivi chiavi

Dopo aver creato una chiave di caricamento, potresti controllare e aggiornare le seguenti posizioni:

  • Computer locali
  • Server sicuro in loco (vari ACL)
  • Computer cloud (vari ACL)
  • Servizi di gestione dei secret dedicati
  • Repository (Git)

Eseguire l'upgrade della chiave di firma dell'app per le nuove installazioni

In alcuni casi, puoi richiedere un upgrade della chiave di firma dell'app. La nuova chiave viene utilizzata per firmare le nuove installazioni e gli aggiornamenti dell'app. La chiave di firma dell'app precedente continua a essere usata per firmare gli aggiornamenti per gli utenti che hanno installato l'app prima dell'upgrade della chiave.

È possibile eseguire un solo upgrade della chiave di firma dell'app per tutto il ciclo di vita di ogni app. Nell'improbabile caso che tu abbia più app che usano la stessa chiave di firma per l'esecuzione nello stesso processo, non potrai eseguire l'upgrade della chiave per tali app.

Di seguito sono riportati un paio di motivi per richiedere un upgrade della chiave di firma dell'app:

  • È necessaria una chiave crittografica più efficace.
  • La chiave di firma dell'app è stata compromessa.

Nota: la richiesta di un upgrade della chiave di firma dell'app in Play Console non è correlata alla rotazione della chiave introdotta nello schema di firma dell'APK v3 per Android P e versioni successive. Questo tipo di rotazione della chiave non è attualmente supportato da Google Play.

Considerazioni importanti da leggere prima di richiedere un upgrade della chiave

Prima di richiedere un upgrade della chiave, è importante comprendere le modifiche che potresti dover apportare dopo il completamento dell'upgrade.

  • Se utilizzi la stessa chiave di firma dell'app per più app per condividere codice/dati tra le app, dovrai aggiornare le tue app affinché riconoscano i certificati della chiave di firma dell'app nuova e precedente.
  • Se la tua app usa le API, assicurati di registrare i certificati per la nuova e la precedente chiave di firma dell'app con i provider di API prima di pubblicare un aggiornamento per far sì che le API continuino a funzionare. I certificati sono disponibili nella pagina Firma dell'app di Google Play (Release > Configurazione > Integrità dell'app) in Play Console.  
  • Se alcuni dei tuoi utenti installano gli aggiornamenti tramite la condivisione peer-to-peer, potranno installare solo gli aggiornamenti firmati con la stessa chiave con cui è stata firmata la versione dell'app già installata. Se non riescono ad aggiornare l'app perché hanno una versione firmata con una chiave diversa, possono disinstallare e reinstallare l'app per ricevere l'aggiornamento.
Richiedere un upgrade della chiave per le nuove installazioni
  1. Apri Play Console e vai alla pagina Firma dell'app di Google Play (Release > Configurazione > Integrità dell'app).
  2. Nella scheda "Esegui l'upgrade della chiave di firma dell'app per le nuove installazioni", seleziona Richiedi l'upgrade della chiave.
  3. Seleziona un'opzione.
    • A seconda dell'opzione selezionata, potrebbe essere necessario contattare l'assistenza per completare la richiesta.
  4. Fai generare a Google una nuova chiave di firma dell'app (opzione consigliata) oppure caricane una.
    • Dopo avere eseguito l'upgrade della chiave di firma dell'app, se usavi la stessa chiave per la chiave di firma e la chiave di caricamento dell'app, puoi continuare a usare la chiave di firma dell'app precedente come chiave di caricamento oppure generare una nuova chiave di caricamento.
  5. Se necessario, registra la nuova chiave di firma dell'app con i provider API.

Best practice

  • Se distribuisci la tua app al di fuori di Google Play o prevedi di farlo in futuro e vuoi utilizzare la stessa chiave di firma, hai due opzioni: 
    • Puoi consentire a Google di generare la chiave (opzione consigliata) e poi scaricare dallo strumento Explorer per App Bundle un APK universale firmato da distribuire all'esterno di Google Play.
    • Oppure, puoi generare la chiave di firma dell'app che vuoi utilizzare per ogni store e poi trasferirne una copia a Google quando configuri la firma dell'app di Google Play.
  • Per proteggere il tuo account, attiva la verifica in due passaggi per gli account che hanno accesso a Play Console.
  • Dopo aver pubblicato un app bundle per un canale di release, visita la pagina Explorer per app bundle per accedere agli APK installabili che Google genera dall'app bundle. Puoi:
    • Copiare e condividere un link di condivisione interna delle app che ti consente di testare, con un solo tocco, quali contenuti installerebbe Google Play dal tuo app bundle su dispositivi diversi.
    • Scaricare un APK universale firmato. Questo singolo APK è firmato con la chiave di firma dell'app in possesso di Google e può essere installato su qualsiasi dispositivo supportato dalla tua app.
    • Scaricare un archivio ZIP con tutti gli APK per un dispositivo specifico. Questi APK sono firmati con la chiave di firma dell'app in possesso di Google. Puoi installare gli APK nell'archivio ZIP su un dispositivo utilizzando il comando adb install-multiple *.apk.
  • Per maggiore sicurezza, genera una nuova chiave di caricamento diversa dalla chiave di firma dell'app.
  • Se utilizzi un'API di Google puoi registrare la chiave di caricamento e i certificati delle chiavi di firma dell'app in Google Cloud Console per la tua app.

Chiave di caricamento persa o compromessa

Se hai perso la chiave di caricamento privata o se la chiave è stata compromessa, puoi crearne una nuova e chiedere al proprietario dell'account di contattare l'assistenza per reimpostarla. Assicurati che il proprietario dell'account alleghi il file upload_certificate.pem quando contatta l'assistenza.

Dopo che il nostro team di assistenza avrà registrato la nuova chiave di caricamento, riceverai un'email. Dopodiché potrai aggiornare gli archivi chiavi e registrare la chiave con provider di API.

Importante: la reimpostazione della chiave di caricamento non influisce sulla chiave di firma dell'app usata da Google Play per firmare di nuovo gli APK prima di metterli a disposizione degli utenti.

Schema di firma dell'APK v4

I dispositivi Android 11 e versioni successive supportano il nuovo schema di firma dell'APK v4. La funzionalità firma dell'app di Google Play inizierà a implementare la versione v4 per selezionare le app in modo da consentire loro di accedere in anteprima alle funzionalità future sulle prestazioni sui dispositivi più recenti. Non sono richieste azioni da parte degli sviluppatori e non è previsto alcun impatto sugli utenti.

 

È stato utile?
Come possiamo migliorare l'articolo?

Hai bisogno di ulteriore assistenza?

Accedi per scoprire altre opzioni di assistenza che ti consentiranno di risolvere rapidamente il tuo problema

Ricerca
Cancella ricerca
Chiudi ricerca
App Google
Menu principale
Cerca nel Centro assistenza
true
92637
false