Program pro hackování jízdenek na příměstské vlaky. Bezpečnostní informační portál. Jak jsou blokovány nesprávné vstupenky a zpracovávány ty správné

Jednotná a plná cena předplatních vstupenek pro pravidelný a luxusní rychlík bez poskytnutí konkrétního místa k sezení , včetně vlaků Sputnik a REX lze zpravidla zakoupit v kterékoli příměstské pokladně dopravce na vlakovém nádraží (nádraží nebo zastávce) odjezdu nebo v samoobslužném terminálu. Nákup jízdenky je obvykle možný několik sekund před odjezdem vlaku, počet jízdenek je neomezený.

Jízdenky z jiných stanic se neprodávají na všech stanicích. V moskevské oblasti se prodej jízdenek obvykle provádí pouze z této stanice.

Při nákupu jízdenky musíte na terminálu vybrat (nebo sdělit pokladníkovi) kategorii vlaku - „osobní“ pro běžný vlak nebo „rychlý“ pro sanitku. Terminály některých operátorů mohou místo slova „rychle“ říkat „Sputnik“, „MOS-BARYBINO“ nebo něco podobného.

Prodej jízdenek se neprovádí přes internet na webu (s výjimkou elektrických vlaků v úsecích Tuapse - Adler - Rosa Khutor, Imereti Resort, Sputnikov Moskva - Mytišči, Moskva - Puškino, Moskva - Bolševo - jízdenky na tyto elektrické vlaky lze zakoupit na webových stránkách JSC "Ruské železnice", stejně jako některé další elektrické vlaky).

Od roku 2016 funguje mobilní aplikace MT PPK „Příměstská jízdenka“ (směr Leningrad moskevský hub). V Petrohradu a řadě dalších regionů si můžete koupit jízdenku přes mobilní aplikaci Prigorod. Zpravidla stačí úplně obyčejný smartphone.

Zlevněné vstupenky lze zpravidla zakoupit pouze na pokladně. V řadě regionů (například v Moskvě a regionu) je v některých terminálech možné vydat zlevněnou (včetně bezhotovostní) jízdenky na personalizovaném elektronickém médiu (například moskevská sociální karta).

Jízdenku lze zpravidla zakoupit nejen v den zájezdu, ale i v předprodeji. Zpravidla 7-10 dní na jednorázovou jízdenku a 30 dní na předplatné v závislosti na směru a regionu. Předprodej se provádí jak na pokladně, tak na většině terminálů. V síti ruských drah se neplatí žádný předprodejní poplatek.

Platba za jízdenku se provádí v hotovosti, lze také platit platební kartou na všech moskevských stanicích a hlavních zastávkách v Moskvě a regionu a také na řadě stanic v jiných regionech. V Moskvě a regionu lze jednorázovou jízdenku (jako permanentku) zaznamenat na kartu Trojky, aby nedošlo k náhodné ztrátě papírové jízdenky.

V současné době mají všechna moskevská vlaková nádraží (nebo poblíž vlakových nádraží) velký počet terminálů, takže nákup jízdenky, i ve špičce, zpravidla nezabere déle než pár minut - s výjimkou vzácných období ( například první pracovní den v roce).

V některých mezilehlých stanicích (zejména těch s průměrným provozem cestujících, kde ještě nejsou instalovány samoobslužné terminály) se mohou ve špičce vyskytovat delší fronty.

Pokud ve výchozí stanici (zastávce) není pokladna dopravce nebo terminály, lze jízdenku zakoupit přímo ve vlaku, případně v pokladně či terminálu po skončení jízdy bez dalších poplatků. Pokud jsou na zastávce terminály pro tisk kupónů (potvrzující skutečnost přistání na zastávce s nepracující pokladnou), měl by cestující od nich obdržet jízdenku. Tyto terminály jsou dostupné pouze na některých trasách Centrálního PPK.

Pokud si jízdenku zakoupíte ve vlaku ze stanice (zastávky), která má příměstskou pokladnu, může být cestujícímu účtován příplatek. Výše poplatku závisí na kategorii vlaku a dopravce. V případě odmítnutí nákupu jízdenky ve vlaku s úhradou poplatku mají zaměstnanci dopravce právo udělit pokutu.

Ve vlacích JSC "Central PPK" je poplatek: 100 rublů - ve vlaku, 200 rublů - u pokladny po cestě.

Ve vlacích společnosti JSC North-West PPK je poplatek 80 rublů a ve vlacích PPK Moskva-Tverskaya - 100 rublů.

V případech, kdy je pokladna ve výchozí stanici z provozní doby uzavřena a nejsou k dispozici terminály, poplatek se zpravidla neúčtuje.

Elektrické vlaky se specifickými sedadly

Vstupenky meziregionální rychlíky lze zakoupit ve specializované příměstské pokladně nebo přes internet (včetně na našem webu v sekci „Vlakové jízdenky“), počet vstupenek je většinou omezen(některé vlaky JSC Central PPK provozují dvojitý systém prodeje jízdenek). Při nákupu vstupenky je nutné předložit průkaz totožnosti. Akční vstupenky se neprodávají online.

Prodej se provádí pro konkrétní vlak. Prodej jízdenek se může zastavit 5 - 30 minut nebo déle před odjezdem vlaku (v závislosti na stanici je nejvýhodnější koupit jízdenky online předem);

Jízdenky na dálkové vlaky Martin a další dálkové elektrické vlaky s číslováním 800 lze zakoupit v pokladnách JSC FPC, v samoobslužných terminálech nebo přes internet (včetně našich webových stránek), počet vstupenek je omezen. Při nákupu vstupenky je nutné předložit průkaz totožnosti. Akční vstupenky se neprodávají online.

Při nákupu jízdenky pro sklopná sedadla ve vysokorychlostních vlacích Lastochka je obvykle poskytována sleva.

Při nákupu jízdenky na vlaky s přidělenými místenkami přes internet je ve většině případů k dispozici elektronická registrace. Je zdarma a odpadá nutnost chodit na pokladnu – stačí si vytisknout palubní vstupenku na domácí tiskárně a předložit ji při nástupu spolu s dokladem uvedeným při nákupu letenky. Pokud se však cestující rozhodne obdržet prázdnou jízdenku na pokladně nebo terminálu a/nebo zrušit elektronické odbavení, musí se při nástupu na palubu předložit prázdnou jízdenku.

Aeroexpress

Vstupenky na vlaky aeroexpress lze zakoupit na webových stránkách společnosti. Při zakoupení jízdenky v pokladně na nádraží je cena jízdenky standardní třídy vyšší. Bezkontaktní platba na turniketech (i kartou Troika) je možná v ceně vstupenky na pokladně. Doporučujeme věnovat pozornost skupinovým sazbám – můžete na nich hodně ušetřit.

Zlevněné vstupenky lze zakoupit na pokladně. Kromě dokladů potvrzujících dávku musíte mít doklad totožnosti. Jedna sociální karta k získání zlevněného cestování nestačí, protože... nejedná se o doklad totožnosti.

Každý Rus, který alespoň jednou cestoval vlakem, určitě zná společnost Russian Railways, která je na tomto trhu téměř úplným monopolem. Ceny za tarify se každým rokem zvyšují, ale kvalita služeb stále zůstává nedostatečná. Ruská hackerská asociace Che Burashka dnes oznámila objevení mezery v systému prodeje jízdenek pro elektrické vlaky, tedy elektrické vlaky. Hackeři slibují, že řeknou všem Rusům způsob, jak si zdarma koupit jízdenky, pokud ruské dráhy nesplní jejich podmínky.

Hackeři koupili několik turniketů na sekundárním trhu spolu s veškerou dokumentací a softwarem. Kromě toho si koupili několik desítek jízdenek v pokladně ruských drah, poté začali studovat princip fungování bezpečnostního systému. O pár dní později se jim podařilo objevit mezeru v bezpečnostním systému, který umožňuje jezdit všemi elektrickými vlaky v Rusku zcela zdarma. Jak se ukázalo, bezpečnostní QR kód na všech vstupenkách je generován pouze pomocí jednoho algoritmu, který lze snadno oklamat, říkají hackeři.

V algoritmu pro generování QR kódu na všech jízdenkách existuje pouze jedna jediná proměnná, která je společná pro všechny vlaky. Každý den se ručně načítá na POS a přenosné terminály. Podle hackerů, abyste mohli jezdit vlaky v Rusku zdarma, potřebujete znát pouze jednu proměnnou, a k tomu si musíte koupit pouze jednu jízdenku (v rámci celé země), po které budou moci všichni Rusové jezdit zdarma jen na jeden den.

Hackeři vytvořili falešnou aplikaci Suburban Ticket, která vám umožní koupit jízdenky na vlak přímo na jakémkoli chytrém telefonu. Svůj software otestovali a došli k závěru, že opravdu umožňuje jezdit s jakýmikoli elektrickými vlaky zcela zdarma. Jízdenka plně funguje, ale při její kontrole mohou kontroloři dojít k závěru, že o ní v databázi ruských drah nejsou žádné údaje, což může vést k případným problémům. Tuto „funkci“ je však snadné obejít.

Aplikace, která vám umožní jezdit vlaky zdarma, je aktuálně ve finální fázi vývoje. Hackeři požadují, aby společnost Microtech, která vytvořila systém prodeje jízdenek pro ruské železnice, veřejně přiznala přítomnost nebezpečné zranitelnosti a opravila ji (to vyžaduje miliony rublů). Pokud to neudělá a již odmítla jakkoli kontaktovat hackery, pak skupina Che Burashka zpřístupní svůj proprietární software online, který Rusům umožní používat elektrická vozidla zdarma.

Až do 10. března včetně má každý jedinečnou příležitost používat Xiaomi Mi Band 3 a strávit na něm pouze 2 minuty svého osobního času.

Přidejte se k nám

Nesouhlasíme se způsobem, jakým byl tento příběh prezentován v tisku a u soudu. Domníváme se, že hlavním zdrojem problémů Kazmina a Putina je neochota vývojářů softwaru a hardwaru turniketů uznat a odstranit zranitelnosti jejich vývoje.

Jak víme, ještě před zahájením trestního řízení Denis Kazmin kontaktoval Microtech s návrhem na spolupráci. Na celém světě je akceptováno, že pokud nezávislý specialista najde zranitelnost v softwaru a nahlásí to vývojáři, vývojář tuto zranitelnost alespoň odstraní. Nejrenomovanější společnosti platí peníze. Ale Kazminův dopis byl společností Microtech ignorován a po nějaké době bylo zahájeno trestní řízení. Tušíme, že tato náhoda není náhodná.

Nejsme si zcela jisti, zda policie jednala na základě tipu od Microtechu nebo našla naše kolegy z bezpečnostního výzkumu sama, ale domníváme se, že příčinou jejich problémů byl právě postoj vývojáře, který evidentní problémy s bezpečností svého vlastní systémy.

Hlavní část problému se softwarem a vybavením Microtech, identifikovaná Kazminem a nezávisle na něm dalšími specialisty, nebyla odstraněna.

Chyby dosud nebyly opraveny a činí systém prodeje vstupenek zranitelným vůči útočníkům. Kdokoli si může vytisknout jízdenky a jezdit zdarma.

Jsme přesvědčeni, že Microtech je nejhorším příkladem monopolisty, který nechce přiznat své chyby a distribuuje software, který je pro uživatele nebezpečný.

Bohužel, jak oficiální úřady, tak novináři se ne vždy ponoří do jemností toho, co se děje.

Jako negativní příklad můžeme připomenout příběh TroykaDumper.

Igor Ševcov, který zveřejnil podrobnosti o hacknutí karty Moskevské trojky, se podle nás choval jako etický hacker. Samozřejmě měl nejprve kontaktovat majitele systému. Sami majitelé pak ale jednali konstruktivně a problém vyřešili a obrátili se o pomoc na Igora. Verze programu, kterou zveřejnil, je stále dostupná na githubu, ale pro účely freeridu je zcela nepoužitelná.

Mnohem horší než reakce zástupců Trojky byla reakce novinářů, kteří prohlásili Ševcova za podvodníka, a také zástupců prokuratury nějakého zcela cizího města, daleko od Moskvy, kteří požadovali odstranění výzkumných informací o hackerské technologii z internetu. .

V důsledku toho byly informace o Shevtsovově výzkumu z Habra odstraněny a jeho profil byl zablokován. Majitelé platformy hráli na jistotu, nikdo nepožadoval zablokování jejich profilu, ale nechtěli problémy, které si sami s úřady vymysleli.

Dlouho a usilovně jsme přemýšleli o tom, jak správně prezentovat informace, které jsme našli, pro veřejný přístup. Každý z nás je profesionál ve svém oboru. Studium na jedné z moskevských univerzit úspěšně kombinujeme s prezenční prací a neradi bychom se dostali do problémů jen proto, že prozradíme informace o nedbalosti výrobce zařízení a softwaru.

Z tohoto důvodu nebudeme tyto informace na Habré zveřejňovat, ačkoli jsme je původně připravili speciálně pro tyto stránky.

Navíc, na rozdíl od situace s Trojkou, Microtech zjevně nehodlá napravovat své chyby z vlastní iniciativy.

Text článku, původně připraveného pro Habra, jsme se rozhodli umístit k volnému přístupu na jiné zdroje a odkaz na něj distribuovat na sociálních sítích.

Vyzýváme společnost Microtech, aby rozpoznala slabá místa ve svých systémech a nezávisle přijala opatření k jejich nápravě.

Prozatím zveřejňujeme neúplný popis techniky hackování. Pokud se ale nedočkáme opravení zranitelností brzy, alespoň do dvou až tří měsíců, doplníme mezery a zveřejníme úplné informace veřejnosti.

Technologie pro hackování jízdenek pro příměstské vlaky je mnohem jednodušší než problémy, které Shevtsov objevil s kartami Troika. K tisku pracovních tiketů vám postačí jednoduchý program pro Windows nebo Linux, laserová tiskárna a nůžky.

Vyzýváme soud, aby znovu projednal případ Kazmina a Putina. Problém není v tom, co udělali, ale v tom, že Microtech nechce připustit bezpečnost svých turniketů a jejich softwaru. A ztráty ponesou železniční společnosti, které se staly jejich klienty.

Na internetu nenajdete žádné stopy po předchozí činnosti skupiny Che Burashka.

Nejsme hackeři a jedná se o jednorázovou přezdívku, kterou používáme pouze pro jeden konkrétní projekt.

2. Popis zranitelnosti.

Výzkum zabezpečení turniketů od Microtech

Pozadí

Společnost Microtech vyrábí systém, který poskytuje přístup k příměstským železničním nástupištím a také systémy distribuce jízdenek.

Jak se píše na firemním webu - tomu všemu se říká

Automatizovaný systém placení, kontroly a účtování jízd v příměstských elektrických vlacích ASOKUPE.

V moskevské oblasti je kompatibilní s městskými kartami Troika, které se používají pro cestování veřejnou dopravou. Procházíme turnikety Microtech pokaždé, když jedeme do našeho domovského ústavu a zpět do Moskvy.

Před dvěma lety jsme se my tři kamarádi studenti rozhodli prozkoumat, jak spolehlivý je systém, který omezuje průjezd „zajíců“ do příměstských vlaků.

Chtěli jsme být etičtí hackeři, nechystali jsme se prodávat lístky, ale raději bychom dostávali bonus od společností za prokázání zranitelnosti.

Rozhodli jsme se, že jakékoli legální metody analýzy napadeného systému jsou vhodné pro simulaci akcí útočníků a že by neměly být používány přímé hackerské a destruktivní účinky na zařízení Microtech instalované železničáři. Nechceme porušovat zákon a ani jsme tak neučinili.

I když jsme při čtení specializovaných fór našli důkazy, že do sítě společnosti získávali nám neznámí hackeři, tento problém jsme nezkoumali. Dovolili jsme si však mírné formy sociálního inženýrství.

Chodili jsme na specializované výstavy a ptali se. To bylo velmi užitečné, stejně jako školicí materiály pro zaměstnance, které nám železničáři ​​věnovali.

Zavolali jsme do samotné společnosti a mluvili s jejich technickými specialisty. Z hlediska technických detailů k ničemu, ale nečekaně jsme se dozvěděli spoustu zajímavých věcí o vztazích uvnitř tohoto týmu.

Jednou jsme mluvili po telefonu s jejich nadřízenými. Komunikace byla zklamáním. Jednoduše nás nechtěli poslouchat, i když jsme v tu chvíli ani nežádali o peníze, ale nabídli jsme, že provedeme výzkum zdarma.

Skutečným zdrojem informací se ukázaly být samotné turnikety. Opravdu nechápeme, s jakým druhem spotřebitelského publika počítali ti, kteří je prodávali na avitu, ale koupili jsme použitá zařízení a nějakou dobu jsme je používali. Byly prodány spolu s nějakou dokumentací, která nám byla dána na disketě. Dokumentace nebyla o nic méně užitečná než samotná zařízení. Poté musely být všechny tři zakoupené turnikety odvezeny na smetiště, protože zabíraly polovinu místnosti.

Neméně užitečné byly naše poměrně systematické studie samotných jízdenek, které se prodávají na příměstských pokladnách.

Za svůj život jsme takových lístků koupili snad stovky, ale většinou jsou stejné.

Pro účely výzkumu jsme museli zakoupit více než 50 vstupenek pomocí specifického systému.

Jak funguje systém distribuce vstupenek?

Microtech dodává železničářům pokladní pracovní stanice a software pro ně.

Zde je obrázek ze stránek výrobce. Obsahuje systémovou jednotku, monitor a periferní zařízení. Nechybí ani speciální tiskárna pro tisk lístků.

Jak vypadají podle myšlenek designérů Microtech.

Ve skutečnosti to samozřejmě na různých místech všechno vypadá trochu jinak. Nahlédli jsme do různých pokladen a viděli jsme, že skladba dodávaného zařízení se v různých směrech železnice měnila. Pravděpodobně to byly různé šarže, ale software byl stejný.

Citace z webu výrobce: MKTF - Multifunkční pokladní terminál, zařízení vyrobené na bázi osobního počítače. Splňuje požadavky 54FZ. Určeno pro evidenci a ověřování cestovních dokladů (s čárovým kódem a na BSK). Může pracovat v offline a online režimu.

Slovo autonomní v citovaném textu jsme to sami zvýraznili. To je důležité.

Později zjistíme, že toto je jeden z klíčových bodů, díky kterému je systém zranitelný vůči nekalým úmyslům.

Prozatím jen poznamenejme, že celý systém od Microtechu je postaven na tom, že jejich zařízení jsou schopna fungovat v autonomním režimu. Zřejmě na rok 1990, kdy podle informací z webu tato firma vznikla, i na dřívější dobu, kdy šlo o resortní projekční kancelář, to bylo racionální i progresivní.

Ale otázka, že by někdo mohl zfalšovat čárové kódy na lístku, v těch letech zjevně nebyla vznesena. Už jen z toho důvodu, že tehdy nebyly čárové kódy a platnost jízdenek se kontrolovala očima lidských kontrolorů.

O úplném zablokování přístupu k nástupištím elektrických vlaků turnikety uvažovali železničáři ​​až v 90. letech, kdy se konečně nabažili freeriderů.

Tak tady to je. V každé konkrétní pokladně ASOKUPE označují softwarové konfigurace směr železnice, ke které je tato pokladna přiřazena, a jedinečné číslo pokladny.

Samozřejmě jsou zde další nastavení, ale hlavně, každá pokladna bez přístupu na centralizovaný server dokáže vygenerovat platný tiket.

Pro upřesnění – platný čárový kód na lístku.

Informace lze zakódovat dvěma způsoby.

starý - Proložené 2 z 5

Zde je popis:

Řádkový kód Interleaved 2 of 5 se skládá ze sekvence střídajících se černých a bílých vertikálních pruhů, začínajících a končících černou. V tomto kódu existují dva typy pruhů: Široký (logická „1“) a úzký (logická „0“). Interleaved 2 of 5 předpokládá přítomnost start a stop symbolů. Počáteční znak je kódován "0000", koncový znak je kódován "100". Mezi těmito dvěma symboly je užitečná informace.

Kód dostal svůj název na základě skutečnosti, že informace jsou kódovány uspořádáním dvou širokých pruhů mezi pěti. Na základě toho zjistíme, že takovým blokem lze zakódovat 10 různých hodnot, tzn. všechna čísla jsou od 0 do 9. Prokládané (interleaved - anglicky), protože černé a bílé pruhy jsou uvažovány odděleně.

V lichých pozicích (počítáno zleva doprava) jsou čísla zobrazena tahy a v sudých pozicích - intervaly (střídání). Při kódování dat s lichým počtem znaků se před zapisuje „0“.

V čárovém kódu Interleaved 2 of 5 se doporučuje použít kontrolní znak pro zlepšení spolehlivosti čtení. Kontrolní návěst je umístěna bezprostředně za informačními cedulemi před návěstí Stop. Pokud přidání kontrolního znaku způsobí, že počet znaků v kódovaných datech bude lichý, přidá se před řádek kódu bezprostředně za znak "Start" "0".

A nové, dvourozměrné aztécký kód:

Vstupenky s ním se začaly objevovat na konci roku 2015. Zatím není jasné, zda se plánuje kompletní výměna, nebo jde jen o experiment na kompatibilitu s mobilní aplikací Microtech.

Ale tohle je trochu lepší. Prokládané 2 z 5, zdá se, že byly nalezeny náhodou vývojáři systému, Aztec je podporován mnoha železničními společnostmi po celém světě.

Ať je to jak chce, složení informací zakódovaných oběma metodami je stejné.

co ještě je?

Například existuje takové zařízení

Opět obrázek a text z webu Microtech:

PKTF - Přenosný pokladní terminál, zařízení vyrobené na bázi specializovaných mikroprocesorových řešení. Splňuje požadavky 54FZ. Obsahuje moduly pro tisk, čtení čárových kódů a BSK a má přihrádku pro instalaci FN. Zajišťuje tisk a ověřování cestovních dokladů. Může pracovat jak autonomně, tak v režimu výměny dat s externím systémem.

Terminál je nezávislým vývojem společnosti Microtech, ale je samozřejmě sestaven z komponent od výrobců třetích stran. Koupili jsme dva v různém čase.

Tyto terminály nyní využívají především revizoři, kteří jsou připraveni cestujícímu (ne)laskavě prodat jízdenku, pokud by ji náhle zapomněl koupit nebo ji ztratil.

Navzdory skutečnosti, že byly zakoupeny v různých časech a zjevně byly použity na různých trasách, umožňují stejně dobře kontrolovat jízdenky zakoupené na jakékoli trase.

To nám dává úplné pochopení bezpečnostních hranic, které poskytuje ASOKUPE. Čárové kódy obsahují nějaké kontrolní informace, ale lze je zkontrolovat poměrně jednoduchým zařízením, způsob ověřování se dlouho nemění, jeho variabilní část je zranitelná a algoritmus pro její výměnu je poměrně jednoduchý.

Více podrobností níže.

Jak funguje řízení přístupu na platformu?

Kontrola přístupu na platformu je docela banální.


V turniketech jsou instalovány dvě čtečky. Jedním je skener jízdenek s čárovým kódem a druhým je bezkontaktní čtečka všech druhů bezkontaktních jízdenek pracující pomocí protokolu Mifare. Skenery jsou dodávány od výrobců třetích stran (různých) a zdá se, že Microtech vyvinul čtecí modul nezávisle.

Mechaniku turniketu a čtečky spojuje blok s tajemnou zkratkou UKPD. Je to také řídicí modul pro turniket a zařízení pro vkládání dat.

Veškerá „inteligence“ systému je soustředěna v kontroloru, který je součástí UKPD.

Externě se ovládá připojením přes rozhraní RS-485.

Když cestující přinese jízdenku ke skeneru, kontrola čárového kódu se v podstatě skládá ze dvou poměrně jednoduchých kroků:

  • UKPD kontroluje platnost dat zakódovaných v čárovém kódu. Kontrolují se údaje o koncových a počátečních zónách trasy, místo, kde je turniket instalován, datum jízdy, některé kontrolní informace... a je to.

  • UKPD kontroluje absenci jízdenky ve stoplistu.

    Zde je třeba říci, že stoplist se nestahuje centrálně, stahuje se na stanicích prostřednictvím interní služby. síti a následně je načten do každé skupiny turniketů samostatně, přes hub, ke kterému jsou turnikety připojeny přes rozhraní RS-485.

  • Samotný seznam zastávek vypadá asi takto, nic složitého:

    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

    První pole v řádku je číslo tiketu, druhé je datum zahájení blokování, poslední je kód důvodu blokování.

    Stoplisty se většinou pouze doplňují, takže čím dále, tím silnější jsou. Snad jednou za rok nebo dva jsou vyčištěny od úplně starých záznamů, nekontrolovali jsme.

    Pro zachování důvěrnosti by měly být všechny podobnosti mezi čísly karet a skutečnými čísly považovány za fikci.

    Koncentrátor jsme neměli, ale pro účely našeho výzkumu jsme jej nepotřebovali. Z toho důvodu, že v něm nejsou zahrnuty papírové jízdenky. Pouze elektronické. To znamená, že u papírových jízdenek funguje pouze fáze 1 ověřování.

    Zajímavý nám přišel seznam důvodů, proč může být lístek na stoplistu, a tak si neodepřeme radost z jeho zařazení do naší reportáže.

    Vytáhli jsme tuto tabulku ze stejné magické diskety a dlouho jsme přemýšleli, co je to „odjezd majitele“ a kdo informuje železničáře o zatčení majitele karty.

    Nic nerozhodli a pokračovali ve výzkumu.

    Jak funguje papírová jízdenka?

    Informace o algoritmu pro generování čárových kódů nejsou uvedeny v dokumentaci Microtech. Tato data jsme dokázali obnovit sami, ale nejsme si zcela jisti, zda jsou kompletní.

    Zde je seznam:

    1) Odjezdová stanice (kód stanice, zkrácený systémový kód Express)

    2) Cílová stanice (kód stanice, oříznutý expresní systém)

    Express je systém prodeje jízdenek na dálkové vlaky, který již řadu let využívají ruské a kdysi i sovětské železnice. Každá stanice v tomto systému má své vlastní číselné ID, ale Microtech tato ID nekóduje úplně, ale ořízne několik úvodních číslic.

    3) Číslice neznámého účelu. Myslíme si, že je to typ vlaku. Na vyfocené jízdence je uveden typ vlaku „cestující“.

    4) Číslice neznámého účelu

    5) Číslo pokladního systému, který tiket vygeneroval (5 číslic)

    6) ID tiketu (4 číslice) ID tiketu nejsou jedinečná a zdá se, že jsou generována v řadě.

    Vezměte prosím na vědomí - silné úspory. Místo 10 číslic čísla elektronické jízdenky jsou použity pouze 4. Až 6 číslic se ukázalo jako zbytečné!

    7) Datum vydání vstupenky

    8), 9) – Další dvě záhadná čísla

    10) Kontrolní informace

    Jak vidíte, vše je zde celkem jednoduché a napsat program, který by vygeneroval potřebný čárový kód, není těžké.

    Kromě práce s kartami Troika může zařízení Microtech používat také svůj vlastní formát elektronických karet, ale s tím jsme se neobtěžovali - proč, když existují čárové kódy?

    Jak funguje turniket, přesněji řečeno jednotka UKPD

    Výše zmíněná řídící jednotka turniketu UKPD, stejně jako bezkontaktní čtečka, jsou sestaveny z nejstandardnějších komponentů od známých výrobců. Veškeré know-how firmy Microtech je firmware řadičů, napsaný, zdá se, v assembleru. Tento malý kousek kódu je celým tajemstvím technologie železničního monopolisty.

    Stáli jsme před otázkou, zda je nutné při stejné trojce a podobném regionálním lístku zachovat všechna tato stará řešení.

    Samozřejmě je jednodušší tisknout papírové vstupenky, ale stromy vám nevadí.

    Jak jsou blokovány nesprávné vstupenky a zpracovávány ty správné

    Jsou zablokovány, pokud se ověřovací informace neshodují, je nesprávné datum a pokud stanice uvedené na jízdence neodpovídají pobočce, na které se turniket nachází. A konečně, pokud se číslo pokladny neshoduje s číslem výchozí stanice, kde by se mělo nacházet.

    Informace o špatné jízdence se ale nikdy nikam nepřenáší. Ve skutečnosti ukládat informace o čísle falešného lístku, pokud je toto číslo pouze 4 číslice, nemá žádný smysl.

    Hlášení o průjezdech se shromažďují v tzv. Z-souboru – hlášení informací, které lze stáhnout z turniketu na základě výsledků dne.

    Soubory Z se pak musí přenést na finanční úřad a možná jdou na jiná místa, která mají velký zájem o pohyb cestujících.

    Jak turniket určí, zda je vstupenka dobrá nebo špatná?

    Zpočátku jsme doufali, že zařízení Microtech vygeneruje nějaký kryptograficky silný hash na základě doby generování lístku a dalších významných informací.

    Pak by samozřejmě při znalosti tajného klíče pro generování čárového kódu bylo možné vygenerovat a vytisknout libovolný počet platných jízdenek zajišťujících průchod.

    Dalo by se zkusit vypočítat samotný klíč pomocí technologie „duhových tabulek“ - k tomu stačí analyzovat čárové kódy z cca 10-20 platných tiketů a pak už nedělat tak složité testy.

    Tento výpočet by nevyžadoval žádný přemrštěný výkon zařízení, zejména proto, že na internetu existuje více než jedna nebo dvě online služby pro přístup k „duhovým tabulkám“.

    Byli jsme velmi naivní.

    Microtech neudělal pro ochranu informací v čárovém kódu vůbec nic vážného.

    Čárový kód je chráněn primitivním kontrolním součtem, abychom jej reverzně analyzovali, potřebovali jsme strávit asi den a 6 použitých lístků.

    Absolutně všechny ICTF a PCTF, které jsme testovali, dokážou zkontrolovat platnost jakýchkoli tiketů. To znamená, že tajemství, na základě kterého se generují kontrolní informace v čárovém kódu, je vždy a všude stejné!

    Tedy skoro.

    Ve skutečnosti má „velmi, velmi silnou“ ochranu. Formou variabilní části, která se jednou denně centrálně nahrává do pokladen a přenosných PCTF.

    PCTF jsou „naprogramovány“ z počítače a každý PCTF musí být připojen speciálním kabelem. Nudná práce.

    Naneštěstí pro společnost Microtech je kontrolní číslo platné v daný den velmi snadné vypočítat tak, že se vám do rukou dostane použitý lístek.

    Souhlasíme, že to poněkud snižuje efektivitu akcí hypotetického útočníka – běhání tam a zpět od turniketů k tiskárně a zpět je nuda. To však nelze považovat za významnou ochranu, protože se rozpadne, jakmile někteří nadšenci začnou informovat ostatní o tomto tajném kontrolním čísle. Můžete například vytvořit tajný telegramový kanál nebo webovou stránku.

    Nebo můžete cestovat jedním směrem, do práce, za peníze a opačným směrem domů, zdarma.

    Pro unavené je to zábavnější cestou domů.

    Technologický pokrok však nestojí na místě a ve skutečnosti má společnost Microtech tento problém freeriderů již téměř vyřešen.

    Proč to všechno funguje špatně a jak se to všechno úplně zhroutí?

    Samozřejmě tato ochrana nějak funguje. Ještě ne.

    Až asi do prvního lenocha, který místo Windows programu pro tisk tiketů obsahujících uvnitř trojského koně podobně jako na obrázku vyvěsí zdrojové texty tak užitečné utility na github a něco s tímto tajným kontrolním číslem udělá.

    Na internetu jsme našli několik takových programů, jeden jsme vyzkoušeli - vytiskne správné jízdenky, s nimi vám umožní jízdu na elektrických vlacích.

    Dalším faktorem spojeným s leností je, že správně napsaný program pro tisk vlakových jízdenek by měl zohledňovat datum a obsahovat kompletní seznam stanic, mezi kterými jízdenka platí.

    Jak bezpečné je použití vlastnoručně vytištěné jízdenky?

    Je to velmi bezpečné, nikdo z kontrolorů stojících vedle turniketů nekontroluje, zda jste si to sami vytiskli a ostříhali nůžkami, nebo zda je to skutečné.

    Takovou jízdenku samozřejmě nelze použít s kontrolory uvnitř vlaku.

    Ale i zde nám pomohla laskavá firma Microtech.

    Aplikace umožňuje vygenerovat dvourozměrný aztécký čárový kód na obrazovce smartphonu a ukázat jej inspektorům, aby jej mohli zkontrolovat pomocí PCTF.

    To znamená, že jakmile bude podpora těchto dvourozměrných čárových kódů implementována na všech turniketech a všech směrech železnice, bude možné snadno vytvořit stejnou aplikaci, která bude generovat úplně stejné čárové kódy, ale pouze bez placení.

    Aplikace vydaná společností Microtech Příměstská jízdenka v mnoha ohledech úžasné.

    Například získat 3/4 negativních recenzí od uživatelů je na tak masivní aplikaci něco – museli jste to umět.

    Naše vlastní poznámka. Zdá se, že vývojáři o Androidu 7 zatím nic nevědí.

    Pro nás je ale hlavní, že existuje a funguje.

    Pro nás a každého, kdo chce tento obrázek reprodukovat ve své aplikaci, to není vůbec těžké.

    Úžasné, že? Připravili jsme se předem a napsali prototyp v Javě.

    Bohužel jsme to neudělali pro iPhone. Jenže to už dva roky zázrační programátoři z Microtech iOS nezvládají, takže danou laťku jen udržujeme.

    Ano, mimochodem. A tady je slíbené řešení kontrolního čísla. Do prototypu jsme zabudovali schopnost jej identifikovat načtením čárového kódu z libovolného lístku, který zvednete ze země a vyfotografujete fotoaparátem svého telefonu.

    Co by mohli dělat vývojáři lístkového systému?

    Pro posílení bezpečnosti systému a boj proti podvodníkům má přinejmenším smysl opustit starý typ čárových kódů a změnit formát na nový, včetně určité formy spolehlivého kryptografického hashe spojeného s tajemstvím k číslu. konkrétní stanice, na které byla jízdenka vytištěna.

    Síla moderních mikrokontrolérů je dostačující k jejímu rychlému výpočtu a paměť moderních kontrolérů stačí k uložení oddělených tajemství z různých stanic. Infrastruktura pro šíření nových tajemství existuje; všechny moderní železniční stanice jsou nyní propojeny servisní sítí. Nebo několik sítí.

    Co chceme a co budeme dělat

    Požadujeme, aby společnost Microtech veřejně uznala skutečnost, že dodala zranitelná zařízení a software, a také skutečnost, že své zákazníky záměrně uvedla v omyl ohledně spolehlivosti schémat zabezpečení informací, která používala.

    Požadujeme, aby společnost Microtech veřejně oznámila plán na provedení změn ve svém softwaru, které by tuto chybu zabezpečení odstranily.

    A tento plán uvedla do praxe.

    Pokud Microtech nepodnikne tyto rozumné a spravedlivé kroky během několika příštích měsíců, vyhrazujeme si právo zveřejnit následující námi připravené materiály:


    • úplný popis algoritmu pro generování jednorozměrných a dvourozměrných čárových kódů na tiketu

    • zdrojový kód programu určeného ke generování a tisku téměř skutečných cestovních lístků a také k identifikaci aktuálního čísla šeku načtením čárového kódu ze skenu někým vyhozeného lístku. Program je napsán v C# a funguje stejně dobře pod všemi verzemi Windows, počínaje Windows 7, stejně jako pod Linuxem.

    • zdrojový text Java aplikace pro platformu Android verze 5,6,7. Tato aplikace generuje platný dvourozměrný aztécký čárový kód, který simuluje vzhled programu Suburban Ticket od společnosti Microtech. Tato verze našeho programu dokáže samostatně vyfotografovat nepotřebný lístek, který někdo zahodil, rozluštit jeho čárový kód a extrahovat z něj číslo šeku.

    Snad také stihneme udělat verzi, která bude pracovat s NFC a kompletně rozluštit strukturu bezkontaktních jízdenek, ale zatím to nemůžeme slíbit.

    Všechna tato data, včetně zdrojového kódu programů, budou zveřejněna pro veřejnou informaci a my si nad tím budeme mýt ruce.

    Je to velmi špatné, když váš počítač zamrzne kvůli softwarové chybě.

    Je ale lepší, když kvůli takové chybě program prostě neplní svou funkci?

    Zdá se například, že programy společnosti Microtech mají identifikovat falešné vstupenky. Ale oni to nedělají.

    P.S. O této studii

    Ani jeden cestující nebyl zraněn.

    Rovněž nebyl poškozen ani jeden řadič a ani jeden turniket instalovaný na železnici.

    Námi vyrobené jízdenky jsme nepoužili k nelegálnímu získávání výhod v podobě bezplatného přístupu na nástupiště a cestování ve vlaku.

    Kontrolovali jsme funkčnost takových jízdenek, vždy zároveň zakoupili skutečnou jízdenku, která nebyla využita, ale šla do koše. TsPPK a dalším železničním dopravcům jsme tak nezpůsobili ani korunu majetkové škody.

    Software, který prohlašujeme, není škodlivý.

    Jedná se o studentský výzkumný projekt.

    Nepoužili jsme nelicencovaný software.

    Nefotografovali jsme sami, ale všechny ilustrace jsme přebírali z internetu. Hledat nás pomocí metadat obrázků je úplně zbytečné.

    Kompletně jsme se zbavili veškerého vybavení použitého v procesu výzkumu.

    Jsme přesvědčeni, že pokusy o nás budou neúspěšné a neexistují žádné vyhlídky na trestní stíhání. Neudělali jsme nic špatného nebo nezákonného.

    Jen jsme upozornili, že dodávky zařízení pro státní železniční společnost realizují lidé, kteří uvízli v technických nápadech z doby před třiceti lety a nemyslí na informační bezpečnost.

    Buďte prosím ostražití.



    
    Nahoru