Muchos de vosotros seguro que conocéis NFC por su logotipo que habréis visto en las últimas tarjetas del banco que hayáis recibido o en la caja del último dispositivo móvil que hayáis adquirido. Algunos otros quizás lo hayáis estado usando de manera inconsciente mientras pasabais la tarjeta de acceso al Metro en Madrid o del autobús en Zaragoza, por poner algunos ejemplos prácticos y reales. Otros quizás lo hayáis usado con vuestro pasaporte electrónico en el aeropuerto de Londres Heathrow o en alguno de los aeropuertos internacionales americanos (por ejemplo, el JFK).
Pero, exactamente ¿qué es NFC? Además de explicar esta tecnología, en este artículo también vamos a describir los problemas inherentes a esta tecnología (escucha secreta, modificación, y retransmisión) y las posibles soluciones (si existen). Además, vamos a intentar aclarar (todavía más) el mito acerca de si es posible que te «roben» el dinero de una tarjeta contactless a distancia.
¿Qué es NFC y cómo funciona?
La tecnología NFC, del inglés Near Field Communication, se basa en la tecnología RFID (Radio-Frequency Identification) para permitir la interacción simple y segura mediante la interacción bidireccional entre dispositivos electrónicos en proximidad. NFC trabaja en el rango de alta frecuencia de RFID, concretamente en el espectro no regulado de 13.56 MHz. Existen tres tasas de transmisión (velocidad de transferencia de datos), 102, 212 y 404 Kbps, según el tipo de protocolo de NFC que usen los dispositivos.
Como rango operativo para la comunicación tiene un máximo teórico de 10 cm, aunque en la práctica esta limitación es de 4 cm o menos. Este rango tan limitado se debe a su modo de funcionamiento, ya que NFC trabaja vía inducción electromagnética: cada dispositivo NFC dispone de una bobina de inducción de modo que, cuando un dispositivo (con energía) entra en el rango NFC de otro dispositivo, se genera un campo magnético que alimenta el dispositivo NFC latente. En la siguiente imagen se muestran los principios físicos de su funcionamiento y aspectos de su modulación. Es por tanto esta restricción física de proximidad donde radica la seguridad en que se basa NFC.
En una comunicación NFC se distinguen dos elementos principales, que según la terminología oficial del estándar NFC son: Proximity Coupling Device (PCD), que es el lector o dispositivo con capacidad NFC; y Proximity Integrated Circuit Card (PICC), también llamado NFC tag y que son las tarjetas NFC. Así mismo, en NFC existen tres modos diferentes de operación: modo punto a punto, cuando existe una comunicación directa entre las partes, modo lectura/escritura, cuando hay una comunicación con un NFC tag, y modo emulación de tarjeta, que ocurre cuando un dispositivo PCD está emulando ser una tarjeta NFC.
Las tarjetas NFC actuales funcionan según la norma ISO/IEC 144432, que se trata de un estándar internacional para tarjetas inteligentes sin contacto. Este estándar se divide en cuatro partes, cada una atendiendo a diferentes visiones: la primera parte del estándar define el tamaño, características físicas, resistencia, etc. de las tarjetas inteligentes sin contacto; la segunda parte define cómo tiene que ser la fuente de radio-frecuencia y define dos esquemas de señalización, el tipo A y el tipo B.
En esta parte es donde se define que la comunicación NFC mediante la norma ISO/IEC 14443 es half-duplex (se puede transmitir de manera bidireccional entre las partes pero no simultánea) y a una tasa de transmisión de 106 Kbps; la tercera parte de la norma define el protocolo de inicialización y anti-colisión (se escoge una tarjeta de las posibles en el rango NFC y se empieza la comunicación con ella, es decir, sólo se puede establecer conexión con una tarjeta de las disposibles en el rango); mientras que la cuarta parte define el protocolo de transmisión de datos.
El cumplimiento de todas las partes del estándar no es obligatorio. Las tarjetas NFC que cumplen las cuatro partes de la norma se llaman tarjetas IsoDep. Por ejemplo, las tarjetas sin contacto de crédito son tarjetas IsoDep, mientras que otras tarjetas sin contacto como las MIFARE Classic no lo son. Estas últimas cumplen parcialmente la parte 3, mientras que se implementaron un protocolo de transmisión de datos propio con su propia criptografía sustituyendo a la parte 4. Como consecuencia, en 2008 se demostró la inseguridad del esquema criptográfico usado y los posibles ataques que podían sufrir estas tarjetas3. A pesar de ello, y como mostré en la conferencia NoConName en 2013, este tipo de tarjetas vulnerables siguen siendo ampliamente utilizadas por diversas ciudades para sus abonos de transporte y otros usos públicos.
Para acabar con la teoría, cabe comentar que la norma ISO/IEC 78164 recoge cómo son los paquetes de datos que se usan en la comunicación NFC. En concreto, este estándar internacional se divide en 15 partes y trata sobre circuitos integrados, especialmente tarjetas inteligentes. Los paquetes de datos que se usan se denominan Application Protocol Data Units (APDUs).
Como comentábamos al principio de este artículo, la tecnología NFC ha tenido una fuerte penetración en multitud de campos, desde control de acceso físico a instalaciones (por ejemplo, universidades o aeropuertos), controles horarios, ticketing, o membresía, por nombrar algunos otros. En el año 2015 se introdujo en nuestro Documento Nacional de Identidad, en el llamado DNIe3.0 (recientemente hemos evaluado su seguridad)5. Sin embargo, uno de los sectores donde ha tenido más éxito ha sido en el sector de métodos de pago. Algunas estadísticas esperan más de 500 millones de usuarios usando NFC como método de pago primario en 2019. En el caso de España, encuestas del año 2015 mostraban que un 15.2% de los encuestados ya habían usado este método de pago alguna vez mediante las llamadas tarjetas contactless.
La operativa de pago de tarjetas contactless (mediante NFC) es sencilla: simplemente acercando una tarjeta contactless a un datáfono con capacidad NFC se produce el cobro. Si la cantidad a cobrar es inferior a 20 euros (varía según la moneda, por ejemplo son 20 dólares en USA y 30 libras en UK) no es necesario introducir el número PIN de la tarjeta, lo que permite agilizar el proceso de compra. En caso contrario, es necesario introducir el PIN para confirmar la compra (como si fuera una transacción con tarjeta habitual). En principio, el número de cobros consecutivos está limitado (normalmente al exceder 50 euros o a partir del tercer cobro, según el país).
La penetración de NFC ha llegado también hasta los dispositivos móviles. De hecho, la tecnología NFC ha permitido “juntar” las tarjetas con los dispositivos móviles. Es de esperar que en unos años, incluso, desaparezcan las tarjetas tal y como las conocemos y únicamente hagamos uso del dispositivo móvil, siendo este la parte central de nuestra vida: tarjetas de identificación, tarjetas de crédito, tarjetas de movilidad, etc.; todo integrado en nuestro dispositivo móvil. Actualmente hay más de 300 dispositivos móviles que hacen uso de la tecnología NFC (puedes consultar una lista de estos dispositivos).
Problemas de seguridad y soluciones
A pesar de este impacto en nuestro cambio de modo de pago, NFC hereda los problemas de seguridad de la tecnología RFID inalámbrica: eavesdropping (o escucha secreta), alteración de las ondas (modificación, inserción o destrucción) y retransmisión. En el resto de este artículo, vamos a detallar cómo afectan cada uno de estos problemas al caso concreto de las tarjetas contactless, dado que es donde más daño pueden hacer los ciber-criminales a los usuarios.
Eavesdropping
El problema del eavesdropping (o escucha secreta, en español) consiste en que una tarjeta contactless transmite su información a través del protocolo NFC sin verificar quién la está leyendo. Este problema de verificación viene realmente heredado del protocolo de las tarjetas de pago EMV, dado que EMV no comprueba la autenticidad del lector (es decir, el datáfono).
Mediante NFC, una tarjeta contactless se comunicará con cualquier dispositivo que implemente el protocolo de tarjetas contactless (público y accesible en Internet) mandándole la siguiente información: el número de la tarjeta (también llamado PAN, Primary Account Number), el nombre del titular, la fecha de expiración y el historial de las últimas transacciones realizadas con la tarjeta.
Con los tres primeros datos se pueden realizar compras en multitud de sitios de Internet (principalmente páginas de comercios americanos). Aunque inicialmente el nombre del titular era recuperado mediante una lectura NFC de la tarjeta, rápidamente vieron que suponía un problema grave de seguridad y las tarjetas contactless actuales ya no filtran esta información (muestran un titular de la tarjeta vacío). Respecto al historial de transacciones, cabe comentar que recoge todos los pagos realizados tanto mediante NFC como los mediante el chip (es decir, NFC actúa como una interfaz inalámbrica en una tarjeta contactless).
Algunos artículos de prensa han relatado la historia de la persona que iba en un metro (o en un lugar altamente concurrido) con un datáfono, dedicándose a “robar” mediante NFC de las tarjetas contactless que pudiera tener a su alcance (usando el famoso “ataque de arrimar la cebolleta”, bautizado así por Josemi Esparza en la NoConName de 2012).
A pesar de que técnicamente sería posible, esto no es viable (como bien ya se desmintió el bulo en algunos medios), dado que ese datáfono tendrá que ir contra alguna cuenta bancaria de donde posteriormente recuperaría el dinero el criminal, facilitando así la identidad del mismo.
Igualmente, los bancos tampoco proporcionan datáfonos a cualquier persona que lo solicite. Del mismo modo (como seguramente sepas si has probado este tipo de pago), la realización del pago no es inmediata, ya que sucede una comunicación entre el datáfono y el emisor de la tarjeta contactless, así como una serie de pasos en el datáfono (por ejemplo, se imprime el ticket), lo que dificulta sobremanera el que el ladrón pueda pasar desapercibido. Del mismo modo, y por experiencia propia, los datáfonos son altamente sensibles a la posición y al movimiento de la tarjeta contactless durante la lectura, lo que hace más difícil todavía una lectura sin que el titular de la tarjeta se percate de ello.
Dentro del problema de eavesdropping, podemos distinguir dos tipos de ataque, bien pasivo (el atacante escucha una comunicación legítima entre un datáfono y una tarjeta contactless) o bien activo (el atacante interactúa con la tarjeta; sería el caso que comentábamos arriba del personaje del metro).
La distancia máxima reportada en la literatura para un ataque pasivo es de 18 metros6. Estas distancias de escucha se han conseguido jugando con los armónicos de tercer orden y en unas condiciones de laboratorio ideales (sin apantallamiento entre la antena de escucha y la tarjeta). La distancia máxima conseguida para un ataque activo ha sido de 50 cm7, pero de nuevo en condiciones muy controladas: la tarjeta se encuentra colocada bajo el arco formado por la antena del atacante y el más mínimo movimiento desajustando la orientación de la tarjeta inhabilita la comunicación.
Un ataque de estas características requiere el uso de hardware y software especializado. Un individuo con una antena de más de medio metro y un portátil levantaría ciertas suspicacias, además de que el movimiento continuo de las posibles víctimas hacen prácticamente imposible llevar a cabo este ataque.
La solución a este problema es fácil, desde bloquear la señal RFID que emiten nuestras tarjetas (fundas anti-RFID o “papel de plata” para los paranoicos y/o prácticos) hasta deshabilitar los pagos mediante NFC de nuestras tarjetas contactless (ahora cada vez más entidades bancarias ofrecen esta posibilidad en sus apps). Existen otras ideas, como la incorporación de métodos de autenticación secundarios (por ejemplo, incorporar un “escáner” de huellas a la tarjeta o un botón físico de modo que sólo se emita con NFC cuando se presione).
Alteración de las ondas RF
Desde un punto de vista teórico, es posible emitir ondas de radio en el mismo espectro que NFC, con la misma amplitud y longitud que las usadas en una comunicación legítima para el envío de APDUs. Esto requiere, de nuevo, un hardware y software especializado así como amplios conocimientos de RF y de nuevo, una antena de tamaño considerable si se quiere hacer un ataque a distancia.
Realizando los cálculos correctos, se podría alterar las ondas de una comunicación (jamming), inhabilitando así una comunicación legítima, saturar el canal para denegar el servicio legítimo o incluso acoplar las ondas con el objetivo de destruir las originales.
Retransmisión
Los ataques más plausibles a ocurrir (desde mi punto de vista) son los ataques de retransmisión. Este tipo de ataques originalmente se basan en la idea introducida por John H. Conway en su libro ‘On Numbers and Games‘, donde explicaba cómo una persona sin conocimientos de ajedrez puede llegar a ganar a un Gran Maestro.
La idea es muy simple: la persona sólo tiene que retar a dos Grandes Maestros a un juego por carta, con la condición de que uno de ellos juegue con blancas y el otro con las negras. Así, la persona se dedicaría a retransmitir los movimientos recibidos de los Grandes Maestros entre ellos. Mientras que los Grandes Maestros piensan que están jugando con un tercero, en realidad están jugando entre ellos. Cuando acabe la partida, la persona habrá ganado a un Gran Maestro de ajedrez.
Unos años más tarde, Desmedt publicó un artículo en Securicom’88 definiendo un nuevo tipo de fraude llamado mafia frauds, consistente en un fraude en tiempo real donde hay dos actores fraudulentos cooperando entre ellos para conseguir su objetivo 8. En este tipo de fraude existen por tanto dos partes honestas (en este caso, sería un datáfono y una tarjeta contactless) y dos partes deshonestas (en nuestro caso, dos dispositivos con capacidad NFC).
El protocolo NFC es vulnerable a los ataques de retransmisión, dado que se pueden engañar a una tarjeta y a un datáfono y retransmitir la comunicación que ocurre entre ellos a través de dos dispositivos que se comunican entre sí y con capacidad NFC (por ejemplo, dos teléfonos móviles). La comunicación entre estos dispositivos puede realizarse tanto mediante Bluetooth, WiFi, o incluso a través de la red de Internet, siempre y cuando el retraso del canal de la comunicación sea menor que el timeout del protocolo NFC. NFC define un timeout teórico para cada paquete que se envía de hasta 5 segundos, y si expira el timeout corta/reinicia la comunicación – en la práctica el timeout es inferior, aunque es configurable en los datáfonos modernos.
En la Figura 4 se muestra un esquema gráfico del ataque de retransmisión comentado. El dispositivo que se comunica con la tarjeta ha de estar en modo lector/escritor, mientras que el dispositivo que interactúa con el datáfono ha de estar en modo de emulación de tarjeta.
En el año 2015, Pepe Vila (estudiante de Ingeniería en Informática de la Universidad de Zaragoza en aquella época, actualmente estudiante de doctorado en IMDEA al que mando un fuerte abrazo desde aquí) desarrolló una aplicación Android como prueba de concepto de este ataque. Nuestra idea de trabajo era comprobar si era factible realizar un ataque de retransmisión con un dispositivo Android sin modificar (es decir, no rooteado). Nos encontramos que sí que era posible, y para demostrarlo, durante la presentación del trabajo en una conferencia académica en Nueva York pagué un euro con mi tarjeta en el datáfono que tenía Pepe en Madrid. Quedó demostrado, por tanto, que el principio de proximidad en que basa su seguridad NFC no es fiable.
Este ataque es factible a día de hoy, pero es importante destacar que para que puedan “robar” dinero de una tarjeta contactless tiene que ser un ataque en tiempo real: es decir, la comunicación con el datáfono y la tarjeta ha de hacerse en el mismo momento.
Algunos artículos de investigación han explorado la idea de comunicarse y autorizar un cobro en tarjetas contactless VISA10 en un instante de tiempo, almacenar temporalmente estas transacciones electrónicas y posteriormente validarlas para su cobro efectivo. A pesar de que se mostró que gracias a una vulnerabilidad de estas tarjetas era posible comunicarse y autorizar cobros en las tarjetas, no se comprobó que el banco validara las transacciones recopiladas. De hecho, si se cumple estrictamente el protocolo EMV esas transacciones serían descartadas durante su validación en la entidad bancaria, con lo que el ataque realmente no sería efectivo.
En este artículo publicado9 explicamos también algunos escenarios de ataques basados en este tipo de fraude, como la existencia de una botnet de dispositivos móviles Android con NFC que mandaran la información de tarjetas contactless en su alcance al botmaster.
Existen varias medidas posibles a aplicar para evitar los ataques de retransmisión. Algunos de ellos, como los protocolos de acotación de distancia, ya se recomiendan/implementan en las nuevas tarjetas contactless de algunos emisores. Estos protocolos se basan en acotar la distancia física entre los elementos que participan en la comunicación NFC mediante el envío de mensajes desafío-respuesta, que tienen que ser respondidos en un intervalo de tiempo muy corto. Otra posible medida es aplicar restricciones de tiempo a los sistemas NFC: es decir, no se debería de permitir la configuración de timeouts en una comunicación NFC, si no imponer restricciones temporales reales a cada sistema NFC según sean sus necesidades.
Entonces, ¿pueden robarnos por NFC a distancia?
¿Es posible, por tanto, que nos “roben” dinero de la tarjeta contactless en el metro, en un estadio, o en cualquier sitio donde haya aglomeración de personas? La respuesta corta es no. Por el modo de funcionamiento de la tecnología NFC y su “sensibilidad” a los movimientos, a día de hoy no.
En este artículo he expuesto los riesgos a los que se enfrenta la tecnología NFC. En mi opinión, el pago mediante NFC ha venido para quedarse y será una alternativa cada vez más usada por los usuarios. A pesar de todo lo que se ha comentado, no ha de cundir el pánico: hemos de ser conscientes de que esta tecnología tiene sus riesgos, hemos de conocerlos y hemos de saber cómo protegernos de ellos. Si os tranquiliza, yo tengo mis tarjetas contactless habilitadas y las uso siempre que puedo, por la comodidad que me ofrece. Eso sí, ninguno de mis dispositivos tiene activada la comunicación mediante NFC.
Sobre el autor: Ricardo J. Rodríguez es Doctor en Informática por la Universidad de Zaragoza desde el año 2013. Su doctorado versa sobre el estudio del análisis de rendimiento y optimización de recursos en sistemas críticos complejos modelados con Redes de Petri, desde una perspectiva de seguridad.
Actualmente, trabaja como Profesor Ayudante Doctor en el Centro Universitario de la Defensa de Zaragoza, Academia General Militar. Sus intereses de investigación incluyen análisis de rendimiento y optimización de sistemas de eventos discretos, el análisis de código binario (en especial, software malicioso) y el análisis de seguridad en sistemas NFC.