>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Java

NFCGate: Szwajcarski scyzoryk do badań NFC na Androidzie

Czy zastanawiałeś się kiedyś, jak bezpieczne są Twoje płatności NFC lub karta dostępowa do biura? Jako programista często spotykam się z pytaniami dotyczącymi bezpieczeństwa urządzeń NFC i właśnie tutaj z pomocą przychodzi NFCGate — prawdziwe znalezisko dla badaczy bezpieczeństwa i ciekawskich programistów.

Co kryje się za komunikacją NFC?

NFCGate to aplikacja open-source dla systemu Android stworzona przez badaczy z Secure Mobile Networking Lab na TU Darmstadt. Umożliwia:

  • przechwytywanie i analizę ruchu NFC
  • modyfikację danych w locie
  • przekazywanie sygnałów między urządzeniami
  • klonowanie tagów

Aplikacja jest dostępna na F-Droid i jest aktywnie wykorzystywana w badaniach akademickich, o czym świadczą publikacje na konferencji USENIX WOOT'20.

Pięć powodów, by zwrócić uwagę na NFCGate

  1. Prawdziwy interceptor ruchu NFC Zapomnij o zewnętrznych czytnikach — aplikacja przechwytuje komunikację bezpośrednio na urządzeniu dzięki integracji z frameworkiem Xposed.

  2. Tryb Relay NFCGate może działać jako "most" między czytnikiem a tagiem, przesyłając dane przez serwer. Przydatne do testowania podatności typu man-in-the-middle.

  3. Odtwarzanie scenariuszy Nagrywasz transakcję NFC? Teraz możesz ją odtworzyć w kontrolowanych warunkach do analizy.

  4. Obsługa formatu pcapng Wszystkie przechwycone dane można eksportować w formacie kompatybilnym z Wireshark — marzenie każdego badacza!

  5. Klonowanie tagów Chcesz przetestować system kontroli dostępu? NFCGate pozwala skopiować UID i inne parametry tagów NFC.

Cechy techniczne

Niektóre funkcje wymagają:

  • Androida 5+ (API 21+)
  • frameworku Xposed (EdXposed lub LSPosed)
  • obsługi HCE (Host Card Emulation)
  • procesora ARMv7/ARMv8

Ciekawe jest to, że projekt wykorzystuje zmodyfikowaną wersję biblioteki LibNFC-NCI firmy Google oraz xHook do przechwytywania wywołań. Wszystko jest rozpowszechniane na licencji Apache License 2.0.

Praktyczne zastosowania

  1. Analiza podatności systemów płatności Badacze mogą testować, jak systemy reagują na zmodyfikowany ruch NFC.

  2. Testowanie systemów kontroli dostępu Jak łatwo jest sklonować firmową odznakę? NFCGate pomaga znaleźć odpowiedź.

  3. Inżynieria wsteczna protokołów Dzięki eksportowi do formatu pcapng analiza protokołów staje się znacznie łatwiejsza.

  4. Cele edukacyjne Świetne narzędzie do demonstrowania zasad działania NFC na wykładach z bezpieczeństwa informacji.

Ograniczenia i uwagi

Twórcy uczciwie ostrzegają:

  • nie wszystkie typy tagów są obsługiwane (na przykład Mifare Classic nie może być już emulowany)
  • systemy z kontrolą czasową (distance bounding) nie mogą zostać obejście
  • pobór energii niektórych chipów NFC może być zbyt wysoki dla emulacji

Jak zacząć pracę z NFCGate

  1. Zainstaluj aplikację z F-Droid
  2. Zaawansowane funkcje wymagają roota i frameworka Xposed
  3. Szczegółowe instrukcje dla każdego trybu są dostępne w dokumentacji

NFCGate to rzadki przykład wysokiej jakości narzędzia badawczego typu open-source. Jeśli jesteś:

  • programistą rozwiązań NFC
  • badaczem bezpieczeństwa
  • wykładowcą technologii mobilnych
  • ciekawskim entuzjastą techniki

...to to narzędzie powinno znaleźć się w Twoim arsenalu. Najważniejsze to pamiętać o etycznym użyciu, o czym przypominają nam twórcy z TU Darmstadt.

Projekt jest aktywnie rozwijany — ostatnie commity były dosłownie sprzed kilku dni. Teraz jest więc idealny moment, żeby zaangażować się w badania!

Powiązane projekty