Segurança mobile

Segredos em apps mobile: por que nunca embarcar chaves no app

SECVOLT5 min de leitura

Este artigo faz parte do Segredos e chaves: nunca no app.

O app distribuído é um app legível

Um app publicado pode ser baixado e analisado por qualquer pessoa. O que está dentro dele não é secreto, por mais que esteja 'escondido' no código.

Embarcar chaves, senhas ou tokens no app é entregá-los a quem souber procurar. Não existe ofuscação que torne isso seguro.

Onde segredos devem viver

Segredos pertencem ao servidor. O app fala com sua API, e a API usa as credenciais internamente, sem expô-las ao cliente.

Assim, o segredo nunca sai do ambiente controlado. O app só recebe o que precisa para a operação, e nada além.

  • Segredos no servidor.
  • O app usa a própria API como intermediária.
  • O cliente nunca vê credenciais internas.
  • Acesso limitado ao necessário.

Chaves de cliente, quando inevitáveis

Algumas chaves precisam existir no cliente, como identificadores públicos de serviços integrados. Nesse caso, elas são tratadas como públicas.

Chave no cliente deve ter escopo mínimo: restrições por aplicativo, por domínio, por operação e limites de uso. Se ela vazar, o dano precisa ser pequeno.

  • Tratar como pública, não como secreta.
  • Restringir por aplicativo e domínio.
  • Limitar operações permitidas.
  • Aplicar limites de uso e cota.

O que costuma vazar sem perceber

Além de chaves, vazam credenciais de teste, endpoints internos, comentários e configurações de desenvolvimento esquecidas no pacote.

Revisar o que entra no build é tão importante quanto o código em si. Ambientes de desenvolvimento não podem contaminar o app distribuído.

  • Credenciais de teste deixadas no build.
  • Endpoints internos expostos.
  • Comentários com informação sensível.
  • Configurações de debug no release.

Defesa que realmente funciona

A defesa não é esconder melhor, e sim não embarcar. Arquitetura que mantém segredos no servidor resolve na raiz o que nenhuma técnica de ofuscação resolve de verdade.

Combinada com escopo mínimo para chaves de cliente, essa é a única abordagem robusta contra extração de segredos.

Como verificar

A análise estática do pacote revela segredos embarcados com rapidez. É uma das verificações de maior retorno em qualquer avaliação de segurança mobile.

Verifique o que está no app antes de publicar. Encontrar uma chave exposta no build é muito mais barato do que descobri-la em uso indevido.

Perguntas frequentes

Ofuscar o código protege os segredos?

Não. Ofuscação dificulta a leitura, mas não torna um segredo embarcado seguro. A solução é não embarcar segredos: eles devem viver no servidor.

E quando preciso de uma chave no app?

Trate-a como pública e aplique escopo mínimo: restrições por aplicativo, domínio e operação, além de limites de uso. Se ela vazar, o dano precisa ser pequeno e controlado.

Continue neste tema

Leia também

Fale com a gente

Segurança mobile

App, dados e API: MASVS, armazenamento seguro, pinning e gestão de segredos.

WhatsApp