Najnowsze artykuły
Technologie RFID i EPC | Przegląd wybranych technik kryptograficznych stosowanych w tagach RFID.
1566
post-template-default,single,single-post,postid-1566,single-format-standard,ajax_fade,page_not_loaded,smooth_scroll,,qode-theme-ver-1.4.1,wpb-js-composer js-comp-ver-4.3.4,vc_responsive

Przegląd wybranych technik kryptograficznych stosowanych w tagach RFID.

Przegląd wybranych technik kryptograficznych stosowanych w tagach RFID.

18:14 11 Maj w EPCGlobal, Technologia, Top

Abstrakt

Technologia RFID jest coraz szerzej wykorzystywana. Jej upowszechnienie stwarza  wiele zagrożeń, w tym monitorowanie procesów biznesowych u konkurencyjnych przedsiębiorstw, a nawet śledzenie dowolnej osoby przy pomocy przedmiotów, które ona nosi lub posiada przy sobie.

Aby udaremnić tego rodzaju praktyki, w tagach RFID stosowane są technologie zapewniające różnego rodzaju środki bezpieczeństwa. Jednak ścisłym ograniczeniem jest fakt, że rozwiązania te nie mogą znacząco podnieść kosztów systemów RFID. Ochrona informacji może być realizowana za pomocą kombinacji dedykowanych rozwiązań kryptograficznych oraz zoptymalizowanych protokołów identyfikacji zachowujących prywatność.

Celem niniejszego artykułu jest zapezentowanie najczęściej wykorzystywanych metod kryptograficznych zapewniających osłabienie zagrożeń związanych z bezpieczeństwem informacji przechowywanych w tagach RFID.

 

1. Wprowadzenie

Technologia RFID (ang. Radio Frequency Identification) łączy świat rzeczywisty z wirtualnym, umożliwiając komputerom śledzenie ruchu poszczególnych obiektów.  Jest ona potencjalnym odpowiednikiem i następcą kodu kreskowego i oczekuje się jeszcze gwałtowniejszego jej rozwoju w następnych latach, co przyniesie wzrost wydajności w procesach logistycznych[1]. Przykłady wykorzystania RFID można mnożyć, mogą to być między innymi wspomniane już wsparcie w zarządzaniu łańcuchem dostaw i stanem magazynów, identyfikacja zwierząt, zabezpieczenia antyfałszerskie w banknotach oraz dokumentach oraz wiele innych. Wraz z  upowszechnieniem owej technologii, rosną również problemy związane z bezpieczeństwem i zachowaniem prywatności, przede wszystkim dotyczące konsumentów i użytkowników końcowych.

Wprowadzenie technologii RFID, znajdującej wykorzystanie w łańcuchu dostaw, znanej jako EPC (ang. Electronic Product Code), pozwalającej identyfikować i śledzić palety i powiązane z nimi produkty w poszczególnych etapach całego procesu, spowodowało wzrost obaw dotyczących bezpieczeństwa informacji. Możliwość nieautoryzowanego monitorowania osób noszących przy sobie przedmioty posiadające wspomniane tagi stymuluje badania nad bezpieczeństwem i rozwój środków zabezpieczeń.

Na podstawie badań przeprowadzonych przez S. Sarmę z Massachussets Institute of Technology, aby zapewnić efektywne rozpowszechnienie tagów EPC na skalę światową, ich maksymalny koszt nie powinien przekraczać 5 centów (około 15 groszy). Dodatkowo, nie więcej niż 2 centy mogą być przeznaczone w takim wypadku na wytworzenie układu scalonego. Niestety, nie wszystkie bariery, które podwyższają  ów koszt produkcji zostały usunięte. W związku z powyższym, niskobudżetowa technologia RFID jest w stanie przy dużym nakładzie osiągnąć koszt około 10 centów na jednostkę, jednak zapewnienie nawet podstawowych funkcjonalności związanych z autentykacją i ochroną prywatności, spowoduje ich wzrost o kolejne 5 centów [2]. Dodawanie bardziej złożonych metod staje się więc nieopłacalne kosztowo.

Kolejną barierą przy wprowadzaniu rozwiązań zapewniających bezpieczeństwo są ograniczenia poboru mocy. Należy pamiętać, że pasywne tagi RFID są zasilane przez sygnał otrzymywany z czytników. Większość operacji przeprowadzanych w tagach EPC pochłania od 5 do 10 μA, czasami nieco wykraczając poza ten zakres – na przykład w wypadku zapisu informacji. Jednak tego rodzaju zasoby energii umożliwiają jedynie wykorzystanie bardzo podstawowych, szczególnie pod względem obliczeniowym metod zabezpieczeń, co – jak wiadomo, jest niekorzystne dla ich złożoności i odporności na złamanie.

Istotnym jest również, aby zastosowane sposoby uzyskiwania bezpieczeństwa działały na wykorzystywanym paśmie przesyłu danych. Stosowany obecnie standard EPC Class-1 Gen-2 wymaga przeciętnej prędkości odczytu na poziomie sięgającym około 200 tagów na sekundę, co stanowi transmisję około 640 kb/s [3]. Natomiast dołączenie mechanizmów kryptograficznych może powodować opóźnienia w transferze informacji, co nakłada następne ograniczenie przy doborze metod zabezpieczających.

Większość stosowanych rozwiązań można pogrupować w trzy następujące kategorie[4]:

  1. Metody kryptograficzne o niskiej złożoności obliczeniowej, wykorzystujące jednostronne funkcje hashujące oraz rozwiązania pochodne.
  2. Rozwiązania kryptograficzne o niskiej złożoności zarówno pamięciowej, jak i obliczeniowej, bazujące na generatorze pseudolosowym zamieszczonym na tagu oraz prostych operacjach arytmetycznych.
  3. Alternatywne podejścia, które unikają wykorzystania funkcji kryptograficznych.

W dalszej części artykułu powyższe metody, wykorzystujące techniki kryptograficzne, zostaną opisane bardziej szczegółowo.

 

2. Rozwiązania kryptograficzne o niskiej złożoności obliczeniowej

Jednymi z najczęściej przywoływanych metod dla tańszych rozwiązań RFID są protokoły bezpieczeństwa bazujące na tzw. cyklicznym kodzie nadmiarowym, zwanym także CRC. Jest system wykorzystujący sumy kontrolne, umożliwiający stwierdzenie integralności danych oraz wykrycie przypadkowych błędów podczas ich transmisji[5].

Tego rodzaju rozwiązanie jest wykorzystywane obecnie w standardzie RFID o nazwie EPCglobal Class-1 Gen-2, wersja 1.09. Algorytmy CRC traktują dane binarne jako wielomian, którego współczynniki zawarte są w ciele Galois GF(2) (czyli 0 lub 1). Dla n-bitowych cyklicznych kodów nadmiarowych powinien zostać wybrany wielomian nierozkładalny n-tego stopnia nad ciałem GF(2), zwany dalej wielomianem CRC. Suma kontrolna jest wtedy wyliczana jako reszta z dzielenia danych wejściowych przez wielomian CRC. Przykładowo, wyrażenie (x+1) można uznać za wielomian CRC, stanowiący 1-bitowy cykliczny kod nadmiarowy, będący odpowiednikiem bitu parzystości.

Z kolei w standardzie EPCglobal Class-2 Gen-2, w celu kontroli błędów w transmitowanych danych, stosowana jest 16-bitowa suma kontrolna CRC. Wykorzystywanym wielomianem stopnia 16 jest x16+x12+x5+1. Pomimo tego, że wyliczenie cyklicznego kodu nadmiarowego wymaga dzielenia wielomianów, może być ono zaimplementowane w sposób bardzo efektywny, wykorzystując rejestr przesuwny, biorąc pod uwagę rozwiązania sprzętowe, lub tablicowanie, będące usprawnieniem w warstwie oprogramowania. Ogólnie rzecz biorąc, jeśli algorytm jest zaimplementowany prawidłowo, dla n-bitowego cyklicznego kodu nadmiarowego możemy mówić o prawdopodobieństwie kolizji – czyli wystąpienia dwóch identycznych wartości – rzędu 2-n. Należy również pamiętać, że suma kontrolna CRC ciągu postaci 0*||s, rozpoczynającego się zerem, i skonkatenowanego z dowolnym łańcuchem bitów s, będzie tożsama z sumą kontrolną uzyskaną dla samego ciągu s. Stąd, wymagane jest rozpoczęcie ciągu s bitem  o wartości 1.[6]

Innymi popularnymi kryptograficznymi metodami, bazującymi na wspomnianym schemacie CRC są tzw. kody uwierzytelniania wiadomości, nazywane również kodami MAC oraz HMAC (ang. Message Authentication Code).

Algorytm tworzący kod MAC przyjmuje jako strumień wejściowy tajny klucz oraz określonej długości wiadomość, którą należy zweryfikować. Uzyskana wartość kodu uwierzytelniania chroni zarówno integralność danych, jak i ich autentyczność, umożliwiając osobom posiadającym klucz wykrycie zmian w zawartości informacji [7].

Rys. 1: Schemat prezentujący działanie algorytmu MAC.

Źródło: http://en.wikipedia.org/wiki/Message_authentication_code

Na zaprezentowanym schemacie, nadawca, wykorzystując swój klucz, uruchamia algorytm generujący dla wiadomości przez niego wysyłanej kod uwierzytelniania. Wiadomość, wraz z wygenerowaną wartością MAC są wysyłane do odbiorcy. Następnie odbiorca, posiadając identyczny klucz, tworzy własną wartość MAC dla wiadomości. Dzięki temu może on porównać zarówno tę swoją, jak i otrzymaną. W przypadku, gdy są one identyczne, można stwierdzić, że wiadomość nie została żaden sposób zmodyfikowana w trakcie transmisji. W przeciwnym przypadku, jej integralność została naruszona i może ona stanowić zagrożenie.

T. Takaragi, wraz ze swoimi współpraownikami jako pierwsi stworzyli dostępny komercyjnie chip RFID (μchip)wyposażony w algorytm tworzenia MAC [8]. Implementaja wykorzystuje bardzo podstawowe podejście, przypominające to z CRC, jednak silniejsze kryptograficznie. Bezpieczeństwo μ-chipu bazuje na 128-bitowym ID, umieszczonym na chipie w trakcie produkcji. Wspomniany numer ID jest konkatenacją wcześniej wygenerowanej wartości MAC z danymi chipu. Natomiast sam kod uwierzytelniania wiadomości stworzony jest na podstawie zaszyfrowania owych danych przy pomocy algorytmu MAC i klucza znanego klientom i producentowi. Mechanizm ten utrudnia nieautoryzowane podsłuchiwanie, jak również łagodzi problem tworzenia fałszywych tagów. Wciąż nie uległ jednak rozwiązaniu problem związany z prywatnością informacji – umieszczanie numeru ID łamie zasadę anonimowości oraz umożliwia lokalizację danego produktu z tagiem RFID. Dodatkowo, istnieje ryzyko ujawnienia klucza, przez to, że używany jest on do generowania większej ilości MAC [9].

Rozbudowane rozwiązanie polega na wykorzystaniu tzw. metod hash lock. Protokół hash-lock jest mechanizmem kontroli dostępu, zaprojektowanym przez S. Sarmę. Bazuje on na jednostronnych funkcjach hashujących. Jak zostało już wspomniane, technologia RFID ustala ograniczenia co do wielkości i kosztów produkcji tagu, przez co nie jest możliwe zastosowanie skomplikowanych algorytmów. Aby funkcja hashująca mogła zostać zaimplementowana, wymagane jest około jedynie 1000 bramek logicznych, co mieści się nawet w surowych ograniczeniach stawianych przez RFID. [10] W celu uniknięcia zagrożeń związanych z wysyłaniem numeru ID taga, stosowana jest następująca procedura blokowania hash-lock[11]:

  1. Czytnik wybiera losowy klucz i generuje hashową wartość klucza, określaną również jako metaID.
  2. Czytnik zapisuje wartość metaID na tagu, przez co zostaje on zablokowany. W tym stanie tag odpowiada na wszystkie zapytania tylko swoim metaID i nie oferuje ponadto żadnej innej funkcjonalności.
  3. R przechowuje pary (metaID, klucz) lokalnie.

Aby odblokować tag, realizuje się następujące czynności:

  1. Czytnik wysyła zapytanie do taga znajdującego się w zasięgu jego działania o metaID.
  2. Następnie czytnik wyszukuje odpowiedniej pary (metaID, klucz).
  3. Wybrany klucz wysyłany jest do identyfikowanego taga.
  4. Na podstawie klucza generowana jest wartość funkcji hashującej. Jeśli ów hash jest równy wartości metaID, tag jest odblokowywany

Rys. 2: Schemat obrazujący odblokowywanie taga.

Źródło: Autor.

Aby zapobiec przechwyceniu informacji z taga, należy po jego wykorzystaniu natychmiast go zablokować. Poprzez fakt, że odwrócenie jednostronnych funkcji  hashujących jest obliczeniowo bardzo złożone, tego rodzaju schemat chroni przed nieautoryzowanym odczytem danych. Istnieje jednak zagrożenie związane z podszywaniem się pod tagi, przez co czytnik może ujawnić parę (metaID, klucz). Niektóre czytniki są jednak zabezpieczone przed tego rodzaju czynnościami.

Warto wspomnieć, że wykorzystywanie w powyższych metodach standardowych implementacji funkcji hashujących, jak MD4,  MD5, SHA-128/SHA-256, przewyższa ograniczenia wyznaczone przez tańsze technologie RFID. Oczywiście, zdarza się ich wykorzystanie w mniej powszechnych i droższych rozwiązaniach, jednak w większości przypadków szukane są alternatywne rozwiązania.

Jednym z wyjść mogą być kryptosystemy wykorzystujące krzywe eliptyczne, zwane ECC (z ang. Elliptic Curve Cryptosystems). Ich bezpieczeństwo oparte jest na złożoności obliczeniowej dyskretnych logarytmów na krzywych eliptycznych. Tego rodzaju rozwiązanie oferuje bezpieczeństwo porównywalne do RSA przy zachowaniu znacznie mniejszej długości klucza. Dla porównania, bezpieczeństwo klucza RSA o długości 1024 bitów jest równoważne temu dla klucza ECC o długości 160 bitów. Z tych przyczyn, ECC jest bardzo atrakcyjne dla środowisk o ograniczonej zdolności obliczeniowej, jak właśnie technologie RFID [4].

Kolejne rozwiązanie to algorytm TEA oraz jego poprawione wersje – XTEA i XXTEA (ang. (Extension of (Extended)) Tiny Encryption Algorithm). Jest to algorytm szyfrujący, zaprojektowany w celu uzyskania niskiej złożoności i łatwej implementacji. Jego implementacja wymaga pod względem sprzętowym wykorzystania około 3000 bramek logicznych i pobiera około 7 μA.

Implementacja bazuje na bardzo prostych arytmetycznych operacjach na bitach. Szyfr oparty jest o tzw. sieć Feistela i wykorzystuje operacje z mieszanych grup algebraicznych. Siecią Feistela jest struktura pozwalająca na szyfrowanie i deszyfrowanie informacji tym samym algorytmem, pomimo faktu, że funkcja użyta w algorytmie nie jest odwracalna. Generuje ona z z tekstu jawnego szyfrogram, a z szyfrogramu tworzony jest tekst jawny. W ten sposób konstruowanie algorytmów szyfrujących znacznie się uprościło, ponieważ nie trzeba się troszczyć o kontrolę nad odwracalnością funkcji wybranej w algorytmie szyfrującym[12].

Rys. 3: 2 kroki sieci Feistela w algorytmie XTEA.

Źródło: http://en.wikipedia.org/wiki/XTEA

Algorytm cechuje się małą złożonością, zachowaną przy dużej szybkości szyfrowania. David Wheeler i Robert Needham, projektanci omawianego rozwiązania, twierdzą, że pomimo jego prostoty, złożoność algorytmu jest bliska dorównaniu złożoności DES. Jego implementacja wymaga jednak zastosowania funkcji hashujących. Stwierdzono również pewne słabości tego algorytmu, takie jak możliwość liniowych i różnicowych ataków kryptograficznych, co jest konsekwentnie poprawiane w jego zmodyfikowanych wersjach [9].

 

3. Rozwiązania kryptograficzne o niskiej złożoności zarówno pamięciowej, jak i obliczeniowej

Wykorzystanie generatorów liczb pseudolosowych, zwanych PRNG (z ang. Pseudo Random Number Generator) w celu zwiększenia bezpieczeństwa i zachowania prywatności technologii RFID to kolejne podejście. W zasadzie można stwierdzić, że większość rozwiązań zaprezentowanych w poprzedniej sekcji, w celu zagwarantowania ich poprawności, wymaga zastosowania właśnie generatorów liczb pseudolosowych. Przykładowo, zaprezentowany protokół hash lock, wykorzystuje generatory PRNG, umieszczone na tagu, w celu osłanienia takiego zagrożenia jak śledzenie lokalizacji [4].

Zastosowanie pseudolosowości w celu zwiększenia progu bezpieczeństwa technologii RFID nie wymagających dużych nakładów finansowych jest często kwestionowane, ponieważ tego rodzaju przedsięwzięcie jest bardzo złożone w implementacji na tagach. Tego rodzaju złożoność jest porównywalna z implementacją odpornych na kolizje jednostronnych funkcji hashujących lub ekwiwalentów silników szyfrujących. Jednak od ratyfikacji standardu EPCglobal Class-1 Gen2 wraz z ISO/IEC 18000-6C, dotyczącym zastosowania generatorów PRNG na tagach RFID, wzrosła liczba rozwiązań kryptograficznych z tym związanych.

Podejście wykorzystujące pseudolosowość jest bardzo popularne, ze względu na problemy związane z kolizjami, czyli podwójnym wystąpieniem danej wartości, szczególnie znamienne przy protokołach autentykacji wykorzystujących schemat zapytanie-odpowiedź, a także przy tworzeniu tajnych kluczy, które nie powinny być możliwe do przewidzenia nawet znając algorytm, jaki jest wykorzystywany[9].

W ujęciu teoretycznym, liczba losowa jest taką liczbą, która jest wybrana ze zbioru n liczb z prawdopodobieństwem wynoszącym dokładnie n^(-1). Innymi słowy, każda liczba z tego zbioru ma równą szansę bycia wylosowanym. Jednak ze względów implementacyjnych niemożliwym jest realizacja prawdziwie losowego generatora liczb. Pojawiają się więc pomysły imitujące losowość (w sensie obliczeniowym) i nazywane są właśnie generatorami liczb pseudolosowych. Zwykle, generator PRNG jest modelowany jako funkcja deterministyczna, której kolejny wynik wyliczany jest na podstawie poprzednich (najczęściej tego poprzedzającego), a cała sekwencja wyjściowa rozpoczyna się od ziarna generatora. Poziom bezpieczeństwa generatora liczb pseudolosowych zależy od okresu i rozkładu prawdopodobieństwa sekwencji wyjściowej. Jeden z popularnych typów generatora PRNG przyjmuje formę kongruencji: x_i = ax_i + b mod N, gdzie x_0 jest ziarnem generatora, natomiast a, b i N są parametrami przyjmowanymi przez funkcję. Innym rodzajem jest generator liczb pseudolosowych oparty o rejestr przesuwny z liniowym sprzężeniem zwrotnym, który mógłby być z powodzeniem zaimplementowany na tagach RFID.

W standardzie EPCglobal Class-1 Gen-2, tag wykorzystujący tę technologię jest w stanie wygenerować 16-bitową pseudolosową liczbę o następujących właściwościach:

  1. Prawdopodobieństwo, że pojedyncza liczba 16-bitowa jest wylosowana powinno być ograniczone przez 0.8×2^(-16) < P[j] < 1.25×2^(-16).
  2. Szansa na jednoczesne wygenerowanie przez 2 z 10000 tagów tej samej pseudolosowej 16-bitowej liczby jest mniejsza niż 0.1%.
  3. Prawdopodobieństwo odgadnięcia następnej pseudolosowej liczby wygenerowanej przez tag jest mniejsze niż 0.025%, przy założeniu że wszystkie poprzednie wartości wyjściowe są znane atakującemu.

Biorąc pod uwagę fakt, że standard Gen-2 wymaga tylko 16-bitowej liczby pseudolosowej, granica bezpieczeństwa tego protokołu jest ustalona na poziomie 2^(-16). Należy zaznaczyć, że standard ten używa również 32-bitowego PINu, dlatego powinno zostać rozważone wykorzystanie liczby 32-bitowej, co może zwiększyć gwarantowany poziom bezpieczeństwa[6].

 

4. Wnioski

Środowisko sprzętowe, jak i aplikacyjne, wykorzystywane w technologiach RFID, a także  zapewnienie niskich kosztów produkcji przyczyniło się do stworzenia wielu propozycji budujących warstwę bezpieczeństwa i ochrony. Przedstawione zostały mechanizmy kryptograficzne dwóch kategorii – bazujące na jednostronnych funkcjach hashujących oraz wykorzystujące pseudolosowość. Każde z wymienionych rozwiązań posiada jednak pewne słabości, co dowodzi, jak wielkim wyzwaniem jest zaprojektowanie adekwatnych procedur i algorytmów, posiadając przy tym tak surowe ograniczenia.

 

Literatura:

[1]Karsten Nohl, Implementable Privacy for RFID Systems, University of Virginia, 2009

http://www.cs.virginia.edu/~kn5f/pdf/K.Nohl.PhD-Implementable.Privacy.for.RFID.Systems.pdf

[2] S. Sarma, Toward the 5 cent tag, White Paper, November 2001, Auto-ID Center

http://www.autoidlabs.org/uploads/media/mit-autoid-wh-006.pdf

 [3] Understanding Gen 2: What It Is, How You Will Benefi t And Criteria For Vendor Assessment

http://www.motorola.com/web/Business/Products/RFID/RFID%20Reader%20Antennas/AN200/_Documents/Static%20Files/Understanding%20Gen%202_WP_0507_New.pdf

[4] Joaquin Garcia-Alfaro, Michel Barbeau, Evangelos Kranakis, Security Threat Mitigation Trends in Low-cost RFID Systems, School of Computer Science, Carleton University, Ottawa, Canada

[5] http://en.wikipedia.org/wiki/Cyclic_redundancy_check

[6] Dang Nguyen Duc, Hyunrok Lee , Kwangjo Kim, Enhancing Security of EPCGlobal Gen-2 RFID against Traceability and Cloning White Paper, 2006, Auto-ID Center

http://www.autoidlabs.org/uploads/media/AUTOIDLABS-WP-SWNET-016.pdf

[7] D. Wheeler and R. Needham. TEA, a Tiny Encryption Algorithm. In Fast Software Encryption:

Second International Workshop, Leuven, Belgium, December, Springer, 1995

[8] K. Takaragi, M. Usami, R. Imura, R. Itsuki, T. Satoh, An ultra small individual recognition

security chip, IEEE Micro, 2001

[9] Damith C. Ranasinghe, Daniel W. Engels, Peter H. Cole, Security and Privacy: Modest Proposals for Low-Cost RFID Systems

[10] Qi Luo, Advances in Wireless Networks and Information Systems, Springer, Berlin 2010

http://books.google.pl/books/about/Advances_in_Wireless_Networks_and_Inform.html?id=lNl3zEumW4EC

[11] Stephen August Weis, Security and Privacy in Radio-Frequency Identification Devices, MIT 2003

http://groups.csail.mit.edu/cis/theses/weis-masters.pdf

[12] http://en.wikipedia.org/wiki/XTEA

 

Autor: Magdalena Tuleja

Oceń ten artykuł