O Android R pode oferecer suporte ao armazenamento seguro de carteiras de motorista móveis em dispositivos como o Google Pixel 2, Google Pixel 3 ou Google Pixel 4.
Atualização 1 (6/03/19 às 20h44 horário do leste dos EUA): Mais detalhes sobre os planos do Google para a API IdentityCredential foram compartilhados por Shawn Willden, líder da equipe de segurança apoiada por hardware Android. O artigo foi atualizado com esses detalhes no final. Segue o artigo original.
Carregar uma carteira tornou-se menos necessário para mim desde que comecei a usar Google Pay para gerenciar meus cartões de crédito, mas ainda não consigo viajar para qualquer lugar sem minha carteira de motorista. Conheço algumas pessoas que usam estojos tipo carteira para guardar os poucos cartões que possuem. deve continuem com eles, mas estou esperando o dia em que poderei dirigir legalmente até o Walmart apenas com meu telefone. A carteira de motorista digital oferece múltiplas vantagens em relação à carteira de identidade tradicional. Você não pode perdê-lo, pode atualizá-lo remotamente para não ter que ficar na fila do DMV, pode apagá-lo remotamente se seu telefone for roubado, é menos provável que você obtenha sua identidade roubado, já que você não precisa carregar uma carteira com informações de fácil acesso, é menos provável que você deixe seu telefone em casa e será mais fácil trazê-lo à tona solicitar. As autoridades dos EUA estão lentamente reconhecendo os benefícios de uma carteira de motorista móvel, e é por isso que ouvimos mais estados dos EUA testarem sua adoção a cada ano.
Por exemplo, os residentes da Louisiana podem baixar o Envocar-desenvolvido Carteira LA aplicativo que foi aprovado pelas autoridades de LA para verificação de licença e ATC de Los Angeles para transações de álcool e tabaco. A verificação da idade é particularmente interessante porque os usuários podem limitar o aplicativo móvel para mostrar apenas as informações necessárias a um vendedor de álcool ou tabaco. Em outros lugares, empresa de segurança digital Gemalto está fazendo parceria com Colorado, Idaho, Maryland, Washington D.C. e Wyoming para executar programas piloto antes de lançar sua solução de carteira de motorista digital. Ao mesmo tempo, o Associação Americana de administradores de veículos motorizados está trabalhando para padronizar esta nova forma de identificação eletrônica.
No entanto, existem desvantagens na carteira de motorista digital. Você tem muito controle sobre quem vê sua identidade física, mas tem menos controle sobre quem ou o que tem acesso ao seu formato digitalizado. Você pode proteger seu telefone ou o aplicativo que obtém sua licença móvel com senha ou PIN, mas sempre há uma chance de que seu telefone e todos os seus dados sejam comprometidos. Além disso, você precisa garantir que seu telefone tenha energia suficiente para manter o Android funcionando para que você possa obter a licença. Com o API IdentityCredential, o Google está trabalhando para resolver esses dois problemas. Em uma versão futura do Android, talvez o Android R, os dispositivos com o hardware certo serão capazes de armazenar com segurança cartões de identificação, principalmente carteiras de habilitação digitais, e até mesmo acessá-los quando o aparelho não tiver energia suficiente para inicialize o Android.
API IdentityCredential
À primeira vista, o commit, enviado por Shawn Willden, líder da equipe Keystore apoiada por hardware do Android, não parece muito interessante. No entanto, se você visualizar os arquivos IdentityCredential e IdentityCredentialStore, encontrará várias referências a quais tipos de "credenciais de identidade" o Google está se referindo. Por exemplo, IdentityCredential usa um protocolo de troca de chaves que é "usado pelo ISO18013-5 padrão para carteiras de habilitação móveis." Além disso, este protocolo é usado como "a base para o trabalho contínuo da ISO em outras credenciais de identidade padronizadas." Embora seja improvável que vejamos passaportes móveis tão cedo, está claro que esta API se destina a mais do que apenas cartas de condução móveis.
Indo mais fundo, o Google detalha os tipos de chaves de assinatura suportadas pela API IdentityCredential. Existem dois tipos de autenticação de dados: estática e dinâmica. A autenticação estática envolve chaves criadas por uma autoridade emissora, enquanto a autenticação dinâmica envolve chaves criadas pelo hardware de segurança do dispositivo (como o Titã M no Pixel 3 e Pixel 3 XL.) O benefício da autenticação dinâmica é que é mais difícil para um invasor comprometer o hardware seguro para copiar a credencial para outro dispositivo. Além disso, a autenticação dinâmica torna mais difícil vincular uma credencial específica aos dados de um usuário.
Um aplicativo Android pode apresentar uma IdentityCredential a um leitor solicitando que o usuário inicie uma conexão sem fio via NFC. Recomenda-se que os aplicativos protejam essas transações solicitando permissão do usuário na forma de uma caixa de diálogo e/ou proteção por senha.
Se um dispositivo tiver o hardware suportado, o modo "acesso direto" estará disponível para permitir que uma IdentityCredential seja apresentada mesmo que não haja energia suficiente para manter o Android funcionando. Isso só é possível quando o dispositivo possui hardware discreto e seguro e energia suficiente para operar esse hardware e compartilhar a credencial por NFC. Dispositivos como o Google Pixel 2 e o Google Pixel 3 devem se qualificar, pois ambos os dispositivos têm módulos de segurança invioláveis que são separados do SoC principal.
Se o dispositivo não tiver uma CPU discreta e segura, ele ainda poderá dar suporte à API IdentityCredential, embora sem suporte de acesso direto. Se o armazenamento de credenciais for implementado apenas em software, ele poderá ser comprometido por um ataque ao kernel. Se o armazenamento de credenciais for implementado no TEE, ele poderá ser comprometido por ataques de canal lateral na CPU, como Colapso e Espectro. Se o armazenamento de credenciais for implementado em uma CPU separada incorporada no mesmo pacote que o principal CPU, é resistente a ataques de hardware físico, mas não pode ser alimentado sem também alimentar o principal CPU.
A confidencialidade do documento determinará se uma ou mais dessas implementações de armazenamento de credenciais de identidade serão suportadas. Os desenvolvedores podem verificar a certificação de segurança da implementação do armazenamento de credenciais de identidade. As implementações de armazenamento de credenciais de identidade podem não ser certificadas ou ter um Nível de Garantia de Avaliação 4 ou superior. O EAL informa aos desenvolvedores de aplicativos o quão segura é a implementação contra possíveis ataques.
Como mencionei antes, o Google pretende que esta API seja usada para qualquer tipo de documento padronizado, embora liste as carteiras de habilitação móveis ISO 18013 como exemplo. O tipo de documento é necessário para que o hardware de segurança saiba que tipo de credencial é caso o modo de acesso direto deve ser suportado e permitir que os aplicativos saibam que tipo de documento um leitor é solicitando.
Essas são todas as informações que temos até agora sobre esta nova API. Como estamos tão perto do lançamento do primeiro Android Q Developer Preview, não acho provável que vejamos suporte para armazenamento seguro de carteiras de motorista móveis no Android Q. No entanto, esta API pode estar pronta quando o Android R for lançado em 2020. O Google Pixel 2, o Google Pixel 3 e o próximo Google Pixel 4 devem suportar esta API com modo de acesso direto no Android R, graças a ter a CPU discreta e segura necessária. Avisaremos você se tivermos mais informações sobre o que o Google pretende fazer com esta API.
Atualização 1: Mais detalhes sobre a API IdentityCredential
Shawn Willden, autor do commit da API IdentityCredential, compartilhou detalhes adicionais sobre a API nas seções de comentários. Ele respondeu alguns comentários de usuários, que reproduziremos a seguir:
O usuário Munnimi declarou:
“E quando a polícia pega seu telefone e vai até o carro da polícia, eles podem verificar o que há no telefone.”
Willden respondeu:
“Isso é algo que estou trabalhando especificamente para tornar impossível. A intenção é estruturar o fluxo para que o policial não possa pegar seu telefone de forma útil. A ideia é que você faça o toque NFC com o telefone do policial, depois desbloqueie com impressão digital/senha e, em seguida, seu telefone entre no modo de bloqueio enquanto os dados são transferidos por bluetooth/Wifi. O modo de bloqueio significa que a autenticação por impressão digital não o desbloqueará; é necessária uma senha. Isto é especificamente para forçar a invocação da proteção da quinta emenda contra a autoincriminação, que alguns tribunais consideraram não impedir que a polícia o force a desbloquear com biometria, mas todos concordam que evita que eles o obriguem a fornecer sua senha (pelo menos em os EUA).
Observe que isso é uma aspiração, não um compromisso. As maneiras pelas quais podemos forçar o fluxo aos desenvolvedores de aplicativos de identidade são limitadas, porque se formos longe demais, eles podem apenas opte por não usar nossas APIs. Mas o que podemos fazer é tornar mais fácil para eles fazerem as coisas certas, sensíveis à privacidade e coisa."
O usuário RobboW declarou:
“Isso é inútil na Austrália. Somos obrigados a ter nossa carteira de motorista oficial e física conosco enquanto dirigimos. Uma cópia digital está pronta para roubo de identidade."
Willden respondeu:
"A Austrália é um participante ativo no comitê ISO 18013-5 e está muito interessada em apoiar carteiras de habilitação móveis. Quanto ao roubo de identidade, existem muitas proteções incorporadas contra isso. O artigo menciona alguns deles."
O usuário solitarios.lupus declarou:
“Considerando o que este site faz, acho que todos aqui sabem que isso não funcionará e é um enorme problema de segurança para as autoridades. Facilmente forjado, falsificado e manipulado."
Willden respondeu:
"A falsificação total será praticamente impossível, porque os dados são todos assinados digitalmente. A falsificação de uma credencial exigiria a falsificação da assinatura digital, o que exige uma ruptura radical do criptografia (o que quebraria o TLS e praticamente todo o resto) ou então roubaria a assinatura da autoridade emissora chaves. Até mesmo alteração, pegando alguns elementos de dados assinados de uma DL (por exemplo, uma data de nascimento mostrando que você tem mais de 21 anos) e alguns de outra (por exemplo, a sua fotografia real) será impossível, porque a assinatura cobre todo o documento, unindo todos os elementos."
A marca do usuário declarou:
“Se uma fotocópia nunca foi válida para identificação, por que estar ao telefone faz diferença? Mesmo que o Google prometa torná-lo seguro, como isso impede que alguém mostre um aplicativo falso?
Ainda assim, mesmo que não haja respostas para isso, ainda acho que é uma coisa boa pelas razões apresentadas neste artigo. Eu gostaria disso para passaportes - não necessariamente para viajar, mas para outras ocasiões em que a identidade é necessária (eu não dirijo, então meu passaporte é minha única identidade).
Claro, eu também preferiria que o Reino Unido não estivesse se transformando em uma sociedade do tipo "papéis, por favor", onde você precisa ter um passaporte digitalizado, mesmo que seja apenas para ir a um pub, em alguns casos..."
Willden respondeu:
"Assinaturas digitais tornarão tudo seguro. Você pode ter um aplicativo falso, mas ele não pode produzir dados devidamente assinados.
Os passaportes também estão no escopo deste trabalho, aliás. As cartas de condução são o ponto de partida, mas os protocolos e a infraestrutura estão a ser cuidadosamente concebidos para suportar uma vasta gama de credenciais de identidade, incluindo especificamente passaportes. É claro que precisaremos convencer a ICAO a adotar essa abordagem, mas acho que isso é muito provável”.
Agradecimentos ao desenvolvedor reconhecido pelo XDA luca020400 pela dica!