¿Qué es la emulación de tarjeta host? Tu teléfono como tarjeta NFC

La emulación de tarjeta host (HCE) permite que una app convierta tu teléfono en una tarjeta NFC sin ningún chip de elemento seguro dedicado. Así funcionan el enrutamiento por AID y el intercambio de APDU, dónde ya te encuentras con HCE, y por qué el iPhone todavía va por detrás de Android en esto.

Published

Qué es

La emulación de tarjeta host, o HCE, permite que una app de tu teléfono actúe como una tarjeta NFC, sin chip de hardware dedicado. En lugar de enrutar los datos NFC hacia un elemento seguro (un chip pequeño y aislado creado justo para esto), el teléfono los enruta directamente a una app en el procesador principal. La "tarjeta" que acercas a un lector se convierte en puro software.

Por eso las apps de pago sin contacto, transporte y credenciales de acceso se multiplicaron en Android a partir de 2013: ya ningún banco ni operador de transporte necesita un acuerdo de hardware con el fabricante del teléfono. A continuación: cómo funciona el mecanismo, dónde ya te encuentras con HCE, y en qué se queda corto el iPhone frente a Android.

Cómo funciona en realidad

CPU principal en lugar de elemento seguro. En el modelo anterior, los datos de un lector NFC iban directos a un chip de elemento seguro, y la app solo se enteraba de lo ocurrido después de cerrada la transacción. Con la emulación de tarjeta basada en host, Android enruta esos datos directamente a una app, que procesa la transacción en tiempo real, sin necesidad de hardware especial.

Enrutamiento por AID e intercambio de APDU. Cuando un lector quiere hablar con una tarjeta, envía un comando SELECT AID: una APDU con un identificador de aplicación (AID) de hasta 16 bytes. Android lee ese AID y entrega la conversación al HostApduService de la app correspondiente. Los AID se agrupan en dos categorías: CATEGORY_PAYMENT, donde solo una app puede estar activa en todo el sistema, y CATEGORY_OTHER, donde varias apps —transporte y fidelización, por ejemplo— pueden coexistir. El intercambio es semidúplex: comando y respuesta, un canal a la vez.

De dónde viene la idea. Doug Yeager y Ted Fifelski, de SimplyTapp, construyeron la primera versión en 2012. Google la incorporó a Android 4.4 en 2013; Visa y MasterCard anunciaron su soporte cuatro meses después, en el Mobile World Congress de 2014. El Royal Bank of Canada lanzó el primer despliegue comercial de pagos móviles con HCE en Norteamérica ese diciembre, y desde entonces es la forma predeterminada en que Android maneja la emulación de tarjetas.

Dónde la vas a ver

El caso más evidente es cómo usan NFC Apple Pay y Google Pay al pagar, pero los pagos son solo el uso más visible. El mismo mecanismo cubre tarjetas de transporte, credenciales de acceso a edificios y hoteles, identificación de empleados, programas de fidelización y entradas a eventos. Como los AID de CATEGORY_OTHER pueden acumularse, un mismo teléfono puede llevar una tarjeta de transporte y una de fidelización a la vez, sin que ninguna interfiera con tu única app de pago activa.

Consejos, trampas, y una guía rápida con NFCore

Esta es la brecha real: HCE lleva más de una década siendo parte central de Android, pero el iPhone solo abrió esto a apps de terceros con iOS 17.4. Y aun así, Apple lo restringe al Espacio Económico Europeo, a iPhone XS o posterior, y a desarrolladores con autorización especial ligada a requisitos regulatorios de la UE. Fuera del EEE, iOS sigue pasando exclusivamente por Apple Pay y Wallet, lo que explica por qué casi cualquier app de "añade tu tarjeta de transporte al teléfono" está pensada primero para Android.

¿Tienes curiosidad por ver cómo es una sesión HCE a nivel de protocolo, en lugar de simplemente confiar en que funciona? La vista de lector de NFCore muestra el intercambio de AID y APDU en tiempo real, algo muy distinto de leer los bytes guardados en una etiqueta estática. Consigue NFCore en App Store o Google Play para probarlo tú mismo.

Preguntas frecuentes

¿La emulación de tarjeta host es lo mismo que un elemento seguro?

No. Un elemento seguro es un chip dedicado que gestiona la transacción en hardware, fuera del alcance del sistema operativo. HCE hace el mismo trabajo por software, enrutando los datos NFC a una app normal en el procesador principal del teléfono.

¿Puedo usar HCE en iPhone?

Solo en un caso muy concreto: iOS 17.4 o posterior, iPhone XS o más reciente, solo en el EEE, y con una autorización especial de Apple. Fuera del EEE, la emulación de tarjetas en iOS sigue pasando únicamente por Apple Pay y Wallet.

¿HCE hace que el pago sin contacto sea menos seguro que una tarjeta física o un elemento seguro?

No necesariamente. HCE depende de un permiso de sistema para que solo el sistema pueda hablar con una app HCE, y los despliegues reales de banca y transporte añaden sus propios tokens criptográficos encima. Es un modelo de seguridad distinto, no uno automáticamente más débil.

¿Qué tipo de apps usan HCE además de los pagos?

Tarjetas de transporte, credenciales de acceso a edificios y hoteles, identificaciones de empleados, programas de fidelización y entradas a eventos: cualquier cosa que antes necesitara una tarjeta física.

¿NFCore puede leer o escribir una tarjeta emulada por HCE?

NFCore lee y escribe etiquetas NFC físicas de las familias NDEF, NTAG y MIFARE. Una sesión HCE es una conversación en vivo dirigida por una app, no datos estáticos en una etiqueta, así que no es algo que se "escriba" como una pegatina. Aun así, entender los AID y las APDU ayuda a interpretar lo que muestra el inspector de etiquetas de NFCore ante tráfico de emulación de tarjetas.

Conclusión

HCE sacó la emulación de tarjetas del hardware dedicado y la llevó a las apps normales, y por eso las apps de pago sin contacto, transporte y credenciales se multiplicaron en Android desde 2013. El iPhone también se está abriendo, aunque despacio y, por ahora, solo dentro del EEE, así que es de esperar que la brecha entre Android e iOS en este punto siga cerrándose poco a poco en lugar de desaparecer de golpe. La próxima vez que acerques tu teléfono a un lector, abre la vista de lector de NFCore y observa en tiempo real cómo ocurre el intercambio de AID.


¿Listo para Comenzar?

Descarga NFCore y comienza a gestionar tus etiquetas NFC como un profesional.