mifare classic 1k para micropagos

3

¿Se puede utilizar Mifare Classic 1k para micropagos de forma segura?

Tengo un sistema en mente para usar en un salón de juegos de arcade. Recibirá una tarjeta de cajero y puede recargarla, por ejemplo, con 100 puntos (están escritas en la tarjeta, no en la base de datos y solo con ID). Luego puede ir a cada máquina, escanear la tarjeta en el lector y sus puntos disminuirán, y los puntos a la izquierda se mostrarán en el lcd.

Por lo tanto, cada vez que escanea la tarjeta, escribe nuevos datos y verifica su integridad.

¿Es posible ser totalmente a prueba de balas y no puede copiarse en algún hardware personalizado?

Crearé hardware para aceptar pagos en los juegos de arcade y software / hardware para operaciones de recarga.

Estaba pensando en una solución donde guardaré un hash (con alguna semilla secreta) de la identificación única de la tarjeta, la cantidad actual de puntos y la guardaré dentro del eeprom de la tarjeta (con la cantidad de puntos, por supuesto). Puedo envolverlo dentro de un bloque AES o 3DES para mayor seguridad. Guardaré las claves y el hash dentro del hardware para que sea bastante seguro.

Mis preocupaciones son:

  1. ¿Qué pasa si alguien toma la tarjeta durante la operación de escritura?
  2. ¿Alguien podrá copiar la tarjeta a algún tipo de emulador con su identificador único y contenido de eeprom?
  3. ¿Quizás hay otra rutina para usar, mejor que "leer, escribir, verificar" y activar el juego?
  4. Comprendí que el estándar Mifare DesFire es para soluciones de micropagos, pero las tarjetas son más caras, y probablemente también el hardware. Sin embargo, tal vez alguien tenga algo de experiencia y no sea tan aterrador como parece.
  5. Cualquiera tiene recomendaciones de hardware para Mifare, por supuesto.

Aprecio mucho cualquier entrada.

    
pregunta Gilles 27.11.2016 - 22:02
fuente

3 respuestas

3

Mifare classic puede ser clonado completamente. También puedes comprar tarjetas con UID intercambiable, solo ordené un montón. Los bloques de la tarjeta que requieren claves no predeterminadas pueden romperse en una PC utilizando hardware barato. Por ejemplo, Proxmark o Adafruit PN532 / Elechouse PN532 V3, utilizando libnfc y algunos otros programas. Todas las herramientas necesarias vienen en stock en Kali linux.

Todavía no he tenido la suerte de acceder a estos bloques que requieren claves no predeterminadas, pero solo porque no he aplicado un esfuerzo serio. Desfire EV1 (IIRC) es una revisión posterior a 2008, y estas tarjetas se consideran seguras y no se pueden copiar p.t .. Si sabe que esto es incorrecto, proporcione los enlaces.

Muchos lugares usan las etiquetas Mifare classic para el control de acceso y demás, más poder para eso, pero no usaría nada menos que, al menos, Desfire de NXP (sin falsificaciones de China) para cualquier cosa que involucre dinero.

Google 'mifare classic cloning'.

Después de leer varias fuentes, estimo que tomará un máximo de 25 a 30 minutos leer todos los datos de estas tarjetas. Para las tarjetas que usan claves predeterminadas, toma menos de un segundo. El Adafruit PN532 (tiene una antena decente) puede hacerlo desde una distancia de 7 cm, este rango puede aumentarse con antenas personalizadas. Desfire se puede leer de 3-4 cm. Parece que cuanto más poder requiere la tarjeta para procesar y comunicarse, menor es el alcance de un escáner. Trivia: una sola capa de lámina de aluminio previene esto ... no se necesita una "billetera de acero". Cúbralo con cinta adhesiva sobre un soporte de tarjeta de crédito estándar y guárdelo en su billetera.

Editar: cualquier información complementaria de pentesters e ingenieros sería útil para OP. Corrija los malentendidos que pueda tener sobre NFC;)

    
respondido por el user400344 28.11.2016 - 14:50
fuente
1

Podrías usar tal esquema. Sin embargo, hay algunas cosas que cuidar.

Almacenar en la tarjeta la cantidad, junto con un hash de la tarjeta UID + la cantidad evita copiar la cantidad de una tarjeta a otra.

Sin embargo, no impide que un usuario lea los datos de la tarjeta, use la tarjeta en el juego (disminuyendo así la cantidad) y luego vuelva a escribir los datos de la tarjeta anterior para restaurar su cantidad inicial. Para evitar esto, debe asegurarse de que solo los terminales autorizados (máquinas de juego) puedan escribir en la tarjeta.

Mifare resolverá este problema permitiéndole cargar claves personalizadas en la tarjeta, lo que protegerá a los sectores de la lectura y / o escritura. Estas llaves deberán ser conocidas por la máquina.

Ahora, para evitar la emulación / clonación de la tarjeta, si carga claves personalizadas en la tarjeta, también solucionará este problema. El terminal tendrá que autenticarse con sus claves personalizadas antes de la transacción, para asegurarse de que la tarjeta sea genuina. Tenga en cuenta que, en este momento, ni siquiera tiene que almacenar un hash de la cantidad + UID en la tarjeta para garantizar que la cantidad no se transfiera a otra tarjeta, porque solo sus máquinas (en las que confía) pueden leer / escribir en auténticos tarjetas.

Así que, en general, está bien, siempre que configure las claves y los bits de acceso de los sectores de Mifare. También tendrá que proteger el hardware de sus máquinas de juego, ya que un pirata informático que tenga acceso a una máquina de este tipo puede descubrir cómo cambiar la cantidad almacenada en las tarjetas.

Ahora en cuanto a sus preguntas detalladas:

  1. Si la tarjeta se retira durante la escritura, Mifare classic no le otorga ninguna garantía. Esto significa que el sector puede terminar corrompido. Para evitar esto, puede escribir sus datos en múltiples sectores y hacer una verificación de consistencia cuando vuelva a leer las tarjetas. También sugiero el rastreo / registro de eventos / datos de la tarjeta dentro de las máquinas, en caso de disputa con un cliente.

  2. Adresado arriba (las tarjetas no pueden copiarse / emularse si configura las claves de mifare y las condiciones de acceso de manera apropiada).

  3. Prefiero leer, revisar, escribir y encender el juego. No escriba nada en la tarjeta sin una verificación previa de la integridad de la tarjeta. Pero por lo demás, está bien.

  4. Mifare DESFire tiene comandos de crédito / débito que podrían satisfacer sus necesidades. Lo que estos comandos permitirán es relajar los requisitos de seguridad alrededor de las máquinas. Con el enfoque clásico, si el hardware / firmware de la máquina es pirateado, terminará con un riesgo de fraude. Sin embargo, si las tarjetas son capaces de realizar un débito / crédito real por sí mismas, puede mitigar este riesgo. Depende de usted para comprobar si vale la pena.

  5. No sé si era lo que estaba pidiendo, pero, por supuesto, NXP tiene un paquete chips que puede usar para diseñar un terminal Mifare.

respondido por el dim 27.11.2016 - 23:40
fuente
0

Me parece que la única opción razonablemente segura para el "almacenamiento" de dinero es tratar la tarjeta solo como un contenedor algo seguro para un GUID y manejar la verificación y modificación del saldo real de forma centralizada.

Hay una razón por la que las políticas estándar para tarjetas de crédito EMV a menudo limitan las compras fuera de línea (si las hay) a unos 20 dólares acumulativos; hay demasiados diferentes escenarios de ataque para mantener seguro un sistema fuera de línea a menos que las apuestas sean lo suficientemente bajas, incluso si usas chips mucho más seguros (y costosos).

Si se trata de un 'salón de juegos de arcade' en el sentido de que las personas pueden pagar por adelantado durante unas horas de entretenimiento, los riesgos son bajos y puede mitigarlos con medios no técnicos (una persona ha pasado una docena de horas en su arcade sin volver a rellenar la tarjeta?), pero si se trata, por ejemplo, de El juego y las posibles ganancias, entonces es un asunto completamente diferente.

    
respondido por el Peteris 28.11.2016 - 15:16
fuente

Lea otras preguntas en las etiquetas