O Android consegue emular um cartão sem elemento seguro?
Sim, pela emulação de cartão pelo host, em que um aplicativo responde ao terminal diretamente em vez de um chip dedicado fazer isso. O que ela não dá é a confiança que um elemento seguro oferece, e é por isso que ela não substitui simplesmente um crachá físico.
Como ela funciona
Um terminal produz o campo e endereça o que ele acredita ser um cartão. Em vez de um chip dedicado responder, o pedido é encaminhado para um aplicativo no celular, que compõe a resposta.
O Android documenta isso pelo serviço de emulação de cartão pelo host, que um aplicativo implementa para receber e responder a esses pedidos.
O celular está portanto se comportando como um cartão enquanto a lógica vive num software comum em vez de num hardware que resiste à extração.
O que ela torna possível
Credenciais de fidelidade e de associação, em que o valor de falsificar uma é baixo e a conveniência de não emitir plástico é alta.
Bilheteria e acesso a eventos, em que uma credencial é de curta duração e validada contra um servidor.
Acesso a prédios em sistemas projetados para isso, em que o operador controla tanto o software do celular quanto os leitores.
Prototipagem e ferramentas internas, em que um celular substitui uma bancada de testes de leitor de cartão.
O que ela não dá
Um elemento seguro é um hardware que resiste à extração física das chaves dele, chaves que nunca saem dele. É isso que deixa um banco confiar uma credencial de pagamento a um celular.
A emulação de cartão pelo host põe a lógica num aplicativo, então a segurança depende da integridade do software do celular em vez de um hardware dedicado.
Para um sistema que tem de resistir a um atacante determinado com o aparelho na mão, essa é uma diferença significativa em vez de um detalhe técnico.
É por isso que as credenciais de pagamento são tratadas pelo caminho do elemento seguro e não simplesmente implementadas como um aplicativo.
A questão do crachá de acesso
As pessoas perguntam se um celular pode substituir um crachá de acesso, e a resposta honesta é que isso depende do sistema em vez do celular.
Um leitor que confere uma credencial contra um servidor consegue aceitar um celular. Um leitor que espera uma tecnologia de cartão específica, ou que autentica contra o próprio hardware do cartão, em geral não consegue.
Muitos sistemas de acesso antigos caem no segundo grupo, e nenhuma quantidade de capacidade do celular os muda.
Então a pergunta a fazer ao integrador do sistema é o que os leitores dele verificam de fato, não se os celulares suportam emulação.
Perguntas frequentes
O meu celular pode copiar o crachá do meu prédio?
Em geral não. A maioria dos sistemas de acesso confere algo que o crachá guarda em hardware, e emular isso não é o que a emulação de cartão pelo host oferece.
A emulação de cartão pelo host é segura?
A segurança dela se apoia no software do celular em vez de num hardware que resiste à extração, o que é adequado para muitos usos e não para todos.
Por que os pagamentos não usam isso?
As credenciais de pagamento ficam num elemento seguro em que o emissor confia. Essa confiança é uma propriedade do hardware em vez de uma do software.
O iOS oferece a mesma coisa?
O iOS trata a emulação de cartão pelo framework próprio dele e pelas regras próprias dele, que são mais estreitas que o equivalente do Android.