Postado por Vishwath Mohan, engenheiro de segurança

Para manter os usuários protegidos, a maioria dos aplicativos e dispositivos tem um mecanismo de autenticação ou uma forma de provar que você é você. Esses mecanismos se encaixam em três categorias: fatores de conhecimento, fatores de posse e fatores biométricos. Os fatores de conhecimento são aqueles que perguntam algo que você sabe (como um PIN ou uma senha), os de posse pedem algo que você tem (como um gerador de tokens ou uma chave de segurança) e os biométricos pedem algo que faz parte de você (como impressão digital, íris ou rosto).



Os mecanismos de autenticação biométrica estão sendo cada vez mais usados, e o motivo é fácil de entender. Eles são mais rápidos que digitar uma senha, mais fáceis de carregar que uma chave de segurança e impedem uma das falhas mais comuns da autenticação por fator de conhecimento: o risco dos bisbilhoteiros.

À medida que mais dispositivos incorporam a autenticação biométrica para proteger as informações privadas das pessoas, continuamos a aprimorar a autenticação biométrica do Android P:
  • Definindo um modelo melhor para medir a segurança biométrica e usando-o para restringir métodos de autenticação funcionalmente menos seguros.
  • Disponibilizando um ponto de entrada comum na plataforma para que os desenvolvedores integrem a autenticação biométrica aos aplicativos.

Um modelo de segurança melhor para a biometria


Hoje, os desbloqueios biométricos quantificam seu desempenho com duas métricas originadas no aprendizado de máquina (ML): a taxa de falsa aceitação (FAR) e a taxa de falsa rejeição (FRR).

No caso da biometria, a FAR mede a frequência com que um modelo biométrico classifica acidentalmente uma entrada incorreta como pertencente ao usuário esperado. Ou seja, com que frequência outro usuário é reconhecido incorretamente como o proprietário legítimo do dispositivo. De forma parecida, a FRR mede com que frequência um modelo biométrico classifica acidentalmente a biometria do usuário como incorreta. Ou seja, com que frequência o proprietário do dispositivo precisa refazer a autenticação. A primeira taxa é um problema de segurança e a segunda, de usabilidade.

Ambas as métricas são excelentes para medir a precisão de determinado modelo de ML (ou biométrico) quando aplicado a amostras de entradas aleatórias. Porém, como nenhuma delas leva em consideração um invasor ativo no modelo de ameaça, não fornecem informações muito úteis sobre sua resistência contra ataques.

No Android 8.1, lançamos duas novas métricas que consideram mais explicitamente a possibilidade de haver um invasor no modelo de ameaça: a taxa de aceitação de spoof (SAR) e a taxa de aceitação de impostor (IAR). Como os nomes sugerem, essas métricas medem o nível de dificuldade imposto a um invasor que tenta burlar um esquema de autenticação biométrica. O spoofing é o uso de uma gravação confiável (por exemplo, reproduzir uma gravação de voz ou usar uma imagem do rosto ou da impressão digital). A aceitação de impostor é a imitação bem-sucedida da biometria de outro usuário (por exemplo, tentar soar ou parecer o usuário esperado).

Biometria forte x biometria fraca


Usamos as métricas SAR/IAR para categorizar mecanismos de autenticação biométrica como fortes ou fracos. Os mecanismos com SAR/IAR de 7% ou menos são fortes, e qualquer valor acima de 7% indica um mecanismo fraco. Mas por que exatamente 7%? A maioria das implementações de impressão digital têm uma SAR/IAR de 7%, o que torna esse um valor um padrão adequado para aplicação inicial a outras modalidades. Com o avanço dos sensores biométricos e dos modelos de classificação, esse limite poderá ser reduzido no futuro.

Essa classificação binária pode ser uma simplificação exagerada do tipo de segurança oferecida por diferentes implementações. Porém, ela nos oferece um mecanismo escalonável (por meio do modelo de autenticação em níveis) para avaliar corretamente os recursos e as limitações das diversas implementações biométricas no ecossistema com base no risco geral que apresentam.

Embora o dispositivo possa ser desbloqueado por biometria fraca e forte, a biometria fraca:
  • exige que o usuário insira novamente o PIN, o padrão, a senha ou a biometria forte principal para desbloquear o dispositivo após um intervalo de inatividade de 4 horas (por exemplo, quando o dispositivo é deixado sobre a mesa ou carregando a bateria). E essa é uma medida adicional ao tempo limite de 72 horas aplicado às biometrias fortes e fracas.
  • não é compatível com a futura BiometricPrompt API, uma API comum para desenvolvedores que autenticam usuários em um dispositivo com segurança e de forma independente de modalidade.
  • não pode autenticar pagamentos nem participar de outras transações que envolvem uma chave do KeyStore vinculada à autenticação.
  • deve apresentar aos usuários um aviso que explique os riscos de se usar a biometria antes de ela ser ativada.

O objetivo dessas medidas é permitir biometrias mais fracas e reduzir o risco de acesso não autorizado.

BiometricPrompt API


A partir do Android P, os desenvolvedores podem usar a BiometricPrompt API para integrar autenticação biométrica aos aplicativos de forma independente do dispositivo e da biometria. A BiometricPrompt só expõe modalidades fortes. Assim, os desenvolvedores têm a certeza de que terão um nível de segurança consistente em todos os dispositivos em que os aplicativos são executados. Também há uma biblioteca de suporte para dispositivos Android O e anteriores, o que permite que os aplicativos aproveitem as vantagens dessa API em mais dispositivos.

Esse é um resumo da arquitetura da BiometricPrompt.



A API foi feita para ser fácil de usar, permitindo que a plataforma selecione uma biometria adequada para autenticação, em vez de forçar os desenvolvedores a implementar essa lógica por conta própria. Abaixo temos um exemplo de como o desenvolvedor pode usar essa API em um aplicativo:


Conclusão


A biometria tem o potencial de simplificar e fortalecer a forma como autenticamos nossa identidade digital, mas só se for desenvolvida de maneira segura, avaliada com precisão e implementada de uma maneira que sempre preserve a privacidade.

Queremos que o Android atenda a esses três requisitos. Por isso, estamos combinando princípios de design seguro, uma metodologia de medição que considera invasores e uma API de biometria comum e fácil de usar que permite que os desenvolvedores integrem a autenticação de forma simples, consistente e segura.

Agradecimentos: esta postagem foi desenvolvida em colaboração com Jim Miller