Programa para hackear billetes de trenes de cercanías. Portal de información de seguridad. Cómo se bloquean los tickets incorrectos y se procesan los correctos

Entradas de abono único y de precio completo para regular y un tren expreso de lujo sin asiento específico , incluidos los trenes Sputnik y REX, por regla general, se pueden comprar en cualquier taquilla suburbana del transportista en la estación de tren (estación o parada) de salida, o en una terminal de autoservicio. Generalmente es posible comprar un billete segundos antes de la salida del tren; el número de billetes es ilimitado.

Los billetes de otras estaciones no se venden en todas las estaciones. En la región de Moscú, la venta de billetes suele realizarse únicamente desde esta estación.

Al comprar un boleto, debe seleccionar en la terminal (o informar al cajero) la categoría del tren: "pasajero" para un tren regular o "rápido" para una ambulancia. Los terminales de algunos operadores pueden decir "Sputnik", "MOS-BARYBINO" o algo similar en lugar de la palabra "rápido".

La venta de billetes no se realiza a través de Internet en el sitio web (a excepción de los trenes eléctricos en los tramos Tuapse - Adler - Rosa Khutor, Imereti Resort, Sputnikov Moscú - Mytishchi, Moscú - Pushkino, Moscú - Bolshevo - billetes para estos trenes eléctricos se pueden comprar en el sitio web de JSC "Russian Railways", así como algunos otros trenes eléctricos).

Desde 2016, funciona la aplicación móvil MT PPK "Boleto suburbano" (dirección Leningrado del centro de Moscú). En San Petersburgo y otras regiones, puede comprar un billete a través de la aplicación móvil Prigorod. Como regla general, basta con un teléfono inteligente muy común y corriente.

Las entradas con descuento, por regla general, solo se pueden comprar en taquilla. En varias regiones (por ejemplo, en Moscú y la región), en algunas terminales es posible emitir un billete con descuento (incluso sin efectivo) en un medio electrónico personalizado (por ejemplo, una tarjeta social moscovita).

Como regla general, el billete se puede comprar no sólo el día del viaje, sino también con antelación. Como regla general, de 7 a 10 días para un boleto único y de 30 días para una suscripción, según la dirección y la región. Las preventas se realizan tanto en taquilla como en la mayoría de terminales. No hay tarifa de preventa en la red de Ferrocarriles Rusos.

El pago del billete se realiza en efectivo, también es posible pagar con tarjeta de crédito en todas las estaciones de Moscú y en las principales paradas de Moscú y la región, así como en varias estaciones de otras regiones. En Moscú y la región, un billete único (como un abono de temporada) se puede registrar en una tarjeta Troika para no perder accidentalmente un billete de papel.

Actualmente, todas las estaciones de tren de Moscú (o cerca de las estaciones de tren) tienen una gran cantidad de terminales, por lo que comprar un boleto, incluso en las horas pico, por regla general, no tomará más de un par de minutos, con la excepción de períodos raros ( por ejemplo, el primer día hábil del año).

En algunas estaciones intermedias (principalmente aquellas con un tráfico medio de pasajeros, donde aún no se han instalado terminales de autoservicio), pueden producirse colas de mayor duración durante las horas punta.

Si no hay taquillas ni terminales en la estación de salida (punto de parada), se puede comprar un billete directamente en el tren, o en la taquilla o terminal una vez finalizado el viaje sin cargos adicionales. Si hay terminales de impresión de cupones en el punto de parada (que confirman el hecho de aterrizar en un punto de parada con una taquilla que no funciona), el pasajero debe recibir un billete de ellas. Estas terminales están disponibles sólo en algunas rutas del PPK Central.

Si compra un billete de tren en una estación (parada) que tiene taquilla suburbana, es posible que se le cobre al pasajero una tarifa adicional. El importe de la tasa depende de la categoría del tren y del transportista. En caso de negativa a comprar un billete de tren con el pago de la tasa, los empleados del transportista tienen derecho a imponer una multa.

En los trenes de JSC "Central PPK" la tarifa es: 100 rublos - en el tren, 200 rublos - en la taquilla después del viaje.

En los trenes de JSC North-West PPK la tarifa es de 80 rublos, y en los trenes PPK Moscú-Tverskaya, de 100 rublos.

En los casos en que la taquilla de la estación de salida esté cerrada debido al horario de atención y no haya terminales, la tarifa, por regla general, no se cobra.

Trenes eléctricos con asientos específicos proporcionados.

Entradas trenes expresos interregionales se puede adquirir en una taquilla especializada en billetes de cercanías o a través de Internet (incluso en nuestro sitio web en la sección "Billetes de tren"), el número de entradas suele ser limitado(Algunos trenes de JSC Central PPK operan un sistema de venta de billetes dobles). Al comprar un boleto, deberá presentar un documento de identificación. Los boletos con descuento no se venden en línea.

Las ventas se realizan para un tren específico. La venta de billetes puede detenerse entre 5 y 30 minutos o más antes de la salida del tren (dependiendo de la estación, lo más conveniente es comprar los billetes online con antelación).

Billetes para trenes de larga distancia. Martín y otros trenes eléctricos de larga distancia con numeración 800 se pueden adquirir en las taquillas de JSC FPC, en terminales de autoservicio o a través de Internet (incluido en nuestro sitio web), el número de entradas es limitado. Al comprar un boleto, deberá presentar un documento de identificación. Los boletos con descuento no se venden en línea.

Al comprar un billete para asientos plegables en los trenes de alta velocidad Lastochka, normalmente se ofrece un descuento.

Al comprar un billete para trenes con asientos asignados a través de Internet, en la mayoría de los casos está disponible el registro electrónico. Es gratis y elimina la necesidad de ir a la taquilla: simplemente imprima la tarjeta de embarque en la impresora de su casa y preséntela al abordar junto con el documento especificado al comprar el boleto. Sin embargo, si el pasajero decide recibir un billete en blanco en la taquilla o terminal y/o cancelar el check-in electrónico, deberá presentar el billete en blanco al abordar.

Aeroexpress

Entradas para trenes aeroexpress Se puede adquirir en la web de la empresa. Al comprar un billete en la taquilla de la estación, el coste de un billete de clase estándar es mayor. El pago sin contacto es posible en los torniquetes (incluso con tarjeta Troika) al precio de la entrada en taquilla. Recomendamos prestar atención a las tarifas para grupos: puede ahorrar mucho en ellas.

Las entradas con descuento se pueden adquirir en taquilla. Además de los documentos que acrediten el beneficio, es necesario disponer de un documento de identidad. Una tarjeta social no es suficiente para obtener descuentos en viajes, porque... no es un documento de identidad.

Todo ruso que haya viajado en tren al menos una vez conoce con certeza la existencia de la compañía "Russian Railways", que es un monopolista casi total en este mercado. Los precios de los planes tarifarios aumentan cada año, pero la calidad del servicio sigue dejando mucho que desear. Hoy, la asociación rusa de hackers Che Burashka anunció el descubrimiento de una brecha en el sistema de venta de billetes de trenes eléctricos, es decir, los trenes eléctricos. Los piratas informáticos prometen informar a todos los rusos sobre una forma de comprar billetes gratis si Russian Railways no cumple sus condiciones.

Los piratas informáticos compraron varios torniquetes en el mercado secundario, junto con toda la documentación y el software. Además, compraron varias docenas de billetes en la taquilla de Russian Railways, tras lo cual comenzaron a estudiar el principio de funcionamiento del sistema de seguridad. Unos días más tarde, lograron descubrir una brecha en el sistema de seguridad, que permite viajar en todos los trenes eléctricos en Rusia de forma totalmente gratuita. Al final resultó que, el código QR de seguridad de todos los billetes se genera utilizando un solo algoritmo, que puede ser fácilmente engañado, dicen los piratas informáticos.

En el algoritmo para generar un código QR en todos los billetes sólo existe una única variable, que es común a todos los trenes. Cada día se carga manualmente en POS y terminales portátiles. Según los piratas informáticos, para viajar en tren gratis en Rusia, solo es necesario conocer una variable, y para ello es necesario comprar un solo boleto (para todo el país), después de lo cual todos los rusos podrán viajar gratis. por solo un día.

Los piratas informáticos han creado una aplicación falsa Suburban Ticket que permite comprar billetes de tren directamente en cualquier teléfono inteligente. Probaron su software y llegaron a la conclusión de que realmente permite viajar en cualquier tren eléctrico de forma totalmente gratuita. El billete funciona perfectamente, pero al comprobarlo los controladores pueden llegar a la conclusión de que no hay datos al respecto en la base de datos de Russian Railways, lo que puede generar posibles problemas. Sin embargo, esta "característica" es fácil de sortear.

Actualmente se encuentra en las últimas fases de desarrollo una aplicación que permite viajar en tren de forma gratuita. Los piratas informáticos exigen que la empresa Microtech, que creó el sistema de venta de billetes para los ferrocarriles rusos, admita públicamente la presencia de una vulnerabilidad peligrosa y la solucione (para esto se necesitan millones de rublos). Si no hace esto y ya se ha negado a contactar a los piratas informáticos de alguna manera, entonces el grupo Che Burashka publicará en la red su software patentado, que permitirá a los rusos utilizar el transporte eléctrico de forma gratuita.

Hasta el 10 de marzo inclusive, todos tienen una oportunidad única de utilizar Xiaomi Mi Band 3, dedicando solo 2 minutos de su tiempo personal a ella.

Únase a nosotros en

No estamos de acuerdo con la forma en que se presentó esta historia en la prensa y en los tribunales. Creemos que la principal fuente de los problemas de Kazmin y Putin es la renuencia del desarrollador de software y hardware de torniquete a reconocer y eliminar las vulnerabilidades en sus desarrollos.

Como sabemos, incluso antes de que se abriera la causa penal, Denis Kazmin se puso en contacto con Microtech para proponerle cooperación. En todo el mundo se acepta que si un especialista independiente encuentra una vulnerabilidad en el software y la informa al desarrollador, éste al menos elimina esta vulnerabilidad. Las empresas más reputadas pagan dinero. Pero Microtech ignoró la carta de Kazmin y, después de un tiempo, se abrió una causa penal. Sospechamos que esta coincidencia no es casual.

No estamos del todo seguros de si la policía actuó siguiendo un aviso de Microtech o encontró a nuestros colegas de investigación de seguridad por su cuenta, pero creemos que la causa de sus problemas fue precisamente la posición del desarrollador, que ignora los problemas obvios con la seguridad de su propios sistemas.

La mayor parte del problema con el software y los equipos de Microtech, identificado por Kazmin y, independientemente de él, por otros especialistas, no ha sido solucionado.

Los errores aún no se han corregido y hacen que el sistema de tickets sea vulnerable a los atacantes. Cualquiera puede imprimir boletos y viajar gratis.

Creemos que Microtech es el peor ejemplo de un monopolista que no quiere admitir sus errores y distribuye software que no es seguro para los usuarios.

Lamentablemente, tanto las autoridades oficiales como los periodistas no siempre ahondan en las sutilezas de lo que está sucediendo.

Podemos recordar, como ejemplo negativo, la historia de TroykaDumper.

Igor Shevtsov, que publicó detalles sobre el hackeo de la tarjeta de la Troika de Moscú, en nuestra opinión, actuó como un hacker ético. Por supuesto, debería haberse puesto en contacto primero con los propietarios del sistema. Pero los propios propietarios actuaron de forma constructiva y solucionaron el problema, pidiendo ayuda a Igor. La versión del programa que publicó todavía está disponible en github, pero es completamente inútil para fines gratuitos.

Mucho peor que la reacción de los representantes de la Troika fue la reacción de los periodistas que declararon a Shevtsov un estafador, así como de los representantes de la fiscalía de alguna ciudad completamente extraña, lejos de Moscú, que exigieron que se eliminara de Internet la información de investigación sobre la tecnología de piratería. .

Como resultado, la información sobre la investigación de Shevtsov fue eliminada de Habr y su perfil fue bloqueado. Los propietarios de la plataforma fueron a lo seguro, nadie exigió que se bloqueara su perfil, pero no querían los problemas que ellos mismos habían inventado con las autoridades.

Pensamos mucho sobre cómo podríamos presentar adecuadamente la información que encontramos para el acceso público. Cada uno de nosotros es un profesional en nuestro campo. Combinamos con éxito los estudios en una de las universidades de Moscú con el trabajo a tiempo completo y no nos gustaría meternos en problemas sólo porque revelamos información sobre la negligencia del fabricante del equipo y del software.

Por este motivo, no publicaremos esta información en Habré, aunque inicialmente la preparamos específicamente para este sitio.

Además, a diferencia de la situación de la Troika, es evidente que Microtech no va a corregir sus errores por iniciativa propia.

Decidimos publicar el texto del artículo, preparado originalmente para Habr, para acceso gratuito en otros recursos y distribuir un enlace al mismo en las redes sociales.

Instamos a Microtech a reconocer las vulnerabilidades en sus sistemas y tomar medidas de forma independiente para corregirlas.

Por ahora publicamos una descripción incompleta de la técnica de piratería. Pero si no vemos que las vulnerabilidades se solucionen pronto, al menos en dos o tres meses, llenaremos los vacíos y divulgaremos la información completa al público.

La tecnología para piratear billetes de trenes de cercanías es mucho más sencilla que los problemas que Shevtsov descubrió con las tarjetas de la Troika. Para imprimir tickets de trabajo, todo lo que necesitas es un sencillo programa para Windows o Linux, una impresora láser y unas tijeras.

Instamos al tribunal a reconsiderar el caso de Kazmin y Putin. El problema no es lo que hicieron, sino que Microtech no quiere admitir la inseguridad de sus torniquetes y su software. Y las pérdidas las sufrirán las empresas ferroviarias que se han convertido en sus clientes.

En Internet no encontrará rastros de las actividades anteriores del grupo Che Burashka.

No somos piratas informáticos y este es un apodo único que utilizamos sólo para un proyecto específico.

2. Descripción de la vulnerabilidad.

Investigación sobre la seguridad de los torniquetes de Microtech

Fondo

La empresa Microtech fabrica un sistema que proporciona acceso a los andenes de trenes de cercanías, así como a sistemas de distribución de billetes.

Como está escrito en el sitio web de la empresa, todo esto se llama

Sistema automatizado de pago, control y contabilidad de viajes en trenes eléctricos suburbanos ASOKUPE.

En la región de Moscú es compatible con las tarjetas urbanas Troika, que se utilizan para viajar en transporte público. Pasamos por los torniquetes de Microtech cada vez que vamos a nuestro instituto de origen y regresamos a Moscú.

Hace dos años, nosotros, tres amigos estudiantes, decidimos investigar qué tan fiable es el sistema que restringe el paso de las “liebres” en los trenes de cercanías.

Queríamos ser hackers éticos, no íbamos a vender entradas, pero preferiríamos recibir una bonificación de las empresas por demostrar vulnerabilidades.

Decidimos que cualquier método legal para analizar el sistema atacado es adecuado para simular las acciones de los atacantes y que no se deben utilizar ataques directos ni efectos destructivos en los equipos Microtech instalados por los trabajadores ferroviarios. No queremos violar la ley y no lo hicimos.

Aunque leyendo foros especializados encontramos evidencia de que piratas informáticos desconocidos para nosotros estaban obteniendo acceso a la red de la empresa, no investigamos este problema. Sin embargo, nos hemos permitido formas leves de ingeniería social.

Fuimos a exposiciones especializadas y hicimos preguntas. Esto fue muy útil, al igual que el material de formación para los empleados que nos donaron los trabajadores ferroviarios.

Llamamos a la propia empresa y hablamos con sus especialistas técnicos. Inútil en términos de detalles técnicos, pero inesperadamente aprendimos muchas cosas interesantes sobre las relaciones dentro de este equipo.

Una vez hablamos por teléfono con sus superiores. La comunicación fue decepcionante. Simplemente no quisieron escucharnos, aunque en ese momento ni siquiera les pedimos dinero, sino que les ofrecimos realizar la investigación de forma gratuita.

Las verdaderas fuentes de información resultaron ser los propios torniquetes. Realmente no entendemos con qué tipo de audiencia de consumidores contaban quienes los vendieron en Avito, pero compramos dispositivos usados ​​y los usamos durante algún tiempo. Se vendieron junto con cierta documentación que nos entregaron en un disquete. La documentación no fue menos útil que los propios dispositivos. Luego hubo que llevar los tres torniquetes comprados a la basura, ya que ocupaban la mitad de la habitación.

No menos útiles fueron nuestros estudios bastante sistemáticos de los propios billetes, que se venden en las taquillas de los suburbios.

A lo largo de nuestra vida, probablemente hemos comprado cientos de billetes de este tipo, pero en su mayoría son iguales.

Para efectos del estudio, tuvimos que comprar más de 50 entradas mediante un sistema específico.

¿Cómo funciona el sistema de distribución de entradas?

Microtech suministra a los trabajadores ferroviarios puestos de trabajo de caja y software para ellos.

Aquí hay una imagen del sitio web del fabricante. Contiene la unidad del sistema, el monitor y el equipo periférico. También hay una impresora especial para imprimir billetes.

Su aspecto según la opinión de los diseñadores de Microtech.

En realidad, por supuesto, todo parece un poco diferente en diferentes lugares. Miramos en diferentes taquillas y vimos que la composición del equipo suministrado cambiaba en diferentes direcciones del ferrocarril. Probablemente se trataba de lotes diferentes, pero el software era el mismo.

Cita del sitio web del fabricante: MKTF: terminal de efectivo multifuncional, un dispositivo fabricado a partir de una computadora personal. Cumple con los requisitos de 54FZ. Diseñado para el registro y verificación de documentos de viaje (con código de barras y en BSK). Puede funcionar en modo fuera de línea y en línea.

Palabra autónomo en el texto citado lo destacamos nosotros mismos. Esto es importante.

Más adelante descubriremos que este es uno de los puntos clave que hace que el sistema sea vulnerable a intenciones maliciosas.

Por ahora, señalemos que todo el sistema de Microtech se basa en el hecho de que sus dispositivos son capaces de funcionar en modo autónomo. Al parecer, para el año 1990, cuando, según información del sitio web, se fundó esta empresa, y para épocas anteriores, cuando era una oficina de diseño departamental, esto fue racional y progresista.

Pero la cuestión de que alguien pudiera falsificar códigos de barras en un billete claramente no se planteó en aquellos años. Aunque sólo fuera porque entonces no había códigos de barras y la validez de los billetes se comprobaba a través de los ojos de controladores humanos.

Los trabajadores ferroviarios sólo pensaron en bloquear completamente el acceso a los andenes de los trenes eléctricos con torniquetes en los años 90, cuando finalmente se cansaron de los aprovechados.

Así que aquí está. En cada taquilla específica de ASOKUPE, las configuraciones del software indican el sentido del ferrocarril al que está asignada esta taquilla y el número único de la taquilla.

Por supuesto, existen configuraciones adicionales, pero, lo más importante, cada caja registradora, sin acceder a un servidor centralizado, puede generar un boleto válido.

Para ser precisos, un código de barras válido en el billete.

La información se puede codificar de dos maneras.

Viejo - Intercalado 2 de 5

Aquí hay una descripción:

El código de línea de Interleaved 2 de 5 consiste en una secuencia de franjas verticales blancas y negras alternas, que comienzan y terminan en negro. En este código, hay dos tipos de franjas: anchas (lógico “1”) y estrechas (lógico “0”). Intercalado 2 de 5 asume la presencia de símbolos de inicio y parada. El carácter de inicio está codificado como "0000", el carácter de parada está codificado como "100". Entre estos dos símbolos hay información útil.

El código debe su nombre a que la información se codifica mediante la disposición de dos franjas anchas entre cinco. En base a esto, encontramos que se pueden codificar 10 valores diferentes con dicho bloque, es decir, todos los números son del 0 al 9. Intercalado (intercalado - inglés) porque las franjas blancas y negras se consideran por separado.

En posiciones impares (contando de izquierda a derecha), los números se representan mediante trazos, y en posiciones pares, mediante intervalos (alternancia). Al codificar datos con un número impar de caracteres, se escribe un "0" delante.

En el código de barras Intercalado 2 de 5, se recomienda utilizar un carácter de control para mejorar la confiabilidad de la lectura. La señal de control se encuentra inmediatamente después de las señales de información antes de la señal de Stop. Si la adición de un carácter de verificación hace que el número de caracteres en los datos codificados sea impar, se agrega un "0" delante de la línea de código inmediatamente después del carácter "Inicio".

Y nuevo, bidimensional. Código azteca:

Las entradas con él comenzaron a aparecer a finales de 2015. Aún no está claro si está previsto un reemplazo completo o si se trata sólo de un experimento de compatibilidad con la aplicación móvil de Microtech.

Pero esto es un poco mejor. Intercalado 2 de 5, parece haber sido encontrado por casualidad por los desarrolladores del sistema, Aztec cuenta con el apoyo de muchas empresas ferroviarias de todo el mundo.

Sea como fuere, la composición de la información codificada por ambos métodos es la misma.

¿Qué más hay?

Por ejemplo, existe un dispositivo de este tipo.

Nuevamente, imagen y texto del sitio web de Microtech:

PKTF es un terminal de efectivo portátil, un dispositivo fabricado a partir de soluciones de microprocesadores especializados. Cumple con los requisitos de 54FZ. Incluye módulos de impresión, lectura de códigos de barras y BSK, y dispone de compartimento para instalación de FN. Proporciona impresión y verificación de documentos de viaje. Puede funcionar tanto de forma autónoma como en modo de intercambio de datos con un sistema externo.

El terminal es un desarrollo independiente de Microtech, pero, por supuesto, está ensamblado a partir de componentes de terceros fabricantes. Compramos dos en diferentes momentos.

Estas terminales ahora son utilizadas principalmente por inspectores de billetes que están dispuestos a vender (des) amablemente un billete a un pasajero si de repente se olvida de comprarlo o lo pierde.

A pesar de que se compraron en diferentes momentos y, aparentemente, se utilizaron en diferentes rutas, permiten consultar igualmente bien los billetes adquiridos en cualquier ruta.

Esto nos brinda una comprensión completa de los límites de seguridad que proporciona ASOKUPE. Los códigos de barras contienen cierta información de control, pero se pueden verificar con un dispositivo bastante simple, el método de verificación no cambia durante mucho tiempo, su parte variable es vulnerable y el algoritmo para reemplazarlo es bastante simple.

Más detalles a continuación.

¿Cómo funciona el control de acceso a la plataforma?

El control del acceso a la plataforma es bastante banal.


En los torniquetes se instalan dos lectores. Uno es un escáner de billetes con código de barras y el segundo es un lector contactless de todo tipo de billetes contactless, que funciona mediante protocolo Mifare. Los escáneres los suministran otros fabricantes (diferentes) y Microtech parece haber desarrollado el módulo lector de forma independiente.

La mecánica del torniquete y los lectores están unidos por un bloque con la misteriosa abreviatura UKPD. También es un módulo de control para el torniquete y los dispositivos de entrada de datos.

Toda la "inteligencia" del sistema se concentra en el controlador, que forma parte del UKPD.

Se controla externamente mediante la conexión a través de la interfaz RS-485.

Cuando un pasajero lleva el billete al escáner, comprobar el código de barras se reduce básicamente a dos pasos bastante sencillos:

  • UKPD comprueba la validez de los datos codificados en el código de barras. Se comprueban los datos de las zonas de ruta final e inicial, el punto en el que está instalado el torniquete, la fecha del viaje, algunos datos de control… y listo.

  • La policía del Reino Unido comprueba la ausencia de una multa en la lista de detenidos.

    Aquí hay que decir que la lista de paradas no se descarga de forma centralizada, se descarga en las estaciones a través de un servicio interno. red y luego se carga en cada grupo de torniquetes por separado, a través de un concentrador al que se conectan los torniquetes a través de una interfaz RS-485.

  • La lista de parada en sí se parece a esto, nada complicado:

    2222333390;20/10/2015;40

    2118110622;20/10/2015;40

    668690750;20/10/2015;40

    84545402;20/10/2015;40

    187342702;20/10/2015;40

    187345542;20/10/2015;40

    87534582;20/10/2015;40

    2715435894;20/10/2015;40

    354345614;20/10/2015;17

    2710234378;20/10/2015;40

    1311398318;20/10/2015;40

    1242467662;20/10/2015;40

    1236551358;20/10/2015;40

    1576567678;20/10/2015;50

    El primer campo de la línea es el número del ticket, el segundo es la fecha de inicio del bloqueo y el último es el código del motivo del bloqueo.

    Las listas de exclusión normalmente solo se reponen, por lo que cuanto más avanzan, más fuertes se vuelven. Quizás una vez cada año o dos se limpien de registros completamente antiguos, no lo hemos comprobado.

    Para mantener la confidencialidad, todas las similitudes entre los números de tarjetas y los reales deben considerarse ficción.

    No teníamos un concentrador, pero no lo necesitábamos para los propósitos de nuestra investigación. Por el motivo de que los billetes en papel no están incluidos en él. Sólo electrónico. Es decir, para los billetes en papel sólo funciona la fase 1 de verificación.

    Nos ha parecido interesante la lista de motivos por los que una multa podría estar en la lista de paradas, por lo que no nos negaremos el placer de incluirla en nuestro informe.

    Extrajimos esta tabla del mismo disquete mágico y pensamos durante mucho tiempo en qué es “la partida del propietario” y quién informa a los trabajadores ferroviarios sobre el arresto del propietario de la tarjeta.

    No decidieron nada y continuaron investigando.

    ¿Cómo funciona un billete en papel?

    La información sobre el algoritmo para generar códigos de barras no se proporciona en la documentación de Microtech. Pudimos recuperar estos datos nosotros mismos, pero no estamos completamente seguros de que estén completos.

    Aquí está la lista:

    1) Estación de salida (código de estación, código del sistema Express truncado)

    2) Estación de destino (código de estación, sistema Express recortado)

    Express es un sistema de venta de billetes para trenes de larga distancia que se utiliza desde hace muchos años en los ferrocarriles rusos y, en su día, soviéticos. Cada estación en este sistema tiene su propia identificación numérica, pero Microtech no codifica estas identificaciones por completo, sino que corta varios dígitos iniciales.

    3) Dígito de finalidad desconocida. Creemos que este es un tipo de tren. El billete fotografiado muestra el tipo de "pasajero" del tren.

    4) Dígito de propósito desconocido

    5) Número del sistema de caja registradora que generó el ticket (5 dígitos)

    6) ID del ticket (4 dígitos) Los ID del ticket no son únicos y parecen generarse en una fila.

    Tenga en cuenta: ahorros poderosos. En lugar de 10 dígitos del número del billete electrónico, sólo se utilizan 4. ¡Resultó innecesario hasta 6 dígitos!

    7) Fecha de emisión del billete

    8), 9) – Dos números más misteriosos

    10) Información de control

    Como puede ver, aquí todo es bastante simple y escribir un programa que genere el código de barras necesario no es difícil.

    Además de trabajar con tarjetas Troika, los equipos de Microtech también pueden utilizar su propio formato de tarjetas electrónicas, pero no nos molestamos en abordarlo: ¿por qué, si hay códigos de barras?

    Cómo funciona el torniquete, o más precisamente, la unidad de la policía del Reino Unido

    La unidad de control del torniquete UKPD mencionada anteriormente, así como el lector sin contacto, se ensamblan a partir de los componentes más estándar de fabricantes conocidos. Todo el know-how de la empresa Microtech es el firmware de los controladores, escrito, al parecer, en ensamblador. Este pequeño fragmento de código es todo el secreto de la tecnología del monopolista ferroviario.

    Nos enfrentamos a la pregunta de si es necesario preservar, teniendo en cuenta la misma troika y una fórmula regional similar, todas estas soluciones heredadas.

    Por supuesto, es más fácil imprimir billetes en papel, pero no te importan los árboles.

    Cómo se bloquean los tickets incorrectos y se procesan los correctos

    Se bloquean si los datos de verificación no coinciden, la fecha es incorrecta y si las estaciones indicadas en el boleto no corresponden al ramal en el que se encuentra el torniquete. Y por último, si el número de taquilla no coincide con el número de la estación de salida donde debe ubicarse.

    Pero la información sobre un billete malo nunca se transmite a ninguna parte. Bueno, de hecho, guardar información sobre el número de un billete falso, si este número tiene solo 4 dígitos, no tiene ningún sentido.

    Los informes sobre los pasajes se acumulan en el llamado archivo Z: información de informes que se puede descargar desde el torniquete según los resultados del día.

    Los expedientes Z luego deben ser transferidos a la oficina de impuestos, y tal vez vayan a otros lugares que estén muy interesados ​​en el movimiento de pasajeros.

    ¿Cómo determina un torniquete si un billete es bueno o malo?

    Al principio, esperábamos que el equipo de Microtech generara algún tipo de hash criptográficamente fuerte, basado en el tiempo de generación del ticket y otra información importante.

    Entonces, por supuesto, conociendo la clave secreta para generar el código de barras, sería posible generar e imprimir un número arbitrario de billetes válidos que proporcionen el pasaje.

    Se podría intentar calcular la clave usando la tecnología de las “tablas arcoíris”; para ello, basta con analizar los códigos de barras de entre 10 y 20 billetes válidos y luego realizar pruebas no tan complicadas.

    Este cálculo no requeriría una potencia de equipo exorbitante, especialmente porque en Internet existen más de uno o dos servicios en línea para acceder a las "mesas arcoíris".

    Éramos muy ingenuos.

    Microtech no ha hecho nada serio para proteger la información del código de barras.

    El código de barras está protegido por una suma de verificación primitiva; para realizar ingeniería inversa, necesitamos gastar alrededor de un día y 6 boletos usados.

    Absolutamente todos los ICTF y PCTF que probamos pueden verificar la validez de cualquier boleto. ¡Esto significa que el secreto a partir del cual se genera la información de control en el código de barras es siempre y en todas partes el mismo!

    Bueno, casi.

    De hecho, tiene una protección “muy, muy fuerte”. En forma de pieza variable, que se carga de forma centralizada en cajas registradoras y PCTF portátiles una vez al día.

    Los PCTF se "programan" desde una computadora y cada PCTF debe conectarse con un cable especial. Un trabajo aburrido.

    Desafortunadamente para la empresa Microtech, el número de control válido en un día determinado es muy fácil de calcular teniendo en la mano un billete usado.

    Estamos de acuerdo en que esto reduce un poco la efectividad de las acciones de un atacante hipotético: correr de un lado a otro desde los torniquetes hasta la impresora y viceversa es aburrido. Pero esto no puede considerarse una protección importante, ya que se desmorona tan pronto como algunos entusiastas empiezan a informar a otros sobre este número de control secreto. Puede, por ejemplo, crear un canal o sitio web secreto de Telegram.

    O puedes viajar en un sentido, al trabajo, por dinero, y en sentido contrario, a casa, gratis.

    Es más divertido para los cansados ​​​​de camino a casa.

    Sin embargo, el progreso tecnológico no se detiene y, de hecho, la empresa Microtech casi ya ha solucionado este problema de los aprovechados.

    ¿Por qué todo esto funciona mal y cómo se estropeará por completo?

    Por supuesto, esta protección de alguna manera funciona. Aún no.

    Hasta el primer perezoso que, en lugar de un programa de Windows para imprimir tickets que contiene un troyano en su interior, como en la imagen, publicará los textos fuente de una utilidad tan útil en github y hará algo con este número de verificación secreto.

    Encontramos varios programas de este tipo en Internet, probamos uno: imprime los billetes correctos y con ellos te permiten viajar en trenes eléctricos.

    Otro factor asociado con la pereza es que un programa correctamente escrito para imprimir billetes de tren debe tener en cuenta la fecha y contener una lista completa de las estaciones entre las que es válido el billete.

    ¿Qué tan seguro es utilizar un billete autoimpreso?

    Es muy seguro, ninguno de los controladores que se encuentran junto a los torniquetes comprueba si lo imprimiste tú mismo y lo cortaste con tijeras, o si es real.

    Por supuesto, dicho billete no se puede utilizar con los controladores dentro del tren.

    Pero aquí también nos ayudó la amable empresa Microtech.

    La aplicación permite generar un código de barras azteca bidimensional en la pantalla del teléfono inteligente y mostrarlo a los inspectores para que puedan verificarlo mediante PCTF.

    Esto significa que una vez que se implemente el soporte para estos códigos de barras bidimensionales en todos los torniquetes y en todas las direcciones del ferrocarril, será posible crear fácilmente la misma aplicación que generará exactamente los mismos códigos de barras, pero solo sin pago.

    Aplicación lanzada por Microtech billete suburbano maravilloso en muchos sentidos.

    Por ejemplo, obtener 3/4 de las críticas negativas de los usuarios es algo propio de una aplicación tan masiva: tenías que poder hacerlo.

    Nuestra propia nota. Parece que los desarrolladores aún no saben nada sobre Android 7.

    Pero lo principal para nosotros es que existe y funciona.

    No es nada difícil para nosotros ni para cualquiera que quiera reproducir esta imagen en su aplicación.

    Maravilloso, ¿no? Nos preparamos de antemano y escribimos un prototipo en Java.

    Desafortunadamente, no lo hicimos para iPhone. Pero, sin embargo, los programadores milagrosos de Microtech iOS no han podido dominarlo desde hace dos años, por lo que simplemente mantenemos el listón establecido.

    Sí, por cierto. Y aquí está la solución prometida al número de control. Hemos incorporado en el prototipo la capacidad de identificarlo leyendo el código de barras de cualquier billete que recoja del suelo y fotografíe con la cámara de su teléfono.

    ¿Qué podrían hacer los desarrolladores de sistemas de tickets?

    Para fortalecer la seguridad del sistema y combatir a los estafadores, como mínimo, tiene sentido abandonar el tipo antiguo de códigos de barras y cambiar el formato por uno nuevo, incluido algún tipo de hash criptográfico confiable, vinculado con un secreto al número. de la estación específica en la que se imprimió el billete.

    La potencia de los microcontroladores modernos es suficiente para calcularlo rápidamente, y la memoria de los controladores modernos es suficiente para almacenar secretos separados de diferentes estaciones. Allí existe la infraestructura para difundir nuevos secretos; todas las estaciones ferroviarias modernas están ahora conectadas por una red de servicios. O varias redes.

    ¿Qué queremos y qué haremos?

    Exigimos que Microtech reconozca públicamente el hecho de que suministró equipos y software vulnerables, así como el hecho de que engañó deliberadamente a sus clientes sobre la confiabilidad de los esquemas de seguridad de la información que utilizó.

    Exigimos que Microtech anuncie públicamente un plan para realizar cambios en su software que eliminen la vulnerabilidad.

    Y puso este plan en práctica.

    Si Microtech no toma estas medidas razonables y justas dentro de los próximos meses, nos reservamos el derecho de publicar los siguientes materiales preparados por nosotros:


    • una descripción completa del algoritmo para generar códigos de barras unidimensionales y bidimensionales en un boleto

    • el código fuente de un programa diseñado para generar e imprimir billetes de viaje casi reales, así como para identificar el número de cheque actual leyendo un código de barras escaneado de un billete tirado por alguien. El programa está escrito en C# y funciona igualmente bien en todas las versiones de Windows, empezando por Windows 7, así como en Linux.

    • Texto fuente de la aplicación Java para la plataforma Android versiones 5,6,7. Esta aplicación genera un código de barras azteca bidimensional válido, simulando la apariencia del programa Suburban Ticket elaborado por Microtech. Esta versión de nuestro programa puede tomar una foto de forma independiente de un billete no deseado tirado por alguien, descifrar su código de barras y extraer el número de cheque.

    Quizás también tengamos tiempo de crear una versión que funcione con NFC y descifrar completamente la estructura de los billetes de viaje sin contacto, pero no podemos prometerlo todavía.

    Todos estos datos, incluido el código fuente de los programas, se publicarán para información pública y nos lavaremos las manos al respecto.

    Es muy malo cuando tu computadora se congela debido a un error de software.

    Pero, ¿es mejor cuando, debido a tal error, el programa simplemente no realiza su función?

    Por ejemplo, los programas de la empresa Microtech parecen ser capaces de identificar billetes falsos. Pero no hacen esto.

    PD Acerca de este estudio

    Ningún pasajero resultó herido.

    Además, no resultó dañado ni un solo controlador ni un solo torniquete instalado en las vías del ferrocarril.

    No utilizamos los billetes que producimos para obtener beneficios ilegales en forma de acceso gratuito al andén y viajes en el tren.

    Verificamos la funcionalidad de dichos boletos, siempre comprando al mismo tiempo un boleto real, que no se usó, sino que fue a la basura. Por lo tanto, no hemos causado ni un centavo de daño a la propiedad del TsPPK y otros transportistas ferroviarios.

    El software que declaramos no es malicioso.

    Este es un proyecto de investigación estudiantil.

    No utilizamos software sin licencia.

    No tomamos nuestras propias fotografías, sino que tomamos todas las ilustraciones de Internet. Buscarnos usando metadatos de imágenes es completamente inútil.

    Nos deshicimos por completo de todos los equipos utilizados en el proceso de investigación.

    Estamos seguros de que los intentos de encontrarnos no tendrán éxito y no hay perspectivas de proceso penal. No hicimos nada malo o ilegal.

    Acabamos de señalar que el suministro de equipamiento para la empresa ferroviaria estatal lo realizan personas que están atrapadas en ideas técnicas de hace treinta años y no piensan en la seguridad de la información.

    Por favor estén atentos.



    
    Arriba