Pentesting RFID
Reading time: 8 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Introduction
Radio Frequency Identification (RFID) ni suluhisho maarufu la redio la umbali mfupi. Kwa kawaida hutumiwa kuhifadhi na kuhamasisha taarifa zinazotambulisha kitu.
Tag ya RFID inaweza kutegemea chanzo chake cha nguvu (active), kama betri iliyowekwa, au kupokea nguvu yake kutoka kwa antenna ya kusoma kwa kutumia sasa iliyosababishwa na mawimbi ya redio yaliyopokelewa (passive).
Classes
EPCglobal inagawanya tag za RFID katika makundi sita. Tag katika kila kundi ina uwezo wote ulioorodheshwa katika kundi la awali, hivyo kuifanya iweze kufanya kazi na makundi ya zamani.
- Tag za Class 0 ni tag za passive zinazofanya kazi katika UHF bendi. Muuzaji anaziandaa kabla ya uzalishaji. Kama matokeo, huwezi kubadilisha taarifa zilizohifadhiwa katika kumbukumbu zao.
- Tag za Class 1 pia zinaweza kufanya kazi katika HF bendi. Zaidi ya hayo, zinaweza kuandikwa mara moja tu baada ya uzalishaji. Tag nyingi za Class 1 zinaweza pia kushughulikia cyclic redundancy checks (CRCs) za amri wanazopokea. CRCs ni bytes chache za ziada mwishoni mwa amri kwa ajili ya kugundua makosa.
- Tag za Class 2 zinaweza kuandikwa mara nyingi.
- Tag za Class 3 zinaweza kuwa na sensors zilizowekwa ambazo zinaweza kurekodi vigezo vya mazingira, kama vile joto la sasa au mwendo wa tag. Tag hizi ni semi-passive, kwa sababu ingawa zina chanzo cha nguvu kilichowekwa, kama betri iliyounganishwa, haziwezi kuanzisha mawasiliano ya wireless na tag nyingine au wasomaji.
- Tag za Class 4 zinaweza kuanzisha mawasiliano na tag nyingine za kundi hilo, hivyo kuwa active tags.
- Tag za Class 5 zinaweza kutoa nguvu kwa tag nyingine na kuwasiliana na makundi yote ya tag ya awali. Tag za Class 5 zinaweza kutenda kama wasomaji wa RFID.
Information Stored in RFID Tags
Kumbukumbu ya tag ya RFID kwa kawaida huhifadhi aina nne za data: data ya utambulisho, ambayo inatambulisha kitu ambacho tag imeunganishwa (data hii inajumuisha maeneo yaliyowekwa na mtumiaji, kama akaunti za benki); data ya nyongeza, ambayo inatoa maelezo zaidi kuhusu kitu; data ya udhibiti, inayotumika kwa mipangilio ya ndani ya tag; na data ya mtengenezaji wa tag, ambayo ina Kitambulisho Maalum cha Tag (UID) na maelezo kuhusu uzalishaji, aina, na muuzaji wa tag. Utapata aina mbili za kwanza za data katika tag zote za kibiashara; mbili za mwisho zinaweza kutofautiana kulingana na muuzaji wa tag.
Standards za ISO zinaeleza thamani ya Kitambulisho cha Familia ya Maombi (AFI), msimbo unaoashiria aina ya kitu ambacho tag inahusiana nacho. Usajili mwingine muhimu, pia ulioelezwa na ISO, ni Kitambulisho cha Muundo wa Data (DSFID), ambacho kinaelezea mpangilio wa kimantiki wa data ya mtumiaji.
Mifumo mingi ya udhibiti wa usalama wa RFID ina mekanizimu ambazo zinapunguza operesheni za kusoma au kuandika kwenye kila kizuizi cha kumbukumbu ya mtumiaji na kwenye usajili maalum unaoshikilia thamani za AFI na DSFID. Hizi mekanizimu za kufunga hutumia data iliyohifadhiwa katika kumbukumbu ya udhibiti na zina nywila za msingi zilizowekwa na muuzaji lakini zinawaruhusu wamiliki wa tag kuunda nywila za kawaida.
Low & High frequency tags comparison
Low-Frequency RFID Tags (125kHz)
Tag za frequency ya chini mara nyingi hutumiwa katika mifumo ambayo hayahitaji usalama wa juu: ufikiaji wa majengo, funguo za intercom, kadi za uanachama wa gym, n.k. Kwa sababu ya umbali wao mrefu, ni rahisi kutumia kwa maegesho ya magari ya kulipia: dereva hahitaji kuleta kadi karibu na msomaji, kwani inasababishwa kutoka mbali. Wakati huo huo, tag za frequency ya chini ni za msingi sana, zina kiwango cha chini cha uhamasishaji wa data. Kwa sababu hiyo, haiwezekani kutekeleza uhamasishaji wa data wa pande mbili wenye changamoto kama vile kudumisha salio na cryptography. Tag za frequency ya chini zinatoa tu kitambulisho chao kifupi bila njia yoyote ya uthibitishaji.
Vifaa hivi vinategemea teknolojia ya passive RFID na vinafanya kazi katika kasi ya 30 kHz hadi 300 kHz, ingawa ni kawaida kutumia 125 kHz hadi 134 kHz:
- Umbali Mrefu — frequency ya chini inamaanisha umbali mrefu. Kuna wasomaji wa EM-Marin na HID, ambao hufanya kazi kutoka umbali wa hadi mita moja. Hizi hutumiwa mara nyingi katika maegesho ya magari.
- Protokali za Msingi — kutokana na kiwango cha chini cha uhamasishaji wa data, tag hizi zinaweza tu kuhamasisha kitambulisho chao kifupi. Katika hali nyingi, data haithibitishwi na haijalindwa kwa njia yoyote. Mara tu kadi inapokuwa katika umbali wa msomaji, inaanza tu kuhamasisha kitambulisho chake.
- Usalama wa Chini — Kadi hizi zinaweza kunakiliwa kwa urahisi, au hata kusomwa kutoka mfukoni mwa mtu mwingine kutokana na msingi wa protokali.
Protokali maarufu za 125 kHz:
- EM-Marin — EM4100, EM4102. Protokali maarufu zaidi katika CIS. Inaweza kusomwa kutoka takriban mita moja kwa sababu ya urahisi na uthabiti wake.
- HID Prox II — protokali ya frequency ya chini iliyoanzishwa na HID Global. Protokali hii ni maarufu zaidi katika nchi za magharibi. Ni ngumu zaidi na kadi na wasomaji wa protokali hii ni ghali zaidi.
- Indala — protokali ya zamani sana ya frequency ya chini ambayo ilianzishwa na Motorola, na baadaye kununuliwa na HID. Una uwezekano mdogo wa kukutana nayo katika mazingira ikilinganishwa na mbili zilizopita kwa sababu inatolewa nje ya matumizi.
Kwa kweli, kuna protokali nyingi zaidi za frequency ya chini. Lakini zote zinatumia moduli sawa kwenye tabaka la kimwili na zinaweza kuzingatiwa, kwa njia moja au nyingine, kama toleo la zile zilizoorodheshwa hapo juu.
Attack
You can attack these Tags with the Flipper Zero:
High-Frequency RFID Tags (13.56 MHz)
Tag za frequency ya juu hutumiwa kwa mwingiliano wa tag-msomaji wenye changamoto zaidi unapohitaji cryptography, uhamasishaji mkubwa wa data wa pande mbili, uthibitishaji, n.k.
Kwa kawaida hupatikana katika kadi za benki, usafiri wa umma, na pasi nyingine za usalama.
Tag za frequency ya juu 13.56 MHz ni seti ya viwango na protokali. Kwa kawaida hujulikana kama NFC, lakini hiyo si sahihi kila wakati. Seti ya protokali ya msingi inayotumika kwenye ngazi za kimwili na kimantiki ni ISO 14443. Protokali za kiwango cha juu, pamoja na viwango mbadala (kama ISO 19092), zinategemea hiyo. Watu wengi hujulikana na teknolojia hii kama Near Field Communication (NFC), neno linalotumika kwa vifaa vinavyofanya kazi kwenye frequency ya 13.56 MHz.
Kwa ufupi, usanifu wa NFC unafanya kazi kama ifuatavyo: protokali ya uhamasishaji inachaguliwa na kampuni inayotengeneza kadi na kutekelezwa kulingana na kiwango cha chini cha ISO 14443. Kwa mfano, NXP iligundua protokali yake ya uhamasishaji wa kiwango cha juu inayoitwa Mifare. Lakini kwenye kiwango cha chini, kadi za Mifare zinategemea kiwango cha ISO 14443-A.
Flipper inaweza kuingiliana na protokali ya kiwango cha chini ya ISO 14443, pamoja na protokali ya uhamasishaji wa data ya Mifare Ultralight na EMV inayotumika katika kadi za benki. Tunafanya kazi kuongeza msaada kwa Mifare Classic na NFC NDEF. Kuangalia kwa kina protokali na viwango vinavyounda NFC ni vyema kuwa na makala tofauti ambayo tunapanga kuwa nayo baadaye.
Kadi zote za frequency ya juu zinazotegemea kiwango cha ISO 14443-A zina Kitambulisho cha kipekee cha chip. Inafanya kazi kama nambari ya serial ya kadi, kama anwani ya MAC ya kadi ya mtandao. Kwa kawaida, UID ni byte 4 au 7 mrefu, lakini inaweza nadra kufikia hadi 10. UIDs si siri na zinaweza kusomwa kwa urahisi, wakati mwingine hata zimeandikwa kwenye kadi yenyewe.
Kuna mifumo mingi ya udhibiti wa ufikiaji inayotegemea UID ili kuhakiki na kutoa ufikiaji. Wakati mwingine hii inatokea hata wakati tag za RFID zinasaidia cryptography. Matumizi kama haya yanazifanya zishuke hadi kiwango cha kadi za kijinga 125 kHz katika suala la usalama. Kadi za virtual (kama Apple Pay) hutumia UID ya dinamik ili wamiliki wa simu wasifungue milango kwa kutumia programu yao ya malipo.
- Umbali wa chini — kadi za frequency ya juu zimeundwa mahsusi ili ziweze kuwekwa karibu na msomaji. Hii pia husaidia kulinda kadi kutokana na mwingiliano usioidhinishwa. Umbali wa juu zaidi wa kusoma ambao tumefanikiwa kufikia ulikuwa takriban sentimita 15, na hiyo ilikuwa na wasomaji wa umbali mrefu waliotengenezwa kwa kawaida.
- Protokali za Juu — kasi za uhamasishaji wa data hadi 424 kbps zinaruhusu protokali ngumu zenye uhamasishaji wa data wa pande mbili. Ambayo kwa upande wake inaruhusu cryptography, uhamasishaji wa data, n.k.
- Usalama wa Juu — kadi za frequency ya juu zisizo na mawasiliano kwa njia yoyote hazina kasoro kwa kadi smart. Kuna kadi zinazosaidia algorithimu zenye nguvu za cryptography kama AES na kutekeleza cryptography isiyo ya kawaida.
Attack
You can attack these Tags with the Flipper Zero:
Au kwa kutumia proxmark:
References
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.