Technologia NFC Andrzej Chybicki 1
O NFC... NFC (ang. Near Field Communication - NFC) to standard radiowej komunikacji krótkiego zasięgu powstały z myślą o zastosowaniu w telefonach komórkowych. 2
ISO/IEC opracowany przez Grupę Roboczą nr 8 Podkomitetu 17, działającą w ramach Połączonego Komitetu Technicznego nr 1 ISO/IEC. składa się z czterech części [1][2][3][4] [1][2][3][4] opisuje dwa rodzaje kart: Typ A oraz Typ B, komunikujące się za pośrednictwem fal radiowych o częstotliwości 13,56 MHz. Karty różnią się przede wszystkim metodami modulacji, sposobem kodowania danych (część 2) oraz procedurami wywołania protokołu (część 3). Protokół transmisji danych jest taki sam w przypadku obu rodzajów kart i został opisany w części 4. – Dane techniczne – Parametry łącza radiowego – Wywołanie protokołu i zabezpieczenia – Protokół transmisji danych 3
ISO/IEC 18092:2004 Definiuje interfejs NFCIP-1 (Communication Interface and Protocol) Dwa tryby pracy: – Pasywny – Aktywny Information interchange between systems also requires, at a minimum, agreement between the interchange parties upon the interchange codes and the data structure. 4
NFC - standardy Technologia NFC wykorzystuje istniejące standardy komunikacji zbliżeniowej takie jak: – ISO/IEC podstawowy standard protokołów transmisji danych i parametrów łącza radiowego, – ISO/IEC podstawowy standard protokołów transmisji danych i parametrów łącza radiowego, – JIS X – FeliCa - podstawowy standard protokołów transmisji danych i parametrów łącza radiowego, – ISO/IEC – Vicinity – wynik pracy NFC Forum. 5
NFC opisuje również format wymiany danych NFC (NDEF – ang. NFC Data Exchange Format) – określa format wiadomości używanych przez aplikacje zgodne z NFC, pozwala tworzyć wiele wiadomości oraz dzielić wiadomości w bloki, definicja typu rekordu – określa jak tworzyć rekordy w wiadomościach NDEF, rekordy mogą zawierać inne rekordy, każdy rekord ma swój typ określający co zawiera, typy rekordów mogą być rozszerzane przez kolejne specyfikacje NFC Forum. 6
Parametry techniczne NFC działa na zasadzie indukcji magnetycznej gdzie dwie kołowe anteny są umieszczone w swoim polu bliskim Używa ogólnie dostępnej częstotliwości MHz, z szerokością pasma 14 kHz. Zasięgi pracy do 20 cm Supported data rates: 106, 212, 424 or 848 kbit/skbit/s Tryby pracy: – Pasywny w którym urządzenie inicjujące generuje pole elektromagnetyczne z którego korzysta urządzenie pasywne - komunikacja odbywa się na zasadzie modulacji – Aktywny w którym oba urządzenia (Initiator and Target ) komunikują się za pomocą dwóch osobnych pól eletrkomagnetycznych. Oba urządzenia musza mieć źródła zasilania NFC devices are able to receive and transmit data at the same time. Thus, they can check the radio frequency field and detect a collision if the received signal does not match with the transmitted signal. 7
NFC vs bluetooth NFCBluetooth V2.1Bluetooth V4.0 RFIDRFID compatibleISO active Standardisation body ISO/IECBluetooth SIG Network StandardStandardISO etc.IEEE Network TypePoint-to-pointWPAN Cryptographynot with RFIDavailable Range< 0.2 m~10 m (class 2)~1 m (class 3) Frequency13.56 MHz GHz Bit rate424 kbit/s2.1 Mbit/s~200 kbit/s Set-up time< 0.1 s< 6 s< 1 s Power consumption< 15mA (read)varies with class< 15 mA (xmit) 8
libnfc 9
10
11
12
Tagi (pasywne) Wyróżniamy 4 typy tagów: Tag 1 Type: – ISO14443A standard. These NFC tags are read and re-write capable and users can configure the tag to become read-only. – 96 bytes which is more than sufficient to store a website URL or other small amount of data. However the memory size is expandable up to 2 kbyte. – The communication speed of this NFC tag is 106 kbit/s. As a result of its simplicity this tag type is cost effective and ideal for many NFC applications. Tag 2 Type: – ISO14443A. These NFC tags are read and re-write capable and users can configure the tag to become read-only. – The basic memory size of this tag type is only 48 bytes although this can be expanded to 2 kbyte. – the communication speed is 106 kbit/s. Tag 3 Type: – The NFC Tag 3 Type is based on the Sony FeliCa system. It – 2 kbyte memory capacity – data communications speed is 212 kbit/s. – NFC tag type is more applicable for more complex applications, although there is a higher cost per tag. Tag 4 Type: – ISO14443A and B standards. – pre-configured at manufacture and they can be either read / re-writable, or read-only. T – he memory capacity can be up to 32 kbytes and the communication speed is between 106 kbit/s and 424 kbit/s. From the definitions of the different NFC tag types, it can be seen that type 1 and 2 tags are very different to type 3 and 4 tags, having different memory capacity and makeup. Accordingly it is expected that there is likely to be very little overlap in their applications. Type 1 and type 2 tags are dual state and may be either read/write or read-only. Type 3 and Type 4 tags are read-only, data being entered at manufacture or using a special tag writer. 13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Java ME Implementation Java PackageInterfacesClassesExceptions javax.microedition.contactless A mandatory package that contains all the target discovery and classes common to all targets TagConnection TargetListener TargetProperties TransactionListener DiscoveryManager TargetType ContactlessException javax.microedition.contactless.ndef An optional package for communicating with NDEF formatted data tags NDEFRecordListener NDEFTagConnection NDEFMessage NDEFRecord NDEFRecordType javax.microedition.contactless.rf An optional package for communicating with RFID (no NDEF formatted data) tags PlainTagConnection javax.microedition.contactless.sc An optional package for communicating with external smartcards ISO14443Connection javax.microedition.contactless.visual An optional package for reading and generating visual tags ImageProperties VisualTagConnection SymbologyManagerVisualTagCodingExc 41
Biblioteka specyfikacji JSR- 257 Note that the only mandatory package is javax.microedition.con tactless 42
Struktura JSR-257 The Java Runtime with JSR-257 implementation, the MIDlet application running on a handset, RFID/NFC transponder, controllers, and baseband, a SIM card, as well as secure and external elements. 43
Bezpieczeństwo w NFC Do uzyskania najwyższego poziomu bezpieczeństwa potrzebny jest sprzętowy moduł bezpieczeństwa – Secure Element. Obecnie SE może być dostępny w trzech różnych formach: wbudowany w telefon, na karcie SIM, umieszczony na zewnętrznej karcie pamięci SD. 44 certyfikat do podpisywania aplikacji Java oraz certyfikaty dające dostęp do zastrzeżonych API. środowisko Netbeans IDE Eclipse z Pluginem EclipseME. Przykładowe narzędzia do programowania SE (Secure Element): JCOP Tools from NXP (from IBM) - Eclipse Plugin, G&D GPShell, Gemalto DS, Gemplus GemXpresso RADIII Schlumberger Cyberflex Access
Secure Element - funkcje Zasada działania jest następująca: urządzenie/telefon pełni rolę czytnika SmartCard. Używane są dwie aplikacje. Aplikacja JME na telefonie komórkowym pełniąca oferująca interfejs użytkownika oraz aplikacja JavaCard na elemencie SE. JSR177 stanowi interfejs pomiędzy aplikacjami. Interfejs JSR177: – określa interfejs komunikacji z aplikacjami na karcie smart card za pomocą protokołu APDU, – określa API Java Card RMI - pozwala JME wywoływać metody obiektów Java Card, – wspiera podpis elektroniczny z poziomu aplikacji – bez weryfikacji, – pozwala na podstawowe zarządzanie poświadczeniami użytkownika, – opisuje podzbiór API kryptograficznego J2SE – weryfikacja podpisu, szyfrowanie, odszyfrowywanie, funkcje skrótu. 45
Architektura aplikacji Java Card JCRE (ang. JavaCard Runtime Environment - JCRE) pracuje w czasie rzeczywistym, startuje raz w czasie inicjalizacji karty. Po każdym restarcie JCRE wchodzi w pętlę odbierz odpowiedź procesu Applety i trwałe dane są zachowywane pomimo resetu JCRE odpowiada za wykonywanie apletów, komunikacje sieciową, zarządzanie zasobami karty oraz bezpieczeństwem systemu i kart 46
Tworzenie aplikacji JavaCard Converted Applet (CAP) - zawieraja wykonywalne klasy w postaci binarnej, posiada tylko jeden pakiet i zoptymalizowany jest do małych pamięci JCVM (ang. JavaCard Virtual Machine) wykonuje kod bajtowy 47
Z punktu widzenia programisty... 48
Listenery 49
NFC w Android 50
Klasa NFCAdapter 51
52
Rynek Telefonów Nokia C7 [15] [15] Nokia 6216 Classic [16] (Nokia has confirmed the cancellation of this phone in February 2010 [17] ) [16] [17] Nokia 6212 Classic [18] [18] Nokia 6131 NFC [19] Nokia 6131 [19] Nokia NFC Shell [20] [20] Samsung S5230 Tocco Lite/Star/Player One/Avila [21] [21] Samsung SGH-X700 NFC [22] [22] Samsung D500E [20] [20] SAGEM my700X Contactless [19] [19] LG 600V contactless [19] [19] Motorola L7 (SLVR) [20] [20] Benq T80 [20] [20] Sagem Cosyphone [23] [23] 53
Rynek mobilnych płatności Płatność mobilna - płatności dokonywane za pomocą mobilnych urządzeń, takich jak telefon komórkowy, laptop czy palmtop. Urządzenia te muszą umożliwiać łączność z siecią telekomunikacyjną w celu zainicjowania i potwierdzenia płatności. Źródło: Mobilne systemy pieniądza elektronicznego i inne instrumenty mobilnych płatności, Dr Remigiusz W. Kaszubski, Paweł Widawski 54
Instrumenty płatnicze 1. pieniądz elektroniczny (dalej PE) 2. tradycyjne instrumenty płatnicze takie jak karty płatnicze lub polecenie zapłaty, gdzie telefon komórkowy jest jedynie nowym kanałem dostępowym 55
Pieniądz elektroniczny Do pierwszej grupy instrumentów zalicza si instrumenty przedpłacone, takie jak: pieniądz elektroniczny zapisany na kartach mikroprocesorowych oraz pieniądz sieciowy występujący w formie mobilnej portmonetki, czyli jako elektroniczna wartość pieniężna zapisana na serwerze centralnym tzw. stored value account (SVA). Dyrektywa 2000/46/EC o pieniądzu elektronicznym. Niektóre narodowe implementacje tej Dyrektywy, w tym polska nie uznają wprost za pieniądz elektroniczny wartości zapisanej na serwerze centralnym ze względu na to, że wartość ta nie znajduje się w fizycznym posiadaniu użytkownika. 56
Typy transakcji mobilnych transakcje typu B2C (business to consumer) w których konsument dokonuje zakupu u przedsiębiorcy, zarówno w fizycznym punkcie usługowo-handlowym, jak i w otoczeniu wirtualnym (e-commerce i m-commerce) transakcje typu P2P (person to person) polegaj na przesyłaniu wartości między użytkownikami, tego rodzaju transakcje wykorzystywane są na przykład do płatności za dobra kupione na aukcji internetowej transakcje typu B2B (business to business), czyli transakcje między przedsiębiorcami 57
Podmioty i strony Dostawcy usług finansowych dostarczają produkty finansowe np. pieniądz elektroniczny, karty płatnicze i uczestniczą w rozliczaniu transakcji. W odniesieniu do mobilnych płatności możemy wyróżnić następujące przykłady dostawców usług finansowych: operatorzy telekomunikacyjni Banki inne instytucje finansowe np. instytucja pieniądza elektronicznego niezależni dostawcy 58
Podmioty i strony (2) Dostawcy usług płatniczych odpowiedzialni są za dostarczenie systemu: mobilnych płatności. Zapewniaj dostęp do odpowiednich dostawców usług finansowych i ustanawiają transakcję między nimi a konsumentami i handlowcami. Zwykle ich rola ogranicza się do dostarczania odpowiedniego oprogramowania stronom transakcji. Dostawcą usług płatniczych może by operator lub organizacja powołana wspólnie przez telekomy i banki a także podmiot niezależny. 59
Podmioty i strony (3) Dostawcy sieci dostarczaj infrastrukturę telekomunikacyjną pozwalającą na przeprowadzenie transakcji za pomocą telefonu komórkowego, od zainicjowania 60