Saltar al contenido
Idioma: ES

¿Qué es Host Card Emulation en Android?

Host Card Emulation permite a una aplicación de Android responder ella misma a un lector externo, por software, en lugar de encaminar el intercambio hacia un chip que actúa como elemento seguro. Eliminó al portero de hardware que decidía quién podía desplegar una aplicación de tarjeta, y desplazó el problema de seguridad al sistema operativo y a la nube.

Qué vino a sustituir

Antes de Host Card Emulation, presentar una tarjeta desde el teléfono significaba alojar la credencial en un elemento seguro: un chip de hardware, presente físicamente en el aparato o en la SIM, y gestionado por quien fuera dueño de ese hardware.

Esa gestión era el obstáculo. Un banco o un operador de transporte que quisiera desplegar una aplicación de tarjeta tenía que negociar el acceso con un fabricante de aparatos o con un operador móvil, una relación tras otra. La técnica funcionaba, los acuerdos comerciales no escalaban.

Cómo funciona

Android encamina el intercambio hacia una aplicación en lugar de hacia un chip. Google documenta el mecanismo bajo el nombre de Host Card Emulation.

Una aplicación declara qué aplicaciones de tarjeta puede atender, con identificadores que los terminales piden por su nombre. Cuando un lector pide uno de ellos, el sistema operativo despierta a la aplicación registrada y le entrega el intercambio. La aplicación responde, comando a comando, por software.

La consecuencia es que no interviene ningún portero de hardware. Cualquier desarrollo puede publicar una aplicación que responda a un lector sin pedir permiso a ningún fabricante.

Adónde se ha ido la seguridad

No ha desaparecido, se ha mudado, y entender adónde es la diferencia entre un uso limpio y una construcción frágil.

Un elemento seguro resiste la extracción física de sus claves. Una aplicación en el procesador principal no, y por eso las credenciales manejadas por esta vía suelen ser tokens de vida corta servidos desde un servidor, en lugar de un secreto permanente en el aparato. Si robas el token, caduca. Si robas el aparato, el token no sirve de nada sin aquello que lo desbloqueó.

El modelo pasó, pues, de proteger un secreto en hardware a limitar el valor de un secreto robado. Los dos funcionan, y los dos fallan de maneras distintas.

Cuándo usarla

Es el mecanismo correcto cuando controlas los dos extremos: tu propia aplicación en el teléfono, tus propios lectores sobre el terreno. Programas de fidelización, control de acceso a un sistema que explotas tú, entradas donde también explotas los tornos.

Es la herramienta equivocada para fingir una credencial que ha emitido otro. Registrarse para un identificador no te da las claves que guarda la tarjeta real, así que el terminal rechazará el intercambio aunque tu aplicación haya respondido.

Y la Host Card Emulation abierta, disponible para cualquier aplicación, solo existe en Android. Desde iOS 17.4, Apple ofrece un equivalente controlado mediante su plataforma NFC y SE: una aplicación con la habilitación de Apple puede emular tarjetas en el marco de un acuerdo comercial, pero solo por esa vía controlada y no por una abierta. Qué vía tienes disponible decide el diseño casi siempre antes que cualquier otra cosa.

Preguntas frecuentes

¿Necesita Host Card Emulation conexión a internet?

El intercambio con el lector no, pero las implementaciones con tokens de vida corta necesitan conexión para obtenerlos. Que el teléfono funcione sin conexión depende de cuántos tokens se hayan traído por adelantado, y no del mecanismo en sí.

¿Es menos segura que un elemento seguro?

Es segura de otra manera. Un elemento seguro protege una clave permanente en hardware, este modelo limita el valor de lo que se pueda sustraer. Para muchas aplicaciones lo segundo basta y es mucho más fácil de desplegar.

¿Puedo emular con ella una tarjeta MIFARE Classic?

No. El mecanismo trata el intercambio de comandos habitual de las aplicaciones de tarjeta y no los esquemas propietarios que operan por debajo de esa capa. Es una de varias razones por las que los sistemas Classic se resisten a las credenciales en el teléfono.

¿Existe un equivalente en iOS?

Abierto ninguno. Desde iOS 17.4, Apple ofrece una vía controlada, su plataforma NFC y SE, solo para aplicaciones con una habilitación de Apple en el marco de un acuerdo comercial, y no un mecanismo general para aplicaciones cualesquiera. Un diseño multiplataforma no debe presuponer que la vía abierta de Android se traslada.