
El artículo examina mitos y escenarios populares de fraude de pagos sin contacto utilizando el ejemplo de un terminal POS real, tarjetas PayPass / payWave y teléfonos con la función Google Pay / Apple Pay.
Temas cubiertos:
- ¿Es realmente posible robar dinero inclinando mi terminal POS en mi bolsillo? - Intentaremos reproducir completamente este escenario de fraude de principio a fin, utilizando un terminal POS real y tarjetas de pago en condiciones reales.
- ¿Cuál es la diferencia entre las tarjetas físicas y virtuales de Apple Pay? - cómo se vinculan la tarjeta física y el token de Apple Pay y por qué Apple Pay es mucho más seguro que una tarjeta normal.
- Utilizamos un rastreador NFC de hardware (ISO 14443A) : utilizaremos un dispositivo HydraNFC para interceptar datos entre el terminal POS y la tarjeta. Considere qué datos confidenciales se pueden extraer del tráfico interceptado.
- Analizamos el protocolo EMV : qué datos intercambia la tarjeta con el terminal POS, el formato de solicitud utilizado, los mecanismos de protección contra el fraude y los ataques de repetición.
- Estudiamos operaciones sin una tarjeta (CNP, MO / TO) , en qué casos, de hecho (!) Puede robar dinero de la tarjeta, solo leer los detalles sin contacto y en los que es imposible.
AtencionEl artículo describe en detalle el esquema hipotético de fraude, de principio a fin, a través de los ojos de un estafador, para cubrir todos los aspectos en los que se cultivan mitos y errores. A pesar del título provocativo, la conclusión principal del artículo es que los
pagos sin contacto son bastante seguros, y los ataques contra ellos requieren mucho tiempo y no son rentables .
Los materiales en el artículo se presentan solo con fines informativos. Todas las escenas de fraude se organizan y ejecutan con el consentimiento de las partes involucradas. Todo el dinero deducido de las tarjetas fue devuelto a sus dueños. El robo del dinero de la tarjeta es un delito penal y es punible por ley. Como funciona
Para comenzar, considere los conceptos básicos: cualquier movimiento de dinero usando tarjetas de pago solo es posible a través de intermediarios conectados al sistema de pago, como VISA o MasterCard. A diferencia de las transferencias entre individuos, el débito de dinero de la tarjeta está disponible solo para una entidad legal (comerciante) con un acuerdo de adquisición con un banco.
Etapas de la transacción al pagar a través de un terminal POSLa ilustración de arriba muestra el esquema de pago clásico a través de un terminal POS. Es esta secuencia de acciones que ocurre cuando después del pago en la caja está esperando la confirmación en la terminal.
- El comprador aplica / retiene / inserta la tarjeta en el terminal POS;
- Un terminal POS transmite datos a un banco adquirente a través de Internet;
- El banco adquirente a través del sistema de pago internacional (MPS) se comunica con el banco emisor y le pregunta si un titular de tarjeta en particular puede pagar la compra;
- El banco emisor confirma o rechaza la compra, después de lo cual se imprime un recibo (segundo cheque).
Hay excepciones a este esquema, por ejemplo, transacciones fuera de línea, las consideraremos más a fondo. Además, si el banco adquirente y el banco emisor son el mismo banco, los pasos 2 y 4 se realizan dentro del mismo banco.
Vendedor (comerciante): una persona u organización que proporciona bienes o servicios
El banco adquirente es un banco que brinda al vendedor servicios de aceptación de pagos a través de tarjetas bancarias. En este banco, por lo general, hay una cuenta bancaria del vendedor donde se acredita el dinero debitado de la tarjeta.
Banco
emisor : el banco que emitió la tarjeta. Contiene la cuenta del titular de la tarjeta, de la cual se carga el dinero.
El Sistema de pago internacional (MPS) es un sistema intermediario internacional entre bancos de todo el mundo que permite a los bancos realizar acuerdos entre ellos sin llegar a un acuerdo con cada banco por separado. Todos los bancos conectados al Ministerio de Ferrocarriles aceptan trabajar de acuerdo con las mismas reglas, lo que simplifica enormemente la interacción. Por ejemplo, Visa, MasterCard, UnionPay, American Express,
MIR (no, MIR no funciona en el extranjero).
Titular de la tarjeta : una persona que ha firmado un acuerdo de servicio de tarjeta con el banco emisor.
¿Cuál es la diferencia entre una tarjeta regular de Apple Pay o Google Pay?
El procedimiento para vincular una tarjeta bancaria al sistema Apple Pay o Google Pay debido a la incomprensibilidad del proceso a menudo genera ideas erróneas incluso entre los profesionales de TI. He escuchado muchos mitos diferentes sobre esta tecnología.
Mitos populares de Apple Pay
- La tarjeta se copia al teléfono.
Esto no es así, la tarjeta del microprocesador contiene un área de memoria protegida con información criptográfica que no se puede extraer después de la emisión de la tarjeta. Debido a esto, una tarjeta con chip no se puede copiar, de ninguna manera, en absoluto. Para ser justos, debe decirse que tales ataques son posibles, pero su costo excede la cantidad total de dinero que la mayoría de los lectores de este artículo gastarán en toda su vida. - Cada vez que el teléfono se conecta a Internet durante el pago
Google Pay / Apple Pay no se conectan a Internet durante el pago a través de un terminal POS. Toda la información necesaria se almacena localmente en el teléfono. - Se genera un nuevo número de tarjeta (PAN) para cada pago
Puede parecerlo si lees los comunicados de prensa de Apple sobre la tecnología Apple Pay. Pero esta es una interpretación errónea del concepto de token. De hecho, los detalles de la tarjeta virtual permanecen sin cambios durante mucho tiempo, puede verificar esto con los últimos dígitos del número de tarjeta en el recibo (cheque bancario) al pagar las compras. - Al pagar a través de Apple Pay / Google Pay, se cobra una tarifa adicional
Esto no es así, pagará exactamente lo que se indica en la etiqueta de precio y de acuerdo con los términos de su acuerdo con el banco emisor cuya tarjeta ha vinculado. - El dinero puede ser cargado dos veces
Este mito se aplica no solo a Google Pay / Apple Pay, sino también a las tarjetas bancarias comunes. Creo que apareció debido a los sistemas de pago de transporte público, en los que la terminal deduce dinero del boleto cada vez que se presenta, por lo que puede debitar dos o más veces si trae la tarjeta de manera incorrecta. En el caso de los terminales POS, este riesgo no existe, ya que el terminal deja de intercambiarse con la tarjeta tan pronto como recibe los datos necesarios.
Asociar una tarjeta física con un token en el teléfonoLos sistemas como Apple Pay funcionan con la
Especificación de tokenización de pago de EMV . El procedimiento para asociar una tarjeta física y un teléfono con Apple Pay no se ha descrito públicamente, por lo que analizaremos el proceso en función de los datos conocidos:
- El proveedor (Google, Apple, Samsung) recibe información del mapa;
- A través de MPS, el proveedor solicita si esta tarjeta (este banco emisor) admite tokenización EMV;
- En el lado de MPS, se genera una tarjeta virtual (token), que se descarga al almacenamiento seguro en el teléfono. No sé dónde se genera exactamente la clave privada de la tarjeta virtual, si se transmite a través de Internet o se genera localmente en el teléfono, en este caso no importa.
- Aparece una tarjeta de token virtual generada en el teléfono, las operaciones en las que el banco emisor interpreta como operaciones en la primera tarjeta física. En caso de bloquear la tarjeta física, el token también se bloquea.
Apple Pay le permite leer los detalles de una tarjeta virtual. El número de PAN y la fecha de caducidad difieren de la tarjeta vinculada del Alfa-Bank ruso. El BIN de la tarjeta virtual (480099) está determinado por MBNA AMERICA BANK.Cuando paga por teléfono, el terminal POS ve una tarjeta VISA o MasterCard regular y se comunica con ella de la misma manera que con una tarjeta física. Una tarjeta de token virtual contiene todos los atributos de una tarjeta normal: número de PAN, fecha de vencimiento, etc. Al mismo tiempo, el número de tarjeta virtual y el período de validez difieren de la tarjeta original adjunta.
Escenario 1 - terminal POS normal
Estafador de terminal de punto de ventaLa trama de fraude más popular en la mente de la gente común: un estafador con un terminal encendido se presiona contra ellos en la multitud y da de baja el dinero. Intentaremos reproducir este escenario en la realidad.
Las condiciones son las siguientes :
- El estafador tiene un terminal POS ordinario totalmente funcional conectado a un banco adquirente, igual que en las tiendas y los correos. El firmware del terminal no se modifica. En nuestro caso - Ingenico iWL250. Este es un terminal POS portátil con un módem GPRS que admite pagos sin contacto, funciona con batería y es completamente móvil.
- El estafador no utiliza medios técnicos adicionales, solo un terminal POS
- Los fondos debitados se acreditan a la cuenta corriente del estafador, de acuerdo con todas las reglas de los sistemas bancarios.
Persona jurídica

Primero, necesitamos una entidad legal con una cuenta corriente y una adquisición conectada. Nosotros, como verdaderos estafadores, no distinguiremos nada a nuestro nombre, sino que trataremos de comprar una entidad legal preparada. la persona en el sitio por los mismos estafadores. Para hacer esto, mire los anuncios en la primera página de Google para "comprar ip" y "comprar ooo".
Ofertas para vender compañías preparadas de estafadores (clicables)El precio de una empresa en el mercado negro con una cuenta corriente oscila entre 20 y 300 mil rublos. Logré encontrar varias ofertas de LLC con un terminal POS de 200 mil rublos. Dichas compañías están enmarcadas por dummies, y el comprador recibe el paquete completo de documentos, junto con una "tarjeta de caché": esta es una tarjeta bancaria vinculada a la cuenta de liquidación de la empresa ficticia. Con dicha tarjeta, un estafador puede retirar dinero en un cajero automático.
Para simplificar, asumimos que LLC + cuenta bancaria + adquisición y un terminal POS le costarán al estafador 100,000 rublos . En realidad, más, pero simplificaremos la vida de nuestro hipotético estafador, reduciendo el costo del ataque. Después de todo, cuanto menor es el costo del ataque, más fácil es implementarlo.
Robemos dinero
Entonces, el estafador tiene una terminal POS y está listo para ir a un lugar lleno de gente para apoyarse en las víctimas y robar dinero de sus bolsillos. En nuestro experimento, todas las víctimas recibieron instrucciones previas sobre nuestras intenciones, y todos los intentos de cancelar el dinero se hicieron con su consentimiento. En los casos en que los sujetos no tenían sus propias tarjetas bancarias sin contacto, se les pidió que pusieran nuestra tarjeta en su billetera. Anteriormente, los sujetos descubrieron exactamente dónde y cómo almacenan sus tarjetas, por lo que el estafador sabía de antemano dónde está la tarjeta sin contacto en la bolsa / bolsillo.
Video: un estafador furioso en un centro comercialEn caso de una cancelación exitosa, la transacción se canceló a través del menú del terminal y el dinero se devolvió a la cuenta de los sujetos. Durante todo el experimento, intentamos "robar" dinero de 20 sujetos en el edificio del centro comercial y en la calle. El resultado de la prueba se describe a continuación.
Problema: límite de transacción sin PIN
El límite en el monto máximo de la transacción sin confirmar con un código PIN se puede establecer tanto en el terminal POS (límite requerido de CVM) como en el lado del banco. En Rusia, esta restricción es igual a 1000 rublos.
UPD En la configuración de la tarjeta, el tipo de autorización Métodos de verificación del titular de la tarjeta (CVM) se puede establecer como una firma en el cheque. En este caso, se realizará una transacción sin contacto por cualquier cantidad sin un código PIN.
Nuestro estafador decide cancelar 999.99 rublos a la vez. Si se le solicita que intente cancelar el monto por debajo del límite en un corto período de tiempo, también se le pedirá que ingrese el código PIN y, en la mayoría de los casos, no será posible cancelar 999.99 rublos varias veces seguidas. Por lo tanto, la estrategia más óptima será no más de un cargo de una tarjeta.
En Rusia, la cantidad máxima debitada sin un código PIN es de 1000 rublos.De hecho, muchas cancelaciones con la cantidad de 999,99 rublos en un corto período de tiempo pueden desencadenar un sistema antifraude en el lado del banco adquirente, por lo que esta estrategia no es óptima para un estafador. Entonces, en la vida real, tendría que elegir cantidades más diversas, reduciendo así los ingresos potenciales.
Por cierto, muchos artículos sobre este tema en ruso dicen que puede establecer manualmente su propio límite en transacciones sin contacto sin un código PIN. No pude encontrar esa opción en los principales bancos rusos. ¿Quizás conoces esta posibilidad? Se trata de pagos sin contacto, y no de ninguna transacción de chip y pin.
Problema: varias tarjetas en la billetera
Este es un punto importante en este escenario de ataque, porque en realidad casi nadie lleva
una sola carta en su bolsillo. En la mayoría de los casos, la tarjeta se almacena en la billetera junto con otras tarjetas sin contacto, como boletos de viaje u otras tarjetas bancarias.
Específicamente, mi terminal Igenico iWL250, cuando detecta más de una tarjeta en el campo de acción con un SAK que denota soporte para el protocolo 14443-4, devuelve un error: "presentar una tarjeta".
Pero no todas las terminales hacen esto. Por ejemplo, los terminales POS de VeriFone Sberbank eligen una tarjeta aleatoria de varias. Algunas terminales simplemente ignoran todas las tarjetas si hay más de una, sin mostrar mensajes de error.
Tratando de leer varias tarjetas en una billetera. El terminal POS devuelve un error.Anticolisión ISO 14443-3
Leer una tarjeta específica de varias no es una tarea fácil a nivel físico. Para resolver este problema, existe un mecanismo de anticolisión. Le permite seleccionar una tarjeta si se recibió una respuesta de varias tarjetas a la vez. Este es el primer paso para establecer contacto con una tarjeta sin contacto en el protocolo ISO-14443A. En esta etapa, el lector no puede determinar cuál de las tarjetas presentadas es bancaria. La única opción es elegir una tarjeta bancaria más o menos similar, en función de la respuesta de SAK (Seleccionar reconocimiento).
Valor de bit en respuesta SAKEntonces, por ejemplo, la tarjeta Troika (estándar Mifare) utilizada en el transporte público de Moscú tiene un valor de
SAK = 0x08 (b00001000) , en el que el sexto bit es cero. Mientras que para todas las tarjetas bancarias en las respuestas SAK, el sexto bit es 1, lo que significa que es compatible con el protocolo ISO 14443-4.
Por lo tanto, todo lo que el terminal puede hacer cuando se detectan varias tarjetas al mismo tiempo es excluir las tarjetas que no son compatibles con ISO 14443-4 y elegir una similar a la banca. La compatibilidad con el protocolo ISO 14443-4, por cierto, no garantiza que esta tarjeta sea una tarjeta bancaria, pero lo más probable es que en la billetera de una persona común no haya otro tipo de tarjetas que admitan ISO 14443-4.
Diagrama de flujo del protocolo anticolisiónPor experiencia personal: a pesar de la existencia de un protocolo de anticolisión, si hay al menos tres tarjetas sin contacto en su billetera, es
EXTREMADAMENTE difícil leer con
éxito la tarjeta deseada. La mayoría de los intentos resultan en errores de lectura. Es aún más difícil hacer esto en la carrera, aferrándose a los bolsillos y bolsos de otra persona.
Sin embargo, consideraremos que nuestro estafador tiene mucha suerte, y esta restricción no le molesta.
Transacciones fuera de línea vs en línea
En las noticias aterradoras, hablan de estafadores con terminales de punto de venta en vagones del metro, que escriben dinero de sus bolsillos en el camino. Estas historias no mencionan de dónde obtuvo el estafador Internet móvil en el vagón del metro. ¿Quizás su terminal admite transacciones fuera de línea?
Las especificaciones EMV permiten transacciones fuera de línea. En este modo, el débito ocurre sin la confirmación en línea del banco emisor. Esto funciona, por ejemplo, en el transporte público en Moscú y San Petersburgo. Para no hacer cola en la entrada del autobús, mientras la terminal completa la confirmación en línea, le permiten ingresar de inmediato sin verificar si tiene suficiente dinero en su cuenta para pagar la tarifa. Al final del día, cuando aparece Internet en el terminal, las transacciones firmadas se envían al banco emisor. Si resulta que en este momento no tiene dinero para pagar la tarifa, la tarjeta se agregará a la lista de paradas en todas las terminales de la ciudad. Puede pagar la deuda a través de su cuenta personal por número de tarjeta.
Lea más sobre pagar el autobús en San Petersburgo.
Personalmente, no pude obtener un terminal POS que admita esta función, por lo que en el escenario con el terminal POS "civil" habitual, no consideraremos la posibilidad de débito fuera de línea. Esto no cambia nada, excepto que el atacante necesitará Internet en la terminal, por lo que el ataque, por ejemplo, en el metro, es mucho más complicado.
Hay modelos de terminales que admiten WiFi, y en teoría, nuestro estafador podría usar WiFi en el metro, ya que se había encargado previamente de comprar acceso sin publicidad para la dirección MAC de su terminal POS para que la autenticación no fuera necesaria a través del portal cautivo, ya que en POS El terminal no puede hacer esto.
Calcular el beneficio
En nuestro escenario, el costo del ataque fue de 100,000 rublos. Esto significa que, al menos para devolver las inversiones, nuestro héroe debe completar al menos 100 transacciones de 1 mil rublos cada una. Imagine que fue lo suficientemente ágil y corrió por la ciudad todo el día, aferrándose a todos en una fila, de modo que al final del día hizo 120 cancelaciones exitosas. No tomaremos en cuenta la comisión de adquisición (en promedio 2%), la comisión de cobro (4-10%) y otras comisiones.
¿Puede retirar dinero con éxito usando una tarjeta vinculada a una cuenta corriente?
En realidad, no todo es tan simple.
¡El dinero se acreditará a la cuenta del estafador solo en unos días! Durante este tiempo, nuestro estafador debe esperar que ninguna de las ciento veinte víctimas desafíe la transacción, lo cual es extremadamente improbable. Por lo tanto, en realidad, la cuenta del estafador se bloqueará incluso antes de que se le acredite dinero.
Si una persona notó que se realizó una compra en su tarjeta que no realizó, debe comunicarse con el banco emisor y presentar un reclamo. 30 , , — 60 . - -, - , .
, ()
Conclusión
El costo de un ataque en nuestro escenario es de 100,000 rublos. De hecho, será varias veces mayor, por lo que el estafador necesitará mucho más esfuerzo para obtener ganancias.En nuestro escenario, el estafador siempre cancela 999.99 rublos, lo que, muy probablemente, implicará la operación del sistema antifraude del lado del banco adquirente. En realidad, el estafador deberá cancelar pequeñas cantidades.Para recuperar al menos las inversiones, el estafador deberá procesar varios cientos de víctimas. Si incluso una docena de ellos se contactan con el banco emisor y disputan la transacción, la cuenta del estafador probablemente se bloqueará. El escenario en el que el banco adquirente está en colusión con el estafador es poco probable, porque la licencia para trabajar con el MPS cuesta mucho más que cualquier beneficio potencial de este tipo de fraude.De los 20 sujetos, solo tres lograron cancelar el dinero de la tarjeta, que es el 15% del éxito de todos los intentos. Estos fueron esos casos artificiales cuando había una sola tarjeta en su bolsillo. En casos con una billetera y varias tarjetas, el terminal devolvió un error. En un escenario con una terminal que usa firmware modificado e implementa un mecanismo anticolisión, el porcentaje de cargas exitosas puede ser mayor. Sin embargo, incluso en el caso de usar anticolisión, en condiciones reales en la carrera, es tan difícil contar una carta de varias para que el débito exitoso en tales condiciones pueda considerarse suerte. En realidad, la proporción de cancelaciones exitosas apenas superará el 10% del número de intentos., , , . - , .
2 — POS-
Digamos que nuestro estafador trabaja en la caja en una tienda o un servicio de mensajería con un terminal de punto de venta móvil. En este caso, tiene la oportunidad de capturar datos de tarjetas, que, en algunos casos, pueden ser suficientes para pagar en Internet.Primero, descubramos cómo se ve exactamente una transacción sin contacto y qué tipo de datos intercambia la tarjeta con un terminal POS. Como somos demasiado vagos para leer miles de páginas de la documentación de especificaciones sin contacto de EMV , simplemente interceptamos el intercambio a nivel físico utilizando el sniffer HydraNFC.Hay alguna diferencia entre la especificación EMV para MasterCard PayPass y Visa payWave. Esta es la diferencia en el formato de firma y algunos datos. Pero para nosotros esto no es esencial.Sniffer NFC
HydraNFC es un sniffer independiente de código abierto ISO-14443A que guarda los comandos APDU interceptados en una tarjeta SD. La antena rastreadora se encuentra entre el terminal y la tarjeta, y captura pasivamente toda la información transmitida.→ Sitio web sobre HydraBus y el escudo HydraNFC→ Fuentes de firmware Demostración de la intercepción del intercambio entre el terminal POS y el teléfono con Apple PayMirando hacia el futuro, debo decir que a este nivel el pago por teléfono y una tarjeta de plástico normal no es diferente. Para una terminal POS, esta es una tarjeta VISA normal. Sin embargo, pagar por teléfono es mucho más seguro que usar una tarjeta física, y luego analizaremos por qué.Análisis del protocolo EMV
Así es como se ve el vertedero registrado cuando se paga chocolate y una botella de agua por un valor total de 142.98 rublos con Apple Pay:Datos sin procesar recibidos del sniffer (spoiler abierto)
()R (READER) — POS-
T (TAG) — ( )
R>> 52
R>> 52
R>> 52
R>> 52
R>> 52
R>> 52
R>> 52
T<< 04 00
R>> 93 20
T<< 08 fe e4 ec fe
R>> 93 70 08 fe e4 ec fe dd 6e
T<< 20 fc 70
R>> 50 00 57 cd
R>> 26
R>> 52
T<< 04 00
R>> 93 70 08 fe e4 ec fe dd 6e
T<< 20 fc 70
R>> e0 80 31 73
T<< 05 78 80 70 02 a5 46
R>> 02 00 a4 04 00 0e 32 50 41 59 2e 53 59 53 2e 44 44 46 30 31 00 e0 42
T<< 02 6f 23 84 0e 32 50 41 59 2e 53 59 53 2e 44 44 46 30 31 a5 11 bf 0c 0e 61 0c 4f 07 a0 00 00 00 03 10 10 87 01 01 90 00 4b b3
R>> 03 00 a4 04 00 07 a0 00 00 00 03 10 10 00 bc 41
T<< 03 6f 31 84 07 a0 00 00 00 03 10 10 a5 26 9f 38 18 9f 66 04 9f 02 06 9f 03 06 9f 1a 02 95 05 5f 2a 02 9a 03 9c 01 9f 37 04 bf 0c 08 9f 5a 05 60 08 40 06 43 90 00 1d 66
R>> 02 80 a8 00 00 23 83 21 36 a0 40 00 00 00 00 01 42 98 00 00 00 00 00 00 06 43 00 00 00 00 00 06 43 18 09 18 00 e0 11 01 03 00 f9 14
T<< 02 77 62 82 02 00 40 94 04 18 01 01 00 9f 36 02 02 06 9f 26 08 d6 f5 6b 8a be d7 8f 23 9f 10 20 1f 4a ff 32 a0 00 00 00 00 10 03 02 73 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9f 6c 02 00 80 57 13 48 00 99 72 50 51 17 56 d2 31 22 01 00 00 05 20 99 99 5f 9f 6e 04 23 88 00 00 9f 27 01 80 90 00 af c8
R>> 03 00 b2 01 1c 00 c9 05
T<< 03 70 37 5f 28 02 06 43 9f 07 02 c0 00 9f 19 06 04 00 10 03 02 73 5f 34 01 00 9f 24 1d 56 30 30 31 30 30 31 34 36 31 38 30 34 30 31 37 37 31 30 31 33 39 36 31 36 37 36 32 35 90 00 a7 7b
Analicemos cada fila del volcado interceptado por separado.R >> - datos transmitidos por el terminal POST >> - datos transmitidos por la tarjeta (en nuestro caso, un teléfono con Apple Pay)14443-A Seleccionar
Al comienzo del intercambio, el terminal establece una conexión con la tarjeta en el nivel del canal. Para aquellos que estén familiarizados con las redes y el modelo OSI, será conveniente presentar esto como el nivel L2 y el UID (Identificador único) de la tarjeta como la dirección MAC del host.En la terminología estándar ISO-14443:
PCD (dispositivo de acoplamiento de proximidad) es el nombre del lector, en nuestro caso es un PIC-terminal
PICC (tarjeta de circuito integrado de proximidad) es una tarjeta, en nuestro caso el teléfono desempeña este papel
Una diferencia importante entre una tarjeta de pago regular de Apple Pay es que la tarjeta siempre es legible y no le permite controlar el proceso de lectura. Puede leerse sin control a través de la ropa, mientras que el teléfono, que cae en el campo de acción del lector, solicita al usuario que active una tarjeta virtual. Hasta que el usuario confirme, el teléfono no transmite ningún dato y el lector ni siquiera sabe que hay una tarjeta virtual cerca.R>> 52 // WUPA (wake up)
R>> 52 // WUPA
R>> 52 // WUPA
R>> 52 // WUPA
R>> 52 // WUPA
R>> 52 // WUPA
R>> 52 // WUPA
T<< 04 00 // ATQA (Answer To Request type A)
R>> 93 20 // Select cascade 1 (Anti Collision CL1 SEL)
T<< 08 fe e4 ec fe // UID (4 bytes) + BCC (Bit Count Check)
R>> 93 70 08 fe e4 ec fe dd 6e // SEL (select tag 0x9370) + UID + CRC16
T<< 20 fc 70 // SAK (Select Acknowledge 0x20) + CRC16
R>> 50 00 57 cd // HALT (Disable communocaion 0x5000) + CRC16
R>> 26 // REQA
R>> 52 // WUPA
T<< 04 00 // ATQA
R>> 93 70 08 fe e4 ec fe dd 6e // SELECT
T<< 20 fc 70 // SAK
R>> e0 80 31 73 // RATS (Request Answer to Select 0xE080) + CRC16
T<< 05 78 80 70 02 a5 46 // ATS (Answer to select response)
El terminal envía constantemente el comando 0x52 Wake-up (WUPA), y tan pronto como la tarjeta aparece en el campo de acción, responde con el comando Responder a la solicitud tipo A (ATQA), en nuestro caso es 0x04 0x00 . La respuesta ATQA puede variar según los fabricantes de chips.Después de recibir una respuesta ATQA, el terminal comienza un procedimiento de detección de colisión para determinar si hay más de una tarjeta en el campo de acción. El comando 0x93 0x20 Seleccionar cascada nivel 1 (SEL CL1) pide a todas las tarjetas en el campo de acción que informen la primera parte de sus UID.La tarjeta responde con 0x08 0xFE 0xE4 0xEC 0xFE , los primeros cuatro bytes son el UID de la tarjeta virtual Apple Pay y el 0xFE Bit Count Check (BCC) al final.Después de recibir los identificadores de la tarjeta, el lector accede a la tarjeta específica con el comando 0x93 0x70 (SELECCIONAR). Para que un equipo sea tarjeta de UID 0x08 0xfe 0xe4 0xec + 0xfe la BCC + 0xdd 0x6e CRC16.La tarjeta responde con 0x20 Select Acknowledge (SAK) + 0xfc 0x70 CRC16.Si se reciben múltiples respuestas SAK en este paso, el lector puede reducir la longitud del UID en el comando SELECT hasta que responda una sola tarjeta. Sin embargo, como se muestra arriba, algunos terminales POS se niegan a continuar si se detectan colisiones en esta etapa, es decir, la presencia de varias tarjetas al mismo tiempo.UID 4, 7 10 . , , Apple Pay, UID 4 . , Apple Pay UID , , UID . , , , UID .
El lector envía el comando 0x50 0x00 HALT + 0x57 0xcd CRC16. Este es un comando de terminación.Luego, el procedimiento se repite nuevamente, el lector vuelve a activar la tarjeta (WUPA), pero sin verificar las colisiones, SELECT se ejecuta inmediatamente. Por qué se hace esto: no sé, tal vez esta sea una forma más confiable de determinar colisiones.La segunda vez, el lector ya envía el comando 0xE0 0x80 Solicitar respuesta para seleccionar (RATS) + 0x31 0x73 CRC16.La tarjeta responde 0x05 0x78 0x80 0x70 0x02 Respuesta para seleccionar respuesta (ATS) + 0xA5 0x46 CRC16.Respuesta para seleccionar- La respuesta es similar a Respuesta para restablecer (ATR) para tarjetas de contacto. Contiene información sobre el tamaño máximo de trama y los parámetros de la capa de enlace.En esta etapa, se completa el nivel de "canal", luego el intercambio comienza en un protocolo de nivel superior, dependiendo de la aplicación contenida en la tarjeta. La operación SELECT es la misma para todas las tarjetas sin contacto del estándar ISO 14443A, incluidas las etiquetas NFC, los boletos de transporte público, etc.Solicitud de aplicaciones disponibles - SELECCIONAR PPSE
Descripción oficial: Especificaciones sin contacto de EMV: PPSE y gestión de aplicaciones para elementos segurosEl comienzo de la comunicación con una tarjeta EMV siempre se produce leyendo el PPSE (entorno del sistema de pago). El terminal le pregunta a la tarjeta qué aplicaciones de pago tiene.Muy a menudo, esta es una aplicación, como en nuestro ejemplo: VISA. Sin embargo, hay tarjetas con varias aplicaciones de pago, por ejemplo, hay tarjetas MIR nacionales especiales con dos aplicaciones de pago en su interior. Dado que el sistema de pago MIR no funciona en el extranjero, una segunda aplicación de pago está integrada en la tarjeta, de hecho, una segunda tarjeta. Esta puede ser una aplicación de sistema de pago JCB o UnionPay. Estas tarjetas se llaman cobaging.Comando APDU SELECT PPSE'00 A4 04 00 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00'
00 A4 04 00 // select
0E // command data (14 )
32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 // command data 2PAY.SYS.DDF01
00 //
Responder a SELECCIONAR PPSE'6F 23 84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 11 BF 0C 0E 61 0C 4F 07 A0 00 00 00 03 10 10 87 01 01 90 00'
Para mayor comodidad, analizaremos la respuesta utilizando el analizador en línea del formato TVL iso8583.info/lib/EMV/TLVs . La misma respuesta procesada por el analizador:
De todo esto, solo estamos interesados en el identificador de la aplicación de pago (AID). En este caso, este valor es A0000000031010 , que significa Visa International.AID está marcado con un marcador 4F . El segundo bit después del token es la longitud de los datos que contiene. Aunque la longitud del AID puede variar de 5 a 16 bytes, en la mayoría de los casos es de 7 bytes.Lista grande de AID: eftlab.co.uk/knowledge-base/211-emv-aid-rid-pixAlgunos AID popularesA0000000031010 Visa International
A0000000032020 Visa International
A0000000041010 Mastercard International
A0000000043060 Mastercard International United States Maestro (Debit)
Indicador de prioridad de la aplicación: indica la prioridad de las aplicaciones de pago. Por ejemplo, en tarjetas combinadas de MIR que tienen varias aplicaciones de pago en el interior, este campo indica cuál de las dos aplicaciones tiene prioridad. Como solo tenemos una solicitud de Visa International, apunta a ella y no hay prioridad.Iniciar aplicación de pago - SELECCIONAR AYUDA'00 A4 04 00 07 A0 00 00 00 03 10 10'
00 A4 04 00 // select
07 // command data (7 )
A0 00 00 00 03 10 10 // AID Visa International
Una vez seleccionada la aplicación de pago necesaria, el terminal la inicia.PDOL (Lista de objetos de datos de opciones de procesamiento)
'6f 31 84 07 a0 00 00 00 03 10 10 a5 26 9f 38 18 9f 66 04 9f 02 06 9f 03 06 9f 1a 02 95 05 5f 2a 02 9a 03 9c 01 9f 37 04 bf 0c 08 9f 5a 05 60 08 40 06 43 90 00'
Analicemos la respuesta con el analizador
En respuesta al lanzamiento de la aplicación de pago, la tarjeta informa un conjunto de parámetros que espera recibir del terminal: PDOL (Lista de objetos de datos de opciones de procesamiento). El terminal debe responder estrictamente de acuerdo con esta secuencia.Los PDOL para diferentes tarjetas pueden variar. El número total de parámetros PDOL es de varias decenas. Puede encontrar una lista completa de los parámetros PDOL aquí .Echemos un vistazo más de cerca a PDOL. La longitud indicada después del marcador es la longitud estrictamente esperada de la respuesta del terminal a esta solicitud. Una respuesta vacía se llena con ceros a la longitud deseada.Análisis de solicitud PDOL:9F 38 18 // PDOL. 18 (24 )
9F 66 ( 04) // Terminal Transaction Qualifiers (TTQ). .
9F 02 ( 06) //
9F 03 ( 06) //
9F 1A ( 02) // ISO3166-1
95 ( 05) // Terminal Verification Results
5F 2A ( 02) // , , ISO4217
9A ( 03) // YYMMDD
9C ( 01) //
9F 37 ( 04) //
Hasta este punto, todos los datos transmitidos son idénticos para cualquier transacción en esta tarjeta.Solicitud de cargo - OBTENGA OPCIONES DE PROCESAMIENTO
'80A8000023832136A0400000000001429800000000000006430000000000064318091800E011010300'
80 A8 00 00 // GET PROCESSING OPTIONS (GPO)
23 // (35 )
83 // PDOL-
21 // PDOL- (33 )
36 A0 40 00 // Terminal Transaction Qualifiers (TTQ)
00 00 00 01 42 98 // (142,98 )
00 00 00 00 00 00 //
06 43 // (643 - )
00 00 00 00 00 // Terminal Verification Results (TVR)
06 43 // (643 - russian ruble)
18 09 18 // (18 2018 )
00 //
E0 11 01 03 //
Esta respuesta muestra claramente cómo el terminal, que se encuentra en Rusia, solicita que se debite de la tarjeta por un monto de 142,98 rublos. Llamamos la atención sobre el número aleatorio al final (E0110103). Este es el parámetro 9F37 Número impredecible . Esta es la primera mención de la criptografía. En el futuro, este número, junto con los datos de la transacción, deberá firmar con una firma criptográfica. Esto le da al terminal control sobre la relevancia de la firma de la tarjeta y protege contra ataques de repetición.Respuesta de la tarjeta para OBTENER OPCIONES DE PROCESAMIENTO
'7762820200409404180101009F360202069F2608D6F56B8ABED78F239F10201F4AFF32A00000000010030273000000004000000000000000000000000000009F6C02008057134800997250511756D23122010000052099995F9F6E04238800009F2701809000'
Esta respuesta contiene campos de datos específicos de VISA, por lo que utilicé un analizador compatible con la especificación de pago sin contacto VISA (VCSP) .
Perfil de intercambio de aplicaciones (AIP): contiene información sobre los parámetros de la aplicación de pago. En nuestro caso, AIP es 00 40 . Considere los valores de este parámetro del EMV 4.3 Libro 3 .En nuestro caso, se establece un bit en el segundo byte, que, según esta tabla, está reservado para uso futuro (RFU). ¿Qué significa esto y cuál es el punto de invertir en Apple Pay? No lo sé.AIP contiene información importante sobre los métodos de autenticación admitidos (SDA, CDA, DDA) de pago. ¿Por qué en mi caso todas estas banderas son iguales a cero? No entiendo.Localizador de archivos de aplicación (AFL): contiene información de rango de registros SFI en un AID específico. En base a esta respuesta, el terminal generará una solicitud de LECTURA DE REGISTRO.Analicemos la respuesta AFL con más detalle: elIdentificador de archivo corto (SFI) es 0x18. Este parámetro está codificado con cinco bits en lugar de ocho. En consecuencia, el valor 0x18 (b00011000) se convierte a b00000011, y obtenemos 0x3.Primer registro = 1Último registro = 1es decir en la "carpeta" No. 3 hay entradas del 1 al 1, es decir, una entrada.El contador de transacciones de aplicaciones (ATC) es un contador de transacciones incremental que se incrementa en uno cada vez que se solicitan OPCIONES DE PROCESAMIENTO. Al alcanzar el valor 0xFFFF o 0x7FFF, la aplicación de pago se bloqueará permanentemente. Creo que esto se hace para proteger contra la fuerza bruta de la clave privada de la tarjeta. En nuestro caso, se puede ver que este iPhone con Apple Pay ya se usaba para pagar 518 (0x206) veces.Application Cryptogram (AC): una firma criptográfica que la tarjeta calcula con su clave privada. Esta firma se transmite junto con el resto de los datos al banco emisor, y la autenticidad de la transacción se verifica sobre la base. Dado que la clave privada de la tarjeta no puede extraerse (medios accesibles) de la tarjeta, esto elimina la posibilidad de copiar la tarjeta.Datos de la aplicación del emisor (IAD): contiene datos de propiedad específicos de VISA. No domine el análisis de esta estructura, ayuda.Calificadores de transacciones de tarjetas (CTQ): lista específica de VISA de especificaciones de tarjetas compatibles. Por ejemplo, ¿es posible usar esta tarjeta sin contacto para transacciones en un cajero automático o no, y qué tipo de confirmación se requerirá?
Seguimiento de datos equivalentes 2 - Oppa!Este campo contiene el número de tarjeta y la fecha de vencimiento, más detalles sobre esta información se discutirán más adelante.Indicador de facto de formulario (FFI): campo específico de VISA. Describe el factor de forma y las características de un dispositivo de pago. En nuestro caso, está claro que este es un teléfono móvil.Datos de información de criptograma (CID): no he dominado el análisis de esta estructura, ayuda.Consulta LEER REGISTRO DE DATOS
'00 b2 01 1c 00'
El terminal envía una solicitud para leer los registros recibidos de la AFL:
en este caso, comenzando desde el byte 0x1C , lea como dos valores, donde los primeros cinco bits son 0x18 (b000011) y son SFI, y los siguientes tres bits son 0x04 (d100), y inventa el número de registro.Responder a LEER REGISTRO
'70375F280206439F0702C0009F19060400100302735F3401009F241D5630303130303134363138303430313737313031333936313637363235'
Control de uso de aplicaciones (AUC): determina si está permitido pagar con una tarjeta en el extranjero y los tipos de operaciones permitidos.Al parecer, el 9F19 es algo incomprensible: el tokenizaciónEMV, la referencia de cuenta de pago (PAR) anticuada de la lista de objetos de datos de autenticación dinámica de datos (DDOL ) es un parámetro específico para las tarjetas tokenizadas (virtuales). No domine el análisis de esta estructura, ayuda.¿Qué se puede extraer de una transacción interceptada?
Analizamos un ejemplo específico del tráfico interceptado de una transacción sin contacto de Apple Pay con una tarjeta VISA vinculada. El protocolo MasterCard es ligeramente diferente, pero en general similar. Del análisis se puede ver que la transacción está protegida por la firma de cifrado, y el protocolo está protegido de un ataque de repetición. Hay un protocolo de pago sin contacto desactualizado en modo de banda magnética (MSD), que está mucho menos protegido contra ataques de repetición, pero en este artículo no lo desarmaré, porque, por lo que sé, casi no es compatible con el CIS, tal vez me equivoque.
De los datos interceptados, puede extraer el número de tarjeta (PAN) y la fecha de vencimientoComo puede ver, del tráfico interceptado puede extraer el número completo de la tarjeta y la fecha de vencimiento. Aunque CVV no está en este basurero, estos datos ya son suficientes para pagar en algunas tiendas en línea. ¡En el caso de una tarjeta de plástico física normal, los datos interceptados contendrán el mismo PAN y la fecha de vencimiento que está estampada en la tarjeta!Pago por Internet sin CVV (CNP, MO / TO)
En mi artículo anterior "Usamos Apple Pay y la tarjeta Troika como un pase para trabajar" sobre ACS basado en Apple Pay, fui criticado en los comentarios, diciendo que con solo los últimos 10 dígitos de la tarjeta puedes robar dinero. En el volcado anterior, no solo se indica el número completo de mi tarjeta, sino también la fecha de vencimiento. Estos datos son suficientes para pagar en algunas tiendas en Internet. Bueno, intenta hacerlo.
El formulario de agregar tarjeta de Amazon no requiere CVVSi se tratara de un número de tarjeta física, el dinero podría ser robado, pero los datos del token de Apple Pay se pueden usar SOLO para operaciones de Cliente Presente (CP) cuando la tarjeta firma la transacción con una firma criptográfica. Estos datos no se pueden utilizar para el pago en Internet y otras operaciones como Tarjeta no presente (CNP), es decir, por teléfono o correo electrónico. Eso es todo!A todos los que quieran verificar esto, les informo que los detalles del volcado de Apple Pay interceptados anteriormente son actualmente relevantes y están vinculados a una tarjeta válida que tiene dinero. Al momento de escribir, esto es 5 mil rublos. Sugiero tratar de robarlos :)
¿Por qué Apple Pay es más seguro que una tarjeta normal?
Apple Pay vs tarjeta sin contacto normal
- Apple Pay ( ) . POS-. , «» , , , , , . Apple Pay , , .
- — Apple Pay (13,56 ), , . . Apple Pay , .
- — Card not present (CNP), , .. Apple Pay .
- — (Cardholder name) . , , . Apple Pay .
. , . .
, Apple Pay . CNP- ( ) , .
:
- Empresas tehpos.ru para el hardware.
- Banco Ural de Reconstrucción y Desarrollo , y personalmente a Alexander Paderin (Director Gerente del Centro de Seguridad de la Información) para consultas.
- Almacenar aj.ru para proporcionar iPhones para probar.
- Valeria Aquamine para las ilustraciones del artículo.
- Gleb JRun de Digital Security para asesoramiento técnico.
- Alexander AlexGre para consultas sobre el protocolo EMV.
- Forma de habitáculo para un excelente analizador EMV: iso8583.info