¿Android puede emular una tarjeta sin elemento seguro?
Sí, mediante la emulación de tarjeta en el anfitrión, donde una aplicación responde al terminal directamente en lugar de hacerlo un chip dedicado. Lo que no da es la confianza que aporta un elemento seguro, razón por la cual no sustituye sin más a una credencial física.
Cómo funciona
Un terminal produce el campo y se dirige a lo que cree que es una tarjeta. En lugar de responder un chip dedicado, la petición se encamina a una aplicación del teléfono, que compone la respuesta.
Android lo documenta mediante su servicio de emulación de tarjeta en el anfitrión, que una aplicación implementa para recibir y responder a esas peticiones.
El teléfono se comporta por tanto como una tarjeta mientras la lógica vive en software corriente y no en material resistente a la manipulación.
Qué hace posible
Credenciales de fidelidad y de socio, donde el valor de falsificar una es bajo y la comodidad de no emitir plástico es alta.
Entradas y acceso a eventos, donde una credencial dura poco y se valida contra un servidor.
Acceso a edificios en sistemas diseñados para ello, donde quien opera controla tanto el software de los teléfonos como los lectores.
Prototipos y herramientas internas, donde un teléfono sustituye a un banco de pruebas de lector de tarjetas.
Qué no te da
Un elemento seguro es material resistente a la manipulación que guarda claves que nunca salen de él. Eso es lo que permite a un banco confiar una credencial de pago a un teléfono.
La emulación en el anfitrión pone la lógica en una aplicación, así que la seguridad depende de la integridad del software del teléfono y no de material dedicado.
Para un sistema que tiene que resistir a un atacante decidido con el dispositivo en la mano, esa es una diferencia de peso y no un tecnicismo.
Por eso las credenciales de pago se manejan por el camino del elemento seguro y no se implementan sin más como una aplicación.
La cuestión de la credencial de acceso
La gente pregunta si un teléfono puede sustituir a una credencial de acceso, y la respuesta honesta es que depende del sistema y no del teléfono.
Un lector que comprueba una credencial contra un servidor puede aceptar un teléfono. Un lector que espera una tecnología de tarjeta concreta, o que se autentica contra el propio material de la tarjeta, por lo general no.
Muchos sistemas de acceso heredados caen en el segundo grupo, y ninguna capacidad del teléfono los cambia.
Así que la pregunta que hay que plantear al integrador del sistema es qué verifican sus lectores en realidad, no si los teléfonos admiten la emulación.
Preguntas frecuentes
¿Mi teléfono puede copiar la credencial de mi edificio?
Normalmente no. Casi todos los sistemas de acceso comprueban algo que la credencial guarda en material, y emular eso no es lo que ofrece la emulación en el anfitrión.
¿La emulación en el anfitrión es segura?
Su seguridad descansa en el software del teléfono y no en material resistente a la manipulación, cosa que basta para muchos usos y no para todos.
¿Por qué los pagos no la usan?
Las credenciales de pago se guardan en un elemento seguro en el que confía el emisor. Esa confianza es una propiedad del material y no del software.
¿iOS ofrece lo mismo?
iOS maneja la emulación de tarjeta con su propio marco y sus propias reglas, que son más estrechas que el equivalente de Android.