2012-08-10 14 views
6

Esiste un modo affidabile per scoprire se una scheda RFID è un Mifare Ultralight o un Mifare Ultralight C?Distinguere Mifare Ultralight da Mifare Ultralight C

L'unico modo che ho trovato finora è l'utilizzo della differenza di dimensioni di quelle due carte che emettono un comando di lettura oltre i limiti di quello più piccolo. Ma sembra un trucco e presumo che il comando di lettura potrebbe fallire se la scheda utilizza il meccanismo di autenticazione Ultralight C.

const char* mifare_ultralight_identification(const nfc_target_info_t nti) 
{ 
    byte_t abtCmd[2]; 
    byte_t abtRx[265]; 
    size_t szRxLen; 

    abtCmd[0] = 0x30; // MIFARE Ultralight READ command 
    abtCmd[1] = 0x10; // block address (1K=0x00..0x39, 4K=0x00..0xff) 

    if (!nfc_initiator_transceive_dep_bytes(pnd,abtCmd,2,abtRx,&szRxLen)) { 
    // READ command of 0x10 failed, we consider that Ultralight does have 0x10 address, so it's a "simple" Ultralight (i.e. not a Ultralight C) 
    // When a READ failed, the tag returns in HALT state, so we need to reselect tag 
    nfc_initiator_select_passive_target(pnd, NM_ISO14443A_106, nti.nai.abtUid, nti.nai.szUidLen, NULL); 
    return ""; 
    } 
    return " C"; 
} 

Source

risposta

5

Sì, è possibile se si ha la documentazione su come funziona il meccanismo di autenticazione MIFARE Ultralight C. MIFARE Ultralight non supporta questo, quindi solleverà una condizione di errore.

+0

Anche questo è stato il mio secondo pensiero. Tuttavia, l'utilizzo di un comando che non esiste su uno di essi è ancora una soluzione. Ma sembra che non ci sia un modo pulito per farlo. – mibollma

+0

Sì, è il modo più semplice e affidabile. –

-1

Una volta che si è sotto la NDA e si ottiene l'accesso alle schede tecniche complete, verrà visualizzata una sezione che descrive come differenziare un Mifare Ultralight C da altri tag Mifare.

+0

Non ho trovato questa sezione. Potresti dire a quale documento ti stai riferendo? (Ho dato un'occhiata al 137631 e non ho trovato nulla). Grazie! – kdmin

Problemi correlati