[elektro] NFC
r3flow
zoltan.nagy at vivor.hu
Mon Dec 21 10:11:42 CET 2015
On 2015.12.17. 21:41, Fekete Róbert wrote:
> egyébként mire lehet használni itthon az nfc-t?
Egyrészt használhatod sima Mifare Classic NFC tagekkel (ami lehet
öntapadós, vagy műanyag, vagy akármilyen), akármire. Tele van az
appstore NFC tag appokkal, amik arra jók, hogy különféle eseményeket
köthetsz egyes NFC tagekhez. Például ha van olyan szokásod, hogy amikor
hazaérsz mindig ugyanoda teszed le a mobilod, akkor ragassz oda egy NFC
taget, az appot meg állítsd be úgy, hogy amikor ez a tag megjelenik,
akkor állítsa át a telefont ne zavarjanak módba vagy hívás csak fehér
listáról fogadjon, stb. Ugyanez ha beülsz autóba. Manapság terjed az
NFC-n keresztüli egyérintéses WiFi beállítás átküldése, vagy ugyanígy
Bluetooth párosítás NFC-n keresztül beavatkozás nélkül (újabb autókban
is vannak már ilyenek, a kihangosító is párosodik NFC-n keresztül
érintéssel). Adatcserére is jó két NFC telefon között BT helyett.
http://nfc-forum.org/nfc-product-showcase/
Az NFC-ről azt kell tudni, hogy az csak olyan mint az RS232 vagy az USB.
Maga az NFC csak arról szól, hogy tetszőleges biteket visz át A-ból B-be
(ISO/IEC 18000-3), rövid távolságban vezeték nélkül egy aktív
(initiator) és egy passzív (target) fél között. Maga az NFC csak ennyi.
Az, hogy az átvitt bitek milyen alkalmazást takarnak az már mind csak
hab a tortán de ezen a téren ugyanúgy nincsen semmilyen megkötés,
ahogyan RS232-nél sem köt meg senki semmiben téged, hogy mit küldesz át
rajta. Ennek fényében ahhoz, hogy a két oldal értse egymást, ezen az
alkalmazás szinten is meg kell érteniük egymást. Az NFC fölé számos
ilyen szabvány született pont úgy, ahogyan az USB fölé is, de ez nem
jelenti azt, hogy ne alkothatnál magadnak +1 sajátot.
Az NFC alkalmazásokban piacvezető az NXP
(https://en.wikipedia.org/wiki/MIFARE) főleg a Mifare családjával, az
NXP weboldalán ezekről teljes dokumentáció tölthető le. pl. veszel
kínából egy teszőleges fizikai kivitelű (öntapadós, kulcstartós, stb.)
1K-s Mifare Classic taget, az NXP weboldaláról letöltöd hozzá a doksit
és játszol vele.
http://www.nxp.com/documents/application_note/AN1304.pdf Ez a
legfadaposabb, legegyszerűbb tag, egyben a legrégebbi is, ezért a
legelterjedtebb. Emiatt már nem biztonságos, ajtózárat nem érdemes erre
a típusra építeni, ahhoz inkább valami újabbat kell választani, pl.
DESFire újabb típusai.
Az NFC-n keresztüli fizetést tehát nem maga az NFC tudja, hanem a fölé
épített alkalmazás. Ami egyedi. A bankkártyák alkalmazás szintű
kommunikációjához külön szabványcsalád tartozik, amit a MasterCard,
Visa, egyes Bankok, stb. fejlesztettek ki közösen. A neve EMV részletek
itt https://www.emvco.com/about_emv.aspx Eléggé komplex, de egyes cégek
árulnak C/C++/Java és mindenféle már nyelven megírt EMV könyvtárakat,
akár ARM7/Cortex-M mikrokontrollerig futtathatóan. A kommunikációnak
része egy PKI authentikáció, tehát rendes nyílt kulcsú titkosítást
használ a protokoll.
Ugyanez az EMV használatos a bankkártyák chipes interfészén és vezeték
nélküli átvitel esetén is. A bankkártya alapja ugyanúgy ISO/IEC 14443A
ezért lehetséges sima tageket kezelő applikációval alapadatokat
kiolvasni a bankkártyáról. Amiben eltérés van, azok az APDU parancsok,
amelyeket az ISO7816 szabványcsalád definiál (ez több szabvány, nem csak
egy, azaz ISO7816-1, ISO7816-2, ISO7816-3, ISO7816-4,
http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4.aspx).
Maga az EMV protokoll szerinti tranzakció APDU parancsokon keresztül
valósul meg. A DESFire kártyák extra funkciói is APDU parancsokkal
érhetőek el.
Az NFC-n keresztüli tranzakciókat az EMV a "conactless" címszó alatt
tárgyalja. A MasterCard contactless megoldásának a neve PayPass, a Visa
contactless megoldásának a neve PayWave, mindkettő NFC-re és EMV-re
épül. Magyarországon 99%-ban a MC PayPass az elterjedt, a világ más
részein a Visa PayWave. Simán létezhet lehet olyan terminál ami csak az
egyiket tudja elfogadni.
Mobiltelefonnal fizetni NFC-n, azaz a Mobiltelefon és az EMV. Az EMV
szabvány előír egy "Secure Element" nevű dolgot amire sok szigorú
előírás vonatkozik, ez kell ahhoz, hogy valamilyen eszközből EMV
certifikált terminál lehessen (azaz kezelhessen bankkártyát, chipen vagy
NFC-n (contactless) keresztül). Ezt eddig csak úgy tudták megoldani,
hogy egy speciális SIM kártyára kellett cserélni a SIM-et, ami
tartalmazta az NFC interfészt és az SE-t. Ilyen SIM kártyával működött
eddig pl. a Mastercard Mobiltárca nevű alkalmazás, ilyen SIM kártyával
nem túl régi (>= Android 4.2) okostelefonnal lehet NFC-n keresztül
érintéssel fizetni, függetlenül attól, hogy maga a telefon tartalmaz-e
NFC-t. https://www.otpbank.hu/mobiltarca/
Az Android 4.4-ben azonban már megjelent beépített funkcióként egy
HCE-nek (Host Card Emulation) nevezett megoldás, de ez még nagyon új
témakör. Ezzel kikerülhető lesz az SE helyi használata, erre a HCE
API-ra épülő Android alkalmazások lesznek majd képesek NFC-n keresztüli
fizetést lebonyolítani. Jelenleg még nem elterjedt a HCE és még nincs
túl sok ilyen app. Befogadó oldalról meg eleve nem tudok, csak annyit,
hogy a MasterCard már készül egy ilyen HCE-re épülő appal.
https://www.linkedin.com/pulse/tokenes%C3%ADt%C3%A9s-mit-jelent-az-emv-nfc-hce-mst-andrea-egertz
http://www.sequent.com/secure-elements-vs-cloud-based-hce-secure-nfc-mobile-payments/
http://www.chyp.com/wp-content/uploads/2015/01/HCE-and-SIM-Secure-Element.pdf
És akkor végül a "másolás" témaköre. Simán lemásolni a bankkártyát tehát
nem lehet a kérdés/válasz+PKI miatt, de van más mód. Kell hozzá 2db
okostelefon közöttük WiFi kapcsolattal, egyik ott áll a POS terminálnál
a másik meg a 4/6 villamoson. A villamoson keresni kell valakit aki
farzsebben hordja az NFC kártyát, közelíteni a telefont, egyúttal a
plázában a POS-hoz a másikat, a két telefon WiFi-n keresztül proxy-t
játszik a POS és a kártya között NFC-n, és kész a vásárlás. :)
https://www.defcon.org/images/defcon-20/dc-20-presentations/Lee/DEFCON-20-Lee-NFC-Hacking.pdf
Ez ellen lehet védekezni mert a 14443A úgy van összerakva, hogy az NFC
nem működik, ha az initiator terében egynél több tartget van. Maga a
protokoll ilyen. Tehát 2db NFC kártyát kell együtt tárolni zsebben,
pénztárcában. Nem kell 2db bankkártya, az egyik lehet bármilyen 14443A
tag, akármilyen Mifare Classic az aliexpresseről.
Üdv,
Z.
More information about the Elektro
mailing list