Utilize a assinatura de aplicações através do Google Play

Com a assinatura de aplicações através do Google Play, a Google gere e protege a chave de assinatura da aplicação por si, utilizando-a para assinar os seus APKs para distribuição. É uma forma segura de armazenar a chave de assinatura de aplicações que ajuda a protegê-lo se alguma vez perder a sua chave ou a mesma ficar comprometida.

Importante: para utilizar Android App Bundles, o formato de publicação de aplicações recomendado, tem de se inscrever na assinatura de aplicações através do Google Play antes de carregar o seu app bundle na Play Console.

Para aderir, tem de ser um proprietário da conta ou um utilizador com autorizações globais "Gerir lançamentos de produção" e aceitar os Termos de Utilização. Pode inscrever uma aplicação de cada vez na assinatura de aplicações através do Google Play.

Como funciona

Quando utiliza a assinatura de aplicações através do Google Play, as suas chaves são armazenadas na mesma infraestrutura que a Google utiliza para armazenar as suas próprias chaves. As chaves são protegidas pelo Serviço de gestão de chaves da Google. Se pretender saber mais acerca da infraestrutura técnica da Google, leia os Documentos técnicos sobre segurança do Google Cloud.

As aplicações Android são assinadas com uma chave privada. Para garantir que as atualizações de aplicações são fiáveis, cada chave privada tem um certificado público associado que os dispositivos e os serviços utilizam para validar se a aplicação é de uma fonte fidedigna. Os dispositivos apenas aceitam atualizações quando a respetiva assinatura corresponde à assinatura da aplicação instalada. Permitir à Google gerir a sua chave de assinatura de aplicações torna este processo mais seguro.

Nota: a utilização da assinatura de aplicações através do Google Play é opcional. Pode carregar na mesma um APK e gerir as suas próprias chaves em vez de utilizar um app bundle. No entanto, se perder o seu repositório de chaves ou se este ficar comprometido, não poderá atualizar a aplicação sem publicar uma nova aplicação com um novo nome de pacote.

Descrições de chaves, artefactos e ferramentas
Termo Descrição
Chave de assinatura de aplicações

A chave que o Google Play utiliza para assinar os APKs que são entregues ao dispositivo de um utilizador. Quando opta pela assinatura de aplicações através do Google Play, pode carregar uma chave de assinatura de aplicações existente ou optar pela geração de uma chave pela Google.

A chave de assinatura de aplicações nunca pode ser alterada ao longo da duração total da aplicação. Deve manter a chave de assinatura de aplicações secreta, mas pode partilhar o certificado público da aplicação com outras pessoas.

Chave de carregamento

A chave que utiliza para assinar o app bundle ou o APK antes de o carregar para o Google Play. Deve manter a chave de carregamento secreta, mas pode partilhar o certificado público da aplicação com outras pessoas. Por motivos de segurança, é aconselhável que as chaves de assinatura de aplicações e de carregamento sejam diferentes.

Existem duas formas de gerar uma chave de carregamento:

  • Utilizar a chave de assinatura de aplicações: se a chave de assinatura de aplicações for gerada pela Google quando optar pela assinatura de aplicações, a chave que utilizar no primeiro lançamento é também a chave de carregamento.
  • Utilizar uma chave de carregamento separada: se fornecer a sua própria chave de assinatura de aplicações quando optar pela assinatura de aplicações, poderá gerar uma nova chave de carregamento para maior segurança. Se não gerar uma, utilize a sua chave de assinatura de aplicações como chave de carregamento para assinar os lançamentos.
Certificado (.der ou .pem)

Um certificado contém uma chave pública e informações de identificação adicionais sobre o proprietário da chave. O certificado de chave pública permite que qualquer pessoa valide quem assinou o app bundle ou o APK. Pode partilhá-lo com qualquer pessoa, uma vez que não inclui a chave privada.

Para registar as chaves junto dos fornecedores da API, pode transferir o certificado público para a chave de assinatura de aplicações e a chave de carregamento a partir da página Assinatura de aplicações na Play Console. É possível partilhar o certificado de chave pública com qualquer pessoa. Não inclui a chave privada.

Impressão digital do certificado

Uma representação curta e única de um certificado que é frequentemente solicitada pelos fornecedores da API, juntamente com o nome do pacote, para registar uma aplicação para utilizar o respetivo serviço.

As impressões digitais MD5, SHA-1 e SHA-256 dos certificados de carregamento e de assinatura de aplicações encontram-se na página Assinatura de aplicações da Play Console. Também é possível calcular outras impressões digitais ao transferir o certificado original (.der) na mesma página.

Repositório de chaves Java (.jks ou .keystore) Um repositório de certificados de segurança e chaves privadas.
Ferramenta PEPK (Play Encrypt Private Key)

Uma ferramenta para exportar chaves privadas de um repositório de chaves Java e encriptá-las para transferência para o Google Play.

Quando fornecer a chave de assinatura de aplicações para utilização pela Google, selecione a opção para exportar e carregar a chave (e o respetivo certificado público, se necessário) e siga as instruções para transferir e utilizar a ferramenta. Se preferir, pode transferir, rever e utilizar o código aberto da ferramenta PEPK.

Processo de assinatura de aplicações

Pode carregar APKs assinados com a chave de assinatura de aplicações original antes ou após optar pela assinatura de aplicações através do Google Play.

Se estiver a começar a utilizar Android App Bundles, pode testá-los em faixas de teste enquanto utiliza o APK existente na produção. Eis como funciona o processo:

  1. Assine o seu app bundle ou APK e carregue-o para a Play Console.
  2. Consoante o que carregar, saiba como o processo de assinatura é diferente:
    • App bundle: a Google gera APKs otimizados a partir do seu app bundle e assina-os com a chave de assinatura de aplicações.
    • APK assinado com chave de carregamento: a Google valida e retira a sua assinatura do APK e, em seguida, volta a assinar o APK com a chave de assinatura de aplicações.
    • APK assinado com chave de assinatura de aplicações: a Google valida a assinatura.
  3. A Google envia os APKs assinados aos utilizadores.

Optar pela assinatura de aplicações através do Google Play

Novas aplicações

Passo 1: crie uma chave de carregamento

  1. Siga as instruções para criar uma chave de carregamento.
  2. Assine o novo APK com a chave de carregamento.

Passo 2: prepare o lançamento

  1. Siga as instruções para preparar e implementar o lançamento.
  2. Depois de selecionar a faixa de lançamento, configure a assinatura de aplicações na secção "Permitir que a Google gira e proteja a sua chave de assinatura de aplicações".
  3. Selecione Continuar, que torna a chave gerada a chave de carregamento utilizada para assinar lançamentos futuros, ou Opções avançadas, que incluem:
    • Utilizar a mesma chave que outra aplicação na sua conta de programador (Opção 2).
    • Carregar uma chave de assinatura de aplicações existente (Opção 2, 3 e 4): escolha a opção de exportação e carregamento mais adequada para si. Depois de carregar a chave de assinatura de aplicações e o respetivo certificado público, pode criar uma chave de carregamento ou continuar a utilizar a chave de assinatura de aplicações como chave de carregamento.

Nota: tem de aceitar os Termos de Utilização e optar pela assinatura de aplicações para continuar.

Passo 3: registe a chave de assinatura de aplicações junto dos fornecedores da API

Se a sua aplicação utilizar APIs, normalmente, é necessário registar o certificado da chave que a Google utiliza para assinar a aplicação para fins de autenticação através da impressão digital do certificado. Saiba onde encontrar o certificado:

  1. Inicie sessão na Play Console.
  2. Selecione uma aplicação.
  3. No menu do lado esquerdo, selecione Gestão de lançamentos > Assinatura de aplicações.
  4. Copie as impressões digitais (MD5, SHA-1 e SHA-256) do seu certificado de assinatura de aplicações.
  5. Se o fornecedor da API exigir um tipo de impressão digital diferente, também pode transferir o certificado original em formato .der e convertê-lo através das ferramentas de transformação exigidas pelo fornecedor da API.
Aplicações existentes

Passo 1: inscreva-se na assinatura de aplicações através do Google Play

  1. Inicie sessão na Play Console.
  2. Selecione uma aplicação.
  3. No menu do lado esquerdo, selecione Gestão de lançamentos > Assinatura de aplicações.
  4. Se ainda não o fez, reveja os Termos de Utilização e selecione Aceitar.

Passo 2: envie a sua chave original para a Google e crie uma chave de carregamento

  1. Localize a chave de assinatura de aplicações original.
  2. Inicie sessão na Play Console.
  3. Selecione uma aplicação.
  4. No menu do lado esquerdo, selecione Gestão de lançamentos > Assinatura de aplicações.
  5. Selecione a opção de exportação e carregamento mais adequada ao seu processo de lançamento e carregue uma chave de assinatura de aplicações existente.

Passo 3: crie uma chave de carregamento (opcional e recomendado)

  1. Crie uma chave de carregamento e carregue o certificado para o Google Play.
    • Também pode continuar a utilizar a chave de assinatura de aplicações como chave de carregamento.
  2. Copie as impressões digitais (MD5, SHA-1 e SHA-256) do seu certificado de assinatura de aplicações.
  3. Para fins de teste, poderá ser necessário registar o certificado da sua chave de carregamento junto dos fornecedores da API ao utilizar a impressão digital do certificado e a chave de assinatura de aplicações.

Passo 4: assine a sua próxima atualização da aplicação com a chave de carregamento

Quando lançar atualizações da sua aplicação, tem de as assinar com a chave de carregamento.

  • Se não gerou uma nova chave de carregamento: continue a utilizar a sua chave de assinatura de aplicações original para assinar lançamentos antes de os carregar para o Google Play. Se perder a chave de assinatura de aplicações, pode gerar uma nova chave de carregamento e registá-la na Google para continuar a atualizar a sua aplicação.
  • Se gerou uma nova chave de carregamento: utilize a nova chave de carregamento para assinar lançamentos antes de os carregar para o Google Play. Depois de os carregar, a Google procura uma chave de carregamento no lançamento para validar a sua identidade. Se perder a chave de carregamento, pode contactar o apoio técnico para a repor.

Criar uma chave de carregamento e atualizar os repositórios de chaves

Para maior segurança, é recomendado assinar a aplicação com uma nova chave de carregamento em vez da sua chave de assinatura de aplicações.

Pode criar uma chave de carregamento quando opta pela assinatura de aplicações através do Google Play. Em alternativa, pode fazê-lo mais tarde ao aceder a Gestão de lançamentos > Assinatura de aplicações.

Eis como criar uma chave de carregamento:

  1. Siga as instruções no site para programadores Android. Armazene a chave num local seguro.
  2. Exporte o certificado relativo à chave de carregamento para o formato PEM. Substitua os seguintes argumentos sublinhados:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Quando lhe for pedido durante o processo de lançamento, carregue o certificado para o registar na Google.

Quando utiliza uma chave de carregamento:

  • A chave de carregamento é registada apenas na Google para autenticar a identidade do criador da aplicação.
  • A sua assinatura é removida de qualquer APK carregado antes de este ser enviado para os utilizadores.
Restrições da chave de carregamento
  • Tem de ser uma chave RSA com 2048 bits ou mais.
  • As chaves DSA, EC e RSA com menos de 2048 bits não são suportadas.
Atualize os repositórios de chaves

Depois de criar uma chave de carregamento, seguem-se algumas localizações que poderá pretender verificar e atualizar:

  • Máquinas locais
  • Servidor no local bloqueado (LCAs variáveis)
  • Máquina na nuvem (ACLs variáveis)
  • Serviços dedicados de gestão de segredos
  • Repositórios (Git)

Atualizar a sua chave de assinatura de aplicações para novas instalações

Em algumas circunstâncias, pode solicitar uma atualização de chave de assinatura de aplicações. A nova chave é utilizada para assinar novas instalações e atualizações de aplicações. A chave de assinatura de aplicações antiga continua a ser utilizada para assinar as atualizações dos utilizadores que instalaram a sua aplicação antes da atualização da chave.

Cada aplicação apenas pode ter a respetiva chave de assinatura de aplicações atualizada uma vez durante o respetivo ciclo de vida. Na improbabilidade de ter várias aplicações a utilizar a mesma chave de assinatura especificamente para execução no mesmo processo, não pode utilizar a atualização da chave para essas aplicações.

Seguem-se alguns motivos para solicitar uma atualização de chave de assinatura de aplicações:

  • Precisa de uma chave criptograficamente mais forte.
  • A sua chave de assinatura de aplicações foi comprometida.

Nota: a solicitação de uma atualização de chave de assinatura de aplicações na Play Console não está relacionada com a alteração da chave introduzida no esquema de assinatura do APK v3 para o Android P e superior. Este tipo de alteração de chave não é atualmente suportado pelo Google Play.

Considerações importantes antes de solicitar uma atualização de chave

Antes de solicitar uma atualização de chave, é importante compreender as alterações que poderá ter de efetuar depois de a atualização estar concluída.

  • Se utilizar a mesma chave de assinatura de aplicações para várias aplicações de modo a partilhar código/dados entre as mesmas, tem de atualizar as suas aplicações para que reconheçam os certificados da chave de assinatura de aplicações nova e antiga.
  • Se a sua aplicação utilizar APIs, certifique-se de que regista os certificados da chave de assinatura de aplicações nova e antiga nos fornecedores de API antes de publicar uma atualização para garantir que as APIs continuam a funcionar. Os certificados estão disponíveis na página Assinatura de aplicações na Play Console.  
  • Se muitos dos seus utilizadores instalarem atualizações através da partilha ponto a ponto, apenas vão conseguir instalar as atualizações assinadas com a mesma chave da versão da sua aplicação que já instalaram. Se não conseguirem atualizar a respetiva aplicação por terem uma versão da sua aplicação assinada com uma chave diferente, têm a opção de desinstalar e reinstalar a aplicação para obter a atualização.
Solicite uma atualização de chave para novas instalações
  1. Inicie sessão na Play Console.
  2. Selecione uma aplicação.
  3. No menu do lado esquerdo, selecione Gestão de lançamentos > Assinatura de aplicações.
  4. No cartão "Atualizar a sua chave de assinatura de aplicações para novas instalações", selecione Solicitar atualização da chave.
  5. Selecione uma opção.
  6. Consoante a opção que selecionar, pode ter de contactar o apoio técnico para concluir o pedido.
  7. Permita que o Google gere uma nova chave de assinatura de aplicações (recomendado) ou carregue uma.
    • Depois de atualizar a chave de assinatura de aplicações, se estava a utilizar a mesma chave para a chave de assinatura de aplicações e de carregamento, pode continuar a utilizar a chave de assinatura de aplicações antiga como chave de carregamento ou gerar uma nova chave de carregamento.

Práticas recomendadas

  • Se também distribuir a sua aplicação fora do Google Play ou planear fazê-lo mais tarde, pode gerar a chave de assinatura de aplicações que pretende utilizar para cada loja de aplicações e, em seguida, carregá-la para a Google quando optar pela assinatura de aplicações através do Google Play.
  • Para proteger a sua conta, ative a validação em dois passos para as contas com acesso à sua Play Console.
  • Depois de publicar um app bundle para uma faixa de teste ou de produção, pode visitar o explorador de app bundles para transferir um arquivo ZIP com todos os APKs para um dispositivo específico. Estes APKs são assinados com a chave de assinatura de aplicações e pode instalá-los no arquivo ZIP num dispositivo através do utilitário de linha de comandos bundletool.
  • Para maior segurança, gere uma nova chave de carregamento diferente da sua chave de assinatura de aplicações.
  • Se pretender testar o APK assinado com a chave de carregamento, tem de registar a chave de carregamento com qualquer serviço ou API que utilize a assinatura da aplicação para efeitos de autenticação (como a API do Google Maps ou o SDK do Facebook).
  • Se estiver a utilizar uma API do Google, é recomendável registar o certificado de carregamento na Google Cloud Console da sua aplicação.

Perdeu ou comprometeu uma chave de carregamento?

Se perdeu a sua chave de carregamento privada ou esta tiver sido comprometida, crie uma nova e, em seguida, peça ao proprietário da conta para contactar o apoio técnico para repor a chave. Quando contactar o apoio técnico, certifique-se de que o proprietário da conta anexa o ficheiro upload_certificate.pem.

Depois de a nossa equipa de apoio técnico registar a nova chave de carregamento, receberá um email e, em seguida, pode atualizar os repositórios de chaves e registar a sua chave junto dos fornecedores da API.

Importante: a reposição da chave de carregamento não tem impacto na chave de assinatura de aplicações que o Google Play utiliza para voltar a assinar os APKs antes de os fornecer aos utilizadores.

A informação foi útil?
Como podemos melhorá-la?