2012-08-10 24 views
6

RFIDカードがMifare UltralightまたはMifare Ultralight Cのいずれかであるかどうかを確かめる方法はありますか?Mifare UltralightとMifare Ultralight Cを区別する

私が今までに見つけた唯一の方法は、小さなカードの境界を超えて読み取りコマンドを発行する2枚のカードのサイズの違いを利用することです。 しかし、それはハックのように見えますが、カードが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

答えて

5

おMIFAREウルトラライトCの認証機構がどのように機能するかについての文書を持っている場合は、[はい、可能です。 MIFARE Ultralightはこれをサポートしていないため、エラー状態が発生します。

+0

これも私の第二の考えでした。しかし、そのうちの1つに存在しないコマンドを使用することは、まだ回避策です。しかし、それを行うためのきれいな方法がないようです。 – mibollma

+0

はい、最も簡単で信頼できる方法です。 –

-1

NDAの下でフルデータシートにアクセスすると、Mifare Ultralight Cと他のMifareタグを区別する方法が記載されたセクションが表示されます。

+0

このセクションは見つかりませんでした。どの文書を参照しているかを教えてください。 (私は137631を見て何も見つけませんでした)。ありがとう! – kdmin

関連する問題