hacktricks/radio-hacking/pentesting-rfid.md
2024-02-10 13:03:23 +00:00

12 KiB

Pentesting RFID

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

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 incorporata, o ricevere 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 ogni 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 in fabbrica. Di conseguenza, non è possibile 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 aggiuntivi alla fine dei comandi per il rilevamento 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 corrente o il movimento del tag. Questi tag sono semipassivi, perché sebbene abbiano una fonte di alimentazione incorporata, come una batteria integrata, non possono iniziare comunicazioni 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 relativi 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 (UID) del tag 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, specificato anche da ISO, è l'Identificatore del Formato di Archiviazione dei Dati (DSFID), che definisce l'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 ogni blocco di memoria dell'utente e sui registri speciali che contengono 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 una grande sicurezza: accesso agli edifici, chiavi per l'interfono, tessere per l'iscrizione in palestra, ecc. Grazie alla loro maggiore portata, sono comodi da utilizzare per il parcheggio a pagamento: il conducente non ha bisogno di 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 dei dati. Per questo motivo, è impossibile implementare un complesso trasferimento bidirezionale dei dati 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 frequenza compreso tra 30 kHz e 300 kHz, anche se è più comune utilizzare 125 kHz a 134 kHz:

  • Lungo raggio - 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 dei 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 carta è nell'intervallo del lettore, inizia semplicemente a trasmettere il suo ID.
  • Bassa sicurezza - Queste carte possono essere facilmente copiate, o addirittura lette dalla tasca di qualcun altro a causa della primitività del protocollo.

Protocolli popolari a 125 kHz:

  • 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 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 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="../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 vengono utilizzati per un'interazione più complessa tra lettore e tag quando è necessaria la crittografia, un'ampia trasmissione bidirezionale dei dati, l'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. Solitamente vengono chiamati NFC, ma non è sempre corretto. Il set di protocolli di base utilizzato a livello 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 metterla semplice, l'architettura NFC funziona così: il protocollo di trasmissione viene scelto dall'azienda che produce le carte e implementato sulla base del protocollo ISO 14443 a basso livello. 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 il supporto per Mifare Classic e NFC NDEF. Uno sguardo approfondito ai protocolli e agli 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 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 sono persino 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. Un tale uso improprio li porta allo stesso 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 del telefono 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 raggiungere è stata di circa 15 cm, e ciò è stato fatto con lettori ad alta portata personalizzati.
  • Protocolli avanzati - velocità di trasferimento dati fino a 424 kbps consentono protocolli complessi con trasferimento bidirezionale completo. Ciò a sua volta consente la crittografia, il trasferimento dei dati, ecc.
  • Alta sicurezza - le carte senza contatto ad alta frequenza non sono in alcun modo inferiori alle smart card. Ci sono carte che supportano algoritmi crittograficamente forti come AES e implementano la crittografia asimmetrica.

Attacco

Puoi attaccare questi tag con Flipper Zero:

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

O utilizzando il proxmark:

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

Riferimenti

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!