Bezpieczeństwo kart zbliżeniowych MIFARE 1k

Naszło mnie ostatnio na przemyślenia odnośnie bezpieczeństwa kart zbliżeniowych. I nie mówię tu o tych bankowych, ale o niektórych kartach miejskich, czy też takich do otwierania drzwi w jakimś zabezpieczonym obiekcie, czy gdziekolwiek indziej.

Ale mimo to - chciałbym was uczulić, karty zbliżeniowe nie są bezpieczne.
Pokażę wam jak można odczytać informacje z zaszyfrowanej karty - odczytać klucze A i B - na potrzeby na przykład wykonania kopii karty, czy nawet zmiany wartości w niej zapisanej(np. stan konta).
Ostrzegam przed wykorzystywaniem tego poradnika w celach niezgodnych z prawem. Poradnik został stworzony żeby pokazać,
że te karty nie są bezpieczne. Nie biorę odpowiedzialności za używanie
tego poradnika w celach niezgodnych z prawem.
Wiecie ile zajęło mi czasu odczytanie z pomocą programu mfoc klucza A i klucza B?
6 minut i 22 sekundy :D
Zestaw jakiego użyłem, to moduł PN532 i konwerter UART-USB - CP2102 .
Można je znaleźć na Allegro, w sklepach z modułami elektronicznymi, czy na AliExpress - tam najtaniej ale też na przesyłkę trzeba długo czekać
Oprogramowanie uruchomiłem na systemie Linux Mint 18.1 Cinnamon,
należy zainstalować pakiety libnfc-bin libnfc-examples mfoc i mfcuk
Komenda: sudo apt-get install libnfc-bin libnfc-examples mfoc mfcuk
Teraz z podłączonym konwerterem UART sprawdź nazwe podłączonego po USB konwertera wpisując
dmesg | grep tty
Powinno się ukazać coś mniej więcej tego(u mnie to tak wygląda):
[ 0.000000] console [tty0] enabled
[ 1.746414] 0000:00:16.3: ttyS4 at I/O 0x4090 (irq = 17, base_baud = 115200) is a 16550A
[ 12.832172] usb 1-1.5: Qualcomm USB modem converter now attached to ttyUSB0
[ 12.837401] usb 1-1.5: Qualcomm USB modem converter now attached to ttyUSB1
[ 12.840510] usb 1-1.5: Qualcomm USB modem converter now attached to ttyUSB2
[ 203.742977] usb 1-1.2: pl2303 converter now attached to ttyUSB3
Interesuje nas zapis zaznaczony na niebiesko - zawiera nazwę konwertera wraz z fizycznym interfejsem który musimy skojarzyć z NFC w komputerze.
Teraz z pozimu konsoli, ja polecam edytor tekstu nano - dodaj do pliku
/etc/nfc/libnfc.conf
device.connstring = "pn532_uart:/dev/ttyUSBx"
W miejsce x wpisz numer adaptera USB, w moim przypadku to 3. Teraz pakiet libnfc wie, jakiego interfejsu używać do komunikacji z urządzeniem NFC. Możemy zacząć działać...
ale nie dzisiaj.
Dobranoc
P.S. Pare informacji o MIFARE 1k:
- Jest szeroko stosowany na świecie - karty miejskie, bilety elektroniczne, karty hotelowe itp. itd.
- Obsługuje szyfrowanie, które w wielu kartach nie jest używane (np. Karta biblioteki Raczyńskich w Poznaniu)
- Szyfrowanie zawartości
- ACL - kontrola uprawnień odczyt/zapis
- w 2008 dwóch studentów z Uniwersytetu Radbond złamało i udostępniło dokumentację szyfru (CIPHER-1) - NXP, firma tworząca mifare i cipher-1 pozwała ich do sądu, który stanął po stronie badaczy i zgodnie z prawem wolności wypowiedzi zezwolił na publikacje.
Swoją drogą ciekawa historia, 2 naukowców wygrywa spór prawny z wielką firmą NXP... - Odkrycie ułatwiło pracę nad narzędziami do "odzyskiwania kluczy" z kart Mifare które dzisiaj są publiczne(narzędzia, nie klucze).
Komentarze
Prześlij komentarz