Lotería instantanea for learning and non-profit.
Hola amigos robahigos!
Bueno, este es otro de los post que necesitan disclaimer.
Lo que hagas queda bajo tu absoluta responsabilidad. No animo de ninguna manera a realizar ninguna actividad ilegal. Hombre, si te quieres fumar un porro, pues tampoco pasa nada. Pero no abuses.
Como siempre, representantes legales, FSE, miembros del círculo de lectores y ustedes ,apreciados lectores, no pulsen en «leer más» sin echar un ojo a lo siguiente:
- La falsificación de quinielas, boletos, cupones etc se considera FALSIFICACIÓN DE DOCUMENTO OFICIAL con lo que te pueden caer hasta 6 años de dormir con un tío al que llaman «el polilla».
- Cantidades defraudadas menores de 300 € son consideradas como hurtos y no estafa, lo que conllevaría penas más graves.
- El uso de dispositivos electrónicos destinados a interferir,interceptar, dañar o modificar las telecomunicaciones de terceros están prohibidos. ¡Aunque sean baratos!.
- La ONCE solo hace efectivos premios de hasta 200 € en los kioskos ambulantes.
- La ONCE delega en los vendedores las costas de cualquier tipo de fraude.Si estafas 3 euros, el señor vendedor los tendrá que poner de su bolsillo. Debido a esto, si me entero que has usado esta información para estafar a trabajadores con dificultades, yo mismo te buscaré con un palo para crujirte la cabeza.
- El ÚNICO objetivo de este post es aprender la metodología que se puede emplear para obtener información de sistemas complejos y «opacos», como ya hablamos en otro post. Así como satisfacer la legítima curiosidad de aprender cómo funcionan las cosas que te rodean.
- Para obtener esta información no se ha comprometido ningún sistema o revelado secretos.Ningún animal sufrio daños tampoco.
Cuando te haces una idea de cómo funciona algo, también sabes dónde podría fallar…
Dentro video!
Nos levantamos un día como otro cualquiera, hacemos lo típico, vamos a comprar un rasca de la ONCE como sueles hacer y pun; se te enciende la bombilla de bajo consumo ( y poca luz ) y te preguntas cómo coño funciona el sistema que controla este tipo de lotería.
¿Por dónde se empieza? ¿A quien puedes preguntar? ¿De donde sacas la información? Bien, yo intentaré plasmar el método que uso para acercarme a este tipo de sistemas, en otras ocasiones me ha dado buen resultado asi que digamos que es una forma de «empezar».
No tengo ni idea de cómo se denominan este tipo de sistemas «complejos», si tienen algún nombre técnico dictado en algún master o así. Tampoco he éncontrado nada en concreto, y puede que tampoco haya una aproximación estandar para estas cosas así que yo os cuento mis paranoias, con mis términos inventados etc…Si alguien controla más del tema pues que plantee sus rectificaciones en los comentarios etc…
Yo los llamo «Sistemas Opacos», ¿ por qué ? porque soy un flipao. Por una sencilla razón, de acuerdo con Wikipedia la opacidad «Es una propiedad óptica de la materia, que tiene diversos grados y propiedades» y un sistema es «un conjunto de elementos dinámicamente relacionados formando una actividad para alcanzar un objetivo operando sobre datos, energía y/o materia para proveer información«.
Bajo esta definición, el que un tío
– te de un rasca
– tú lo rasques valga la redundancia
– se lo des para que a continuación lo pase por una máquina y te de dinerico o no
Es un sistema porque está compuesto de varios elementos interrelacionados que buscan un objetivo y operan sobre datos para obtenerlo: el boleto, la máquina, el señor…A su vez, es en cierta medida opaco porque hay algo a lo que tu no puedes llegar, ver o analizar pero que influye determinantemente en el resultado.
Así es que lo primero de todo es realizar una lista de los elementos importantes que componen el sistema, esta lista se irá completando a medida que vayamos ahondando en el conocimiento del mismo.
Lo siguiente es empezar a buscar toda la información necesaria en todos los ámbitos posibles.
Partimos de una observación básica previa, donde hemos apreciado que el TPV no tiene cables, que algunos de los quioscos de la ONCE son meras ventanillas sin más infraestructura por debajo. Esto es, no hay linea de teléfono cerca por lo que el TPV tiene que usar un método de conexión sin cables, que le permita estar siempre conectado y que presumíblemente se considere seguro.
Empezamos por la más obvia y vamos tirando del hilo, la página de la ONCE.
Allí nos encontramos con el «REGLAMENTO REGULADOR DEL JUEGO «LOTERÍA INSTANTÁNEA
DE BOLETOS DE LA ONCE»» que nos va a dar información interesante.
Artículo 2 bis. Terminales punto de venta.
El terminal punto de venta es cualquier terminal móvil o solución informática, debidamente homologado por la ONCE, que se ponga a disposición de los puntos de venta y que asegure la conexión en línea con el Sistema Central de Control de Juego de la ONCE. En caso de que sea necesario, los terminales puntos de venta estarán adaptados para su operación por personas invidentes o con otro tipo de discapacidades.
Junto con otras tareas administrativas, el terminal punto de venta se utilizará por los puntos de venta para la validación de los boletos premiados.
Bien, no está mal. Ahora ya sabemos que el TPV que usan tiene conexión directa con el Sistema Central de Juego. Además,es esta TPV la encargada de validar el boleto premiado mediante peticiones contra dicho Sistema. Blanco y en botella, juntando esta información con la que habiamos obtenido mediante observación directa tenemos que el TPV tiene que usar GPRS o 3G para conectarse con el sistema central. Necesitamos cerciorarnos y para ello tenemos que saber qué modelo y marca es ese TPV.
Realizando una busqueda en google por los TPVs nuevos de la ONCE encontramos un comunicado de prensa interesante : La ONCE lanza un sistema de venta de cupones a la carta Es del 2004, huele a GPRS pero seguimos…En el artículo encontramos lo siguiente.
El Terminal Punto de Venta (TPV) permite, mediante tecnología móvil de última generación, elegir terminaciones o números completos.
En el desarrollo de estos aparatos han intervenido, junto con la ONCE, Telefónica Móviles España, pionera a nivel mundial en redes de transmisión de datos; Gtech, líder mundial de sistemas de juego; e Ingenico, empresa número uno en ventas de TPV
Bingo, ya sabemos la marca que fabrica la TPV; Ingenico. Ahora buscamos el modelo, así que vamos a la web de Ingenico, damos un par de vueltas y vemos una que nos recuerda bastante «i8550»
Bien, vamos a buscar toda la información posible sobre el bicho, datasheets, manuales de usuario…
Datasheet: www.paravant.fi/pdf/i8550_esite.pdf
UserGuide: http://www.ingenico.co.uk/INGENICO_GALLERY_CONTENT/Documents/UnitedKingdom/UserGuides/userguide_i8550_ROHS_uk_DIV1174A.pdf
Perfecto, comprobamos que usa GPRS, que está especialmente optimizada para temas de loteria instantanea, ya que posee lector de códigos de barras 2D, e incluso tiene el motor text-to-speech disponible en castellano.Además, está certificada como dispositivo apto PCI PED, tiene procesador criptográfico, un sistema operativo multitarea y con separación de privilegios,etc, etc… Vamos que es un bicho seguro. Supongo.
Ok, podemos hacer un sencillo gráfico de la arquitectura de los kioskos.
Seguimos investigando sobre el funcionamiento del TPV. Ha llegado un punto en donde no tenemos más remedio que hacer «trabajo de campo», no tenemos un TPV para probar en casa, asi que hay que hacerlo fuera. Analizando la info después en casa, tranquílamente. Para eso nada mejor que grabar todo en video, algunos ejemplos:
¿Qué obtenemos de esta fase? una información muy, pero que muy importante: el flujo de ejecución del software. Analizando los videos, las pulsaciones, poniendo en situaciones raras al vendedor para probar todas las posibilidades (i.e «hola por favor, me compruebas si tiene algo pero no me lo cobres vale, que hago colección.» vendedor: «¬¬»)…tienes que echarle cara, no queda otra.Eso o le pides que instale radare en el TPV…
Junto con la información anteriormente recopilada,construimos este par de gráficos:
Flujo del Sistema desde un punto de vista global:
Desde el punto de vista del software del TPV
En este punto, tenemos un análisis bastante completo, dentro de nuestras posibilidades, del funcionamiento del TPV. Vamos al otro tema importante de nuestra lista: boletos,cupones…
En el «Reglamento de juego de la lotería instantanea» anterior nos encontramos el siguiente punto:
«Artículo 4. Fichero informático.
* 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.
* 4.2. El acceso a dicho fichero se realizará mediante un algoritmo propiedad de la empresa proveedora, impidiendo así cruzar la información con carácter previo al revelado del boleto por el concursante.
* 4.3. El fichero de códigos de identificación se tratará por la ONCE siguiendo criterios de seguridad y confidencialidad. Esta misma norma se exigirá a la empresa proveedora de los boletos, la cual custodiará una copia de cada fichero entregado. Además, la ONCE entregará otra copia de cada fichero a un fedatario público o a un tercero independiente, que se encargará de su custodia, al menos, hasta la fecha de finalización del producto, así como, en su caso, en aquellos supuestos a que hubiere lugar de conformidad con el presente Reglamento y la legislación aplicable.
* 4.4. Una vez cargado el fichero en el Sistema Central de Control de Juego de la ONCE, la Dirección General de la ONCE aplicará estrictas medidas de seguridad, de acuerdo con los estándares existentes en cada momento en el mercado.
»
Estamos viendo que la empresa recibe los RASCAS de una empresa proveedora: GTECH, como pudimos ver en el comunicado anterior. Esta empresa se dedica a generar este tipo de loterias y todo la infraestructura necesaria para su funcionamiento.
Nos fijamos en un punto importante «Características de los boletos»
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.
aiii que no es falsificable dice el paiooo! Seguimos leyendo:
3.2. 3.2. Todo boleto vendrá identificado por los siguientes códigos:
* Código de identificación: Combinación de 26 números que aparecerá en el reverso del boleto.
* Código Pin: combinación de 4 números que aparecerá en el anverso del boleto dentro del área de juego, y que junto con el código de identificación determinará si un boleto está premiado y el posible importe del premio.
* La unión de ambos códigos conforman el «código del boleto».
Venga, datos, que es lo que nos gusta. Vamos a identificar todos estos numericos y a «descifrar» el cóoooodigooo del booooletooooooo uyuyuyuyyyyyy
Lo primero es localizarlos en el RASCA:
Como véis, fácilmente identificable todo. El código bidimensional que es biunívoco (leeros el reglamento) aunque no lo especifican rápidamente descubrimos que es un formato standard PDF417.
.
Este es el código bidimensional que usa el TPV para verificar el boleto, en el caso de que esté dañado no se puede usar el de atras. Perdí un rasca de 2 pavos comprobándolo jeje. Vamos a decodificarlo y ver qué «esconde».
Mmm, parece que hay más de 26+4 números…
+ Un dígito al final de toda la serie, tenía pinta de checksum asi que era cuestión de probar los distintos tipos de algoritmos. Al final saqué que lo que usaban era un checksum SSCC-18, de los cuales los números «válidos» era el magic 00 + otro 0 de «Extension» + el RandomID (10 últimos números) + 4 números del PIN . Total que quedaría: [00] [0] [NNNNNNNNNN] [PPPP] = [C] donde C es el dígito de checksum SSCC-18.
y en total el «código del boleto» es [5]+[SERIE]+[LIBRO]+[BOLETO]+[RANDOMID]+[PIN]+[CHECKUM] = 31 números.
Así es que teniendo un RASCA valido y premiado, podemos generarnos cuantos códigos bidimensionales PDF417 queramos, que equivaldrían al RASCA premiado.Que sería lo mismo que fotocopiar el código, pero pudiendolo generar mediante un ordenador e imprimirlo en la calidad deseada, así como en el soporte que se quiera. La impresión del código bidimensional está hecha exprésamente para durar poco, se estropea al mínimo roce, lo que me hace pensar que es una medida de protección. Manuales de marketing de la ONCE por ahi «perdidos» por google demuestran que el principal objetivo es «picar» al cliente a que rasque allí el RASCA y pille otro más u otro producto con el premio recibido. Esto cuadraría con la rápida degradación de la impresión.
El poder generar «Códigos de Boleto» válidos o «potencialmente» válidos supone una violación de lo que en un principio el reglamento de la ONCE mantiene, que es su inviolabilidad y que no es falsificable. El único número «aleatorio» es el RANDOMID y el PIN, los otros números que componen el «Código del boleto» son secuenciales y corresponden a los boletos, series y libros según mi investigación.
ATAQUES
Ahora vamos con la parte «divertida». Ahora que ya sabemos cómo funciona el tema, vamos a ver cuales podrían ser sus puntos débiles.
ATAQUE #1 – BARRIDO DE «CÓDIGO DE BOLETO»
LEE UNA DESCRIPCIÓN MÁS DETALLADA DE ESTE ATAQUE AQUI: http://blog.48bits.com/2010/01/23/desarrollando-la-explicacion-del-ataque-1-sobre-los-rascas/
Esto es, generar todos los posibles RANDOMIDS + PINs e ir generando «códigos de boleto»
Tendríamos 10.000 millones de combinaciones para generar todos los IDs y 10.000 combinaciones para todos los PINs posibles. Más luego las combinaciones que se generen a partir de los otros componentes del «código del boleto». Aunque puedan parecer muchas combinaciones, no lo son con las máquinas de hoy en día.
En el caso de tener acceso local al «Sistema Central de Control de Juego de la Once», una persona podría averiguar qué numeros son los premiados antes de la revelación del propio boleto, mediante la emulación de las peticiones de las TPV.Aparéntemente, éstas están basadas en un protocolo sobre XML.
También podría realizarse mediante las propias TPVs, modificando el software. Lo que rompería la regla
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.
El éxito de estos ataques está supeditado a la seguridad interna tanto del software o Sistema Operativo, proporcionado por la empresa suministradora(GTECH) o del TPV respectivamente(Ingenico), como del «Sistema Central de Control Del Juego» (ONCE).
Una vez el atacante supiera los «códigos de boleto» premiados, «sólo» tendría que falsificar un RASCA para cobrar la cantidad premiada. Falsificar un RASCA no es muy dificil, por una serie de circunstancias:
+ Los rascas tienen una muesca en la esquina superior izquierda que sirve a los vendedores con dificultades visuales para orientarlo correctamente al colocarlo en la TPV. Esa es la única parte que el vendedor va a tocar del rasca. Una vez cobrado estos son destruidos al final de la jornada.
+ Sabemos cómo generar el código 2D PDF417 del boleto al completo
+ El código 2D PDF417 que identifica biunívocamente al boleto puede ser generado e imprimido de tal manera que es prácticamente imposible distinguirlo de uno normal. El TPV se lo comería con patatas.
Vamos yo no lo he hecho, pero lo he visto en mi mente.
ATAQUE #2- UNO PARA TODOS.
Repasad los gráficos de flujo que os puse antes. ¿Qué se os ocurre? Hay una pega en el flujo que sigue el software. Comprueba que el rasca es válido y está premiado e insta al vendedor a Pagar antes de pulsar «Validar». Y si «Validar» falla en la conexión no le insta a «correr detrás del fulano del rasca, que nos la está colando!».
Asi que, qué pasaría si evitáramos la señal de «Validar», la cual bloquea el uso del RASCA ya que suponemos que lo marca en el fichero de control como PAGADO. Durante el tiempo que la bloquearamos, podríamos usar un RASCA duplicado a partir del premiado en cualquier otro quiosco y así sucesívamente, ya que el rasca seguiría siendo válido hasta no recibir una señal de «Validado».
¿Cómo hacerlo? Mediante un Jammer de GSM que evite que el TPV use el GPRS después de haber recibido la señal válida de que el RASCA está premiado.
Este ataque está supeditado al posible bloqueo sobre un RASCA al hacer una petición de comprobación y no terminarla. Es decir, al recibir una petición sobre el RASCA, el sistema no admitiría más hasta que la que se ha recibido sea resuelta de un modo u otro. Mucho me temo, por algunas situaciones forzadas que he probado, que ese bloqueo no existe o tiene un tiempo de existencia limitado.
Mejor se entiende con unos gráficos.
Recuerda que el uso de este tipo de dispositivos esta terminantemente prohibido y te pueden dar una colleja gorda. Yo no los uso tampoco.
ANEXO: EL CUPÓN. PON PON.
Pues eso…
Hay más cosillas, pero eso ya lo veremos algún día si tal…
CONCLUSIONES
En el caso de que todo lo que digo aquí fuera cierto:
* Es posible saber los boletos que están premiados antes de ser revelados por el usuario, lo que rompería la validez del juego de acuerdo con las reglas aprobadas.
* Es posible mediante el uso de dispositivos Jammer influir en el flujo del software.
* Es posible que me tenga que exiliar a Corea del Norte.