簡體   English   中英

Mifare Ultralight C Android(2.3.6)中的認證

[英]Mifare Ultralight C Authentication in Android (2.3.6)

我正在嘗試驗證 Mifare Ultralight C(兼容 ISO/IEC 14443-2 和 14443-3 A 類)標簽。

我使用 Android 中提供的 MifareUltralight.transceive() function 發送身份驗證命令。我還檢查了 NfcA.transceive() (IsoDep 似乎不兼容這種標簽,因為這個 object 是用於處理 ISO/IEC 14443- 4 個標簽,這就是我不使用 IsoDep.transceive() 的原因。

因此,當我第一次發送身份驗證請求命令時,標簽用 AFxxxx 回答 transceive() ......我在其中處理標簽答案,然后我發送另一個 transceive() 以及對該答案的響應但是......就在之前發送 transceive() 標簽已連接,發送時我收到“標簽丟失”警告和“收發失敗”。

此外,如果我嘗試使用 NfcA,也會發生同樣的問題。

最后,如果我嘗試在第一個響應之后發送一個身份驗證命令,我還會收到一個“標簽丟失”警告和收發失敗。

所以我的問題是:

為什么當我發送第二個 transceive() 時 NFC 標簽丟失了? <<

(這似乎不是超時問題,因為就在發送第二個 transceive() 之前,連接是用標簽打開的)我把所有的東西都放在了與 UI 不同的線程中。

提前致謝!

你的方法似乎是正確的。 但是,標記的行為表明您對標記答案的響應不正確。 在這種情況下,標簽拒絕回答。 從手機的角度來看,這與已消失的標簽無法區分,因此您獲得了TagLostException

對我來說這是同樣的問題,但后來以奇怪的方式解決了

第一步:pass1 1A00命令到卡

第 2 步:能夠檢索 pass1 響應挑戰

第 3 步:算法計算步驟任意(此時假設標簽丟失)並從設備中獲得一種合理的標簽丟失

第 4 步:通過 AFxxxxx 傳遞 2 拋出異常收發失敗,但到那時如果我檢查標簽丟失了!!!

在掙扎了幾天之后,我的一位同事讓我嘗試減少 pass1 到 pass2 之間的任何延遲,這花費了將近 1-1.5 秒,並且在這兩者之間失敗了。

我刪除了中間寫入的任何日志,並在 pass1 之后的 500 英里秒內進行了簡單的快速調用,在這里我們 go 怪人工作正常!!!!

卡技術可能有某種安全目的,或者我不知道仍在嘗試調查。

希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM