12 KiB
Pentesting RFID
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się sztuczkami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Wprowadzenie
Radio Frequency Identification (RFID) to najpopularniejsze rozwiązanie radiowe o krótkim zasięgu. Zwykle jest używane do przechowywania i przesyłania informacji identyfikujących podmiot.
Tag RFID może polegać na własnym źródle zasilania (aktywnym), takim jak wbudowana bateria, lub otrzymywać zasilanie z anteny odczytującej, wykorzystując prąd indukowany z odebranych fal radiowych (pasywny).
Klasy
EPCglobal dzieli tagi RFID na sześć kategorii. Tag w każdej kategorii ma wszystkie możliwości wymienione w poprzedniej kategorii, co czyni go kompatybilnym wstecz.
- Tagi Klasy 0 to pasywne tagi działające w pasmach UHF. Producent wstępnie programuje je w fabryce. W rezultacie nie można zmienić informacji przechowywanych w ich pamięci.
- Tagi Klasy 1 mogą również działać w pasmach HF. Ponadto mogą być zapisywane tylko raz po produkcji. Wiele tagów Klasy 1 może również przetwarzać cykliczne sumy kontrolne (CRC) poleceń, które otrzymują. CRC to kilka dodatkowych bajtów na końcu poleceń do wykrywania błędów.
- Tagi Klasy 2 mogą być zapisywane wielokrotnie.
- Tagi Klasy 3 mogą zawierać wbudowane czujniki, które mogą rejestrować parametry środowiskowe, takie jak aktualna temperatura lub ruch tagu. Tagi te są półpasywne, ponieważ chociaż mają wbudowane źródło zasilania, takie jak zintegrowana bateria, nie mogą inicjować bezprzewodowej komunikacji z innymi tagami lub czytnikami.
- Tagi Klasy 4 mogą inicjować komunikację z innymi tagami tej samej klasy, co czyni je tagami aktywnymi.
- Tagi Klasy 5 mogą dostarczać zasilanie innym tagom i komunikować się ze wszystkimi poprzednimi klasami tagów. Tagi Klasy 5 mogą działać jako czytniki RFID.
Informacje przechowywane w tagach RFID
Pamięć tagu RFID zazwyczaj przechowuje cztery rodzaje danych: dane identyfikacyjne, które identyfikują podmiot, do którego tag jest przypisany (dane te obejmują pola zdefiniowane przez użytkownika, takie jak konta bankowe); dane uzupełniające, które dostarczają dalszych szczegółów dotyczących podmiotu; dane kontrolne, używane do wewnętrznej konfiguracji tagu; oraz dane producenta tagu, które zawierają unikalny identyfikator tagu (UID) oraz szczegóły dotyczące produkcji, typu i producenta tagu. Pierwsze dwa rodzaje danych znajdziesz we wszystkich komercyjnych tagach; ostatnie dwa mogą się różnić w zależności od producenta tagu.
Standard ISO określa wartość identyfikatora rodziny aplikacji (AFI), kod, który wskazuje rodzaj obiektu, do którego tag należy. Innym ważnym rejestrem, również określonym przez ISO, jest identyfikator formatu przechowywania danych (DSFID), który definiuje logiczne zorganizowanie danych użytkownika.
Większość kontroli bezpieczeństwa RFID ma mechanizmy, które ograniczają operacje odczytu lub zapisu na każdym bloku pamięci użytkownika oraz na specjalnych rejestrach zawierających wartości AFI i DSFID. Te mechanizmy blokujące wykorzystują dane przechowywane w pamięci kontrolnej i mają domyślne hasła wstępnie skonfigurowane przez producenta, ale pozwalają właścicielom tagów na konfigurowanie niestandardowych haseł.
Porównanie tagów niskiej i wysokiej częstotliwości
Tagi RFID o niskiej częstotliwości (125 kHz)
Tagi niskiej częstotliwości są często używane w systemach, które nie wymagają wysokiego bezpieczeństwa: dostęp do budynków, klucze do domofonów, karty członkowskie na siłowni itp. Dzięki większemu zasięgowi są wygodne w użyciu do płatnych parkingów: kierowca nie musi zbliżać karty do czytnika, ponieważ jest aktywowana z większej odległości. Jednocześnie tagi niskiej częstotliwości są bardzo prymitywne, mają niski wskaźnik transferu danych. Z tego powodu niemożliwe jest wdrożenie złożonego dwukierunkowego transferu danych, na przykład do utrzymywania salda i kryptografii. Tagi niskiej częstotliwości przesyłają tylko swoje krótkie ID bez żadnych środków uwierzytelniających.
Urządzenia te polegają na technologii pasywnego RFID i działają w zakresie od 30 kHz do 300 kHz, chociaż częściej używa się 125 kHz do 134 kHz:
- Długi zasięg — niższa częstotliwość przekłada się na większy zasięg. Istnieją czytniki EM-Marin i HID, które działają z odległości do metra. Często są używane na parkingach.
- Prymitywny protokół — z powodu niskiego wskaźnika transferu danych te tagi mogą przesyłać tylko swoje krótkie ID. W większości przypadków dane nie są uwierzytelniane i nie są w żaden sposób chronione. Gdy tylko karta znajdzie się w zasięgu czytnika, zaczyna przesyłać swoje ID.
- Niskie bezpieczeństwo — te karty mogą być łatwo kopiowane, a nawet odczytywane z kieszeni kogoś innego z powodu prymitywności protokołu.
Popularne protokoły 125 kHz:
- EM-Marin — EM4100, EM4102. Najpopularniejszy protokół w CIS. Może być odczytywany z odległości około metra z powodu swojej prostoty i stabilności.
- HID Prox II — protokół niskiej częstotliwości wprowadzony przez HID Global. Protokół ten jest bardziej popularny w krajach zachodnich. Jest bardziej złożony, a karty i czytniki dla tego protokołu są stosunkowo drogie.
- Indala — bardzo stary protokół niskiej częstotliwości, który został wprowadzony przez Motorolę, a później przejęty przez HID. Rzadziej można go spotkać w terenie w porównaniu do poprzednich dwóch, ponieważ wychodzi z użycia.
W rzeczywistości istnieje znacznie więcej protokołów niskiej częstotliwości. Ale wszystkie one używają tej samej modulacji na warstwie fizycznej i mogą być uważane, w ten czy inny sposób, za wariację tych wymienionych powyżej.
Atak
Możesz zaatakować te tagi za pomocą Flipper Zero:
{% content-ref url="flipper-zero/fz-125khz-rfid.md" %} fz-125khz-rfid.md {% endcontent-ref %}
Tagi RFID o wysokiej częstotliwości (13.56 MHz)
Tagi wysokiej częstotliwości są używane do bardziej złożonej interakcji między czytnikiem a tagiem, gdy potrzebna jest kryptografia, duży dwukierunkowy transfer danych, uwierzytelnianie itp.
Zwykle występują w kartach bankowych, transporcie publicznym i innych zabezpieczonych przepustkach.
Tagi wysokiej częstotliwości 13.56 MHz to zestaw standardów i protokołów. Zwykle określa się je jako NFC, ale to nie zawsze jest poprawne. Podstawowy zestaw protokołów używanych na poziomie fizycznym i logicznym to ISO 14443. Protokóły na wyższym poziomie, a także alternatywne standardy (takie jak ISO 19092), opierają się na nim. Wiele osób odnosi się do tej technologii jako Near Field Communication (NFC), terminu dla urządzeń działających na częstotliwości 13.56 MHz.
Mówiąc prosto, architektura NFC działa w ten sposób: protokół transmisji jest wybierany przez firmę produkującą karty i wdrażany na podstawie niskopoziomowego ISO 14443. Na przykład, NXP wynalazł własny protokół transmisji na wyższym poziomie o nazwie Mifare. Ale na niższym poziomie karty Mifare opierają się na standardzie ISO 14443-A.
Flipper może współdziałać zarówno z niskopoziomowym protokołem ISO 14443, jak i protokołem transferu danych Mifare Ultralight oraz EMV używanym w kartach bankowych. Pracujemy nad dodaniem wsparcia dla Mifare Classic i NFC NDEF. Dokładne spojrzenie na protokoły i standardy, które tworzą NFC, zasługuje na osobny artykuł, który planujemy opublikować później.
Wszystkie karty wysokiej częstotliwości oparte na standardzie ISO 14443-A mają unikalny identyfikator chipu. Działa on jako numer seryjny karty, jak adres MAC karty sieciowej. Zwykle UID ma długość 4 lub 7 bajtów, ale rzadko może sięgać do 10. UID nie jest tajemnicą i jest łatwo odczytywalny, czasami nawet wydrukowany na samej karcie.
Istnieje wiele systemów kontroli dostępu, które polegają na UID do uwierzytelniania i przyznawania dostępu. Czasami dzieje się to nawet wtedy, gdy tagi RFID obsługują kryptografię. Takie niewłaściwe użycie obniża je do poziomu głupich kart 125 kHz pod względem bezpieczeństwa. Wirtualne karty (takie jak Apple Pay) używają dynamicznego UID, aby właściciele telefonów nie mogli otwierać drzwi za pomocą aplikacji płatniczej.
- Niski zasięg — karty wysokiej częstotliwości są specjalnie zaprojektowane tak, aby musiały być umieszczane blisko czytnika. Pomaga to również chronić kartę przed nieautoryzowanymi interakcjami. Maksymalny zasięg odczytu, który udało nam się osiągnąć, wynosił około 15 cm, a to było z niestandardowymi czytnikami o dużym zasięgu.
- Zaawansowane protokoły — prędkości transferu danych do 424 kbps pozwalają na złożone protokoły z pełnoprawnym dwukierunkowym transferem danych. Co z kolei umożliwia kryptografię, transfer danych itp.
- Wysokie bezpieczeństwo — karty bezstykowe o wysokiej częstotliwości w żaden sposób nie ustępują kartom inteligentnym. Istnieją karty, które obsługują kryptograficznie silne algorytmy, takie jak AES, i wdrażają kryptografię asymetryczną.
Atak
Możesz zaatakować te tagi za pomocą Flipper Zero:
{% content-ref url="flipper-zero/fz-nfc.md" %} fz-nfc.md {% endcontent-ref %}
Lub używając proxmark:
{% content-ref url="proxmark-3.md" %} proxmark-3.md {% endcontent-ref %}
Źródła
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się sztuczkami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.