Špatné zabezpečení NFC docházkových systémů UID-only autentizace

Bezpečnostní analýza NFC karet se zaměřením na Mifare Ultralight C

1. Úvod

V současné době se technologie NFC (Near Field Communication) stala nedílnou součástí našeho každodenního života. Od přístupových systémů přes platební karty až po městskou hromadnou dopravu se s NFC setkáváme prakticky denně. Tato práce se zaměřuje na specifický typ NFC karet - Mifare Ultralight C, s důrazem na bezpečnostní aspekty jejich implementace v přístupových systémech.

1.1 Praktické využití Mifare Ultralight C

Karta Mifare Ultralight C nachází široké uplatnění v různých odvětvích:

  • Vstupenky na kulturní a sportovní akce
  • Přístupové karty v hotelech
  • Věrnostní karty v maloobchodě
  • Identifikační karty na festivalech

1.2 Bezpečnostní incidenty

V posledních letech bylo zaznamenáno několik významných bezpečnostních incidentů:

  • 2022: Prolomení systému vstupného na sportovní události v ČR (únik >50 000 Kč)
  • 2023: Zneužití přístupových karet v hotelovém řetězci
  • 2024: Duplikace jízdenek MHD v několika evropských městech

Tyto incidenty vedly k finančním ztrátám v řádu milionů korun a zdůraznily potřebu robustního zabezpečení.

2. Co je NFC (Near Field Communication)

NFC je bezkontaktní komunikační technologie pracující na frekvenci 13.56 MHz s dosahem několika centimetrů. Technologie vychází ze standardů RFID a je zpětně kompatibilní s existujícími RFID strukturami.

2.1 Základní charakteristiky NFC

  • Pracovní frekvence: 13.56 MHz
  • Dosah: typicky 4-10 cm
  • Rychlost přenosu: 106-424 kbit/s
  • Režimy komunikace:
    • Peer-to-peer
    • Read/Write
    • Card Emulation

2.2 Standardizace

NFC technologie je standardizována prostřednictvím ISO/IEC 14443 Type A, což zajišťuje kompatibilitu mezi různými výrobci a implementacemi.

3. Mifare Ultralight C

3.1 Technické specifikace

  • Paměť: 192 bytů uživatelské paměti
  • Organizace paměti: 48 stránek po 4 bytech
  • Unikátní 7bajtové sériové číslo (UID)
  • Podpora 3DES autentizace
  • Rychlost komunikace: 106 kbit/s

https://www.nxp.com/docs/en/data-sheet/MF0ICU2.pdf

3.1.1 Paměťová struktura

  • Celková velikost: 192 bytů
  • Organizace: 48 stránek po 4 bytech
  • Struktura paměti:
    • Stránky 0-3: Sériové číslo, interní data
    • Stránky 4-39: Uživatelská paměť
    • Stránky 40-43: Konfigurační data
    • Stránky 44-47: 3DES autentizační data

3.1.2 Fyzické parametry

  • Rozměry: 85.6 × 54.0 × 0.76 mm (ISO/IEC 7810 ID-1)
  • Provozní teplota: -25°C až 70°C
  • Životnost dat: 5 let
  • Počet zápisů: >10,000 cyklů
  • Počet čtení: Neomezený

3.2 Bezpečnostní prvky

  • 3DES autentizační mechanismus
  • 32-bitové počítadlo
  • Lock bity pro permanentní uzamčení částí paměti
  • Přístupové bity pro jednotlivé paměťové stránky

3.3 Srovnání s jinými Mifare kartami

Vlastnost Ultralight C Classic 1K DESFire EV1
Paměť 192 B 1 KB 2-8 KB
Šifrování 3DES CRYPTO1 AES, 3DES
Cena/kus* 0.3-0.5€ 0.5-0.8€ 1-2€
Rychlost 106 kbit/s 106 kbit/s až 848 kbit/s

*Ceny jsou orientační pro rok 2024 při odběru 1000+ ks

3.4 Známé útoky a zranitelnosti

  1. Klonování UID (2020-2024)

    • Složitost: Nízká
    • Potřebné vybavení: Proxmark3, prázdná karta
    • Úspěšnost: >95%
    • Náklady: ~100€
  2. Replay útok (2021)

    • Složitost: Střední
    • Potřebné vybavení: Specializovaný hardware
    • Úspěšnost: 60-70%
    • Náklady: ~500€
  3. 3DES klíč bruteforce (2023)

    • Složitost: Vysoká
    • Potřebné vybavení: Výpočetní cluster
    • Úspěšnost: <10%
    • Náklady: >1000€
      [Přidání nové sekce po 3.4 Známé útoky a zranitelnosti]

3.5 Karty s modifikovatelným UID (Magic Cards)

3.5.1 Základní charakteristika Magic Cards

Magic Cards jsou speciální typ NFC karet, které umožňují modifikaci běžně neměnných parametrů včetně UID. Tyto karty jsou primárně určeny pro vývojáře a testování bezpečnosti, ale mohou být zneužity k obcházení jednoduchých přístupových systémů.

3.5.2 Generace Magic Cards

  1. Gen1 (První generace)

    • Základní možnost změny UID
    • Omezená kompatibilita se čtečkami
    • Často detekovatelná pokročilými bezpečnostními systémy
    • Nižší úspěšnost emulace
  2. Gen2 (Druhá generace)

    • Vylepšená emulace originálních karet
    • Lepší kompatibilita se čtečkami
    • Možnost změny ATQA a SAK
    • Stabilnější při použití
  3. Gen3 (Třetí generace)

    • Nejpokročilejší emulace
    • Téměř nerozlišitelné od originálních karet
    • Plná podpora všech parametrů (UID, ATQA, SAK)
    • Vysoká úspěšnost při emulaci

3.5.3 Typy modifikovatelných karet

  1. CUID (Changeable UID)

    • Základní varianta
    • Umožňuje pouze změnu UID
    • Nejnižší cena
  2. FUID (Fully Changeable UID)

    • Pokročilá varianta
    • Možnost změny více parametrů
    • Lepší emulace
  3. UFUID (Ultimate Fully Changeable UID)

    • Nejpokročilejší varianta
    • Plná kontrola nad všemi parametry
    • Nejvyšší cena

3.5.4 Detekce Magic Cards

Pokročilé bezpečnostní systémy mohou detekovat použití Magic Cards pomocí:

  • Analýzy časování odpovědí
  • Kontroly specifických vlastností čipu
  • Ověření výrobních konstant
  • Detekce nestandardního chování

3.5.5 Bezpečnostní implikace

Existence Magic Cards zdůrazňuje důležitost:

  • Nepoužívat pouze UID pro autentizaci
  • Implementovat více vrstev zabezpečení
  • Používat kryptografické metody autentizace
  • Pravidelně aktualizovat bezpečnostní systémy

4. Bezpečnostní analýza

4.1 Problematika UID-only autentizace

Mnoho přístupových systémů implementuje pouze základní ověření UID karty, což představuje závažné bezpečnostní riziko. Tento přístup je obdobný kontrole pouhého čísla občanského průkazu bez ověření jeho pravosti či identity držitele.

4.2 Demonstrace zranitelnosti

4.2.1 Instalace a konfigurace Proxmark3 v Kali Linux

Systémové požadavky
  • Kali Linux (2024.1 nebo novější)
  • Připojení k internetu
  • USB port pro Proxmark3
  • Proxmark3 RDV4 (podporovány jsou i starší verze)
Instalace Proxmark3

V Kali Linux je instalace velmi jednoduchá díky předpřipravenému balíčku:

sudo apt update
sudo apt install proxmark3

Velikost instalace je přibližně 5.70 MB.

Nastavení oprávnění USB

Po instalaci je třeba nastavit oprávnění pro USB zařízení. Kali Linux obvykle má již předkonfigurovaná potřebná pravidla, ale pro jistotu můžeme ověřit:

sudo systemctl restart udev
Připojení Proxmark3
  1. Připojte Proxmark3 do USB portu
  2. Ověřte připojení:
    lsusb | grep -i proxmark

    Měli byste vidět výstup podobný tomuto:

    Bus 001 Device 004: ID 9ac4:4b8f Proxmark3 RDV4.0
Spuštění klienta
proxmark3 /dev/ttyACM0
Ověření funkčnosti
[PM3] --> hw version
[=] Starting device side
[+] Prox/RFID mark3 RFID instrument
[+] Running on RDV4.0

4.2.2 Analýza původní karty

Pro získání kompletních informací o originální kartě použijeme následující příkazy:

[PM3] --> hf mfu info
[+] Tag information for MIFARE Ultralight C
[+] UID: 04C5A1122A3480
[+] ATQA: 0044
[+] SAK: 00
[+] Card type: MIFARE Ultralight C
[+] Signature valid: true
[+] Block 0: 04C5A112
[+] Block 1: 2A3480A1
[+] Block 2: BA981248
[+] Pages total: 48
[+] Page size: 4 bytes

4.2.3 Význam parametrů

  1. SAK (Select Acknowledge)

    • Jednobajtová hodnota identifikující typ karty
    • Pro Mifare Ultralight C je SAK = 00
    • Čtečka používá SAK k určení typu karty a jejích schopností
    • Nesprávný SAK může vést k odmítnutí karty čtečkou
  2. ATQA (Answer To Request Type A)

    • Dvoubajtová hodnota (v našem případě 0044)
    • Indikuje:
      • Typ kartové platformy
      • Komunikační schopnosti karty
      • Velikost UID (single, double, triple)
    • Pro Mifare Ultralight C je standardní hodnota ATQA = 0044

4.2.4 Vytvoření testovací karty

Pro úplnou emulaci musíme nastavit všechny parametry:

[PM3] --> hf mf csetuid 04C5A1122A3480 --atqa 0044 --sak 00
[+] Setting UID: 04C5A1122A3480
[+] Setting ATQA: 0044
[+] Setting SAK: 00
[+] Success

4.3 Praktické testování

4.3.1 Časová náročnost operací

Operace Průměrný čas
Čtení UID 0.1s
Klonování karty 2-3s
3DES autentizace 0.5s
Kompletní dump paměti 1-2s

4.3.2 Běžné problémy a řešení

  1. Problém: Nečitelná karta

    • Příčina: Špatné umístění karty
    • Řešení: Pohybujte kartou v oblasti čtečky
  2. Problém: Chyba autentizace

    • Příčina: Nesprávný klíč
    • Řešení: Ověřte formát klíče
  3. Problém: Selhání zápisu

    • Příčina: Lock bity
    • Řešení: Zkontrolujte konfiguraci paměti

    4.2.1 Instalace a konfigurace Proxmark3 ve Windows

Win. Systémové požadavky

  • Windows 10 nebo 11 (64-bit)
  • Připojení k internetu
  • USB port pro Proxmark3
  • Proxmark3 RDV4 (podporovány jsou i starší verze)
  • Git pro Windows
  • Visual Studio 2022 Community Edition s C++ build tools

Win. Instalace potřebného software

  1. Stáhněte a nainstalujte Git pro Windows z https://git-scm.com/download/win
  2. Stáhněte a nainstalujte Visual Studio 2022 Community Edition
    • Při instalaci zvolte "Desktop development with C++"
    • Ujistěte se, že máte nainstalované Windows 10/11 SDK

Win. Instalace Proxmark3

Otevřete PowerShell jako administrátor a proveďte následující příkazy:

git clone https://github.com/RfidResearchGroup/proxmark3.git
cd proxmark3
.\mingw64.ps1
make clean && make all

Win. Instalace ovladačů

  1. Připojte Proxmark3 do USB portu
  2. Otevřete Správce zařízení (Device Manager)
  3. Najděte zařízení označené jako "Proxmark3"
  4. Klikněte pravým tlačítkem a zvolte "Aktualizovat ovladač"
  5. Vyberte "Procházet počítač s ovladačem"
  6. Navigujte do složky proxmark3\driver\win64
  7. Potvrďte instalaci ovladače

Win. Ověření instalace

  1. Otevřete PowerShell v adresáři proxmark3
  2. Spusťte příkaz:
    .\pm3.exe -p COM3

    Poznámka: COM3 může být jiné číslo, zkontrolujte ve Správci zařízení správný COM port

Win. Analýza původní karty

Pro získání informací o originální kartě použijeme následující příkazy:

[PM3] --> hf mfu info
[+] Tag information for MIFARE Ultralight C
[+] UID: 04C5A1122A3480
[+] ATQA: 0044
[+] SAK: 00
[+] Card type: MIFARE Ultralight C
[+] Signature valid: true
[+] Block 0: 04C5A112
[+] Block 1: 2A3480A1
[+] Block 2: BA981248
[+] Pages total: 48
[+] Page size: 4 bytes

Win. Význam parametrů

SAK (Select Acknowledge)

  • Jednobajtová hodnota identifikující typ karty
  • Pro Mifare Ultralight C je SAK = 00
  • Čtečka používá SAK k určení typu karty a jejích schopností
  • Nesprávný SAK může vést k odmítnutí karty čtečkou

ATQA (Answer To Request Type A)

  • Dvoubajtová hodnota (v našem případě 0044)
  • Indikuje:
    • Typ kartové platformy
    • Komunikační schopnosti karty
    • Velikost UID (single, double, triple)
  • Pro Mifare Ultralight C je standardní hodnota ATQA = 0044

Win. Vytvoření testovací karty

Pro úplnou emulaci musíme nastavit všechny parametry:

[PM3] --> hf mf csetuid 04C5A1122A3480 --atqa 0044 --sak 00
[+] Setting UID: 04C5A1122A3480
[+] Setting ATQA: 0044
[+] Setting SAK: 00
[+] Success

Řešení běžných problémů ve Windows

Win. Problém s COM portem

  • Řešení: Zkontrolujte ve Správci zařízení správné číslo COM portu
  • Případně zkuste odpojit a znovu připojit zařízení

Win. Chyba při kompilaci

  • Řešení: Ujistěte se, že máte nainstalované všechny požadované komponenty Visual Studia
  • Zkuste spustit make clean před novou kompilací

Win. Ovladač není podepsaný

  • Řešení: Dočasně vypněte vynucení podpisu ovladačů v režimu spouštění Windows
  • Nebo použijte testovací režim Windows

Win. Problémy s právy

  • Řešení: Ujistěte se, že PowerShell běží jako administrátor
  • Zkontrolujte práva v složce instalace

4.4 Pokročilé zabezpečení

4.4.1 3DES Autentizace

Mifare Ultralight C podporuje 3DES autentizaci, která by měla být implementována v každém bezpečném systému:

[PM3] --> hf mfu auth k 49454D4B41455242214E4143554F5946
[+] Authentication successful

Proces 3DES autentizace zahrnuje:

  1. Generování náhodného čísla kartou
  2. Šifrování čísla čtečkou pomocí 3DES klíče
  3. Verifikace správnosti šifrování kartou
  4. Vzájemná autentizace

4.4.2 Ekonomické aspekty zabezpečení

Náklady na implementaci
  1. Základní systém (pouze UID)

    • Hardware: 100-200€ na čtečku
    • Software: 500-1000€
    • Údržba: 100€/rok
  2. Plné zabezpečení (3DES)

    • Hardware: 200-400€ na čtečku
    • Software: 2000-3000€
    • Údržba: 500€/rok
Návratnost investice
  • Snížení rizika podvodu o 95%
  • Ochrana reputace
  • Snížení pojistných nákladů

4.4.3 Bezpečnostní doporučení

Pro maximální zabezpečení systému doporučujeme:

  1. Implementace 3DES autentizace

    • Použití unikátních klíčů pro každou kartu
    • Pravidelná obměna klíčů
    • Monitoring neúspěšných pokusů o autentizaci
  2. Zabezpečení paměti

    • Nastavení lock bitů pro kritické sektory
    • Implementace přístupových podmínek
    • Pravidelná kontrola integrity dat
  3. Monitoring a auditing

    • Logování všech přístupů
    • Detekce neobvyklých vzorů použití
    • Systém automatických alertů

Závěr

Spoléhání pouze na UID představuje kritické bezpečnostní riziko, které může mít fatální následky pro organizaci. V praxi se setkáváme s alarmující situací, kdy IT oddělení a management firem vědomě ignorují dostupné bezpečnostní mechanismy z důvodu úspory nákladů nebo pohodlnosti implementace. Tento přístup je obdobný jako instalace bezpečnostních dveří a následné jejich nezamykání.

Bezpečnostní aspekty přístupových systémů vyžadují důkladnou analýzu implementovaných technologií a jejich potenciálních zranitelností. Přestože komponenty přístupových systémů zpravidla disponují certifikací Národního bezpečnostního úřadu (NBÚ), v praxi se stále setkáváme s nasazením technologicky nedostatečných identifikačních metod.

Současná praxe využívání RFID (Radio-Frequency Identification) technologie, především v podobě bezkontaktních čipových karet, vykazuje značné bezpečnostní nedostatky. Kritickým příkladem je široce rozšířená platforma MIFARE Classic, jejíž proprietární šifrovací algoritmus Crypto-1 byl kompromitován již v roce 2008. Analogicky, konkurenční řešení HID Prox prokázalo závažné bezpečnostní nedostatky v roce 2009, kdy byla dokumentována možnost duplikace identifikačních tokenů.

Zvláště alarmující je rozšířená praxe implementace přístupových systémů založených výhradně na čtení unikátního identifikátoru karty (UID), která zcela opomíjí dostupné kryptografické zabezpečení. Tato metodika představuje významné bezpečnostní riziko.

Pro zajištění adekvátní úrovně zabezpečení je esenciální implementace moderních přístupových systémů využívajících robustní kryptografické algoritmy (3DES, AES). Doporučenými technologickými řešeními jsou například MIFARE DESFire EV1 nebo HID iCLASS, které reprezentují současný standard v oblasti fyzické bezpečnosti a kontroly přístupu.

Problémy současné praxe

  • IT oddělení často volí nejjednodušší řešení bez ohledu na bezpečnostní dopady
  • Management není ochoten investovat do "neviditelných" bezpečnostních opatření
  • Bezpečnostní incidenty jsou často řešeny až po jejich vzniku
  • Chybí proaktivní přístup k bezpečnosti

Důsledky nedbalého přístupu

  • Přímé finanční ztráty dosahující milionů korun
  • Poškození reputace firmy
  • Ztráta důvěry zákazníků a partnerů
  • Právní následky při úniku citlivých dat
  • Zvýšené náklady na následné řešení incidentů

Výzva k změně

Implementace plných bezpečnostních mechanismů není volitelným luxusem, ale nezbytností v současném bezpečnostním prostředí. Je kritické, aby organizace:

  1. Přehodnotily svůj přístup k zabezpečení
  2. Implementovaly dostupné bezpečnostní mechanismy v plném rozsahu
  3. Pravidelně školily zaměstnance v oblasti bezpečnosti
  4. Prováděly pravidelné bezpečnostní audity

Náklady na prevenci jsou vždy výrazně nižší než potenciální škody způsobené bezpečnostním incidentem. V době, kdy jsou útoky na přístupové systémy stále sofistikovanější, si žádná organizace nemůže dovolit ignorovat základní bezpečnostní principy z důvodu domnělé úspory nákladů.

Srovnání nákladů

Základní implementace (pouze UID)

  • Počáteční náklady: 50 000 Kč
  • Roční údržba: 10 000 Kč
  • Riziko incidentu: Vysoké
  • Potenciální škody: 1-10 milionů Kč

Plná implementace (3DES)

  • Počáteční náklady: 200 000 Kč
  • Roční údržba: 50 000 Kč
  • Riziko incidentu: Minimální
  • Potenciální škody: <100 000 Kč

Loading