RFID + mobilní technologie = NFC Ing. Tomáš Dulík, Ph.D., FAI UTB ve Zlíně
[email protected]
Předchozí projekty... ●
2000-2002: MOBIVAS (FP5, IST-1999-10206)
●
2002-2004: Full Speed (FP5 IST-2001-32463)
●
2003-2005: Mobilife (FP6 IST-2004-511607), https://www.ist-mobilife.org
●
2009-2011: CESNET 351/2009
●
2011-2014: CEBIA-Tech
CESNET 351/2009: RF měřící pracoviště 0-6 GHz R&S FSV7
2x USRP2-N210 GNU Radio
NETIO power control Space for signal generator
RF network Ubiquity Bullet2 & M5
2 LAN switches (hidden under the drawer)
Local console (keyboard, monitor, KVM switch)
Virtualization servers (Fujitsu TX200S5, Supermicro SuperServer)
2x UPS
Bezodrazová komora (projekt CEBIA-Tech) ●
Testy EMC
●
Měření antén a zařízení až do 300 GHz
Smluvní výzkum/vývoj v oblasti RFID ●
Low-cost přístupový systém RFID čtečka
Ovládání zámku
CAN/RS485 Šifrovaná komunikace
Ethernet/WiFi/CAN/RS485 CAN/RS485 Šifrovaná komunikace
Koncentrátor nebo server
Co je to NFC? ●
●
Rozšíření RFID @ 13.56 MHz, zaměřené na mobilní technologie NFC standardy: –
Rozšiřují a jsou kompatibilní s ISO/IEC 14443A/B/Felica, ISO/IEC 15693 (I-CODE)
–
ISO/IEC 18092:2004 / ECMA-340 Near Field Communication Interface and Protocol-1 (NFCIP-1)
–
ISO/IEC 21481:2005 / ECMA-352 Near Field Communication Interface and Protocol-2 (NFCIP-2)
Historie NFC ●
●
●
2004: Nokia, Philips and Sony zakládají Near Field Communication (NFC) Forum 2006: 1. verze specifikace NFC Tagů, 1. NFC telefon - Nokia 6131, API pro J2ME 2009: NFC Forum uvolnilo Peer-to-Peer standardy pro přenos kontaktů, URL, zahájení Bluetooth komunikace, ...
●
2009/2010: Samsung Nexus S – 1. Android s NFC
●
2011: NFC API pro Symbian Anna
●
2011: Telefony Blackberry (Research In Motion) certifikovány pro MasterCard PayPass
●
2011/2012: Pilotní projekt O2 plateb s MasterCard PayWave
●
2011/2012: Windows8 a jeho Proximity API
●
2012: RFID platební čtečky PayWave se lavinově šíří po ČR
NFC versus Bluetooth NFC
Bluetooth V2.1
Bluetooth V4.0
RFID compatible
ISO 18000-3
active
active
Standardisation body
ISO/IEC
Bluetooth SIG
Bluetooth SIG
Network Standard
ISO 13157 etc.
IEEE 802.15.1
IEEE 802.15.1
Network Type
Point-to-point
WPAN
WPAN
Cryptography
available
available
available
Range
< 0.2 m
~10 m (class 2)
~1 m (class 3)
Frequency
13.56 MHz
2.4-2.5 GHz
2.4-2.5 GHz
Bit rate
424/848 kbit/s
2.1 Mbit/s
~200 kbit/s
Set-up time
< 0.1 s
<6s
<1s
Power consumption
< 15mA (read)
varies with class
< 15 mA (xmit) 8
NFC zařízení ●
●
●
NFC zařízení podporují 3 režimy: –
„čtečka“ (čtení/zápis)
–
Peer-to-peer
–
Emulace karty
Formát dat pro komunikaci: NFC Data Exchange Format = NDEF Zabezpečení – „secure element“ (např. SIM karta, NXP PN65, ...)
Aplikační oblasti pro NFC ●
●
●
Platby, mikroplatby: MasterCard PayWave, Google Wallet, Nokia (Windows) Wallet, ... Náhrada čárových a QR kódů –
Skladové a inventarizační systémy
–
Lokalizace člověka v uzavřeném prostoru (příklad: „tap“ na NFC tag na stole v restauraci)
–
Přenos krátkých informací (URL, kontakt)
Rychlý přenos dat mezi 2mi zařízeními (přenos MP3 z mobilu do přehrávače, přenos aplikací mezi 2ma mobily)
●
Náhrada pevných/desktopových RFID čteček
●
atd...
NFC Tagy ●
●
Tag 1 Type: ISO14443A –
Nejjednodušší a nejlevnější typ NFC tagu
–
Read nebo re-write, uživatelé mohou tag nakonfigurovat do modu read-only.
–
Kapacita min. 96 bytes – stačí na uložení např. website URL, ale velikost paměti může růst až do 2 kbyte.
–
Komunikační rychlost 106 kbit/s.
Tag 2 Type: ISO14443A. –
Jako Typ 1, pouze základní kapacita je 48 bytes,
rozšiřitelná na 2 kbyte.
NFC Tagy ●
●
Tag 3 Type: –
ISO 18092 - Sony FeliCa
–
Kapacita 2 kbyte
–
Komunikační rychlost je 212 kbit/s.
Tag 4 Type: –
ISO14443A and B standards.
–
Předkonfigurovány výrobce do modu read/write, nebo read-only.
–
Kapacita do 32 kbytes
–
Komunikační rychlost 106 kbit/s - 424 kbit/s.
Zabezpečení NFC ●
●
Šifrování komunikace není standardizováno proprietární protokoly jednotlivých výrobců Příklady karet: –
NXP „MIFARE Classic“ - šifra Crypto1. Zlomena v roce 2007
–
NXP „MIFARE Desfire MF3ICD40“ - 3DES. Zlomena v roce 2011/2012
–
NXP „MIFARE Desfire EV1“ - šifra AES. Zatím nezlomena.
Jak hacknout křemík? ● ● ●
●
●
Útok na MIFARE Classic: K. Nohl, Starbug, H. Plötz, 2007 Odstranění plastu (aceton, HNO3 + H2SO4 ...) Postupné odbrušování vrstev čipu
Nalezení opakovaných vzorů na křemíku: Mapování vzorů na hradla a celé zapojení:
Jak hacknout křemík? ● ●
● ●
Ze zapojení byl odvozen algoritmus Nalezeny slabá místa a bugy algoritmu a jeho implementace Navržen a realizován úspěšný útok V následující letech další výzkumníci zlepšili časovou složitost útoku na několik sekund
Hack MIFARE Desfire ●
David Oswald, Christof Paar, 2011
●
Metoda: DPA (Differential Power Analysis)
●
Extrakce master klíče? 250K průběhů, cca 7 hodin
Mobilní platformy a NFC ●
●
JavaME –
Nokia 6131: JSR 257, JSR177 Java Card API
–
Blackberry: sada proprietárních API
Linux (Nokia MeeGo a spol), Windows, Mac: –
Libnfc (2008): knihovna +API podporující různé RFID čtečky, nyní především NXP PN53x
●
Android: od verze 2.3.x, Samsung Nexus 7 (2009)
●
Symbian: od verze Anna (2011)
●
Windows8: Proximity API (2012)
Dilema vývojáře: kterou platformu vybrat? ●
●
●
Roky před Androidem: Marketingový tlak = jedině Microsoft! (Windows Mobile 6, .NET!) Názory v roce 2009-2010: ???? (Windows Mobile 6 nikdo nechce, všichni kupují Apple a Android) 2012 - 2013: „smart phone“ horečka vrcholí (?)
Jak tohle dopadne?
Statistiky Global mobile subscriptions: 5 981 000 tis., roční nárust 11% ● Globální prodeje mobilních technologií vs. desktop PC: ●
Device
Source: ITU (Nov 2011) via: mobiThinking
Shipments 2011 Annual growth (millions)
Smartphones
487,7
62,70%
Total PCs
414,6
14,80%
Notebooks
209,6
7,50%
Desktops
112,4
2,30%
Tablets
63,2
274,20%
Netbooks
29,4
-25,30%
Source: Canalys (Feb 2012) via: mobiThinking
Globální prodeje mobilních telefonů:
●
Device
Shipments 2011 Annual growth (millions)
Total handsets
1546
11,10%
Feature phones*
1055
-2,90%
Smartphones
491,4
61,30%
Source: IDC (Feb 2012)
* Škatulky „Smartphones“ a „Feature phones“ jsou vágně definovány, tyto statistiky proto neberte moc doslova
Podíl výrobců na trhu všech telefonů Vendor
Shipments 2011 (millions)
Market share 2011
Shipments 2010 (millions)
Market share 2010
Annual growth
Nokia
417.1
27.0%
453.0
32.6%
-7.9%
Samsung
329.4
21.3%
280.2
20.1%
17.6%
Apple
93.2
6.0%
47.5
3.4%
96.2%
LG
88.1
5.7%
116.7
8.4%
-24.5%
ZTE
66.1
4.3%
50.5
3.6%
30.9%
Others
552.1
35.7%
443.6
31.9%
24.5%
Total
1546
100,00%
1391.5
100,00%
11.1%
Source: IDC (Feb 2012)
●
Statistika za 1.Q 2012 – Samsung vítězí: –
Samsung 92 mil. ks, Nokia 83 mil. ks
Podíl výrobců na trhu smart phones Vendor
Shipments 2011 (millions)
Market share 2011
Shipments 2010 (millions)
Market share 2010
Annual growth
Samsung
94.0
19.1%
22.9
7.5%
310.5%
Apple
93.2
19.0%
47.5
15.6%
96.2%
Nokia
77.3
15.7%
100.1
32.9%
-22.8%
RIM
51.1
10.4%
48.8
16.0%
4.7%
HTC
43.5
8.9%
21.7
7.1%
100.5%
Others
132.3
26.9%
63.7
20.9%
107.7%
Total
491.4
100.0%
304.7
100.0%
61.3%
Source: IDC (Feb 2011)
Smartphones dle OS Operating System
Shipments 2011 (millions)
Market share 2011
Annual growth
Android
237.7
48.8%
244,00%
iOS
93.1
19.1%
96,00%
Symbian
80.1
16.4%
-29.1%
BlackBerry
51.4
10.5%
5.0%
Bada
13.2
2.7%
183.1%
Windows Phone
6.8
1.4%
-43.3%
Others
5.4
1.1%
14.4%
Total
487.7
100,00%
62.7%
Source: Canalys (Feb 2011) via: mobiThinking
●
Květen 2012:
Zdroj: IDC via http://www.email-marketing-reports.com/wireless-mobile/smartphone-statistics.htm
Smartphone penetration - výrobci
Source:http://techcrunch.com/2011/11/28/its-still-a-feature-phone-world-global-smartphone-penetration-at-27/
Smartphone penetration dle zemí
Source:http://techcrunch.com/2011/11/28/its-still-a-feature-phone-world-global-smartphone-penetration-at-27/
Výhledy pro smartphones ●
http://www.email-marketing-reports.com/wireless-m
●
http://www.idc.com/getdoc.jsp?containerId=prUS23
●
IDC očekává, že: –
v roce 2012 bude prodáno 686 million ks
–
V roce 2015 dosáhne prodej 982 mil. ks
Ukázka - Android jako RFID čtečka
Android jako RFID čtečka
Android jako RFID čtečka
Android API
Filtry tagů ●
●
Defaultně „čistý“ Android reaguje pouze na NDEF formátované tagy, které obsahují URL, a to spuštěním prohlížeče. Aplikace mohou v manifestu definovat tzv. Intent filtry pro NFC a tak reagovat tak na libovolný typ tagu, obsahující libovolný obsah.
●
Příklad – aplikace, které se spustí při přiložení NDEF-formátovaného tagu, obsahujícího URL http://www.fai.utb.cz/index.php:
Zpracování dat z tagů public void onResume() { super.onResume(); ... if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) { Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); if (rawMsgs != null) { msgs = new NdefMessage[rawMsgs.length]; for (int i = 0; i < rawMsgs.length; i++) { msgs[i] = (NdefMessage) rawMsgs[i]; } } } //process the msgs array }
Příklad komunikace s Mifare Classic void resolveIntent(Intent intent) { String action = intent.getAction(); if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) { Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); MifareClassic mfc = MifareClassic.get(tagFromIntent); byte[] data; try { mfc.connect(); boolean auth = false; String cardData = null; int secCount = mfc.getSectorCount(); int bCount = 0; int bIndex = 0; for(int j = 0; j < secCount; j++){ auth = mfc.authenticateSectorWithKeyA(j, MifareClassic.KEY_DEFAULT); if(auth){ bCount = mfc.getBlockCountInSector(j); bIndex = 0; for(int i = 0; i < bCount; i++){ bIndex = mfc.sectorToBlock(j); data = mfc.readBlock(bIndex); Log.i(TAG, getHexString(data, data.length)); bIndex++; } }else{ // Authentication failed - Handle it } } }catch (IOException e) { Log.e(TAG, e.getLocalizedMessage()); showAlert(3); } }
Android API – příklad autentizace Mifare Ultralight s 3DES Tag tag = intent.getParcelableExtra(NfcAdaptor.EXTRA_TAG); MifareUltralight ul = MifareUltralight.get(tag); if(ul == null) return; // not MIFARE Ultralight byte[] authenticateCommand = { ... }; // data pro authentication command – viz NXP PDFs (pokud podepíšete NDA...) byte[] authenticateResponse = ul.transceive(authenticateCommand); ... // etc.
Užitečné knihovny a nástroje pro Android/Javu ●
●
●
http://code.google.com/p/ndef-tools-for-android/ - runtime API pro snadnější tvorbu NDEF zpráv http://code.google.com/p/nfc-eclipse-plugin/ GUI pro tvorbu statických NDEF zpráv http://code.google.com/p/nfc-tools/ - Java API pro libnfc
J2ME API: JSR 257
JSR 257 – detekce tagů
JSR 257 – vyčtení NDEF zprávy
Počet prodaných kusů vs. aplikace
Názor skeptického realisty? ●
●
●
Smartphony budou ještě chvíli růst, než většina běžných uživatelů (ať už si je koupí, půjčí nebo si jen nechá poradit od zkušenějších) zjistí základní nevýhody: –
Zbytečně velká spotřeba = malá mobilita. Dělník v továrně chce mít mobil v kapse, ne celý den na nabíječce.
–
Zbytečný dotykový displej, který tvoří velkou část ceny telefonu. HW klávesnice je mnohem více user-friendly.
–
Zbytečný plnohodnotný OS, vyžadující velkou ROM a velkou RAM = zbytečné navýšení ceny a spotřeby.
Nepro(r|v)okuji, jen s chladnou hlavou posuzuji jeden aktuální módní trend! Přirovnání: trh s miniDV kamerami v roce 2003 a dnes..