technologia nfc – tryb emulacji karty
TRANSCRIPT
POLITECHNIKA POZNAŃSKA
DZIAŁ ROZWOJU OPROGRAMOWANIA
PROGRAMOWANIE KART ELEKTRONICZNYCH MGR INŻ. MAREK GOSŁAWSKI
TECHNOLOGIA NFC – TRYB EMULACJI KARTY
Jakub Kontor nr indeksu: 94434
Systemy Informatyczne w Zarządzaniu
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
2
SPIS TREŚCI
1. TRYBY WYMIANY DANYCH W NFC ..................................................................................... 3
2. TRYB EMULACJI KARTY - OMÓWIENIE .............................................................................. 4
3. EMULACJA KARTY BAZUJĄCA NA BEZPIECZNYM ELEMENCIE ..................................... 5
4. PROGRAMOWA EMULACJA KARTY ................................................................................... 7
5. PROGRAMOWA EMULACJA KARTY Z BEZPIECZNYM ELEMENTEM W CHMURZE........ 8
6. ZASTOSOWANIE TRYBU EMULACJI KARTY .................................................................... 10
7. WYMAGANIA DLA URZĄDZEŃ ........................................................................................... 11
8. TWORZENIE APLIKACJI DLA TRYBU EMULACJI KARTY ............................................... 12
9. BIBLIOGRAFIA .................................................................................................................... 13
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
3
1. TRYBY WYMIANY DANYCH W NFC
Komunikacja zbliżeniowa NFC (Near Field Communication) oparta jest na technologii
bezprzewodowej wymiany danych, utworzonej na podstawie znaczników RFID i dodatkowych
protokołów. Standardy komunikacji NFC obejmują trzy tryby wymiany danych. Pierwszy z nich
obejmuje zastosowania, w których jedno urządzenie odpytuje znacznik elektroniczny (tzw. tag).
Drugi tryb to praca peer-to-peer, w którym oba komunikujące się ze sobą urządzenia są
równorzędne. Kolejny tryb umożliwia emulację tradycyjnych inteligentnych kart zbliżeniowych
(smart card). Gdy korzystamy z tego trybu pracy, telefony komórkowe mogą posłużyć jako np.
bezstykowe karty płatnicze. Tryb emulacji karty jest to aktualnie najczęściej stosowany tryb
komunikacji, który z czasem najprawdopodobniej zostanie zdominowany przez operacje płatności
zbliżeniowych.
Rys 1. Tryby wymiany danych w NFC (źródło: NFC Forum).
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
4
2. TRYB EMULACJI KARTY - OMÓWIENIE
Tryb emulacji karty daje możliwość urządzeniu NFC do funkcjonowania jak bezstykowa karta
elektroniczna zgodna z ISO/IEC 14443. Pojedyncze urządzenie mobilne może przechowywać wiele
aplikacji wykorzystujących omawiany tryb. Wiodące przykłady możliwych do emulacji kart
bezstykowych to np.:
karty kredytowe,
karty debetowe,
karty przedpłacone,
karty stałego klienta,
karty komunikacyjne (transport),
karty tożsamości,
karty dostępu.
Dzięki trybowi emulacji karty znika konieczność trzymania przy sobie wielu kart, kluczy, biletów.
Zamiast tego użytkownik posługuje się tylko jednym urządzeniem mobilnym zyskując przy tym na
wygodzie i elastyczności.
Rys 2. Tryb emulacji karty.
W omawianym trybie emulacji, urządzenie NFC nie generuje własnego pola
elektromagnetycznego. Pole to generowane jest przez czytnik NFC (13.56 MHz).
Istnieje kilka opcji trybu emulacji karty. Emulacja może się różnić standardem komunikacji,
obsługą wartsw protokołów, zestawem wspieranych komend oraz sposobem rzeczywistej emulacji
przez dane urządzenie.
Nawiązując do standardów komunikacji istnieją trzy możliwości:
ISO/IEC 14443 typ A,
ISO/IEC 14443 typ B,
FeliCa (JIS X 6319-4).
Wsparcie dla tych standardów zależy od kontrolera NFC, elementu bezpiecznego (secure element)
oraz regionu geograficznego. Na przykład ISO/IEC 14443 typu A i B są dominującymi
technologiami w Europie, podczas FeliCa jest szeroko rozpowszechniona w Japonii.
Inną różnicą jest część urządzenia, która realizuje rzeczywistą emulację. Z jednej strony, karta
może być emulowana programowo (na procesorze aplikacji urządzenia), a z drugiej strony
sprzętowo przez bezpieczny element.
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
5
3. EMULACJA KARTY BAZUJĄCA NA BEZPIECZNYM ELEMENCIE
Bezpieczny element (secure element) jest to układ cyfrowy identyczny z wykorzystywanymi w
tradycyjnych kartach płatniczych. Przeprowadza on złożone działania kryptograficzne, których
zadaniem jest bezpieczne uwierzytelnienie użytkownika podczas dokonywania transakcji
bankowych.
W uproszczeniu, urządzenie elektroniczne pozwalające na np. płatności zbliżeniowe składa się z
trzech modułów: części analogowej, kontrolera NFC i bezpiecznego elementu do weryfikacji
transakcji. Do części analogowej zaliczają się: antena oraz transceiver przetwarzający, modulujący i
demodulujący sygnały. Dodatkowo transceiver często zawiera wbudowane interfejsy do
komunikacji z kontrolerem urządzenia, takie jak: I2C, SPI i UART. W praktyce kontroler NFC to
najczęściej układ SoC (System On Chip) ze zintegrowanym transceiverem NFC i mikrokontrolerem
oraz z interfejsami do podłączenia układów zapewniających bezpieczeństwo transakcji. Niezależnie
od zgodności z protokołami NFC opisanymi w standardach ISO/IEC 18092 i ECMA-340, kontroler
może mieć zaimplementowaną obsługę także innych metod komunikacji bezprzewodowej na krótką
odległość. Dzięki temu będzie bardziej uniwersalny i będzie można go zastosować także w innych
aplikacjach. Elementy bezpieczne, potrzebne do potwierdzenia transakcji, mogą przechowywać
liczne programy związane np. z mobilnymi płatnościami. Zazwyczaj układ tego typu zawiera blok
zarządzania kartą, blok bezpieczeństwa oraz blok zarządzania programem aplikacji.
Rys 3. Element bzpieczny zintegrowany z kartą SIM (źródło: Magazyn Elektronika praktyczna 8/2011).
Umiejscowienie elementu bezpiecznego – konflikt interesów
Praktyczne rozwiązania sprzętowe stosowane w poszczególnych urządzeniach zdolnych do pracy w
trybie emulacji karty zbliżeniowej różnią się w zależności od wymagań danej aplikacji. Główne
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
6
różnice leżą w umiejscowieniu elementów bezpiecznych. Przykładowo, w części zastosowań są one
zintegrowane z kartami SIM, podczas gdy w innych stanowią oddzielne komponenty. Dzięki temu,
do popularyzacji komunikacji NFC nie zawsze jest potrzebna współpraca z operatorami, a jedynie
pomiędzy producentami telefonów komórkowych i wytwórcami układów scalonych. Ponieważ
elementy bezpieczne nie mogą się bezpośrednio komunikować z kartą SIM, informacje zebrane
podczas transmisji zbliżeniowej nie mogą być wysłane prosto przez sieć GSM (np. do serwerów w
banku). W przypadku wykorzystania trybu emulacji karty na potrzebę płatności zbliżeniowej
konieczne jest utworzenie specjalnego interfejsu wymiany danych pomiędzy elementem
bezpiecznym a układem przetwarzającym nadajnika GSM. Jest to spora komplikacja, dlatego dla
operatorów komórkowych lepszym rozwiązaniem jest jednak integracja bezpiecznych elementów i
kluczowych danych w kartach SIM, co może być z kolei niepożądane przez banki, dostawców
terminali płatniczych czy producentów sprzętu. W konsekwencji tego konfliktu interesów powstało
wiele konkurujących ze sobą rozwiązań.
Rys 4. Architektura typowego telefonu GSM/NFC (źródło: CryptoTech).
Bezpieczny element w UICC
W tym rozwiązaniu bezpieczny element jest pod kontrolą operatora GSM. Pamięć UICC jest
wynajmowana odpłatnie dla dostawców aplikacji. Korzyścią dla użytkownika jest wygoda
korzystania z OTA (Over-the-air) oraz możliwość przenoszenia bezpiecznego elementu razem
z kartą do innego urządzenia.
Bezpieczny element w telefonie
Bezpieczny element umiejscowiony w telefonie może być zarządzany przez samego użytkownika
lub dostawcę telefonu. Ograniczeniem w tym przypadku jest mała ilość urządzeń z bezpiecznym
elementem wynikająca z potrzeby optymalizacji konstrukcji telefonu (anteny) dla wbudowanego
bezpiecznego elementu.
Bezpieczny element w module pamięci flash SD/MMC
Dzięki temu rozwiązaniu użytkownik zachowuje znaczną niezależność od operatora i producenta
telefonu – może korzystać z niezależnych dostawców bezpiecznych elementów. Dużym plusem jest
również możliwość korzystania z bezpiecznego elementu w wielu telefonach.
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
7
4. PROGRAMOWA EMULACJA KARTY
Programowa emulacja karty jest nowszym rozwiązaniem względem poprzedniego bazującego na
bezpiecznym elemencie. Zostało one wprowadzone do telefonów komórkowych przez firmę
Research in Motion (RIM) na ich platformę BlackBerry. Charakteryzuje się rezygnacją z
bezpiecznego elementu. Poza wsparciem dla wielu bezpiecznych elementów platforma BlackBerry
7 zaprezentowała innowacyjne rozwiązane polegające na wsparciu dla emulacji tagów i
inteligentnych kart za pomocą oprogramowania znajdującego się w procesorze aplikacji
[http://www.nfcworld.com/2011/05/31/37778/rim-releases-blackberry-nfc-apis/].
Aplikacja może emulować kartę elektroniczną zgodną ze standardem ISO/IEC 14443-4. Emulacja
jest możliwa zarówno dla protokołu typu A jak i B. Aplikacja może określić statyczne właściwości
emulowanej karty oraz wymieniać dane protokołu znajdującego się na górze kanału transmisji
bloku zdefiniowanego przez ISO/IEC 14443-4. Kiedy aplikacja ma działać jako bezstykowa karta
elektroniczna, rejestruje się w systemie BlackBerry. Gdy tylko odpowiednia komenda odebrana jest
od zewnętrznego czytnika RFID/NFC, metoda zwrotna jest wykonywana. Otrzymana komenda
przekazywana jest jako parametr do metody wywołania zwrotnego. Aplikacja następnie może
przetworzyć polecenie i podać wartość zwrotną do czytnika.
Rys 5. Komendy karty elektronicznej obsługiwane przez oprogramowanie w procesorze aplikacji
Programowa emulacja karty możliwa jest na wszystkich komórkach BlackBerry z technologią NFC
oraz Android z firmware CyanogenMod 9+. Technologia ta zyskała wielu zwolenników ze względu
na uproszczenie sposobu pisania aplikacji (rezygnacja z secure element). Bazując na istniejących
infrastrukturach czytników, każdy może przystąpić do napisania swojej aplikacji. Rezygnacja z
bezpiecznego elementu niesie jednak za sobą wiele zagrożeń. Procesor aplikacji jest mniej
bezpieczny niż bezpieczny element. Problemem staje się przechowywanie poufnych danych
(płatności, kontrola dostępu, itp.) oraz podatność na ataki. Wspomniane słabości programowej
emulacji karty zmusiły inżynierów do opracowania bardziej bezpiecznych rozwiązań przy
zachowaniu elastyczności związanej z rezygnacją z bezpiecznego elementu w urządzeniu.
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
8
5. PROGRAMOWA EMULACJA KARTY Z BEZPIECZNYM ELEMENTEM W CHMURZE
Zastój, który panował przez długi czas wynikający z opisanych wyżej problemów przełamało
ukazanie się technologii HCE. Technologia HCE (Host Card Emulation) umożliwia modułowi NFC
kierowanie komunikacji w trybie emulacji karty płatniczej do wybranej aplikacji zainstalowanej na
telefonie. Co najważniejsze, samo urządzenie nie musi posiadać bezpiecznego elementu. Może on
znajdować się w zabezpieczonej chmurze, z którą łączy się dana aplikacja.
Rys 6. Bezpieczny element w chmurze (źródło: NFC Research Lab Hagenberg)
Szczegółowa specyfikacja HCE, opracowywana w 2013 roku we współpracy MasterCard, Capital
One i Banco Sabadell, stanowi istotny krok w rozwoju branży płatności mobilnych, który znacznie
zwiększy możliwości korzystania z mobilnych płatności bezstykowych przez konsumentów.
Technologia HCE jest obsługiwana przez systemy BlackBerry 7+ oraz Android OS KitKat 4.4,
który ukazał się na rynku w listopadzie 2013 roku i jest nadal wprowadzany w popularnych
urządzeniach inteligentnych. Przyjęte przez MasterCard podejście stanowi połączenie
specjalistycznego oprogramowania urządzenia mobilnego z przetwarzaniem danych w chmurze
przy zachowaniu wysokiego poziomu bezpieczeństwa. Rozwiązanie to znacznie upraszcza i
przyspiesza proces wdrażania mobilnych usług opartych na technologii NFC, oferowanych
klientom przez instytucje finansowe emitujące karty płatnicze. MasterCard planuje opublikowanie
opracowanych przez siebie specyfikacji bezpiecznych płatności bezstykowych w pierwszej połowie
2014 roku.
Visa także dostrzegła szansę otwarcia ekosystemu NFC. Organizacja ogłosiła, że nie tylko
rozszerzy specyfikację PayWave o możliwość przechowywania aplikacji w chmurze, ale również
przygotuje usługi dla wydawców kart pozwalające na łatwe zarządzanie mobilnymi portfelami
NFC. Pionier "EMV w chmurze", hiszpański Bank Inter, zademonstrował na targach MWC, jak
może wyglądać płatność zbliżeniowa telefonem pozbawionym bezpiecznego elementu.
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
9
Klip 1. Demonstracja płatności zbliżeniowej telefonem bez bezpiecznego elementu
Jednym z dostawców bezpiecznego elementu w chmurze jest firma Bell ID. Poniższy film
przedstawia sposób działania omawianej technologii oraz najważniejsze profity z nią związane.
Klip 2. Demonstracja „Bell ID® Secure Element in the Cloud”
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
10
6. ZASTOSOWANIE TRYBU EMULACJI KARTY
Płatności bezgotówkowe
Większość użytkowników kart płatniczych i kredytowych jest również użytkownikami telefonów
komórkowych. Dlaczego nie zintegrować procedury płatności z telefonem komórkowym? W ten
sposób, użytkownicy telefonów z technologią NFC nie muszą nosić wielu kart płatniczych lecz
zamiast tego wystarczy jedno urządzenie. Bezgotówkowe modele płatności stanowią bardzo
praktyczny scenariusz. Gdy płatność ma być wykonana, osoba uruchamia odpowiednią aplikacje w
telefonie, zbliża go do czytnika i wprowadza kod potwierdzający.
Przykłady: MasterCard Paypass, Visa PayWave.
Mobilny portfel
Tak jak prosta jest integracja karty płatniczej z telefonem komórkowym, tak również proste jest
zintegrowanie gotówki z tym samym urządzeniem. Użytkownicy mogą przechowywać dowolną
ilość pieniędzy na telefonach komórkowych, a jeśli wymagane są mechanizmy zabezpieczeń
cyfrowych to wykonywane są one przy użyciu trybu emulacji karty. Pieniądze mogą być
przekazywane do mobilnego portfela przy użyciu istniejących rozwiązań, takich jak banki czy
portale internetowe, prepaidy. Użytkownicy mogą również przy pomocy telefonu wypłacić
pieniądze z bankomatu. Zamiast fizycznie wypłacać pieniądze, wystarczy zbliżyć telefon do
czytnika NFC bankomatu.
Przykłady: Pay with Square, Google Wallet, Isis Mobile Wallet.
Obsługa biletów
Powstało już wiele ulepszeń w procesie dystrybucji różnych biletów. NFC to kolejna technologia,
która przyczynia się do upowszechnienia mobilnych biletów. Po tym jak bilet jest przesłany do
telefonu, technologia NFC może być użyta do przesyłania odpowiednich informacji do czytnika
NFC, który weryfikuje bilet. W obrębie jednego telefonu można bez przeszkód przechowywać
wiele rodzajów biletów np. zwykłe przejazdowe, miesięczne, lotnicze, do teatru, itp.
Przykłady: Presto card, Octopus card, New York City Transit, Mobitel, Mobile TeleSystems.
Karty lojalnościowe
Obecnie przynależność do programów lojalnościowych ma bardzo pozytywny wpływ na stosunek
klientów do usługodawców. Klienci otrzymują karty od różnych firm, co pozwala im uzyskać
korzyści podczas dokonywania kolejnych transakcji. Mogą być to np. punkty, zniżki, payback,
darmowe km, itp. Technologia NFC umożliwia klientom zintegrować swoje codzienne potrzeby z
telefonami komórkowymi eliminując potrzebę posiadania wielu fizycznych kart przy sobie. Klienci
mogą po prostu użyć odpowiednich aplikacji lojalnościowych na ich telefony komórkowe.
Przykłady: FidBook, AIB Merchant Services, Rica Lewis, Gold VIP Card.
Kupony
Dawanie zniżek jest bardzo atrakcyjnym sposobem dla firm, by przekonać klientów do zakupu.
Niektóre kupony dostępne są w gazatach, na ulotkach, podczas gdy inne np. po dokonaniu zakupu.
Ważne jest by móc w łatwy sposób przechowywać wszystkie kupony oraz móc z nich łatwo i
szybko skorzystać poprzez zwykłe zbliżenie telefonu do czytnika NFC.
Kontrola dostępu i tożsamości
Przechowywanie kluczy dostępu w jednym urządzeniu mobilnym jest bardzo wygodnym
rozwiązaniem. Nie ważne czy użytkownik chce się dostać do samochodu, budynku, mieszkania,
hotelu. Poprzez odpowiednią aplikację może również łączyć funkcję klucza i płatności np. podczas
rejestracji w hotelu i dostępu do pokoju.
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
11
7. WYMAGANIA DLA URZĄDZEŃ
Wdrożenie w urządzeniu NFC trybu emulacji karty jest opcjonalne. Jednakże, jeśli tryb emulacji
jest zaimplementowany to musi być zgodne z następującymi wymogami.
Rys 7. Wymagania dla urządzeń w trybie emulacji karty (źródło: NFC Forum Device Requirements 1.2)
[ACTIVITY] – NFC Activity Technical Specification, Version 1.0, NFC Forum
[DIGITAL] – NFC Digital Protocol Technical Specification, Version 1.0, NFC Forum
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
12
8. TWORZENIE APLIKACJI DLA TRYBU EMULACJI KARTY
Android
Dokument ten opisuje jak urządzenia z systemem Android 4.4 mogą emulować karty
bezstykowe bez użycia bezpiecznego elementu - HCE
http://developer.android.com/guide/topics/connectivity/nfc/hce.html
Klasy wykorzystywane do emulowania karty
http://developer.android.com/reference/android/nfc/cardemulation/package-summary.html
Repozytorium przykładowej aplikacji
https://github.com/grundid/host-card-emulation-sample
Opis, instrukcje, kod, podsumowanie dla powyższej aplikacji
http://blog.opendatalab.de/hack/2013/11/07/android-host-card-emulation-with-acr122/
BlackBerry
BlackBerry 7 – NFC Card Emulation tutorial
http://supportforums.blackberry.com/t5/tkb/articleprintpage/tkb-id/java_dev@tkb/article-
id/649
BlackBerry 10 – NFC Card Emulation tutorial
http://supportforums.blackberry.com/t5/tkb/articleprintpage/tkb-id/Cascades%40tkb/article-
id/54
Repozytorium przykładowej aplikacji
https://github.com/blackberry/Samples-for-Java/tree/master/NFC/NfcVirtualTargetFun
Opis, instrukcje, kod, podsumowanie dla powyższej aplikacji
http://supportforums.blackberry.com/t5/tkb/articleprintpage/tkb-id/java_dev%40tkb/article-
id/644
Windows Phone
Aktualnie API WP nie wspiera trybu emulacji kart
http://msdn.microsoft.com/en-
us/library/windowsphone/develop/jj207060%28v=vs.105%29.aspx
TECHNOLOGIA NFC - TRYB EMULACJI KARTY
13
9. BIBLIOGRAFIA
[1] A Review on Operating Modes of Near Field Communication
http://www.ijeat.org/attachments/File/v2i2/B0956112212.pdf
[2] Android Host-based Card Emulation connected to ACR122U
http://blog.opendatalab.de/hack/2013/11/07/android-host-card-emulation-with-acr122/
[3] Android Host-based Card Emulation
http://developer.android.com/guide/topics/connectivity/nfc/hce.html
[4] Canadian Coffee Chain Launches Mobile Payments With Host-Card Emulation
http://nfctimes.com/news/canadian-coffee-chain-launches-mobile-payments-host-card-
emulation
[5] Host Card Emulation: NFC’s Tale of Redemption
http://www.droplabs.co/?p=938
[6] Is HCE an enemy of NFC?
http://www.finextra.com/blogs/fullblog.aspx?blogid=8655
[7] List of applications of near field communication
http://en.wikipedia.org/wiki/List_of_applications_of_near_field_communication
[8] NFC - Wybrane zagadnienia bezpieczeństwa
http://www.cryptotech.com.pl/compl/data/cryptotech/pdf/NFC_2010_v1.pdf
[9] NFC card-emulation and Android 4.4
http://randomoracle.wordpress.com/2013/12/02/nfc-card-emulation-and-android-4-4-part-i/
[10] NFC Developer Comparison
http://www.nfcinteractor.com/developers/nfc-developer-comparison/
[11] NFC Forum Device Requirements 1.2
http://certification.nfc-forum.org/nfc-forum-device-requirements
[12] NFC – co powinniście o niej wiedzieć?
http://komorkomania.pl/2011/08/23/nfc-co-powinniscie-o-niej-wiedziec
[13] Open NFC™ Developer Site
http://open-nfc.org
[14] Return of NFC: Curse of the Secure Element
http://www.droplabs.co/?p=742
[15] Software Card Emulation in NFC-enabled Mobile Phones: Great Advantage or Security
Nightmare?
http://www.medien.ifi.lmu.de/iwssi2012/papers/iwssi-spmu2012-roland.pdf
[16] Visa unveils host card emulation specification for NFC payments
http://www.nfcworld.com/2014/02/19/327939/visa-unveils-host-card-emulation-
specification-nfc-payments/