2012-03-01 24 views
5

क्या एपीडीयू कमांड कार्ड आईडी के 7 बाइट प्राप्त करता है? मैं आईएस 14143 परत के साथ टी = सीएल (आईएसओ7816) प्रीटोकॉल का उपयोग करता हूं। डिटेक्ट कार्ड पर मैं केवल कार्ड आईडी के 4 बाइट देख सकता हूं। मैंने खोज की, यह कार्ड आईडी प्राप्त करने के लिए एपीडीयू कमांड है। उदाहरण के लिए अपने:
0xFF, 0xCA, 0x00, 0x00, 0x00
लेकिन thouse आदेश का परिणाम है: 6E 00, बताते हैं कि APDU जवाब की विशिष्टताओं पर कि "क्लास समर्थित नहीं"क्या एपीडीयू कमांड कार्ड आईडी

तो मुझे लगता है कि इसके APDU आदेश के रूप में हो सकता है:
0x00, 0xCA, 0x00, 0x00, 0x00
इस आदेश वापसी 6A 88
जहां 6A XX - "गलत पैरामीटर (रों) P1-P2" और 88 - "संदर्भित डेटा नहीं मिला"

आप इसके बारे में क्या सोचते हैं?

धन्यवाद!

पेज। सभी आदेश के रूप में: CLA, INS, P1, P2, LenData, Data
अन्य मेरी आदेश काम normaly, समस्या (sellect aplet और इसके साथ काम के रूप में इस तरह के) केवल रही कार्ड आईडी

उत्तर

1

0xCA डाटा प्राप्त करें आदेश है पर। आपको पी 1-पी 2 में एक टीएलवी टैग की आपूर्ति करनी होगी।

आईएसओ 7816 भाग 6 "इंटरचेंज के लिए इंटरइंडस्ट्री डेटा तत्व" में इन टैग की एक सूची है, लेकिन उनमें से कोई भी "कार्ड आईडी" के साथ अनजाने में मेल नहीं खाता है। मेरा सुझाव है कि आप P2 के सभी मानों को आज़माएं, P1 के बराबर 0x00, 0x5F, या 0x7F के साथ, यह पता लगाने के लिए कि कौन से डेटा तत्व आपके कार्ड द्वारा समर्थित हैं।

+0

कमांड {0x00, 0xCA, 0x00, 0x5F, 0x00} या {0x00, 0xCA, 0x00, 0x7F, 0x00} त्रुटि 6 ए 88 –

+0

हाँ वापस आ गया। आपको पी 2 के * सभी * मानों को 0x00 से 0xFF तक, पी 1 के लिए तीन मान 0x00, 0x5F, और 0x7F के साथ प्रयास करना होगा। कुल मिलाकर यह 768 संयोजन है। – TonyK

13

पहले दिया गया उत्तर गलत है। ऐसा इसलिए है क्योंकि हम यहां एक आईएसओ 7816 कमांड के बारे में बात नहीं कर रहे हैं लेकिन पीसी/एससी एपीआई के आंतरिक कमांड के बारे में बात नहीं कर रहे हैं।

एपीडीयू "0xFF 0xCA 0x00 0x00 0x00" वास्तव में सही है और मेरे पास ऐसे कार्ड हैं जिनके लिए मुझे 7 बाइट उत्तर मिलता है। कृपया ध्यान दें कि यह केवल संपर्क रहित (आरएफआईडी) कार्ड के साथ काम करेगा क्योंकि यह यूआईडी रेडियो प्रोटोकॉल का हिस्सा है। कृपया ध्यान दें कि कुछ चिप्स प्रत्येक पावर अप के बाद एक नया यादृच्छिक यूआईडी वापस कर देंगे। उदाहरण के लिए यह मेरे पासपोर्ट चिप के साथ-साथ मेरा जर्मन राष्ट्रीय पहचान पत्र और कार्डधारकों की ट्रैकिंग को रोकने के लिए एक प्रतिद्वंद्वी के लिए सच है। सिद्धांत में इस तरह के यादृच्छिक यूआईडी 0x08 के साथ शुरू हो जाएंगे लेकिन यह हमेशा मामला नहीं है।

चूंकि यूआईडी प्रोटोकॉल का "आंतरिक" मान है, प्रश्न में एपीडीयू कार्ड को नहीं भेजा गया है, लेकिन कार्ड रीडर ड्राइवर से यूआईडी प्राप्त करने के लिए केवल एक आंतरिक कमांड (पीसी/एससी इंटरफेस) है । सीएलए 0xFF आमतौर पर सामान्य उपयोग में नहीं है क्योंकि इसका उपयोग केवल "प्रोटोकॉल पैरामीटर चयन" (पीपीएस) के लिए आरक्षित के लिए किया जाता है। पीसी/एससी आंतरिक आदेशों के लिए इस सीएलए का दुरुपयोग करता है।

यहां आदेश पीसी/एससी आंतरिक "डेटा प्राप्त करें" कमांड है, भाग 3 में निर्दिष्ट, पीसी/एससी विनिर्देश के खंड 3.2.2.1.3। यहां पी 1 और पी 2 में विशेष पूर्वनिर्धारित अर्थ हैं, इसलिए अलग-अलग मानों को आजमाने में कोई बात नहीं है। मानक केवल यूआईडी और पी 1 = 1, पी 2 = 0 प्राप्त करने के लिए पी 1 = 0, पी 2 = 0 को परिभाषित करता है "सीएससी के बिना एक आईएसओ 14443 ए कार्ड के एटीएस से सभी ऐतिहासिक बाइट्स"। अन्य मान समर्थित नहीं हैं।

दिलचस्प बात यह है कि 0x6A 0x88 मानक में परिभाषित नहीं किया गया है। 0x6a 0x81 का अर्थ है "फंक्शन समर्थित नहीं है" जो मामला होगा जिसमें कार्ड नहीं हैं जिनके पास यूआईडी नहीं है (मानक 7816-10 संपर्क कार्ड का उल्लेख करता है)।दो अन्य परिभाषित उत्तर (0x62 0x82 और 0x6C 0xXX) अनुरोधित उत्तर लंबाई और डेटा की वास्तविक मात्रा के बीच एक मेल नहीं खाते हैं और यहां नहीं होंगे, क्योंकि हम अनुरोध के अंतिम बाइट में 0 निर्दिष्ट करके किसी भी लंबाई डेटा का अनुरोध करते हैं ।

तो यह सबमिट करने वाले के लिए क्यों काम नहीं कर रहा है, मुझे नहीं पता। मेरे लिए यह काम करता है, कुछ कार्ड 4 बाइट्स लौटाते हैं, अन्य 7 बाइट लौटते हैं।

, यहाँ विशेष रूप से पीसी/एससी मानक, भाग 3 देखें: http://www.pcscworkgroup.com/specifications/specdownload.php

+0

यह दस्तावेज़ यादृच्छिक यूआईडी सहित अन्य गैर-अद्वितीय यूआईडी को निर्धारित करने के लिए आरएफआईडी कार्ड के यूआईडी में कुछ और अंतर्दृष्टि देता है: http://www.nxp.com/documents/application_note/AN10927.pdf – Michael

0

मुझे लगता है कि अपने दूसरे आदेश सही है, लेकिन कार्ड एक आवेदन क्रमांक के साथ प्रोग्राम नहीं किया गया है।

6A88 के लिए बेसिककार्ड मैनुअल कहता है: "अंतर्निहित कमांड प्राप्त करने के लिए आवेदन आईडी प्राप्त करता है यदि मूल कार्ड में कोई एप्लिकेशन आईडी कॉन्फ़िगर नहीं किया गया है"।