Hacking Underground másolás és hamisítás metró jegyek

Tudod, hogy a vágy, hogy megoldja a rejtvényeket, hogy nyissa ki az összes, de a védelmet a moszkvai metró? Kész, például egy „örök visszatérés”? De Metro szakértők tucatjai jelennek kifinomultabb védekezési módokat. Metal zsetonok váltották műanyag, ők viszont, mágneses jegyek és érintésmentes kártyák helyére mágneses megérkezett. Sok kutató leejtette a kezét - úgy tűnik, mintha a Fővárosi lett egy bevehetetlen erőd. De minden védelmi lehet megkerülni. És gyakran ez megnyitni időnként könnyebb, mint építeni egy ...

Hogyan kezdődött minden

Ismerje meg a „Ultrakönnyű”

Kezdjük azzal, hogy persze, csak szükség valahol, hogy a vezeték nélküli kártya olvasó, amely támogatja a „Ultrakönnyű”. Két lehetőségünk volt: vagy emelni (ami hosszú időt vesz igénybe), vagy vesz egy kész eszközt. Amikor a gondolkodás a második lehetőséget, szem előtt tartva a három éves árak, mentem libabőrös. De én még mindig úgy döntött, hogy az árak. És nem csoda! Én kellemesen meglepett, hogy megtanulják, hogy lehet kapni egy teljesen funkcionális eszköz (OMNIKEY CardMan 5321), amely támogatja egy csomó vezetékes és vezeték nélküli kártyák vonzó áron - 4000 rubel. Persze, nem egy kicsit, de a másik viszont, hogy nem 10.000; Sőt, vásárol kész olvasó lehetővé tette, hogy azonnal összpontosítani kutatás jegyek, és nem a tervezés és a hibakeresés a vas, ami húzza a határozatlan időre. Együtt az olvasó ugyanaz a cég (ISBC) vásároltuk nagyon kényelmes SDK eredeti helyi termelés. Ő ismét engedélyezték, hogy ne pazarolja az időt és energiát írásban nizkourovnevki és hibakeresés szoftver működése az olvasóval, és elsősorban közvetlenül a jegyeket.

Tehát egy pár napig nyugodtan kódoló született kis program, amelyen keresztül lehetett egy kényelmes módja annak, hogy figyelemmel kíséri, és szabályozzák a teljes belső szerkezete „ultrakönnyű”. Aztán elkezdtem tanulmányozni a jegyeket.

üres fal

Mindez állatkert gyűjtöttem egy cél -, hogy egyértelműen meghatározzák a szerkezetét és formátumát adatrögzítés a jegyet. Persze, bizonyos területeken voltak láthatók azonnal a szabad szemmel, de néhány nem. Például nem vettem észre, ahol rögzített metró jegy száma (az egyik, hogy van nyomtatva). A felismerés jött egészen véletlenül. Az a tény, hogy én (és azt hiszem, a legtöbben), keresi a hex, használt igazodnak az információs byte és gondolom, legalább bájt. Kiderült, hogy ez a megközelítés téves. Nézzük a lerakó jegyet, meg kell gondolni, kisebb egységek - notebook, és néha bit. Rájöttem, hogy ha a „látta” az utolsó szám a jegy - tette tolódott 4 bit tekintetében a byte, és a maradék 4 bitet ezen az oldalon, és a másik kéz szoba által elfoglalt egyéb szolgáltatások.

Egy idő után, a jegy adatrögzítés méret már szinte teljesen tiszta. Nyilvánvalóvá vált, hogy hol és hogyan tárolja az összes dátumok, számlálók, azonosítókat. Ott maradt csak néhány területen, amelynek célja nem volt egyértelmű, egyszerűen azért, mert a kiírási dump adatok bennük ugyanaz.

De ez az öröm és a vége - ostobaság lenne azt feltételezni, hogy az ilyen jegy védetlen marad. Minden lerakó 32 bit különböző információkat, nem korrelál a többi tartalom. Azt feltételezte, hogy valamilyen ellenőrző, „hash” írt adatok a jegyet. Minden olyan kísérlet, becsülni és számítani a 32 bit fordult teljes kudarc (különösen azt javasolta, hogy ez valamilyen formában CRC32, nem szabványos polinom és a kiindulási érték). Amikor megpróbálja megváltoztatni legalább másfél bit információt a jegy ellenőrzését terminál a metró villant „BAD jegy” súlyos jack zakolachivaya utolsó köröm a koporsóban. Persze, voltak próbálkozások, hogy megkerüljék a rendszer más módon, például próbál másolni a jegyet egy tiszta térkép egy-egy (itt, sajnos, megakadályozta, hogy a gyártási száma, amely, mint kiderült, részt vett a generációs „hash”), vagy a zárolást biteket úgy hogy megtiltsák a beléptető kapu változtatni a tartalmát a jegyet. Ellenőrző terminál, „örök” jegy ismerte, de nem engedte, hogy a beléptető kapu ... Szóval, belefutottam egy fal. Az a nagy, erős betonfal, amelyen sok a szokás, hogy megölte egy futó kezdet. Nem találja a fórumok és üzenőfalak nincs információ, úgy döntött, hogy ez a tanulmányaim befejezése után - már nincs több pálya, és hogy egy kövér pont. Mint kiderült, hiába ...

furcsa ismerete

ICQ partnert csak abban az esetben én eltávolítjuk, megtisztítjuk egyidejűleg a névjegyzéket a szerveren, és rendet naplók (helló megint, paranoia). A végén azt írja újra, ha erre. De minél többet nem írtam ...

A jelenséget a szoftver az emberek

Így vettem a bontó és elment dolgozni. A mechanizmus két fájlból áll - CryptKeyRef.dll és keys.d (csak a „ravasz” fájlt az egész programot, amely, kivéve fájlt a gombokkal, semmi mást nem szereti). És, hogy minden ilyen jól runtime-bpl'ina SmLayout.bpl. Ezt a könyvtárat egy áldás a kutatás - benne dolgozó osztályokat a belső tartalom a jegyek. Mivel ez egy runtime-BPL, elég volt csak ránézni exportál az asztalra, hogy 60 százalék, hogy megértsük, mi micsoda. A részletesebb elemzés, hogy mindent a helyére. Ne felejtsük el, a cikk elején beszéltem, hogy a „ultrakönnyű” szerkezet még mindig számos területen, amelynek célja nem volt egyértelmű? Az egyik ilyen területeken - az úgynevezett „elrendezés” lehetőséget. Tény, hogy minden metró jegyek kerülnek kialakításra a fejléc rész a fix és változó része az adatokat. Tehát ez a mező «Layout» a fejlécben csak meghatározza, hogy hogyan és milyen adatok találhatók, a többi jegy. Számos elrendezések (mindegyik a saját típusú jegy), és SmLayout.bpl mindegyiknek volt saját osztályába (plusz egy közös szülő osztály, melyek módszereket dolgoznak a kalap). Ezért ahhoz, hogy megtudja, mely mezők az egyes elrendezés a válasz egyszerű volt (még beszélt néhány módszer neve az export!).

Befejező ki teljesen az egész 8. elrendezés (amelyet a „ultrakönnyű”), és még egyszer ellenőrizze, hogy az összes mezőt a szerkezet a jegyet, már jobb ötlet, vettem a legfontosabb mechanizmusa. Sőt, ő volt a felelős a generációs „hash”. Hogyan működik a mechanizmus teljesen tiszta volt, miután tanulmányozta a módszer működik, felelős a számítás „hash”.

Először is, egy fájlt a gombokat (keys.d) a megfelelő kulcsot kiválasztva. A rendszert úgy tervezték, hogy minden jegy típusától saját azonosítója (benne jelen a teljes táblázatot azonosítókat és jegyet nevek egy szöveges fájlt vesszővel elválasztott értékek). Ez egy zóna azonosítót (az alkalmazás) és a kártya típusától azonosító. Tehát ezek alapján a számok kulcsfájllal kiválasztott kulcstartó, amelynek belsejében lehet több kulcs (abban az esetben, amikor egy új kulcsot bevezetni, illetve a régi jegyek még használatban). Felvétel egy új jegyet jön a legelső, és ellenőrizze, hogy érvényes - segítségével a kulcsokat keyringe. Ezután a kiválasztott kulcs visszafejtése a CryptKeyRef.dll (miért van titkosítva tárolja, sosem tudom). Ezt követően, a dekódolt kulcsot, és szinte az összes adatot a jegy, valamint a hardver sorozatszámát és számát (generáló módszer a „hash”, amely jelzi az keyringa a keys.d) - átkerülnek a ckCalcHashCode funkció, mely az azonos CryptKeyRef.dll. A kimeneti megkapjuk az értéket, amit egy időben és a „beragadt” - ugyanaz a „hash”. Persze, írtam egy kis programot, hogy használja ezeket a funkciókat CryptKeyRef.dll és keys.d fájl lehet ellenőrizni, ha valami, hogy újraszámolja a „hash” minden dump. Azt a kettős ellenőrzés mindent néhány guba, és megkapta a pozitív eredmény, balra, örülök, hogy aludni.

fúj kulcsok

Annak ellenére, hogy az elméleti siker, látni akartam mindent, hogy úgy mondjam, „a csatát.” A következő napon, visszatérve a munka, én konkrétan vásárolt friss „Ultrakönnyű” egy útra, hogy ha a kulcsok, vagy már nem (mint kiderült, ők voltak a kis öreg). Akkor, persze, azonnal Írjunk „koholt” „Ultrakönnyű”, és körülnézek, de ezen a ponton elfogyott egy üres kártyát, és egy kicsit ijesztő lesz „véletlenszerűen” - hirtelen? Érkezéskor haza, először is, anélkül, hogy a kezét mosta, már alig rohant, hogy ellenőrizze a jegyét egy friss kulcsot. És én még vár egy nagy tivornya - „hash” írt a jegy nem hárítani a kulcsokat. Ezért a legfontosabb, valóban már rothadt, és ők helyette újak. Ez teljesen semlegesíti minden munkám. Úgy éreztem, szomorú kis. Azt főzött zöld tea, játszott egy kicsit zongora (igen), és leült a befejezetlen tenyésztési díj ...

Még nincs minden veszve

Már egy csepp kétség I szegecselt saját Väsby (szerencsére volt guba Az ilyen típusú, ami néha egyszerűsített feladat - Most megváltozott a lerakó dátumokat és száma) és a „hash” számított a gomb segítségével. Tehát, ez a vizsgálati idő (különösen azért, mert most vettem egy kis átlátszó műanyag).

Belépve a lobby, először tegye a „jegy”, hogy a teszt terminál. Az eredményjelző villant érvényességét a jegyet, amit én, és a zöld LED világít. Következésképpen a munkálatok. Így fintor egyszerűbb és amiben egy hófehér műanyag tok, közeledett a beléptető kapu, kezét a érvényesítő és ... csendben elment egy szórakoztató zöld kigyulladt. Ez volt a végső győzelmet.

Mi a következő lépés?

És akkor kezdődött a kísérletekben, amelyekben azt találták, sok érdekes dolgot. Például ilyen a „left” Väsby mehet csak két vagy három napig. A tény az, hogy a szám, hogy belül van a jegy idézem „a buldózer”, minden lépésben tárolódik a memóriában a beléptető kapu fej, és egy idő után küldött a többi az adatközpontban. Ott, a rendszer nem a ténylegesen kibocsátott jegyet ezt a számot, és beírja a stop-lista, amelyet aztán szét az összes metró beléptető kapuk. És ez így is el kell végezni minden típusú jegyek nemcsak Väsby - amellett, hogy a „hash”, és gyakran változó kulcsok nagyon jó védelem. A megoldás, nyilvánvaló okokból, nem lehetséges. Azt is megfigyelték, hogy a beállítás, vagy ne állítsa a zár bit nincs jelentősége annak a ténynek, hogy működik a jegy vagy sem. Az egyetlen kivétel egy kicsit OTP területet zár, beléptető kapu, amely, úgy tűnik, mindig ellenőrzi, annak ellenére, hogy az írás a OTP nem fog.

Később vettem fel metroshny és autóbusz, vezette őket, hogy, tanult és megkezdte a padon. Most, hogy teszteljék a következő találgatás, nem kellett futni frissen sült jegyet mutáns a metrón, és így lehetővé vált, hogy teszteljék azokat a „helyszínen”. Különösen a metró terminálon a régi (és minden más hibás), mint a kulcsokat. Így tudtam megpróbálja „munka”, és minden más típusú „Ultrakönnyű” jegy - valamit, amit soha nem „élő” a metróban.

Vége, illetve összefoglaljuk

metróhálózat, és különösen az új jegyek „Ultrakönnyű”, ellentétben a vélemények és sejtés, jól védett. Nagyon tetszett, hogy a fejlesztők használják megbízható és jól bevált standard helyett újra feltalálni a kereket. Ilyen védelmet hamis jegy „ultrakönnyű” nem bizalmas adatokhoz való hozzáférés (a legfontosabb információkat), egyszerűen lehetetlen. Figyelemre méltó tervezett és a rendszer cserélhető kulcs, és egy stop mechanizmussal lap.