Random IRC quote :      <ggonzalez> siempre he sido un negado para esto de la informtica

Desarrollando la explicación del ataque #1 sobre los RASCAS.

Bueno, sincéramente creo que he hecho una explicación bastante «al aire» del ataque «Barrido de código de boleto», y algunos lectores como Jaime M. han hecho bien en plantear las dudas.

Voy a intentar explicar un poco más el tema.

Sigo aquí abajo, en leer más.

La ONCE encarga a la empresa proveedora de los RASCAS (GTECH) series de 10 millones de unidades cada una.
Estas series están dividadas en Libros. Cada libro contiene 200 apuestas, es decir 200 boletos. Cada libro tiene un valor de 100 €.

+ Serie: 10.000.000 apuestas
+ Libro: 200 apuestas

En total , cada serie consta de 50.000 libros.

Los libros son asignados a los vendedores, que necesitan por un lado confirmar su recepción y posteriormente activar el libro mediante la lectura de cualquier boleto que pertenezca a ese libro. Todo ello a través de la TPV, mediante SMS o llamada telefónica al centro correspondiente.

La lógica normal es que en el momento de cobrar un cupón, para el libro al que pertenece se haya confirmado su recepción y se haya procedido a activar.

Pero también se contemplan otros casos.

1.Que el libro no este activado pero sí recepcionado.
En el momento de proceder al pago del RASCA premiado, el sistema accederá y activará automáticamente el Libro asociado al boleto.
2.Que el libro no esté recepcionado ni activado.
El pago se denegará, pero en teoría podríamos seguir sabiendo si está premiado o no.

También tenemos que tener en cuenta, que podríamos consultar boletos de libros no activados por el mismo vendedor del rasca premiado.

Entonces, ¿cuál es el problema? Que no es cierto que no se pueda saber si un boleto está premiado hasta que sea revelado por el comprador ( esto es, que lo rasque y ponga al descubierto el PIN y el codigo 2D ) como figura en las reglas de la «lotería instantanea» Y esto en cierta medida es grave.

¿Por qué?

Con mayor o menor coste computacional podemos generar todos los posibles estados. Aunque el espacio se puede reducir, sin entrar a analizar (empíricamente) el algoritmo de generación de IDs tenemos 10000 Millones (10 números – 10 posiciones ID) y 10000(10 números – 4 posiciones PIN) = tendríamos 100.000.000.000 posibles «códigos de boleto».. Aunque esta cantidad se puede reducir bastante.

Ahora tenemos que preguntarnos, qué es lo que realmente se guarda en el fichero de control en el «Sistema Central de Control del Juego»? Como hemos visto más arriba, la ONCE nos dice que:

4.1. Junto con los boletos físicos de «lotería instantánea de boletos de la ONCE», la empresa proveedora de boletos de lotería instantánea suministrará a la ONCE, por cada pedido de series, un fichero informático que contendrá la codificación de los boletos premiados, consistente en una parte del código de identificación y los cuatro dígitos del código pin.

Fijaros en la negrita, ahora recordad que en el anterior post averiguamos que el último digito de checksum se calculaba únicamente para el RandomID y el PIN. ¿Curioso no? ¿Podríamos inferir que lo que realmente se guarda en el fichero de control son estos 14 números. ¿Y que són los que se envían desde la TPV?, amén de que en otra bbdd se relacione RandomID+PIN con su Serie y Libro correspondiente.

A lo mejor nosotros no podemos, pero la posibilidad teórica de que alguien con una TPV (no digo que sea un vendedor) compruebe «códigos de boleto» generado artificialmente y vaya comprobando si están premiados o no está ahí.

La otra posibilidad es que alguien con acceso al Sistema Central de Control del Juego diseccionar el algoritmo por el que se accedo a los ficheros de control, emular falsas peticiones de la TPV y pueda probarlo en local, con la rapidez que eso daría al chequeo. Eso ya depende de la seguridad interna que haya en el sistema que alberga esos servers, amén de la fiabilidad del algoritmo implementado por GTECH.

CONCLUSIÓN-

http://www.juegosonce.com/wmx/dicadi/pub/contenidos/reglamento_juegos_lotinst.cfm#_16

3.1. El boleto de «lotería instantánea de boletos de la ONCE» constituye el documento o título con el que el concursante participa en el juego. En su confección, la ONCE garantiza su inviolabilidad y su carácter infalsificable, la distribución aleatoria pero cierta de los premios del juego y el desconocimiento de los boletos premiados hasta el momento de su revelado.

Bajo mi punto de vista, queda demostrado que no es cierto. Por lo tanto el sistema de Lotería Instantanea de la ONCE sería susceptible de fraude. Podemos discutir si es «rentable», si es más o menos dificil, pero lo que no se puede discutir, si estamos de acuerdo en los datos presentados, es que se puede averiguar los boletos que están premiados sin necesidad de revelar el RASCA.

El obtener todas las posibles combinaciones de 14 números no es un problema hoy en día, y no se durarían ni años ni meses en comprobarlas todas. El montante en premios de cada serie es de 2 millones y medio de €.

Sigo pensando que la mayor dificultad a la hora de llevar a cabo este potencial ataque es la necesidad de acceso al sistema central, ya sea remota o locálmente.

Obviamente, es una investigación sobre un «sistema opaco», quizá me estoy perdiendo algo muy gordo que invalide todo mi planteamiento. Asi que es sólo mi opinión.

9 Comentarios para “Desarrollando la explicación del ataque #1 sobre los RASCAS.”

  1. Comment por Nacho | 01/28/10 at 8:02 pm

    Hola, soy nuevo por aqui, así que en primer lugar, hola a todos.
    Interesantes éstos artículos, sólo un apunte. En lugar de bloquear las peticiones del TPV sería más interesante interceptarlas, romper el cifrado del GPRS (gsm supongo que sera) y así ya sabríamos cómo realizar las peticiones al comprobador de boletos. Sólo haría falta probar los números generados recreando esa petición y todo solucionado 🙂

    No creo que telefónica haya creado una red interna de gprs para todos esos aparatos así que no habrá restricciones por la procedencia de las peticiones al servidor.

    Un saludo!

  2. Comment por Manu | 02/03/10 at 5:34 pm

    Ruben, me gustaría que respondieras al comentario #1 de nacho!Gracias.

  3. Comment por Ruben | 02/04/10 at 9:53 am

    Hombre está claro que sería mucho mas interesante, «sólo» hay unos cuantos problemas: romper GSM no es que sea trivial, y a partir de ahí interceptar la comunicación GPRS y a partir de ahí romper el cifrado que usen para comunicarse y a partir de ahi…a mi ya se me escapa de las manos sincéramente.

  4. Comment por Mario | 02/05/10 at 5:18 am

    Nacho creo que olvidas que existen unas cosas que son APN’s que son redes privadas virtuales para dispositivos móviles…

  5. Comment por Marcos | 02/05/10 at 6:27 am

    Felicidades Ruben, me encanta como escribes como una novela policiaca, tambien he leido tu entrevista en «el lado del mal», cuando dices q una de tus fuentes de ingresos son los rascas, a q te refieres?

    un saludo!

  6. Comment por Ruben | 02/05/10 at 6:43 am

    Marcos, es una coña. No hay más, se que después de esto puede resultar «sospechoso» pero no hilo tan fino…

  7. Comment por Txispas | 03/17/10 at 6:06 am

    No hace falta romper el GSM, sólo el sello del TPV ;). Si el TPV se conecta por GSM lo más probable es que por diseño se haya incluido una CPU y un modem GSM. La comunicación entre la CPU y el módem es série y el protocolo es AT estándar, así que sólo hay que buscar esta linea y esnifarla.
    ¿Alguien con un TPV a mano?

  8. Comment por Ethereal | 03/21/10 at 12:32 am

    Bueno, mi duda es la siguiente…

    Todos los días, de lunes a viernes, Jose, nuestro vendedor de cupones habitual, nos reparte la «suerte» diaria (lo digo entre comillas porque desde que gané 5 euros en un rasca hace 2 años no he pillado ni uno de 0.50 xD).

    En mi caso, el TPV tan solo lo tengo al alcance de mi pc en el momento de estar dentro del trabajo, con lo cual interceptarlo va a ser que es jodido, eso sin contar que jose, cuando no ve un numero claro, rasca el código de barras de abajo para ver si tiene un premio o no, lo cual si, es una segunda opción, pero… sinceramente, ni mi a sniffer ni a mi nos da tiempo ni tan siquiera de teclear cuando él como un rayo ya ha pasado el scanner.

  9. Comment por dedos | 12/15/10 at 12:36 pm

    Perdon el modelo exacto es el i8550 de ingenico, el 7910 es el usado para redes bancarias euro6000 y servired al igual que el lipman 8010 y 8020 tambien de lipman. o el sagem EFT930G son los mas comunes. Un saludo

Se han cerrado los comentarios