Logo pt.androidermagazine.com
Logo pt.androidermagazine.com

Como o Android salva suas impressões digitais?

Anonim

O lançamento de um iPhone sem sensor de impressão digital trouxe algumas discussões sobre o uso de impressões digitais para autenticação e a segurança com que os dados são armazenados. Fantástico. Mesmo que você não esteja preocupado com o modo como isso é feito, é necessário que muitas pessoas se preocupem, para que isso seja feito de uma maneira que você não precise se preocupar!

Para iniciantes, a Apple usa uma solução semelhante e, se você tem um modelo mais antigo com sensor de impressão digital, é tão seguro usá-lo quanto antes. O mesmo vale para os telefones Samsung mais antigos que lançaram o pré-Marshmallow e usaram os próprios métodos da Samsung.

A maneira como o Google armazena seus dados de impressões digitais é a maneira mais segura possível com a tecnologia atual. Também é fascinante o quão simples é a visão geral de tudo quando você olha para ela. Simples e seguro é sempre uma combinação vencedora.

O armazenamento não é, por natureza, muito seguro. É o mesmo que escrever algo em um post-it e colocá-lo em um arquivo. Está lá porque precisa estar lá, e a melhor coisa que você pode fazer é controlar quem tem acesso a ela. Para um gabinete de arquivo, você usa uma trava e, para o seu telefone, usa criptografia. Para seus dados de impressão digital, as coisas vão um passo além: um Trusted Execution Environment (TEE).

Um TEE é uma área separada e isolada no hardware do telefone. Um TEE pode usar seu próprio processador e memória ou uma instância virtualizada na CPU principal. Nos dois casos, o TEE é totalmente isolado e isolado usando memória suportada por hardware e proteção de entrada / saída. A única maneira de entrar é se o TEE permitir, e nunca o fará. Mesmo se o telefone estiver enraizado ou o gerenciador de inicialização desbloqueado, o TEE estará separado e ainda intacto.

Um processador separado com sua própria memória e sistema operacional é usado para analisar e armazenar seus dados de impressão digital.

O Google usa o que eles chamam de Trusty TEE para dar suporte a isso. Um sistema operacional muito pequeno e eficiente, chamado apropriadamente Trusty OS, é executado nos drivers de hardware e kernel do TEE, permitindo que ele se comunique com o sistema. Existem bibliotecas Android (você adivinhou: a API Trusty) para os desenvolvedores usarem, para que possam perguntar o que equivale a uma pergunta de sim ou não ao TEE. Não apenas os dados das impressões digitais são armazenados no TEE. Coisas como chaves DRM e chaves de criptografia do carregador de inicialização do fabricante também vivem no TEE e funcionam da mesma maneira que seus dados de impressão digital - responda se os dados apresentados por um aplicativo correspondem aos bons dados conhecidos que estão armazenando.

Outros fabricantes podem usar o Trusty OS ou, em seguida, podem usar um sistema diferente. Desde que todos os critérios sejam atendidos (listados abaixo) e o TEE seja isolado e isolado, ele atenderá aos padrões de segurança necessários para usar o Pixel Imprint (anteriormente Nexus Imprint).

Diagrama de blocos do ARM TrustZone TEE.

Quando você registra uma impressão digital no seu telefone Android, o sensor captura os dados da digitalização. O Trusty OS analisa esses dados dentro do TEE e cria duas coisas: um conjunto de dados de validação e um modelo de impressão digital criptografado. Parece ser dados indesejados para tudo, exceto o TEE, que também tem a chave para decifrar esses dados indesejados. Este modelo de impressão digital criptografada é armazenado em um contêiner criptografado no TEE ou no armazenamento criptografado do seu telefone. Três camadas de criptografia significam que é quase impossível obter os dados e, mesmo que você possa, é inútil sem uma maneira de decifrá-los.

O Android exige que seus dados de impressão digital sejam protegidos com uma chave exclusiva e você não pode levá-los para outro telefone ou reutilizá-los para outro usuário.

Os dados de validação são armazenados dentro do TEE. Quando você coloca o dedo no scanner para tentar algo, o scanner cria um perfil de dados. Por meio da API Trusty, o aplicativo associado solicita ao kernel que pergunte ao TEE se está correto. O TEE verifica os dados de validação armazenados usando seu processador e memória separados e, se um número suficiente de dados coincidir, diz sim. Se não houver dados correspondentes suficientes, ele diz que não. Essa resposta de aprovação ou falha é enviada de volta ao kernel como um token de software que a API pode ler para ver o resultado.

Enquanto o próprio TEE usa um sistema operacional e hardware independentes para permanecer seguro, o modelo de impressão digital usa criptografia baseada em software. Ele deve ser assinado por uma chave muito específica para ser válido. Essa chave é criada usando informações específicas do dispositivo, informações específicas do usuário e informações específicas da hora. Em outras palavras, se você remover um usuário, alterar dispositivos ou tentar registrar novamente uma impressão digital (o sistema pode saber se você está substituindo uma impressão digital existente) a chave não será mais reconhecida e não poderá ser usada para descriptografar a impressão digital modelo.

As regras básicas que toda empresa que fabrica telefones Android com sensor de impressão digital precisa seguir:

  • Toda análise de dados de impressão digital deve ser realizada dentro do TEE
  • Todos os dados associados a uma impressão digital devem ser armazenados no TEE ou na memória confiável (memória que a CPU principal nem consegue ver)
  • Os dados do perfil de impressão digital devem ser auto-criptografados, mesmo se armazenados no armazenamento criptografado do telefone
  • A remoção de uma conta de usuário também deve limpar com segurança todos os dados associados às impressões digitais desse usuário
  • Onde os perfis de impressão digital são armazenados, não deve estar visível para nenhum aplicativo, processo ou usuário, incluindo o usuário raiz
  • Os dados de impressão digital de qualquer tipo não devem ser copiados para nenhuma outra fonte, incluindo a nuvem ou o seu computador ou qualquer aplicativo
  • A autenticação de impressão digital deve ser usada pelo processo que a solicitou (sem compartilhamento de dados de impressão digital, mesmo apenas a resposta sim ou não para verificar se estava correta)

Quando você tem algumas especificações padrão claras, não é difícil encontrá-las. É isso que garante que, independentemente do telefone Android que você está usando, os dados de impressão digital sejam armazenados com segurança e nenhum outro processo ou aplicativo do sistema possa ter acesso a eles. À medida que a criptografia evolui, especialmente a criptografia suportada por hardware, esse método também mantém os dados de impressões digitais em segurança. Será interessante olhar para trás quando o Android Z for lançado e ver até onde chegamos.