RFID + mobilní technologie = NFC Ing. Tomáš Dulík, Ph.D., FAI UTB ve Zlíně dulik@fai.utb.cz
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: <intent-filter> <action android:name="android.nfc.action.ndef_discovered"/> <category android:name="android.intent.category.default"/> <data android:scheme="http" android:host="www.fai.utb.cz" android:pathprefix="/index.php" /> </intent-filter>
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..