我有一個智能卡讀卡器,我想從我的SIM卡獲取數據。我試圖發送幾個APDU命令,但除了ATR外我什麼都收不到。所以如果有一種可能的方式來訪問我必須發送哪些APDU命令的SIM卡?T = 0協議的APDU命令
回答
在談到SIM卡時,您需要參考3GPP規範中的APDU命令,而不是ISO 7816.APDU命令在3GPP TS 11.11第8和9節中列出。最新版本是8.14.0。請注意,CLA字節是專有的,即使用0xA0。
嘗試發送SELECT APDU命令,與MF的文件標識符,如下:
A0 A4 00 00 02 3F 00
你應該得到9FXX
響應。
如果您的卡是USIM,您可以發送基於ETSI 102.221和3GPP 31.102以及3GPP 51.011的APDU命令。
SIM卡的APDU命令是否與USIM的APDU命令不同?你能否向我推薦兩者的正確規格?那麼OTA命令呢?有沒有任何規範可以幫助我使用OTA SMS? – Jean 2015-03-14 11:09:49
此外,我找不到「3GPP 51.011」作爲pdf。你有嗎? – Jean 2015-03-14 11:17:53
SIM和USIM/UICC的APDU在CLA上不同('A0'對'00'/'80')。但是,兩者都使用類似的INS。 OTA數據從服務器發送到SIM,手機使用信封APDU(INS'C2')。要理解OTA,您需要掌握SMS規範(3GPP TS 23.040),然後是串聯+安全消息傳遞(3GPP TS 23.048)。所有規格可從3GPP.org下載:http://www.3gpp.org/specifications/specification-numbering – David 2015-03-14 15:01:33
T = 0是一個特殊的協議。它不會超出標準SW1/SW2發送響應,如果沒有額外要求。這是通過使用前一個SW1/SW2長度的GET RESPONSE命令完成的。欲瞭解更多信息,請參閱ISO 7816第4部分。
是的,我試過了。我發送了GET RESPONSE命令併成功接收到此響應:85 10 00 00? 00 8 00 00 00 01 00 01 00 00 00 00 m 90 00,我讀到這是MF(指令字節)。現在我該怎麼處理這個字節? – BornForJava 2015-02-25 06:41:20
所以你現在可以得到卡的輸出。我想,你對Select MF/Application沒有包含太多有趣的東西給予了迴應。在由@David鏈接的文檔的第10部分查看現有文件及其內容。 – guidot 2015-02-25 09:50:44
- 1. IRC協議的JOIN命令
- 2. 「docker pull」命令的協議
- 3. 如何通過APDU命令APDU命令功能
- 4. APDU命令中的負數
- 5. Mifare ultraligtht和APDU命令
- 6. APDU命令異步調用
- 7. APDU命令讀取卡號
- 8. APDU GET不支持命令
- 9. 讀取一個APDU命令
- 10. 12s協議版本的Activesync sendmail命令?
- 11. 扭曲的命令行協議
- 12. 使用OpenSSL命令行驗證協議
- 13. 協議緩衝區make命令libprotobuf.dll.a
- 14. 外部附件命令協議
- 15. 什麼APDU命令獲取卡ID
- 16. 我無法找到SLE5542的APDU命令
- 17. 如何使用java卡技術識別java卡協議(T = 0或T = 1)?
- 18. APDU命令獲取智能卡uid
- 19. APDU在mifare classic上寫塊命令
- 20. Mifare讀取APDU命令recived 63 00
- 21. 寫入記錄使用APDU命令
- 22. NFC APDU READ命令性能調優
- 23. APDU命令錯誤 - 響應6C6B
- 24. JCRE行爲接收SELECT APDU命令
- 25. 基於命令的協議解析器中每個命令的唯一類?
- 26. 通過xbee.send()發送的命令的協議是什麼?
- 27. CAS協議 - 刷新令牌?
- 28. 令牌環協議java
- 29. 對協議有什麼需求T.120
- 30. 在Python中開發T.120協議
您可以顯示迄今爲止嘗試過的命令嗎?此外,沒有多少人熟悉APDU,因此發佈上下文有助於打擊那些不立即看到如何產生答案的人不可避免的downvote/close狂歡。 – 2015-02-24 08:23:04