Trabajo en la industria de autobuses y hoy fui a una reunión que me dio una idea para un proyecto. Para comenzar el proyecto, necesito reunir una perspectiva técnica de cómo funcionó el producto que vi en la reunión.
El dispositivo que me mostraron funcionó de la siguiente manera (pseudo términos):
- Coloque una tarjeta de débito sin contacto contra el dispositivo
- El dispositivo lee los datos de la tarjeta y luego envía la información de la tarjeta a un servidor a través de una conexión TLS segura (con toda la información necesaria para realizar un pago con la tarjeta, el número, CSC, etc.). Esto fue conocido como "tocar en"
- Vuelve a tocar el dispositivo para "tocar"
Luego, el servidor calculó la diferencia en segundos entre el momento en que tocó y el momento en que lo hizo, y creó y realizó una transacción por segundos * £ 0.01.
Para ser claros, la transacción se realizó en el servidor no desde el dispositivo. Esto significa que el dispositivo debe haber enviado información de la tarjeta al servidor.
Mi objetivo de publicar en este sitio es intentar comprender mejor cómo se leyó la información de la tarjeta y luego se descifró. Ya entiendo completamente cómo usar una pasarela comercial para realizar un pago de manera segura, cómo enviar datos usando una tarjeta SIM, etc.
Lo que sé hasta ahora:
Así que para empezar, tiene que haber un tablero que esté ejecutando algo. Mi conjetura es que estará ejecutando una distribución de Linux. Creo que para acceder a los datos dentro de la tarjeta de débito (el número, csc, etc.) se debe haber utilizado un lector RFID. Esto luego interactuaría con la distribución de Linux cuando la tarjeta de débito se colocara cerca.
Aquí es donde me quedo atascado. Después de agitar la tarjeta, nos mostraron que la información de la tarjeta estaba en la base de datos de su servidor. ¿Dónde han leído los datos y descifrado sus contenidos? ¿Enviaron bits encriptados y luego los descifraron en el servidor, o descifraron los datos utilizando el lector RFID y luego enviaron el número de la tarjeta de débito, el vencimiento, el csc, etc. a través de la conexión? Es esta parte que no puedo moverme la cabeza.
Aprecio que tengo muy poco conocimiento aquí, pero si alguien pudiera aclarar esto por mí, realmente lo apreciaría. Principalmente soy un desarrollador de software, por lo que soy nuevo en hardware, pero me encantaría tener una idea de lo que está pasando aquí.