O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Biometria

A biometria oferece uma forma mais conveniente, mas potencialmente menos segura, de confirmar sua identidade com um dispositivo. No modelo de autenticação em camadas, a autenticação primária (ou seja, modalidades baseadas em fator de conhecimento, como PIN, padrão e senha) fornece o nível mais alto de segurança. A biometria está na camada secundária de autenticação, oferecendo um equilíbrio entre conveniência e segurança. O CDD Android define três classes de força biométrica: Classe 3 (anteriormente forte), Classe 2 (anteriormente fraco), e da classe 1 (anteriormente de conveniência). Cada classe possui um conjunto de pré-requisitos, privilégios e restrições - consulte o CDD acima para obter mais detalhes. Todas as três classes podem se integrar com a tela de bloqueio, mas apenas os autenticadores fortes e fracos têm permissão para se integrar com as APIs android.hardware.biometrics. Esta tabela descreve cada autenticador e a funcionalidade que eles suportam.

Autenticador Tela de bloqueio Integração BiometricPrompt Keystore (chave baseada em tempo) Keystore (chave baseada em operação)
BIOMETRIC_STRONG (Classe 3) sim sim sim sim
BIOMETRIC_WEAK (Classe 2) sim sim Não Não
BIOMETRIC_CONVENIENCE
(Classe 1)
sim Não Não Não
DEVICE_CREDENTIAL sim sim sim Sim (1)
  1. Esta funcionalidade foi adicionada no Android 11, ver este para mais detalhes

A estrutura do Android inclui suporte para autenticação biométrica facial e de impressão digital. O Android pode ser personalizado para oferecer suporte a outras modalidades biométricas (como Iris). No entanto, a integração biométrica dependerá da segurança biométrica, não da modalidade. Para mais detalhes sobre as especificações de segurança biométrica, consulte medição biométrica desbloqueio de Segurança .

Fonte

Android 11

  • Apresenta a interface de BiometricManager.Authenticators , que fornece constantes que os desenvolvedores podem usar para especificar os tipos de autenticação aceitos por seus aplicativos.
  • Adiciona o ACTION_BIOMETRIC_ENROLLação intenção , que os desenvolvedores podem usar para direcionar o usuário para se inscrever um método de autenticação que atenda aos requisitos de seus aplicativos.
  • Adiciona o AuthenticationResult #getAuthenticationType () método , que os programadores podem utilizar para verificar se o utilizador autenticado utilizando uma credencial biométrica ou uma credencial do dispositivo.
  • Fornece suporte adicional para auth-per-use chaves dentro da classe BiometricPrompt.

Android 10

  • Introduz o BiometricManager classe que os desenvolvedores podem usar para consultar a disponibilidade de autenticação biométrica.
  • Inclui a integração de autenticação de impressões digitais e rosto por BiometricPrompt

Android 9

  • Inclui a integração de impressão digital apenas para BiometricPrompt .
  • Obsoleta a classe FingerprintManager. Se seus aplicativos empacotados e do sistema usar essa classe, atualizá-los para usar BiometricPrompt e BiometricManager vez.
  • Atualizado o FingerprintManager CTS verificador testes para teste BiometricPrompt usando BiometricPromptBoundKeysTest .

Implementação

Para garantir que os usuários e desenvolvedores tenham uma experiência biométrica sem costura, integrar sua pilha biométrica com BiometricPrompt , BiometricManager e ACTION_BIOMETRIC_ENROLL APIs. Os dispositivos com sensores biométricos devem aderir a estes requisitos de resistência .
Para integrar sua pilha biométrica com os BiometricPrompt e BiometricManager APIs :

  1. Verifique se o seu <Modality>Service está devidamente registrado com BiometricService através do método IBiometricService # registerAuthenticator e implementa o IBiometricAuthenticator interface. Modalidades comuns (impressões digitais, cara) se estendem a partir de um comum superclasse . Se você precisa integrar uma modalidade sem suporte, siga a impressão digital / rosto exemplo e as diretrizes de CDD para biometria.
  2. Certifique-se de que a sua nova modalidade é devidamente apoiada em SystemUI . Há padrão BiometricPrompt interfaces de usuário para impressão digital e face. Isso deve incluir quaisquer alterações de layout ou tema necessárias para o seu dispositivo. Ou seja, alterações de layout correspondentes para um sensor de impressão digital no display.

Para integrar sua pilha biométrica com a API ACTION_BIOMETRIC_ENROLL:

  1. Modificar a BiometricEnrollActivity para apresentar o seu fluxo de inscrição. Observe que sua biometria pode ser apresentada apenas se atender à força solicitada. Se o seu dispositivo suportar mais de um, esta ação deve apresentar uma lista que o usuário pode escolher.
Arquitetura BiometricPrompt
Arquitetura Figura 1. BiometricPrompt

Diretrizes de implementação de HAL

Siga estas orientações HAL biométricos para assegurar que os dados biométricos não é vazada e é removido quando um utilizador é removido a partir de um dispositivo:

  • Certifique-se de que os dados biométricos brutos ou derivados (como modelos) nunca estejam acessíveis de fora do ambiente isolado seguro (como o TEE ou Elemento Seguro). Todos os dados armazenados devem ser criptografados com uma chave específica do dispositivo que só é conhecido o ETE (Trusted Execution Environment) Se os suportes de hardware de TI, acesso hardware limite para o ambiente seguro isolado e protegê-lo com uma política SELinux. Torne o canal de comunicação (por exemplo, SPI, I2C) acessível apenas para o ambiente isolado seguro com uma política SELinux explícita em todos os arquivos do dispositivo.
  • A aquisição, inscrição e reconhecimento biométrico devem ocorrer dentro de um ambiente isolado e seguro para evitar violações de dados e outros ataques. Esta exigência aplica-se apenas a classe 3 (anteriormente Strong) e Classe 2 (anteriormente fraco) biometria.
  • Para se proteger contra ataques de repetição, assine modelos biométricos com uma chave particular específica do dispositivo. Para o Advanced Encryption Standard (AES), assine no mínimo um modelo com o caminho absoluto do sistema de arquivos, grupo e ID biométrica de forma que os arquivos do modelo fiquem inoperantes em outro dispositivo ou para qualquer pessoa que não seja o usuário que os inscreveu no mesmo dispositivo . Por exemplo, evite copiar dados biométricos de um usuário diferente no mesmo dispositivo ou de outro dispositivo.
  • Se você precisa armazenar fora de dados do TEE, use o caminho do sistema de arquivos fornecido pelo setActiveUser() HIDL method ou fornecer uma outra maneira de apagar todos os dados do modelo de usuário quando o usuário é removido. O motivo é proteger o vazamento de dados do usuário. Os dispositivos que não utilizam este caminho deve limpar depois que o usuário é removido. O CDD exige que os dados biométricos e os arquivos derivados sejam armazenados criptografados - especialmente se não no TEE. Se isso for inviável devido aos requisitos de armazenamento do ambiente isolado seguro, adicione ganchos para garantir a remoção dos dados quando o usuário for removido ou o dispositivo é apagado. Consulte LockSettingsService.removeBiometricsForUser ()

Costumização

Se o seu dispositivo oferece suporte para biometria múltipla, o usuário deve ser capaz de especificar um padrão nas configurações. Seu BiometricPrompt implementação deve preferir a classe 3 (anteriormente Strong) biométrica como padrão a menos que o usuário substitui-lo explicitamente, uma mensagem de advertência precisa ser exibida explicando os riscos associados com a biométrica (por exemplo, uma foto de você pode desbloquear o dispositivo )

Validação

Sua implementação biométrica deve passar nos seguintes testes:

  • CTS BiometricManager
  • CTS BiometricPrompt (sanidade, em profundidade testes depende de verificador)
  • CtsVerifier Biometric Teste seção : Deve passar individualmente com cada modalidade que os suportes de dispositivos

Além disso, se o seu dispositivo suporta a biométrica que tem um HIDL AOSP ( fingerprint@2.1 , fingerprint@2.2 , face1.0 ), ele deve passar o seu teste VTS relevante ( impressão digital , cara )