hacktricks/radio-hacking/pentesting-rfid.md

12 KiB

Pentesting RFID

{% hint style="success" %} Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks
{% endhint %}

Introduzione

L'Identificazione a Radio Frequenza (RFID) è la soluzione radio a corto raggio più popolare. Viene solitamente utilizzata per memorizzare e trasmettere informazioni che identificano un'entità.

Un tag RFID può fare affidamento su una propria fonte di alimentazione (attivo), come una batteria incorporata, o ricevere la sua energia 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 nella fabbrica di produzione. Di conseguenza, non puoi cambiare le informazioni memorizzate nella loro memoria.
  • I tag Classe 1 possono anche operare 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 extra 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 incorporati che possono registrare parametri ambientali, come la temperatura attuale o il movimento del tag. Questi tag sono semi-passivi, perché anche se hanno una fonte di alimentazione incorporata, come una batteria integrata, non possono iniziare comunicazioni wireless con altri tag o lettori.
  • I tag Classe 4 possono iniziare comunicazioni con altri tag della stessa classe, rendendoli tag attivi.
  • I tag Classe 5 possono fornire energia ad altri tag e comunicare con tutte le classi di tag precedenti. I tag di Classe 5 possono agire come 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 è attaccato il tag (questi dati includono campi definiti dall'utente, come conti bancari); i dati supplementari, che forniscono ulteriori dettagli riguardo all'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 riguardanti la produzione, il tipo e il 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'Identificatore della Famiglia di Applicazione (AFI), un codice che indica il tipo di oggetto a cui appartiene il tag. Un altro registro importante, anch'esso specificato dall'ISO, è l'Identificatore del Formato di Memorizzazione dei Dati (DSFID), che definisce la organizzazione logica dei dati 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 predefinite 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 alta sicurezza: accesso agli edifici, chiavi per citofoni, carte di abbonamento in palestra, ecc. A causa della loro maggiore portata, sono comodi da usare per il parcheggio a pagamento: il conducente non deve avvicinare la carta al lettore, poiché viene attivata da una distanza maggiore. Allo stesso tempo, i tag a bassa frequenza sono molto primitivi, hanno una bassa velocità di trasferimento dati. Per questo motivo, è impossibile implementare un complesso trasferimento di 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 di 30 kHz a 300 kHz, anche se è più comune utilizzare 125 kHz a 134 kHz:

  • Lunga distanza — una frequenza più bassa si traduce in una maggiore portata. Ci sono alcuni lettori EM-Marin e HID, che funzionano da una distanza di fino a un metro. Questi sono spesso utilizzati nei parcheggi.
  • Protocollo primitivo — a causa della bassa velocità di trasferimento dati, questi tag possono trasmettere solo il loro breve ID. Nella maggior parte dei casi, i dati non sono autenticati e non sono protetti in alcun modo. Non appena la carta è nel raggio del lettore, inizia semplicemente a trasmettere il suo ID.
  • Bassa sicurezza — Queste carte possono essere facilmente copiate, o anche lette dalla tasca di qualcun altro a causa della primitività del protocollo.

Protocollo 125 kHz popolari:

  • EM-Marin — EM4100, EM4102. Il protocollo più popolare nella CIS. Può essere letto da circa un metro grazie alla 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 carte 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 che tu lo incontri nel mondo reale rispetto ai precedenti due perché sta cadendo in disuso.

In realtà, ci sono molti più protocolli a bassa frequenza. Ma utilizzano tutti 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="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %} fz-125khz-rfid.md {% endcontent-ref %}

Tag RFID ad Alta Frequenza (13.56 MHz)

I tag ad alta frequenza sono utilizzati per un'interazione più complessa tra lettore e tag quando hai bisogno di crittografia, un ampio trasferimento di dati bidirezionale, autenticazione, ecc.
Si trovano solitamente in carte bancarie, trasporti pubblici e altri passaggi sicuri.

I tag ad alta frequenza da 13.56 MHz sono un insieme di standard e protocolli. Vengono solitamente chiamati NFC, ma non è sempre corretto. L'insieme di protocolli di base utilizzato a livello fisico e logico è ISO 14443. I protocolli di alto livello, così come standard alternativi (come ISO 19092), si basano su di esso. Molte persone si riferiscono a questa tecnologia come Comunicazione a Campo Vicino (NFC), un termine per dispositivi che operano sulla frequenza di 13.56 MHz.

Per dirla semplicemente, l'architettura NFC funziona così: il protocollo di trasmissione è scelto dall'azienda che produce le carte e implementato sulla base del 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 ISO 14443 a basso livello, sia con il protocollo di trasferimento dati Mifare Ultralight e EMV utilizzato nelle carte bancarie. Stiamo lavorando per aggiungere supporto per Mifare Classic e NFC NDEF. Un'analisi approfondita dei protocolli e degli standard che compongono l'NFC merita un articolo separato che prevediamo di pubblicare in seguito.

Tutte le carte ad alta frequenza basate sullo standard ISO 14443-A hanno un ID chip unico. Funziona come il numero di serie della carta, come l'indirizzo MAC di una scheda di rete. Di solito, l'UID è lungo 4 o 7 byte, ma può raramente arrivare fino a 10. Gli UID non sono un segreto e sono facilmente leggibili, a volte anche stampati sulla carta stessa.

Ci sono molti sistemi di controllo accessi che si basano sull'UID per autenticare e concedere accesso. A volte questo avviene anche quando i tag RFID supportano la crittografia. Tale uso improprio li riduce al livello delle stupide carte da 125 kHz in termini di sicurezza. Le carte virtuali (come Apple Pay) utilizzano un UID dinamico in modo che i proprietari dei telefoni non possano aprire porte con la loro app di pagamento.

  • Bassa portata — le carte ad alta frequenza sono specificamente progettate per essere posizionate vicino al lettore. Questo aiuta anche a proteggere la carta da interazioni non autorizzate. La massima distanza di lettura che siamo riusciti a raggiungere è stata di circa 15 cm, e questo è stato con lettori ad alta portata realizzati su misura.
  • Protocolli avanzati — velocità di trasferimento dati fino a 424 kbps consentono protocolli complessi con trasferimento di dati bidirezionale completo. Che a sua volta consente la crittografia, il trasferimento di 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 crittografici robusti come AES e implementano crittografia asimmetrica.

Attacco

Puoi attaccare questi Tag con il Flipper Zero:

{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %} fz-nfc.md {% endcontent-ref %}

Oppure usando il proxmark:

{% content-ref url="../todo/radio-hacking/proxmark-3.md" %} proxmark-3.md {% endcontent-ref %}

Riferimenti

{% hint style="success" %} Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks
{% endhint %}