Utilitzar la signatura d'aplicacions de Google Play

Mitjançant la signatura d'aplicacions de Google Play, Google gestiona i protegeix la clau de signatura de la teva aplicació i la utilitza per signar els APK per distribuir-los. És una manera segura d'emmagatzemar la clau de signatura d'aplicacions que ajuda a protegir-te en cas que la clau es perdi o estigui en perill.

Important: per utilitzar fitxers Android App Bundle, el format de publicació d'aplicacions recomanat, t'has d'inscriure a la signatura d'aplicacions de Google Play abans de penjar l'app bundle a Play Console.

Per dur a terme l'activació, cal que siguis el propietari d'un compte o un usuari amb el permís global "Gestionar les versions de producció", i has d'acceptar les condicions del servei. En cada moment només pots tenir inscrita una aplicació a la signatura d'aplicacions de Google Play.

Funcionament

Quan utilitzes la signatura d'aplicacions de Google Play, les claus s'emmagatzemen a la mateixa infraestructura que Google utilitza per emmagatzemar les seves pròpies claus, les quals estan protegides pel servei de gestió de claus de Google. Per obtenir informació sobre la infraestructura tècnica de Google, pots consultar el document Google Cloud Security Whitepapers (Llibres blancs sobre seguretat de Google Cloud).

Les aplicacions d'Android se signen amb una clau privada. Per garantir que les actualitzacions d'aplicacions siguin fiables, totes les claus privades tenen un certificat públic associat que els dispositius i els serveis utilitzen per verificar que l'aplicació sigui d'una font de confiança. Els dispositius només accepten actualitzacions quan la seva signatura coincideix amb la signatura de l'aplicació instal·lada. Permetre que Google gestioni la teva clau de signatura d'aplicacions fa que aquest procés sigui més segur.

Nota: l'ús de la signatura d'aplicacions de Google Play és opcional. Pots penjar un APK i gestionar les teves pròpies claus en lloc de fer servir un app bundle. Tanmateix, si el teu magatzem de claus es perd o està en perill, per actualitzar l'aplicació hauràs de publicar-ne una de nova amb un nom de paquet nou.

Descripcions de claus, artefactes i eines
Terme Descripció
Clau de signatura d'aplicacions

És la clau que fa servir Google Play per signar els APK que s'envien al dispositiu d'un usuari. Quan actives la signatura d'aplicacions de Google Play, pots optar per penjar una clau de signatura d'aplicacions existent o fer que Google en generi una.

La clau de signatura d'aplicacions no es pot canviar mai mentre l'aplicació estigui vigent. Cal mantenir la clau de signatura d'aplicacions desada en secret, però el certificat públic de l'aplicació es pot compartir.

Clau de pujada

És la clau que fas servir per signar l'app bundle o l'APK abans de penjar-lo a Google Play. Cal mantenir la clau de pujada desada en secret, però el certificat públic de l'aplicació es pot compartir. Per motius de seguretat, és recomanable que la clau de signatura d'aplicacions i la clau de pujada siguin diferents.

Hi ha dues maneres de generar una clau de pujada:

  • Utilitzar la clau de signatura d'aplicacions: si fas que Google generi una clau de signatura d'aplicacions en activar la signatura d'aplicacions, la clau que facis servir per a la primera versió també serà la teva clau de pujada.
  • Utilitzar una clau de pujada independent: si proporciones la teva pròpia clau de signatura d'aplicacions en activar la signatura d'aplicacions, tens l'opció de generar una clau de pujada nova per augmentar la seguretat. Si no la generes, pots fes servir la clau de signatura d'aplicacions com a clau de pujada per signar les versions.
Certificat (.der o .pem)

Els certificats contenen una clau pública i informació identificadora addicional sobre el propietari de la clau. El certificat de clau pública permet que qualsevol persona verifiqui qui ha signat l'app bundle o l'APK, i es pot compartir lliurement perquè no inclou la clau privada.

Per registrar les teves claus amb els proveïdors d'API, pots baixar el certificat públic per a les claus de signatura d'aplicacions i de pujada a la pàgina Signatura d'aplicacions de Play Console. Pots compartir el certificat de clau pública amb qui vulguis, ja que no inclou la clau privada.

Empremta digital del certificat

És una representació curta i exclusiva d'un certificat que els proveïdors d'API sol·liciten sovint amb el nom del paquet per registrar una aplicació per utilitzar els seus serveis.

Les empremtes digitals MD5, SHA-1 i SHA-256 dels certificats de pujada i de signatura d'aplicacions es poden trobar a la pàgina Signatura d'aplicacions de Play Console. Per calcular altres empremtes digitals, es pot baixar el certificat original (.der) a la mateixa pàgina.

Magatzem de claus de Java (.jks o .keystore) És un repositori de certificats de seguretat i claus privades.
Eina d'encriptació de claus privades de Play (PEPK)

És una eina per exportar claus privades d'un magatzem de claus de Java i encriptar-les per transferir-les a Google Play.

Quan proporcionis la clau de signatura d'aplicacions que Google ha d'utilitzar, selecciona l'opció d'exportar i pujar la clau (i el seu certificat públic en cas necessari) i segueix les instruccions per baixar i fer servir l'eina. Si ho prefereixes, pots baixar, revisar i utilitzar el codi obert de l'eina PEPK.

Procés de signatura d'aplicacions

Pots penjar APK signats amb la clau de signatura d'aplicacions original abans o després d'activar la signatura d'aplicacions de Google Play.

Si fas servir fitxers Android App Bundle per primer cop, pots assignar-los a canals de prova mentre fas servir l'APK existent al canal de producció. El procés funciona de la manera següent:

  1. Signa l'app bundle o l'APK i penja'l a Play Console.
  2. En funció del tipus de fitxer que pugis, el procés de signatura variarà:
    • App bundle: Google genera APK optimitzats de l'app bundle i els signa amb la clau de signatura d'aplicacions.
    • APK signat amb una clau de pujada: Google verifica la signatura de l'APK, la retira i, a continuació, el torna a signar amb la clau de signatura d'aplicacions.
    • APK signat amb la clau de signatura d'aplicacions: Google verifica la signatura.
  3. Google proporciona els APK signats als usuaris.

Activar la signatura d'aplicacions de Google Play

Aplicacions noves

Pas 1: crea una clau de pujada

  1. Seguint aquestes instruccions, crea una clau de pujada.
  2. Signa l'APK nou amb la clau de pujada.

Pas 2: prepara la versió

  1. Segueix aquestes instruccions per preparar i llançar la versió.
  2. Després de seleccionar un canal de versió, configura la signatura d'aplicacions a la secció "Permet que Google gestioni i protegeixi la teva clau de signatura d'aplicacions".
  3. Selecciona Continua, per fer que la clau generada sigui la clau de pujada que faràs servir per signar les properes versions, o Opcions avançades, que inclou les opcions següents:
    • Fer servir la mateixa clau que la d'una altra aplicació del compte de desenvolupador (opció 2).
    • Penjar una clau de signatura d'aplicacions existent (opcions 2, 3 i 4): tria l'opció d'exportació i pujada que et vagi millor. Després de penjar la clau de signatura d'aplicacions i el seu certificat públic, pots crear una clau de pujada o seguir fent servir la clau de signatura d'aplicacions com a clau de pujada.

Nota: has d'acceptar les condicions del servei i activar la signatura d'aplicacions per continuar.

Pas 3: registra la clau de signatura d'aplicacions amb els proveïdors d'API

Si la teva aplicació utilitza alguna API, per motius d'autenticació normalment has de registrar el certificat de la clau amb què Google signa l'aplicació mitjançant l'empremta digital del certificat. Segueix aquests passos per trobar el certificat:

  1. Inicia la sessió a Play Console.
  2. Selecciona una aplicació.
  3. Al menú de l'esquerra, selecciona Gestió de versions > Signatura d'aplicacions.
  4. Copia les empremtes digitals (MD5, SHA-1 i SHA-256) del certificat de signatura d'aplicacions.
    • Si el proveïdor d'API requereix un altre tipus d'empremta digital, també pots baixar el certificat original en format .der i aplicar-hi les modificacions que requereixi el proveïdor d'API mitjançant les eines de conversió pertinents.
Aplicacions existents

Pas 1: activa la signatura d'aplicacions de Google Play

  1. Inicia la sessió a Play Console.
  2. Selecciona una aplicació.
  3. Al menú de l'esquerra, selecciona Gestió de versions > Signatura d'aplicacions.
  4. Si encara no ho has fet, llegeix les condicions del servei i selecciona Accepta.

Pas 2: envia la clau original a Google i crea una clau de pujada

  1. Cerca la teva clau de signatura d'aplicacions original.
  2. Inicia la sessió a Play Console.
  3. Selecciona una aplicació.
  4. Al menú de l'esquerra, selecciona Gestió de versions > Signatura d'aplicacions.
  5. Selecciona l'opció d'exportació i pujada que s'adapti millor al teu procés de llançament de versions i penja una clau de signatura d'aplicacions.

Pas 3: crea una clau de pujada (opcional i recomanat)

  1. Crea una clau de pujada i penja'n el certificat a Google Play.
    • També pots seguir fent servir la clau de signatura d'aplicacions com a clau de pujada.
  2. Copia les empremtes digitals (MD5, SHA-1 i SHA-256) del certificat de signatura d'aplicacions.
    • Per motius de seguretat, és possible que hagis de registrar el certificat de la clau de pujada amb els proveïdors d'API mitjançant l'empremta digital del certificat i la clau de signatura d'aplicacions.

Pas 4: signa la propera actualització de l'aplicació amb la clau de pujada

Quan publiquis actualitzacions de l'aplicació, les hauràs de signar amb la clau de pujada.

  • Si no has generat una clau de pujada nova: segueix fent servir la clau de signatura d'aplicacions original per signar les versions abans de penjar-les a Google Play. Si mai perds la clau de signatura d'aplicacions, pots generar una clau de pujada nova i registrar-la amb Google per continuar actualitzant l'aplicació.
  • Si has generat una clau de pujada nova: fes servir la clau de pujada nova per signar les versions abans de penjar-les a Google Play. Després de penjar-les, Google en comprova la clau de pujada per verificar la teva identitat. Si mai perds la clau de pujada, pots contactar amb el servei d'assistència per restablir-la.

Crear una clau de pujada i actualitzar els magatzems de claus

Per augmentar la seguretat, es recomana signar les aplicacions amb una clau de pujada nova en lloc d'utilitzar la clau de signatura d'aplicacions.

Per crear una clau de pujada, pots fer-ho en activar la signatura d'aplicacions de Google Play o bé més tard a Gestió de versions > Signatura d'aplicacions.

Segueix aquests passos per crear una clau de pujada:

  1. Segueix les instruccions que trobaràs al lloc web per a desenvolupadors d'Android. Desa la clau en un lloc segur.
  2. Exporta el certificat de la clau de pujada en format PEM. Substitueix els arguments subratllats següents:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Quan se't demani durant el procés de llançament, penja el certificat per registrar-lo a Google.

Quan fas servir una clau de pujada:

  • La clau de pujada només es registra a Google per autenticar la identitat del creador de les aplicacions.
  • La teva signatura es retira de tots els APK penjats abans d'enviar-los als usuaris.
Restriccions de les claus de pujada
  • Han de ser del tipus RSA amb 2.048 bits o més.
  • No s'admeten les claus DSA, EC o RSA de menys de 2.048 bits.
Actualitzar els magatzems de claus

Després de crear una clau de pujada, és recomanable revisar i actualitzar algunes ubicacions:

  • equip local
  • servidor físic bloquejat (ACL variables)
  • equip al núvol (ACL variables)
  • serveis específics per gestionar secrets
  • repositoris (Git)

Actualitzar la clau de signatura d'aplicacions per a les instal·lacions noves

En alguns casos, pots sol·licitar una actualització de la clau de signatura d'aplicacions. La clau nova s'utilitza per signar les instal·lacions noves i les actualitzacions de les aplicacions. La clau de signatura d'aplicacions heretada es continua utilitzant per signar les actualitzacions fetes pels usuaris que hagin instal·lat la teva aplicació abans de l'actualització de la clau.

Només es pot actualitzar la clau de signatura d'aplicacions de cada aplicació un sol cop al llarg de la seva vigència. En el cas improbable que tinguis diverses aplicacions que utilitzin la mateixa clau de signatura específicament per executar el mateix procés, no podràs actualitzar la clau d'aquestes aplicacions.

A continuació t'indiquem dues raons per sol·licitar una actualització de la clau de signatura d'aplicacions:

  • Necessites una clau criptogràficament més segura.
  • La clau de signatura d'aplicacions està en perill.

Nota: el fet de sol·licitar una actualització de la clau de signatura d'aplicacions a Play Console no té relació amb la rotació de claus que s'explica a la versió 3 de l'esquema de signatura de l'APK per a Android P i versions posteriors. Actualment Google Play no admet aquest tipus de rotació de claus.

Consideracions importants abans de sol·licitar que s'actualitzi la clau

Abans de sol·licitar que s'actualitzi la clau, és important entendre els canvis que potser hauràs de fer un cop completada l'actualització.

  • Si utilitzes la mateixa clau de signatura d'aplicacions per compartir dades o codi entre diverses aplicacions, has d'actualitzar-les perquè reconeguin els certificats de la clau de signatura d'aplicacions nova i de l'heretada.
  • Si la teva aplicació fa servir API, assegura't de registrar els certificats de la clau de signatura d'aplicacions nova i de l'heretada amb proveïdors d'API abans d'actualitzar-la o de publicar-ne una actualització per garantir que les API continuen funcionant. Els certificats estan disponibles a la pàgina Signatura d'aplicacions de Play Console.  
  • Si molts dels usuaris de l'aplicació n'instal·len actualitzacions mitjançant mètodes de compartir d'igual a igual, només podran instal·lar les que estiguin signades amb la mateixa clau que la de la versió de la teva aplicació que ja hagin instal·lat. Si no poden actualitzar l'aplicació perquè la versió que tenen està signada amb una clau diferent, poden desinstal·lar i tornar a instal·lar l'aplicació per obtenir l'actualització.
Sol·licitar una actualització de la clau per a les instal·lacions noves
  1. Inicia la sessió a Play Console.
  2. Selecciona una aplicació.
  3. Al menú de l'esquerra, selecciona Gestió de versions > Signatura d'aplicacions.
  4. A la targeta "Actualitza la clau de signatura d'aplicacions per a les instal·lacions noves", selecciona Sol·licita una actualització de la clau.
  5. Selecciona una opció.
    • En funció de l'opció que hagis seleccionat, és possible que hagis de contactar amb el servei d'assistència per completar la sol·licitud.
  6. Demana a Google que generi una clau de signatura d'aplicacions nova (opció recomanada) o penja'n una.
    • Després d'actualitzar la clau de signatura d'aplicacions, si has utilitzat la mateixa clau com a clau de signatura d'aplicacions i com a clau de pujada, pots continuar utilitzant la clau de signatura d'aplicacions heretada com a clau de pujada o generar una clau de pujada nova.

Pràctiques recomanades

  • Si també distribueixes l'aplicació fora de Google Play o vols fer-ho en el futur, pots generar la clau de signatura d'aplicacions que faràs servir per a les diferents botigues d'aplicacions i a continuació penjar-la a Google quan activis la signatura d'aplicacions de Google Play.
  • Per protegir el teu compte de Play Console, activa la verificació en dos passos per als comptes que hi tinguin accés.
  • Després de publicar un app bundle en un canal de prova o de producció, pots anar a l'explorador de l'app bundle per baixar un fitxer ZIP amb tots els APK per a un dispositiu concret. Aquests APK se signen amb la clau de signatura d'aplicacions. Pots instal·lar en un dispositiu els APK que hi ha al fitxer ZIP amb la utilitat de línia d'ordres bundletool.
  • Per augmentar la seguretat, genera una clau de pujada nova que sigui diferent de la clau de signatura d'aplicacions.
  • Si vols provar l'APK signat amb la clau de pujada, hauràs de registrar la clau de pujada amb qualsevol servei o API que utilitzi la signatura de l'aplicació per a l'autenticació (com ara l'API de Google Maps o l'SDK de Facebook).
  • Si fas servir una API de Google, pots registrar el certificat de pujada a l'eina Google Cloud Console de l'aplicació.

La clau de pujada s'ha perdut o està en perill?

En cas que la clau de pujada s'hagi perdut o estigui en perill, pots crear-ne una de nova i, a continuació, demanar al propietari del compte que contacti amb el servei d'assistència per restablir la clau. En contactar amb el servei d'assistència, comprova que el propietari del compte adjunti el fitxer upload_certificate.pem.

Després que el nostre equip d'assistència registri la clau de pujada nova, rebràs un correu electrònic i podràs actualitzar els magatzems de claus i registrar la clau amb els proveïdors d'API.

Important: restablir la clau de pujada no afecta la clau de signatura d'aplicacions que Google Play fa servir per tornar a signar els APK abans d'enviar-los als usuaris.

Ha estat útil?
Com ho podem millorar?