20 KiB
Pentesting RFID
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Εισαγωγή
Η Αναγνώριση Ραδιοσυχνότητας (RFID) είναι η πιο δημοφιλής λύση ραδιοσυχνότητας μικρής εμβέλειας. Χρησιμοποιείται συνήθως για την αποθήκευση και μετάδοση πληροφοριών που προσδιορίζουν μια οντότητα.
Ένας ετικέτα RFID μπορεί να βασίζεται σε δική της πηγή ενέργειας (ενεργή), όπως μια ενσωματωμένη μπαταρία, ή να λαμβάνει την ενέργειά της από την κεραία ανάγνωσης χρησιμοποιώντας το ρεύμα που προκαλείται από τα ληφθέντα ραδιοκύματα (παθητική).
Κατηγορίες
Η EPCglobal χωρίζει τις ετικέτες RFID σε έξι κατηγορίες. Μια ετικέτα σε κάθε κατηγορία έχει όλες τις δυνατότητες που αναφέρονται στην προηγούμενη κατηγορία, καθιστώντας την συμβατή προς τα πίσω.
- Οι ετικέτες Class 0 είναι παθητικές ετικέτες που λειτουργούν σε UHF ζώνες. Ο προμηθευτής τις προγραμματίζει εκ των προτέρων στο εργοστάσιο παραγωγής. Ως αποτέλεσμα, δεν μπορείτε να αλλάξετε τις πληροφορίες που αποθηκεύονται στη μνήμη τους.
- Οι ετικέτες Class 1 μπορούν επίσης να λειτουργούν σε HF ζώνες. Επιπλέον, μπορούν να γραφούν μόνο μία φορά μετά την παραγωγή. Πολλές ετικέτες Class 1 μπορούν επίσης να επεξεργαστούν ελέγχους κυκλικής πλεονασματικότητας (CRCs) των εντολών που λαμβάνουν. Οι CRCs είναι μερικά επιπλέον byte στο τέλος των εντολών για την ανίχνευση σφαλμάτων.
- Οι ετικέτες Class 2 μπορούν να γραφούν πολλές φορές.
- Οι ετικέτες Class 3 μπορούν να περιέχουν ενσωματωμένους αισθητήρες που μπορούν να καταγράφουν περιβαλλοντικές παραμέτρους, όπως η τρέχουσα θερμοκρασία ή η κίνηση της ετικέτας. Αυτές οι ετικέτες είναι ημι-παθητικές, επειδή αν και έχουν μια ενσωματωμένη πηγή ενέργειας, όπως μια ενσωματωμένη μπαταρία, δεν μπορούν να ξεκινήσουν ασύρματη επικοινωνία με άλλες ετικέτες ή αναγνώστες.
- Οι ετικέτες Class 4 μπορούν να ξεκινήσουν επικοινωνία με άλλες ετικέτες της ίδιας κατηγορίας, καθιστώντας τις ενεργές ετικέτες.
- Οι ετικέτες Class 5 μπορούν να παρέχουν ενέργεια σε άλλες ετικέτες και να επικοινωνούν με όλες τις προηγούμενες κατηγορίες ετικετών. Οι ετικέτες Class 5 μπορούν να λειτουργούν ως αναγνώστες RFID.
Πληροφορίες που αποθηκεύονται σε ετικέτες RFID
Η μνήμη μιας ετικέτας RFID αποθηκεύει συνήθως τέσσερις τύπους δεδομένων: τα δεδομένα ταυτοποίησης, που προσδιορίζουν την οντότητα στην οποία είναι συνδεδεμένη η ετικέτα (αυτά τα δεδομένα περιλαμβάνουν πεδία που ορίζονται από τον χρήστη, όπως οι τραπεζικοί λογαριασμοί); τα συμπληρωματικά δεδομένα, που παρέχουν περαιτέρω λεπτομέρειες σχετικά με την οντότητα; τα δεδομένα ελέγχου, που χρησιμοποιούνται για την εσωτερική διαμόρφωση της ετικέτας; και τα δεδομένα κατασκευαστή της ετικέτας, που περιέχουν τον Μοναδικό Αναγνωριστή της ετικέτας (UID) και λεπτομέρειες σχετικά με την παραγωγή, τύπο και προμηθευτή της ετικέτας. Θα βρείτε τους πρώτους δύο τύπους δεδομένων σε όλες τις εμπορικές ετικέτες; οι τελευταίοι δύο μπορεί να διαφέρουν ανάλογα με τον προμηθευτή της ετικέτας.
Το πρότυπο ISO καθορίζει την τιμή του Αναγνωριστικού Οικογένειας Εφαρμογών (AFI), έναν κωδικό που υποδεικνύει τον τύπο αντικειμένου στο οποίο ανήκει η ετικέτα. Ένα άλλο σημαντικό μητρώο, που επίσης καθορίζεται από το ISO, είναι το Αναγνωριστικό Μορφής Αποθήκευσης Δεδομένων (DSFID), το οποίο καθορίζει την λογική οργάνωση των δεδομένων χρήστη.
Οι περισσότερες ασφαλιστικές ρυθμίσεις RFID έχουν μηχανισμούς που περιορίζουν τις λειτουργίες ανάγνωσης ή γραφής σε κάθε μπλοκ μνήμης χρήστη και στους ειδικούς καταλόγους που περιέχουν τις τιμές AFI και DSFID. Αυτοί οι μηχανισμοί κλειδώματος χρησιμοποιούν δεδομένα που αποθηκεύονται στη μνήμη ελέγχου και έχουν προεπιλεγμένους κωδικούς πρόσβασης που έχουν ρυθμιστεί εκ των προτέρων από τον προμηθευτή, αλλά επιτρέπουν στους κατόχους της ετικέτας να ρυθμίσουν προσαρμοσμένους κωδικούς πρόσβασης.
Σύγκριση ετικετών χαμηλής και υψηλής συχνότητας
Ετικέτες RFID Χαμηλής Συχνότητας (125kHz)
Οι ετικέτες χαμηλής συχνότητας χρησιμοποιούνται συχνά σε συστήματα που δεν απαιτούν υψηλή ασφάλεια: πρόσβαση σε κτίρια, κλειδιά διασύνδεσης, κάρτες μέλους γυμναστηρίου, κ.λπ. Λόγω της μεγαλύτερης εμβέλειάς τους, είναι βολικές για χρήση σε πληρωμένα πάρκινγκ: ο οδηγός δεν χρειάζεται να φέρει την κάρτα κοντά στον αναγνώστη, καθώς ενεργοποιείται από μεγαλύτερη απόσταση. Ταυτόχρονα, οι ετικέτες χαμηλής συχνότητας είναι πολύ πρωτόγονες, έχουν χαμηλό ρυθμό μεταφοράς δεδομένων. Για αυτόν τον λόγο, είναι αδύνατο να υλοποιηθεί πολύπλοκη αμφίδρομη μεταφορά δεδομένων για πράγματα όπως η διατήρηση υπολοίπου και η κρυπτογραφία. Οι ετικέτες χαμηλής συχνότητας μεταδίδουν μόνο το σύντομο ID τους χωρίς κανένα μέσο αυθεντικοποίησης.
Αυτές οι συσκευές βασίζονται στην παθητική τεχνολογία RFID και λειτουργούν σε εύρος 30 kHz έως 300 kHz, αν και είναι πιο συνηθισμένο να χρησιμοποιούνται 125 kHz έως 134 kHz:
- Μεγάλη εμβέλεια — η χαμηλότερη συχνότητα μεταφράζεται σε μεγαλύτερη εμβέλεια. Υπάρχουν μερικοί αναγνώστες EM-Marin και HID, οι οποίοι λειτουργούν από απόσταση έως και ενός μέτρου. Αυτοί χρησιμοποιούνται συχνά σε πάρκινγκ αυτοκινήτων.
- Πρωτόγονο πρωτόκολλο — λόγω του χαμηλού ρυθμού μεταφοράς δεδομένων, αυτές οι ετικέτες μπορούν να μεταδώσουν μόνο το σύντομο ID τους. Στις περισσότερες περιπτώσεις, τα δεδομένα δεν είναι αυθεντικοποιημένα και δεν προστατεύονται με κανέναν τρόπο. Μόλις η κάρτα είναι εντός της εμβέλειας του αναγνώστη, αρχίζει απλώς να μεταδίδει το ID της.
- Χαμηλή ασφάλεια — Αυτές οι κάρτες μπορούν να αντιγραφούν εύκολα ή ακόμη και να διαβαστούν από την τσέπη κάποιου άλλου λόγω της πρωτόγονης φύσης του πρωτοκόλλου.
Δημοφιλή πρωτόκολλα 125 kHz:
- EM-Marin — EM4100, EM4102. Το πιο δημοφιλές πρωτόκολλο στην ΚΑΚ. Μπορεί να διαβαστεί από περίπου ένα μέτρο λόγω της απλότητας και της σταθερότητάς του.
- HID Prox II — πρωτόκολλο χαμηλής συχνότητας που εισήχθη από την HID Global. Αυτό το πρωτόκολλο είναι πιο δημοφιλές στις δυτικές χώρες. Είναι πιο περίπλοκο και οι κάρτες και οι αναγνώστες για αυτό το πρωτόκολλο είναι σχετικά ακριβοί.
- Indala — πολύ παλιό πρωτόκολλο χαμηλής συχνότητας που εισήχθη από την Motorola και αργότερα αποκτήθηκε από την HID. Είναι λιγότερο πιθανό να το συναντήσετε στην πραγματικότητα σε σύγκριση με τα προηγούμενα δύο, καθώς βγαίνει από τη χρήση.
Στην πραγματικότητα, υπάρχουν πολύ περισσότερα πρωτόκολλα χαμηλής συχνότητας. Αλλά όλα χρησιμοποιούν την ίδια διαμόρφωση στο φυσικό επίπεδο και μπορούν να θεωρηθούν, με έναν ή άλλο τρόπο, παραλλαγές αυτών που αναφέρονται παραπάνω.
Επίθεση
Μπορείτε να επιτεθείτε σε αυτές τις ετικέτες με το Flipper Zero:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %} fz-125khz-rfid.md {% endcontent-ref %}
Ετικέτες RFID Υψηλής Συχνότητας (13.56 MHz)
Οι ετικέτες υψηλής συχνότητας χρησιμοποιούνται για μια πιο σύνθετη αλληλεπίδραση αναγνώστη-ετικέτας όταν χρειάζεστε κρυπτογραφία, μεγάλη αμφίδρομη μεταφορά δεδομένων, αυθεντικοποίηση, κ.λπ.
Συνήθως βρίσκονται σε τραπεζικές κάρτες, δημόσιες συγκοινωνίες και άλλες ασφαλείς κάρτες.
Οι ετικέτες υψηλής συχνότητας 13.56 MHz είναι ένα σύνολο προτύπων και πρωτοκόλλων. Συνήθως αναφέρονται ως NFC, αλλά αυτό δεν είναι πάντα σωστό. Το βασικό σύνολο πρωτοκόλλων που χρησιμοποιείται σε φυσικό και λογικό επίπεδο είναι το ISO 14443. Τα πρωτόκολλα υψηλού επιπέδου, καθώς και τα εναλλακτικά πρότυπα (όπως το ISO 19092), βασίζονται σε αυτό. Πολλοί άνθρωποι αναφέρονται σε αυτήν την τεχνολογία ως Επικοινωνία Εγγύς Πεδίο (NFC), ένας όρος για συσκευές που λειτουργούν στη συχνότητα 13.56 MHz.
Για να το θέσουμε απλά, η αρχιτεκτονική του NFC λειτουργεί ως εξής: το πρωτόκολλο μετάδοσης επιλέγεται από την εταιρεία που κατασκευάζει τις κάρτες και υλοποιείται με βάση το χαμηλού επιπέδου ISO 14443. Για παράδειγμα, η NXP εφηύρε το δικό της πρωτόκολλο μετάδοσης υψηλού επιπέδου που ονομάζεται Mifare. Αλλά σε χαμηλότερο επίπεδο, οι κάρτες Mifare βασίζονται στο πρότυπο ISO 14443-A.
Το Flipper μπορεί να αλληλεπιδράσει τόσο με το πρωτόκολλο ISO 14443 χαμηλού επιπέδου, όσο και με το πρωτόκολλο μεταφοράς δεδομένων Mifare Ultralight και EMV που χρησιμοποιούνται σε τραπεζικές κάρτες. Εργαζόμαστε για την προσθήκη υποστήριξης για το Mifare Classic και το NFC NDEF. Μια λεπτομερής ματιά στα πρωτόκολλα και τα πρότυπα που συνθέτουν το NFC αξίζει ένα ξεχωριστό άρθρο το οποίο σχεδιάζουμε να δημοσιεύσουμε αργότερα.
Όλες οι κάρτες υψηλής συχνότητας που βασίζονται στο πρότυπο ISO 14443-A έχουν έναν μοναδικό αναγνωριστικό τσιπ. Λειτουργεί ως ο σειριακός αριθμός της κάρτας, όπως η διεύθυνση MAC μιας κάρτας δικτύου. Συνήθως, το UID έχει μήκος 4 ή 7 byte, αλλά σπάνια μπορεί να φτάσει μέχρι 10. Τα UIDs δεν είναι μυστικά και είναι εύκολα αναγνώσιμα, μερικές φορές ακόμη και εκτυπωμένα στην ίδια την κάρτα.
Υπάρχουν πολλά συστήματα ελέγχου πρόσβασης που βασίζονται στο UID για να αυθεντικοποιούν και να παρέχουν πρόσβαση. Μερικές φορές αυτό συμβαίνει ακόμη και όταν οι ετικέτες RFID υποστηρίζουν κρυπτογραφία. Αυτή η κακή χρήση τις κατεβάζει στο επίπεδο των ανόητων καρτών 125 kHz όσον αφορά την ασφάλεια. Οι εικονικές κάρτες (όπως το Apple Pay) χρησιμοποιούν ένα δυναμικό UID ώστε οι κάτοχοι τηλεφώνων να μην μπορούν να ανοίγουν πόρτες με την εφαρμογή πληρωμών τους.
- Χαμηλή εμβέλεια — οι κάρτες υψηλής συχνότητας σχεδιάζονται ειδικά ώστε να πρέπει να τοποθετούνται κοντά στον αναγνώστη. Αυτό βοηθά επίσης στην προστασία της κάρτας από μη εξουσιοδοτημένες αλληλεπιδράσεις. Η μέγιστη εμβέλεια ανάγνωσης που καταφέραμε να επιτύχουμε ήταν περίπου 15 cm, και αυτό ήταν με αναγνώστες υψηλής εμβέλειας που κατασκευάστηκαν ειδικά.
- Προηγμένα πρωτόκολλα — οι ταχύτητες μεταφοράς δεδομένων έως 424 kbps επιτρέπουν πολύπλοκα πρωτόκολλα με πλήρη αμφίδρομη μεταφορά δεδομένων. Πράγμα που με τη σειρά του επιτρέπει κρυπτογραφία, μεταφορά δεδομένων, κ.λπ.
- Υψηλή ασφάλεια — οι κάρτες επαφής υψηλής συχνότητας δεν υστερούν σε τίποτα σε σχέση με τις έξυπνες κάρτες. Υπάρχουν κάρτες που υποστηρίζουν κρυπτογραφικά ισχυρούς αλγόριθμους όπως το AES και υλοποιούν ασύμμετρη κρυπτογραφία.
Επίθεση
Μπορείτε να επιτεθείτε σε αυτές τις ετικέτες με το Flipper Zero:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %} fz-nfc.md {% endcontent-ref %}
Ή χρησιμοποιώντας το proxmark:
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %} proxmark-3.md {% endcontent-ref %}
Αναφορές
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.