Drošības problēma Rīgas Satiksmes biļešu sistēmā “E-talons”

Turpinot iesākto sabiedriski nozīmīgu informācijas sistēmu drošības pārbaudes, ar mērķi uzlabot šo sistēmu drošību, paziņojam par PSIA “Rīgas satiksme” braukšanas apmaksas sistēmas “E-talons” drošības ievainojamību.

Pateicoties šai ievainojamībai, iespējams ar vienu vienīgu “dzelteno” papīra e-talonu braukt bezgalīgu skaitu reižu.

** Lai nodrošinātu RD saistošo noteikumu par Rīgas pilsētas sabiedriskā transporta lietošanu ievērošanu, testa laikā veiktie braucieni apmaksāti, izmantojot atsevišķu biļeti.

Ievainojamībā tiek izmantota kartes simulācija, lai sazinātos ar transporta līdzeklī izvietoto E-talona termināli. E-talona terminālis šajā simulētajā kartē ieraksta visus nepieciešamos datus, kas apliecina biļetes kompostrēšanas faktu. Gadījumā, ja sabiedriskajā transportā kāpj kontrole, datus no kartes simulācijas ir iespējams ierakstīt īstajā E-talonā, ko sabiedriskā transporta kontrole pieņemtu, kā derīgu. Ja kontrole neiekāpj, tad kartes simulāciju var atgriezt atpakaļ jebkurā iepriekšējā stāvoklī kopš pēdējās kontroles iekāpšanas reizes. Šajā gadījumā pasažieris samaksātu tikai par braucieniem, kuros biļetes pārbauda sabiedriskā transporta kontrole.

Alternatīvi kartes simulāciju iespējams nomaskēt ar citu e-talonu vai e-talona maciņu. Tādā gadījumā kontrolei iespējams uzrādīt kartes simulāciju. Rakstam pievienotajā video redzams, kā ar viedtālruņa un Mifare Ultralight kartes simulācijas palīdzību iespējams veikt braucienu reģistrāciju un “attīšanu”. Video redzamie e-talona dati tikuši “iztērēti” vairākas dienas pirms video uzņemšanas, tātad var pasludināt ka e-talonu melnais saraksts jeb blacklist ir mīts.

Kā problēmas pagaidu risinājumu ieteicām ieviest globālu sistēmas līmeņa datubāzi ar pārdoto biļešu kompostrēšanas datiem, kas tiktu sinhronizēti starp visiem transporta līdzekļiem vismaz reizi dienā. Ilgtermiņā gan drošāk būtu atteikties no Mifare Ultralight karšu izmantošanas, dodot priekšroku tehnoloģiski drošākām kartēm, kas apgrūtina to satura dublēšanu.

Par atklāto problēmu CERT.LV tika informēts 22. jūlijā, dodot E-talona sistēmas turētājiem laiku, lai ieviestu labojumus sistēmā. Pēc mums pieejamās informācijas, šī raksta publicēšanas dienā E-talona sistēma joprojām ir pakļauta aprakstītajai drošības problēmai. Atbildīgas atklāšanas process paredz, ka pēc tam, kad sistēmas izstrādātājs vai turētājs ir informēts par ievainojamību, un viņam ir dots laiks veikt nepieciešamās darbības, lai novērstu apdraudējumu, ievainojamība tiek atklāta sabiedrībai. Tādā veidā izstrādātājs tiek motivēts neignorēt un nenoklusēt ievainojamības esamību, neatkarīgi no tā, vai novēršana notiek pirms vai pēc ievainojamības atklāšanas sabiedrībai. Ievainojamības novēršana vai salāpīšana, protams, nodrošina, ka to nevar turpināt pielietot ļaundari, kas par to jau ilgstoši zinājuši un izmantojuši to savā labā.

Attiecībā uz atbildīgas atklāšanas procesu starptautiski pieņemts, ka samērīgs laiks ievainojamības novēršanai ir 60 dienas.

215 thoughts on “Drošības problēma Rīgas Satiksmes biļešu sistēmā “E-talons”

  1. Lol.. ir daži veidi kā apčakarēt Mirafes..
    Pēc maniem eksperimentiem OTP Locks nešancē vietējām dzeltenajām un zilajām kartēm
    Tagad braukāju ar time un replay attack..
    Veiksmi domumubiedriem!

    1. Sveiks,
      jautājums: tas ir izdarāms ar jebkuru android telefonu ?
      un kā tieši ?
      mēģināju, man meta error

      1. Sena patiesība – ja nemāki zagt – nezodz! Ļauj lai vismaz cilvēki ar smadzenēm un iemaņām izmanto security flaws, jo vairāk neprašas ar to sāks nodarboties, jo ātrāk viss tiks sabojāts.

  2. Nu es nezinu vai to var uzskatīt par drošības caurumu! Nopirkt ķīnā karti un pārkopēt tur datus(No īsta e-talona) nav māksla. Vai tad ar viltotām tiesībām var braukt?! Tad jau sanāk, ka mums CSDD arī baigais drošības caurums.

    1. Tas strādā, jo kontrole to pieņem kā derīgu.
      Bet, ja kontrole prasa uzrādīt tieši dzelteno papīra karti, datus ir iespējams ierakstīt īstajā biļetē.
      Vienā gadījumā netiek tērēti braucieni, otrā tiek tērēti tikai tad, ja iekāpj kontrole.

      1. īsti nepiekrītu! Datus ir iespējams ierakstīt un mainīt atsevišķās e-talona “sadaļās”, bet kā jau teicu: Parādiet man kādu izlabotu dzelteno e-talonu, kurš pēc veiktajām izmaiņām tiek pieņemts aparātā – balva garantēta!

        Ielieciet video, kur dzeltenajā e-talonā Jūs veicat izmaiņas un pēc tam sab. transporta ierīce to atpazīst, tad parunāsim tālāk.

        1. Visa atslēga ir Ķīniešu Mifare Ultralight kartēs, kurās visi lauki (arī tie, kuri parasti ir vienreiz rakstāmi) ir daudzreiz rakstāmi.

          Tādā veidā ir iespējams iegūt identisku kopiju, kompostrēt to, un ja nepieciešams, tikai izmaiņas ierakstīt atpakaļ īstajā kartē. Protams, tādā veidā īstajā kartē neatgriezeniski tiek iztērēts brauciens, bet gadījumā, ja neiekāpj kontrole, klonēšanas karti var atgriezt iepriekšējā stāvoklī un atkal braukt ar to pašu braucienu.

          1. To es saprotu un tāpēc arī teicu, ka tas īsti nav drošības caurums, jo parasta krāpšana ir krāpšana un bez īsta e-talona tas neko nedod un pašu e-talonu jūs uzlauzuši neesat. Un tā ķīniešu mifare Jums vēl jāiesmērē kontrolei un kas notiks, kad pieķers?!

          2. Video redzams kā kontrole pieņēma ķīniešu karti, kas palikta zem nestrādājoša dzeltenā e-talona.

            Bet datus no ķīniešu kartes var ierakstīt dzeltenajā talonā, ko uzrādot kontrolei neradīsies problēmas.

          3. Ok, tad gaidu video, kur tiek ierakstīts dzeltenajā e-talona (vienalga kas, der arī informācija no ķīniešu kartes) un tad dzeltenais e-talons tiek pielikts pie nolasīšanas aparāta (Ne iedots kontrolei!)

          4. A kā var zināt ka pieņēma ķīnieti nevis virs tā esošo dzelteno??

      2. Un vēl, ja Jūs varat uztaisīt simulācijas karti bez īsta e-talona – tas arī der un balva garantēta

  3. Parādiet man kādu izlabotu dzelteno e-talonu, kurš pēc veiktajām izmaiņām tiek pieņemts aparātā – balva garantēta!

          1. Runāt mēs varam viskautko! Vismaz piemini par kuru sektoru iet runai vai kaut ko tādu, savādāk tu gribi balvu par tukšiem vārdiem

          2. Jautājums vai Tu maz zini kartes datu savstarpēju sakritību, jo sektorā ir pietiekami daudz datu lai varētu runāt par vairākām lietām… Bet es pieturēšos pie kā globālāka, lai neieslīkdams detaļās atbildētu… x05/x06/x07 daļu sakarībām savstarpēji un ar x00/x01, nemaz nerunājot par saistībām ar x0B/x0F, un visu šo daļu kopā un savstarpēji reprezentētajiem datiem.

            Kā paliek ar balvu, ja būs.., būs kas vērtīgāks, bet tālākās diskusijās šeit neielaidīšos, neģenerēšu lieku trafiku lapai.

          3. Piekrītu par trafiku lapai.
            Kā paliek ar balvu, ja būs.. Neesmu tukšrunātājs!
            Ko tu gribi un kā varam sakomunicēt?

          4. Neesmu mantkārīgs, pašam ir viss kas vajadzīgs, bet sakomunicējam un varbūt varam būt noderīgi.. Pamainīties ar info tā teikt.

            Mani kādu laiku varēsi dabūt šeit, bet ne ilgi, tad jau pēctam pārmetīsimies uz drošākiem kontaktiem. https://gliph.me/0RDi

  4. Prieks redzēt, ka CERT Latvija un/vai Possible.lv ir beidzot aizkūlušies līdz 2009. gada vasarai. Puši un meitenes uzdevumu augstumos. Pieļauju, ka pēc gada varētu arī pielekt vēl kāds no aptuveni 20 veidiem kā šī sistēma ir tikusi izvarota jau no 2009. gada otrās puses.

    Kā, Jums, tur, čaļi, iet? Uguni jau esat atklājuši, vai tomēr vajag palīdzību sērkociņus apgūt?

    Kā kaunu paši neizjūt – nezinu. Varbūt tie bakalaura un maģistratūras diplomi ļauj vismaz noberzt asaras no vaigiem pirms došanās miegā katru vakaru…

    1. Zelta vārdi… Būtu labāk klusējuši un zinātājiem ļāvuši izmantot, nevis tagad tēlojuši baigos drošības ekspertus, uz citu lauriem.

  5. Nezinu vai kko saprotat no RFID, bet Mifare standarts paredz Anti-Colision, tāpēc nav iespējams pie viena lasītāja vienlaicīgi pielikt DIVAS vai vairāk kartes(kā šeit tiek darīts – pārdošanas terminālī). Viss, kas šajā video tiek parādīts ir lēta montāža un tas kā tiek izmantota lasītāja(pārdošanas termināļa) vājība – iespējams apmainīt karti, neatjauninot informāciju uz ekrāna.

    Kad paaugsities ‘possible’ un atkodīsiet ko nozīmē dati, kas ir pašā kartē uzrakstiet epastu, vismaz būs kāds ar kuru par šo tēmu parunāt.

      1. Nesapratu ko Tu ar to domāji, bet man liekas, ka te nekas vairāk par parastu veiklu karšu maiņu nav, kad sapratīsiet kartes datu saturu tad sapratīsiet cik viss patiesībā ir vienkārši un nav vajadzīgas ķīniešu kartes, tikai gudra galva.

        1. Teorētiski jā, bet tik vienkārši tomēr nav. Pagaidām no tevis ir tieši tas pats skaļi vārdi bez jebkā taustāma

          1. Kāds meklē publicitāti – cits bezmaksas braucienus, kāds domā ar galvu – cits nē, katram savs… Neesmu svētā marija lai visiem stāstītu ko zinu….. tā pat vien.

    1. viruss komentē kā kārtējais latviešu d-sējs, – gudrāks par visiem citiem un nevienam neko neteiks :D

      Vispār jau anti-collision paredz to, ka tiek izvēlēts VIENS no vairākiem taloniem, kas ir lasītāja redzes lokā, nevis neviens. Pārbaudīts ar balto karti un īsto karti, katrā ieraksti ir divas dažādas biļetes un skaties, kuru nolasīs. Ne vienmēr tā būs pirmā, kura ir tuvāk lasītājam.
      Tāpēc video ir tāds mazs gļuciņš, ka nav zināms, kuru talonu tad tas lasītājs īsti skenē, to balto vai dzelteno kas ir virsū, ja vien dzeltenajam nav mehāniski nogriezta antena.

      1. Tagad, kad RS ir beidzot novērsuši problēmu (vismaz ar konkrēto kartes veidu), var padalīties ar detaļām.

        Dzeltenā karte nestrādāja, jo tā bija pavadījusi pāris sekundes mikroviļņu krāsnī.

        Konkrētā aplikācija netika un netiks publicēta, bet ir pieejamas citas alternatīvas aplikācijas (varbūt ne tik ērtas).

        1. Par mikreni tas ir atjautīgi :) Vai viss ir novērts to gan grūti apstiprināt. Maskavas metro tas ir novērsts ar uid blacklistiem un tas laikam ir vieniigais veids kā cīnities ar Padomju cilvēku :-) Tas ir – ar vienas dienas nobīdi biļete vairs nestrādā.
          Interesanta ir tā jaunā e-talona lasīšanas aplikācija, kur tas džeks lasa arī zilos talonus. Sanāk, ka viņš ir dabūjis k-kur vai nu read-only key priekš Calypso kartēm vai arī viņš viņas pat var rakstīt? Rokas par īsu lai uztaisītu decompile un paskatītos.

          1. Ar ziliem ta pat, parāk daudz ķēpas… Man gan gribās ar kādu gudrako par dzelteniem parunāt :)

        2. Lūk 2009 gadā par calypso RS raksta:
          “Security level: inaccessibility for third persons to
          read or change information which is loaded on the
          card”

          Bet jā, sorry, šī bišķi cita tēma. :)

        3. Interesanti gan būtu zināt ko nozīmē “vismaz ar konkrēto kartes veidu”kaut vai IC tipu zinat :D

        4. Nu mikroviļņu krāsņa rezultāts nav tas labākais, es lietoju amurīti “tieši pa čipu” ;) . Bet pašlaik vairāk pētu 2-5-10 braucienu kartes, tas liekas daudz perspektīvāk…

  6. daži gāja vēl tālāk, ebayā pasūtīja tādu kā celofāna kartīti ar čipu un tinumiem, aplīmēja akurāti ar dzeltenā e-talona bildēm

  7. Hmmm… Tagad skaidrs, kapēc RK visu sistēmu apgroza kajam gaisā. Ievainomības ziņā ta pofig (kaut gan tiešam, ķiniešu kartes vairāk neiet), bet pasaulē ir arī citi karšu ražotāji, cik tas nebūtū jocīgī ;)

  8. Papētiju pāris dienas to etalonus, dzeltenos. Ir iestrādāts drošības mehanisms un parasti mainot 0x07 page braucienu skaitu acīmredzami nedarbosies, jo tas būtu pārāk vienkārši. Pārveidoju timestampu no hex uz dec ko uzliek etalona aparāts kad nopīkstina biļeti bet nēsmu pietiekami gudrs, vai arī vienkārši negribu pirkt vairākus talonus lai salīdzinātu ciparus, kas tur ir. Bet vissticamāk ir 0 stunda no kuras tiek pieskaitītas minūtes un trolejbusa/etalona aparata numurs, kurā tu pīkstināji. Vai nu tā ir 1 Janvāris vai datums, kad tu pirki biļeti. Vissvieglāk būtu iegūldīt naudu, 50 EUR priekš Mifare Ultralight emulatora kur var mainit UID un OTP, un pīkstināt to autobusos un tad pārkopēt timestamp līnijas un dzelteno etalonu un rādīt kontrolei.

    1. Nav tur tik vienkarši. Teoretiski, ja zināt abus kontrolsummas algoritmus, tad 1-braucienu kartiņu var pilnīgi ‘godīgi’ partaisīt par 10 braucienu. Bet tam pretī divas kontrolsummas, 0x05 (32 bitu), kurā, visdrizāk, piesieta tikai pie UID, un 0x0B/0x0F, izskatās pēc 18 bitiem, kura reķinājās no pārējā. Bet laiks, kā izskatās, rakstas 2x reizes, 8/12 laukā ar 15 min intervaļiem un 10/14 ar vienas minutes intervaļiem. Tikko kaut-kas mainīts saturā – viss. Validators mirgo, bet nepīkst. Pie tam biļešu automāts var rādīt, kā viss OK.

    2. P.S. protams, ir variants, ņemt emulātoru, parkopēt uz viņa esošas kartes saturu pirms katra brauciena, tad pikstināt, un “ja nu iekāp kontrolieri” – kopēt rezultātus uz dzelteno kartiņu. Bet tam vajag reāli hardvarisko klonetāju, kurš pēc VIENAS pogas nospiešanas kopē src uz dest. Kaut-kā tadas iekartas plaši noperkāmas neredzēju, kaut gan jā, ja māki loadāmuri turēt, par kādiem 50-100 var salodēt.

  9. Emulators – tas būs sarežģīti. Bet gribēju noprecizēt, vai telefons ar NFC un attiecīgu sofu nevar strādāt, kā emulators? Man interesētu šāda shēma. Nopērku e-talonu, pielieku to pie telefona ar attiecīgu softu, tas nokopē e-talona datus. Tālāk jau brauciena laikā telefonu lieku pie etalona reģistratora, un tas manu telefonu uztver, kā e-talonu un izdara tur savas korekcijas, lai tālāk, kad iekāpj kontrole, infu no mobza attiecīgi pārkopētu e-talonā. Vai arī reģistrators mobzu ar NFC un softu nekad neuzskatīs par e-talonu?

  10. Teoretiski jau var jau. Bet iedomaies, iekap kontrolieri, prasa tev bileti, un tu viniem atbildi – “uzgaidiet, tulit iekopesu”. Tad jau vienkarsak beigto kartinu pie talruna vacinas pielimet ;) Tapec jau vajadziga iekarta, lai kabata nospiest pogu un izvilkt ierakstito kartinu. Un ja visu laiku vahte – vienkarsak pie validatora ar kartinu roka stavet ;)

    Un softu naksies visdrizak ari pasam rakstit. Apniks jau spaidit pogas.

Atbildēt

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *