Use os recursos descritos nesta seção para tornar os dispositivos Android que você desenvolve o mais seguros possível.
Sandbox de aplicativos
A plataforma Android aproveita a proteção baseada no usuário do Linux para identificar e isolar recursos de apps. Para isso, o Android atribui um ID de usuário (UID) exclusivo a cada app e o executa em um processo próprio. O Android usa esse UID para configurar um sandbox de aplicativo no nível do kernel.
Assinatura de apps
Com a assinatura de apps, os desenvolvedores podem identificar o autor do app e atualizar o app sem criar interfaces e permissões complicadas. Todos os apps executados na plataforma Android precisam ser assinados pelo desenvolvedor.
Autenticação
O Android tem o conceito de autenticadores de usuário que podem desbloquear o dispositivo e realizar outras tarefas:
- O subsistema Gatekeeper realiza a autenticação de padrão ou senha do dispositivo em um ambiente de execução confiável (TEE).
- O componente opcional Weaver realiza a autenticação de padrão ou senha em um elemento seguro separado.
- Dispositivos com sensor de impressão digital aceitam o uso de impressões digitais registradas.
- Os dispositivos podem ser compatíveis com a autenticação facial.
O Android também oferece suporte a chaves criptográficas protegidas por hardware que só podem ser usadas se a autenticação do usuário com um desses mecanismos tiver ocorrido.
Biometria
O Android 9 e versões mais recentes incluem uma classe
BiometricPrompt
que os desenvolvedores de apps podem usar para integrar a autenticação biométrica aos
apps de maneira independente de dispositivos e modalidades. Somente biometrias fortes podem ser integradas ao BiometricPrompt
.
Criptografia
Depois que um dispositivo é criptografado, todos os dados criados pelo usuário são criptografados automaticamente antes de serem gravados em disco, e todas as leituras descriptografam automaticamente os dados antes de retorná-los ao processo de chamada. Ela garante que, mesmo que uma pessoa não autorizada tente acessar os dados, não consiga lê-los.
Keystore
O Android oferece um keystore com suporte de hardware que fornece funcionalidade criptográfica em que o material da chave está contido em um ambiente seguro. O Android Keystore oferece suporte à geração e importação de chaves simétricas e assimétricas, combinadas com criptografia, descriptografia, assinatura e primitivos de acordo de chaves.
Security-Enhanced Linux
Como parte do modelo de segurança do Android, o sistema usa o Security-Enhanced Linux (SELinux) para aplicar o controle de acesso obrigatório (MAC) a todos os processos, mesmo aqueles executados com privilégios de raiz ou superusuário (recursos do Linux).
Trusty TEE
Trusty TEE
O Trusty é um sistema operacional (SO) seguro que fornece um TEE para o Android. O SO Trusty é executado no mesmo processador do SO Android, mas é isolado do restante do sistema por hardware e software.
Inicialização verificada
A Inicialização verificada foi projetada para garantir que todo o código executado venha de uma fonte confiável (geralmente OEMs de dispositivo), e não de um invasor ou de um arquivo corrompido. A Inicialização Verificada estabelece uma cadeia completa de confiança, começando de uma raiz de confiança protegida por hardware até o carregador de inicialização, a partição de inicialização e outras partições verificadas.