Donde más de 20 millones de tarjetas de transporte son vulnerables en Rusia: desensamblamos y desarrollamos MIFARE Classic

El estándar de tarjeta sin contacto MIFARE Classic se creó hace más de 20 años y, a pesar de una serie de vulnerabilidades encontradas desde entonces, todavía se usa ampliamente (en particular en Moscú y San Petersburgo). En este artículo, recordaremos qué vulnerabilidades se encontraron y describiremos cómo solucionarlas.


Fuente: Instagram @ pro.ticketing

Tradicionalmente, para tales artículos, recordamos que la falsificación y la venta de entradas en Rusia están enjuiciadas por la ley (artículos 327 y 165 del Código Penal de la Federación de Rusia), e instamos a los lectores a permanecer en el lado positivo de la fuerza.

Estructura clásica de MIFARE


El estándar MIFARE Classic de NXP es una familia de tarjetas. Incluye MIFARE Classic 1K, 4K, EV1 1K, EV1 4K, MIFARE ID, MIFARE Mini. Además, este estándar puede ser emulado por otras tarjetas NXP más nuevas (MIFARE Plus, JCOP y otras).

El funcionamiento de la tarjeta con lectores se basa en el estándar ISO 14443A, frecuencia 13.56 MHz.
Las tarjetas MIFARE Classic 1K proporcionan un área de memoria organizada en sectores de 64 bytes. Cada sector se divide en 4 bloques de 16 bytes de tamaño:



Para las tarjetas 4K, los primeros 2048 bytes están organizados en 32 sectores de 64 bytes, y el resto en 8 sectores de 256 bytes (o 16 bloques). El último bloque de cada sector se llama avance de sector, contiene claves y parámetros de acceso al sector. El bloque cero del sector cero es un bloque especial, bloqueado para escritura, contiene el identificador y la información del fabricante de la tarjeta. Para que una tarjeta tenga varias aplicaciones diferentes, por ejemplo, para una tarjeta social con información sobre beneficios, boletos de metro y tren, los bloques restantes del sector cero registran cómo se usa cada sector: el Directorio de aplicaciones MIFARE (MAD) .

Antes de acceder al sector para leer o escribir, es necesario autorizar el uso de una clave de 6 bytes. La autorización se realiza de acuerdo con un protocolo de tres pasos similar al descrito en el capítulo 5.2.2. Norma ISO / IEC 9798-2: 1999. Se utiliza el algoritmo de cifrado de transmisión patentado CRYPTO1:



  1. El lector envía una solicitud de autorización, indicando el número del sector en el que se produce la autorización.
  2. La tarjeta lee la clave de acceso de la memoria interna, genera una secuencia aleatoria y la devuelve al lector.
  3. El lector calcula la respuesta utilizando la clave de acceso de sector y el algoritmo de cifrado CRYPTO1, luego la envía con una nueva secuencia aleatoria generada.
  4. La tarjeta verifica la respuesta calculada por el lector. Luego calcula la respuesta a la llamada del lector y la devuelve.
  5. El lector verifica la respuesta de la tarjeta.

La transmisión adicional de los contenidos de los sectores se realiza en forma encriptada. Si necesita iniciar sesión en otro sector (la llamada autorización secundaria), se realiza una nueva autorización. La principal diferencia es que todo el intercambio se encripta primero con la antigua y luego con la nueva clave.

Vulnerabilidades conocidas de MIFARE Classic


La criptografía de mapas está bien investigada. Se encuentra la vulnerabilidad de la implementación de la tarjeta del generador de números pseudoaleatorios (PRNG) y la vulnerabilidad del algoritmo CRYPTO1. En la práctica, estas vulnerabilidades se utilizan en los siguientes ataques:

  1. Lado oscuro : el ataque explota la vulnerabilidad PRCH. Funciona en tarjetas MIFARE Classic hasta la generación EV1 (en EV1, la vulnerabilidad PRNG ya se ha eliminado). Para un ataque solo necesita un mapa, no necesita conocer las claves.
  2. Anidado : el ataque explota la vulnerabilidad CRYPTO1. El ataque se realiza en autorizaciones secundarias, por lo que para un ataque necesita conocer una clave de tarjeta válida. En la práctica, para el sector cero, a menudo usan teclas estándar para trabajar con MAD, comienzan a partir de él. Funciona para cualquier tarjeta en CRYPTO1 (MIFARE Classic y su emulación). El ataque se demostró en el artículo "Vulnerabilidad del mapa de psyllium: vulnerabilidad en la tarjeta de transporte terrestre de San Petersburgo".
  3. Ataque mediante intercambio de escucha : el ataque utiliza la vulnerabilidad CRYPTO1. Para atacar, debe espiar la autorización principal entre el lector y la tarjeta. Esto requiere un equipo especial. Funciona para cualquier tarjeta en CRYPTO1 (MIFARE Classic y su emulación). El ataque se demostró en el artículo "Hackear tarjetas de transporte Citycard (Nizhny Novgorod)".

Todo esto en la práctica le permite obtener claves de acceso a todos los sectores de la tarjeta, teniendo solo una tarjeta a mano, inicializada con teclas de acceso. Además, se puede llevar a cabo un ataque de repetición en el contenido de la tarjeta o se puede hacer un clon de la tarjeta en espacios especiales con un identificador de tarjeta regrabable.

Además, existe una vulnerabilidad en la infraestructura de la clave de acceso. Dado que la criptografía en CRYPTO1 se implementa en el lado de un lector de tarjetas (CRYPTO1 se implementa solo en hardware), se deduce que las teclas de acceso:

  • ya sea transferido a un lector antes de trabajar con la tarjeta,
  • almacenado en el lector en un almacenamiento de hardware seguro (por ejemplo, MIFARE SAM ),
  • ya sea almacenado en la memoria de solo lectura del lector.

Y si en equipos especiales como terminales de información o torniquetes puede usar un almacenamiento seguro de claves de hardware, en el caso de aplicaciones de Android solo existe la opción de transferir claves y almacenarlas en la memoria del dispositivo. Esto hace posible interceptar estas claves pirateando la aplicación o analizando el tráfico de la aplicación. Lo que se demostró en el artículo "Estudio de la seguridad de la tarjeta Troika".

Métodos de gestión de vulnerabilidades MIFARE Classic


Acceso a la diversificación de claves


La diversificación es el proceso de obtener claves de acceso mediante una clave maestra utilizando algunos datos de entrada exclusivos de la tarjeta. El proceso de obtención de claves puede implementarse en un software de aplicación que funciona con lectores, o por medio de un módulo SAM.

Por ejemplo, esto podría funcionar así:

  1. Como entrada para la diversificación, se utiliza el identificador de tarjeta y el número de sector, la clave a la que queremos recibir;
  2. Estos datos se cifran (en el módulo SAM o software de aplicación) con una clave maestra, el resultado se trunca a 6 bytes y se usa como clave de acceso al sector correspondiente.



Como resultado, cada tarjeta recibe sus claves de acceso sectoriales únicas. Incluso si las claves de cualquier tarjeta en particular están comprometidas, esto no conducirá al uso masivo de estas claves. Pero debe comprender que la diversificación es una medida a medias y no protege a las tarjetas individuales de que se rompan y la posibilidad de modificar una aplicación de Android para interceptar y usar claves diversificadas.

Transición al nivel de seguridad MIFARE Plus y SL3


Para resolver vulnerabilidades en CRYPTO1, se desarrolló la familia de tarjetas MIFARE Plus. Los mapas en estructura son similares a MIFARE Classic, solo se actualiza la criptografía de mapas. Pueden trabajar en dos modos:

  1. Modo de emulación MIFARE Classic (este modo de operación se denomina Nivel de seguridad 1 o SL1), que permite usarlos en la infraestructura existente de lectores de tarjetas y no requiere modificaciones en el software que funciona con tarjetas;
  2. Modo de nivel de seguridad 3 (SL3), que requiere autorización para sectores y cifrado del intercambio de datos utilizando el algoritmo AES con la adición opcional de un inserto de seguridad.

La vulnerabilidad PRNG se eliminó en estas tarjetas y, por lo tanto, en el modo SL1, estas tarjetas siguen siendo vulnerables a los ataques en CRYPTO1, y en el modo SL3 actualmente no hay ataques conocidos.

A diferencia de SL1, la autorización y el cifrado en SL3 se pueden implementar en el software. Gracias a esto, puede protegerse de interceptar claves a través del cliente de Android. Para hacer esto, el servidor debe realizar la autorización y el cifrado. Luego, las claves no salen del servidor y el cliente de Android simplemente envía solicitudes y respuestas de la tarjeta. Esto requerirá que la aplicación se conecte a Internet, lo que puede ser inconveniente, por lo que puede configurar la tarjeta para que el sector se lea con una clave y el registro con otra clave. Luego, el usuario podrá ver información sobre la tarjeta sin conexión, y podrá reponer el saldo o comprar boletos solo en línea.

No olvide que para las claves AES se puede diversificar modificando el algoritmo para claves de 16 bytes de longitud.

Las tarjetas de transporte existentes basadas en tarjetas MIFARE Plus SL1 se pueden cambiar al modo SL3 en dos etapas:

  1. La infraestructura de los dispositivos que funcionan con tarjetas (torniquetes, cajas, máquinas expendedoras, terminales) se está preparando para trabajar con MIFARE Plus. El software para lectores se está finalizando en términos de trabajo con tarjetas.
  2. Las tarjetas de transporte ya emitidas basadas en MIFARE Plus se transfieren al modo SL3; esto puede ocurrir durante el uso normal de la tarjeta, por ejemplo, al pasar por un torniquete o al conectar una tarjeta al terminal de información. El proceso de transferencia de la tarjeta es invisible para el pasajero y tarda unos 100 ms.

Cambiar a MIFARE DESFire


La criptografía de la tarjeta MIFARE DESFire es similar a MIFARE Plus: antes de trabajar con la aplicación, la autorización de tres pasos se realiza de acuerdo con uno de los algoritmos para elegir el emisor de la tarjeta: DES, 3DES, AES. El intercambio posterior con la tarjeta se realiza en forma cifrada con inserciones de imitación opcionales.

La tarjeta es funcionalmente diferente de MIFARE Classic. La memoria de la tarjeta está organizada en un sistema de archivos. Puede haber varias aplicaciones en un mapa; cada aplicación puede tener varios archivos.



El trabajo con la tarjeta comienza con la selección de la aplicación por su identificador y autorización. El siguiente es el trabajo con archivos: crear, eliminar, leer, escribir. Los archivos pueden ser de varios tipos, por ejemplo, un área plana de memoria, saldo de billetera, un archivo regrabable cíclicamente.

La principal dificultad de la transición es que necesita actualizar el software que funciona con tarjetas. Es necesario pasar del uso de memoria dividida en sectores a aplicaciones y archivos, y, en consecuencia, cambiar el orden de autorización de sectores a autorización para la aplicación y / o archivos. En términos de hardware, las tarjetas imponen la misma restricción en la infraestructura de lectores que MIFARE Plus.
La ventaja en comparación con MIFARE Plus es que es más fácil implementar tarjetas de múltiples marcas basadas en MIFARE DESFire: diferentes combinaciones de tarjetas en un medio: Troika-Strelka, Troika-Podorozhnik, tarjetas sociales con la capacidad de grabar boletos para el transporte). En MIFARE Plus, esto se logra mediante la asignación administrativa de sectores en el mapa para diversas aplicaciones. Aquí, cada sistema puede trabajar con la aplicación que necesita, y puede que no sepa que hay otras aplicaciones en el mapa. La segunda ventaja es que los tipos de archivos adicionales le permiten implementar algunos escenarios especiales, por ejemplo, para reponer el saldo de la billetera con una clave de acceso y gastar dinero del saldo en el otro, o reembolsar la cantidad gastada.

Hoy en día, los fabricantes de tarjetas SIM (STM, Gemalto, G&D, Oberthur) tienen tarjetas SIM disponibles comercialmente y funciones de seguridad integradas con la emulación MIFARE DESFire.

La tarjeta Oyster (tarjeta de transporte de transporte público de Londres) se transfirió a MIFARE DESFire en 2009; desde 2010, las tarjetas MIFARE Classic no se han utilizado. La tarjeta de transporte SUBE (Argentina) está en proceso de transición a MIFARE Plus SL3. En el transporte público de Dublín, 3 tipos de tarjetas: Luas (tranvías), Dublin Bus y DART (tren suburbano) se construyeron sobre la base de MIFARE Classic y se reemplazaron por una tarjeta Leap que ya estaba basada en MIFARE DESFire. Las soluciones de transporte modernas a menudo se crean inicialmente en medios seguros.

Cambio a otras tarjetas de transporte (CALYPSO, CIPURSE, FeliCa)


Desde el punto de vista de la seguridad, estas tarjetas son similares a las tarjetas MIFARE Plus y DESFire: criptografía basada en AES, autorización en tres pasos, trabajo con simulaciones, almacenamiento seguro de hardware: Módulo de acceso seguro (SAM) , varias tarjetas pueden emular MIFARE Classic. También funcionan según la norma ISO / IEC 14443A.

MIFARE - campeón



ABI Research Q1 2017

La participación de las tarjetas MIFARE en el transporte en el mundo en 2017 fue del 75% y, según las previsiones, para 2021 no será inferior al 70%.

La participación de MIFARE en el mundo se reduce principalmente debido al crecimiento de Otras tarjetas, que incluyen principalmente tarjetas bancarias (EMV) y virtualización de tarjetas (cambio a teléfonos inteligentes) para reemplazar la función del operador de boletos. Las tarjetas bancarias están mejor protegidas que las tarjetas de transporte, pero debe pagarlas. Servir tarjetas bancarias requiere en línea, los lectores son más caros debido a los requisitos de certificación bancaria, el operador de transporte pierde flujo de efectivo al reponer sus tarjetas de transporte. Todo esto crea un cierto equilibrio de fuerzas, gracias al cual ambos estándares (MIFARE y EMV) encuentran sus nichos y los ocupan.

El volumen de tarjetas de transporte en estándares distintos de NXP (Calypso, CIPURSE) hoy es inferior al 5%. Básicamente, estas tecnologías se concentran en países donde los mapas se han desarrollado históricamente, Japón y Francia, y hasta ahora no han ido más allá de ellos. Esto es comprensible: la creación de un ecosistema local para la producción y el soporte de tarjetas no siempre está justificada económicamente y debe ser respaldada por el mercado. Es posible que Rusia se una a una serie de países que han respaldado estos estándares. Para esto, en primer lugar, se necesita una solución política.

Haga clic en los enlaces a continuación para obtener más información sobre Mifare Classic:


Conclusión


Estaremos encantados de responder preguntas en los comentarios al artículo y en instagram @ pro.ticketing . En enero de 2019, nuestra empresa abrió una serie de vacantes para un nuevo proyecto en el campo del transporte en Moscú, incluida la posibilidad de atraer equipos de 3-4 personas . Se ha abierto un acelerador de nuevas empresas en el campo de las nuevas tecnologías para el pago y la validación de viajes en transporte público.

Source: https://habr.com/ru/post/437414/


All Articles