[elektro] NFC
r3flow
zoltan.nagy at vivor.hu
Mon Dec 21 16:58:21 CET 2015
On 2015.12.21. 15:31, Jozsef Valkai wrote:
> En otthon ezeket a tag-eket mivel es hogyan programozom fel?
>
> Nem akarok olvasni konyveket hozza. :)
Ha csak eseményeket akarsz kiváltani tagekkel, akkor neked ehhez semmit
nem kell tenned. A sima Mifare Classic tag első blokkjának első szektora
csak olvasható (manufacturer block), abban van egy 4 bájtos UID ami bár
nem sok, de jó eséllyel nem lesz két taged amiben ez egyforma. Az ilyen
eseménykezelő appok ez alapján ismerik fel a taget, egyszerűen
megmutatod neki, ha ezt a taget látod akkor ne csörögj ki ha hívás jön.
Ilyen appokkal dunát lehet rekeszteni. Ezek az appok is képesek adatot
is írni a kártyában lévő 704 bájt területre, URL-t, SMS-t, stb. írni a
tagbe. Nem próbáltam még, de az klassz lenne mondjuk ha telefon
névjegyzéből névjegyet is lehetne bele menteni, a taget egy
névjegykártya hátuljára ragasztva, azt később telefonhoz érintve
bekerülne a telefonba a névjegy. Mondjuk.
pl.
https://play.google.com/store/apps/details?id=com.anytag.android
Átlagfelhasználó számára ezek teljesen konyhakészek.
-------------------------------------------------------------
Abban az esetben ha a 704 bájt memóriába teljesen egyedi adatokat akarsz
írni, akkor erre ott van pl. a Mifare Classic Tool
https://play.google.com/store/apps/details?id=de.syss.MifareClassicTool&hl=hu
Vagy PC-n a libnfc vagy csillió ezer másik könyvtár. A libnfc is sokféle
eszközt támogat:
http://nfc-tools.org/index.php?title=Devices_compatibility_matrix
Ezek nagy része kapható aliexpressen is sokan használják az ACR122U-t.
Én nem dobozolt verziót használtam, hanem PN532-t egy USB/RS232
kábellel:
https://www.itead.cc/prototyping/basic-module/itead-pn532-nfc-module.html
Annyit érdemes még tudni, hogy a Key-A és Key-B (opcionális a
használatuk) az NXP útmutatásait használva sok fejlesztéssel elég jó
védelmet ad, de sajnos ma már törhető, a githubon is van erre a célra kód.
----------------------------------------------------------------
Teljes klónozás: A szabványos Classic tag első 16 bájtja (manufacturer
block) read-only
https://www.firefart.at/wp-content/uploads/2015/04/mifare_memory_layout.png
de aliexpressen (sajnos?) lehet kapni olyan tageket is amelyeknek írható
az első 16 bájtja is. Ezek nevében szerepel, hogy "UID changeable" vagy
"block 0 writable", ezekre nem érdemes saját fejlesztést építeni, de
valaki más tagjét lemásolni kiválóak.
Például nagyon sok cégnél használnak beléptetésre ilyen NFC tageke.
Amikkel eddig én találkoztam azok sima 1K Classic kártyák voltak,
megdöbbentő módon tök üresek, gyári alap kulcsokkal (0xFFFFFFFFFFFF). Az
ajtókon a beléptetők csak az első szektorban a 4 bájtos UID-t
ellenőrizték semmi mást, és kinyílt az ajtó. Kipróbáltam ilyen kínai
taggel aminek írható az első 16 bájtja, csak az első 8 bájtot másoltam
át (az UID mellett van checkum is ezért nem elég az első 4 bájtot
átmásolni) és szépen nyitotta az ajtókat.
Azoknál a kínai klón kártyáknál amelyeknél írható az első 16 bájt, ott
az első 16 bájt írása előtt egy speciális unlock parancsot is kell
küldeni a kártyának. Az androidos appok ezt nem tudják, mert az android
API-ban nincs implementálva ez a parancs. A libnfc-hez tartozik néhány
parancssori tool is, tehát nem feltétlenül kell kódot írni a kártya
megszólításához.
http://manpages.ubuntu.com/manpages/wily/en/man1/nfc-mfclassic.1.html
Eredeti Tag olvasása amennyiben nem védi kulcs (pl. a céges belépő):
nfc-mfclassic r a tag.dmp
Tag teljes írása, beleértve az első szektort is (megfelelő kínai tag
esetén):
nfc-mfclassic W a tag.dmp
A w helyett a W jelzi, hogy unlock parancsot is küldjön a tagnek írás
előtt. Az ilyen klónozásra való tagekre azért nem érdemes saját
fejlesztést építeni mert az "unlock" parancs amit ezek kezelnek nem csak
íráskor működik hanem olvasáskor is, azaz unlock után a kulcsok (Key-A
és Key-B) ismerete nélkül is kiolvasható lesz a kártya, szóval ez
tényleg csak másolásra jó (az más kérdés, hogy az NXP biztosan nem örül
annak, hogy ilyenek léteznek). Viszont azoknál a kínai tageknél
amelyeknél nem írható az első 16 bájt (a döntő többség az ilyen) azok
teljesen szabványosak.
Z.
More information about the Elektro
mailing list