11 KiB
Pentesting RFID
Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!
- Lavori in una azienda di sicurezza informatica? Vuoi vedere la tua azienda pubblicizzata su HackTricks? o vuoi avere accesso all'ultima versione del PEASS o scaricare HackTricks in PDF? Controlla i PIANI DI ABBONAMENTO!
- Scopri La Famiglia PEASS, la nostra collezione di esclusive NFT
- Ottieni il merchandising ufficiale PEASS & HackTricks
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguimi su Twitter 🐦@carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai repo di hacktricks e repo di hacktricks-cloud.
Introduzione
Radio Frequency Identification (RFID) è la soluzione radio a corto raggio più popolare. Di solito viene utilizzata per memorizzare e trasmettere informazioni che identificano un'entità.
Un tag RFID può fare affidamento sulla propria fonte di alimentazione (attivo), come una batteria integrata, o ricevere alimentazione dall'antenna di lettura utilizzando la corrente indotta dalle onde radio ricevute (passivo).
Classi
EPCglobal divide i tag RFID in sei categorie. Un tag in ciascuna categoria ha tutte le capacità elencate nella categoria precedente, rendendolo retrocompatibile.
- I tag Classe 0 sono tag passivi che operano nelle bande UHF. Il fornitore li preprogramma presso lo stabilimento di produzione. Di conseguenza, non è possibile modificare le informazioni memorizzate nella loro memoria.
- I tag Classe 1 possono operare anche nelle bande HF. Inoltre, possono essere scritti solo una volta dopo la produzione. Molti tag di Classe 1 possono anche elaborare controlli di ridondanza ciclica (CRC) dei comandi che ricevono. I CRC sono alcuni byte aggiuntivi alla fine dei comandi per la rilevazione degli errori.
- I tag Classe 2 possono essere scritti più volte.
- I tag Classe 3 possono contenere sensori integrati che possono registrare parametri ambientali, come la temperatura attuale o il movimento del tag. Questi tag sono semipassivi, perché anche se hanno una fonte di alimentazione integrata, come una batteria integrata, non possono iniziare la comunicazione wireless con altri tag o lettori.
- I tag Classe 4 possono avviare la comunicazione con altri tag della stessa classe, rendendoli tag attivi.
- I tag Classe 5 possono fornire alimentazione ad altri tag e comunicare con tutte le classi di tag precedenti. I tag di Classe 5 possono fungere da lettori RFID.
Informazioni Memorizzate nei Tag RFID
La memoria di un tag RFID di solito memorizza quattro tipi di dati: i dati di identificazione, che identificano l'entità a cui è collegato il tag (questi dati includono campi definiti dall'utente, come conti bancari); i dati supplementari, che forniscono ulteriori dettagli sull'entità; i dati di controllo, utilizzati per la configurazione interna del tag; e i dati del produttore del tag, che contengono un Identificatore Unico del Tag (UID) e dettagli relativi alla produzione, al tipo e al fornitore del tag. Troverai i primi due tipi di dati in tutti i tag commerciali; gli ultimi due possono differire in base al fornitore del tag.
Lo standard ISO specifica il valore dell'Application Family Identifier (AFI), un codice che indica il tipo di oggetto a cui appartiene il tag. Un altro registro importante, anch'esso specificato da ISO, è l'Identificatore del Formato di Archiviazione Dati (DSFID), che definisce la organizzazione logica dei dati dell'utente.
La maggior parte dei controlli di sicurezza RFID ha meccanismi che limitano le operazioni di lettura o scrittura su ciascun blocco di memoria utente e sui registri speciali contenenti i valori AFI e DSFID. Questi meccanismi di blocco utilizzano dati memorizzati nella memoria di controllo e hanno password preconfigurate dal fornitore ma consentono ai proprietari del tag di configurare password personalizzate.
Confronto tra tag a bassa e alta frequenza
Tag RFID a Bassa Frequenza (125kHz)
I tag a bassa frequenza sono spesso utilizzati in sistemi che non richiedono elevata sicurezza: accesso agli edifici, chiavi degli citofoni, tessere per l'iscrizione in palestra, ecc. Grazie alla loro maggiore portata, sono comodi da utilizzare per il parcheggio a pagamento: il conducente non deve avvicinare la tessera al lettore, poiché viene attivata da una distanza maggiore. Allo stesso tempo, i tag a bassa frequenza sono molto primitivi, hanno un basso tasso di trasferimento dati. Per questo motivo, è impossibile implementare un complesso trasferimento dati bidirezionale per cose come il mantenimento del saldo e la crittografia. I tag a bassa frequenza trasmettono solo il loro breve ID senza alcun mezzo di autenticazione.
Questi dispositivi si basano sulla tecnologia RFID passiva e operano in un intervallo da 30 kHz a 300 kHz, anche se è più comune utilizzare da 125 kHz a 134 kHz:
- Lunga portata — una frequenza più bassa si traduce in una maggiore portata. Ci sono alcuni lettori EM-Marin e HID, che funzionano da una distanza fino a un metro. Questi sono spesso utilizzati nei parcheggi per auto.
- Protocollo primitivo — a causa del basso tasso di trasferimento dati, questi tag possono solo trasmettere il loro breve ID. Nella maggior parte dei casi, i dati non sono autenticati e non sono protetti in alcun modo. Non appena la tessera è nel raggio del lettore, inizia semplicemente a trasmettere il suo ID.
- Bassa sicurezza — Queste tessere possono essere facilmente copiate, o addirittura lette dalla tasca di qualcun altro a causa della primitività del protocollo.
Protocolli 125 kHz popolari:
- EM-Marin — EM4100, EM4102. Il protocollo più popolare nella CSI. Può essere letto da circa un metro a causa della sua semplicità e stabilità.
- HID Prox II — protocollo a bassa frequenza introdotto da HID Global. Questo protocollo è più popolare nei paesi occidentali. È più complesso e le tessere e i lettori per questo protocollo sono relativamente costosi.
- Indala — protocollo a bassa frequenza molto vecchio introdotto da Motorola, e successivamente acquisito da HID. È meno probabile incontrarlo in natura rispetto ai due precedenti perché sta cadendo in disuso.
In realtà, ci sono molti altri protocolli a bassa frequenza. Ma tutti utilizzano la stessa modulazione sul livello fisico e possono essere considerati, in un modo o nell'altro, una variazione di quelli elencati sopra.
Attacco
Puoi attaccare questi Tag con il Flipper Zero:
{% content-ref url="flipper-zero/fz-125khz-rfid.md" %} fz-125khz-rfid.md {% endcontent-ref %}
Tag RFID ad alta frequenza (13,56 MHz)
Tag ad alta frequenza vengono utilizzati per un'interazione più complessa tra lettore e tag quando è necessaria crittografia, un ampio trasferimento bidirezionale di dati, autenticazione, ecc.
Di solito si trovano nelle carte bancarie, nei trasporti pubblici e in altri passaggi sicuri.
I tag ad alta frequenza a 13,56 MHz sono un insieme di standard e protocolli. Sono generalmente indicati come NFC, ma non è sempre corretto. Il set di protocolli di base utilizzato sui livelli fisico e logico è ISO 14443. I protocolli di alto livello, così come gli standard alternativi (come ISO 19092), si basano su di esso. Molte persone si riferiscono a questa tecnologia come Near Field Communication (NFC), un termine per dispositivi che operano sulla frequenza di 13,56 MHz.
Per semplificare, l'architettura NFC funziona in questo modo: il protocollo di trasmissione è scelto dall'azienda che produce le carte e implementato basandosi sul protocollo di basso livello ISO 14443. Ad esempio, NXP ha inventato il proprio protocollo di trasmissione di alto livello chiamato Mifare. Ma a livello inferiore, le carte Mifare si basano sullo standard ISO 14443-A.
Flipper può interagire sia con il protocollo di basso livello ISO 14443, sia con il protocollo di trasferimento dati Mifare Ultralight e EMV utilizzato nelle carte bancarie. Stiamo lavorando per aggiungere il supporto per Mifare Classic e NFC NDEF. Un'analisi approfondita dei protocolli e degli standard che compongono NFC merita un articolo separato che pianifichiamo di pubblicare in seguito.
Tutte le carte ad alta frequenza basate sullo standard ISO 14443-A hanno un ID chip univoco. Funziona come il numero seriale della carta, come l'indirizzo MAC di una scheda di rete. Di solito, l'UID è lungo 4 o 7 byte, ma raramente può arrivare fino a 10. Gli UID non sono segreti e sono facilmente leggibili, a volte addirittura stampati sulla carta stessa.
Ci sono molti sistemi di controllo degli accessi che si basano sull'UID per autenticare e concedere l'accesso. A volte ciò accade anche quando i tag RFID supportano la crittografia. Tale abuso li porta al livello delle carte a 125 kHz in termini di sicurezza. Le carte virtuali (come Apple Pay) utilizzano un UID dinamico in modo che i proprietari di telefoni non aprano le porte con l'app di pagamento.
- Bassa portata — le carte ad alta frequenza sono progettate appositamente in modo che debbano essere posizionate vicino al lettore. Ciò aiuta anche a proteggere la carta da interazioni non autorizzate. La massima distanza di lettura che siamo riusciti a ottenere è stata di circa 15 cm, e ciò è stato fatto con lettori ad alta portata fatti su misura.
- Protocolli avanzati — velocità di trasferimento dati fino a 424 kbps consentono protocolli complessi con trasferimento bidirezionale completo dei dati. Ciò a sua volta consente la crittografia, il trasferimento dati, ecc.
- Alta sicurezza — le carte contactless ad alta frequenza non sono in alcun modo inferiori alle smart card. Ci sono carte che supportano algoritmi crittograficamente robusti come AES e implementano la crittografia asimmetrica.
Attacco
Puoi attaccare questi Tag con il Flipper Zero:
{% content-ref url="flipper-zero/fz-nfc.md" %} fz-nfc.md {% endcontent-ref %}
O utilizzando il proxmark:
{% content-ref url="proxmark-3.md" %} proxmark-3.md {% endcontent-ref %}