
चूंकि लेख परिचयात्मक और अवलोकन है, इसलिए सबसे सरल प्रकार के स्मार्ट कार्ड पर विचार किया जाएगा - सिम कार्ड, मेरा मानना है कि अभी ग्रह पर इनमें से अधिकांश कार्ड हैं।
आज के मानकों के अनुसार, सिम मानक पुरातन दिखता है, लेकिन यह स्मार्ट कार्ड की दुनिया के साथ पहले परिचित के लिए आदर्श है, इस मानक के आधार पर सिद्धांतों को अपनाने से विषय में आगे विसर्जन की सुविधा होगी।
यदि आप एक "कार्ड प्लेयर" हैं, तो आप अपने लिए कुछ नया सीखने की संभावना नहीं रखते हैं, जब तक कि कुछ अस्पष्ट क्षणों को समतल पर नहीं रखा जाता है, या शायद आप अलमारियों पर रख सकते हैं कि लेखक ने क्या गलत समझा (लेकिन, मैं आपको याद दिलाता हूं, हम भीतर ही हैं। सिम!)।
एक स्मार्ट कार्ड एक हार्डवेयर-सॉफ्टवेयर कॉम्प्लेक्स है, वास्तव में एक लघु कंप्यूटर, जिसमें कम से कम शामिल हैं:
- प्रोसेसर;
- यादृच्छिक अभिगम स्मृति;
- डेटा स्टोरेज सबसिस्टम;
- ऑपरेटिंग सिस्टम।
अक्सर, लेकिन हमेशा नहीं, एक जावा वीएम मानचित्र में शामिल होता है। OS, जैसे कि, अंतिम उपयोगकर्ता को दिखाई नहीं देता है।
APDU
एपीआई की भूमिका तथाकथित के माध्यम से कार्ड के साथ डेटा का आदान-प्रदान है
APDU ।
कई अलग-अलग
APDU आदेशों का एक समूह है, जिनमें से प्रत्येक में निम्नलिखित संरचना है (
ISO7816-4 के अनुसार)
तत्त्व | आकार (बाइट्स) | विवरण |
---|
CLA | 1 | टीम वर्ग |
आईएनएस | 1 | निर्देश कोड |
P1 | 1 | पैरामीटर संख्या 1 |
P2 | 1 | पैरामीटर संख्या 2 |
एल | 1 | कार्ड को प्रेषित डेटा की लंबाई। |
डेटा | एल | डेटा |
APDU को आमतौर पर हेक्साडेसिमल अंकों के एक सेट के रूप में लिखा जाता है:
A0 A4 00 00 02 3F00
GSM सिम कार्ड के लिए, CLA =
A0
।
यहाँ कुछ निर्देश कोड दिए गए हैं:
निर्देश मैनुअल | विवरण |
---|
ए 4 | फ़ाइल का चयन करें |
B0 | पढ़ें बिलिनरी |
B2 | पढ़ें रिकॉर्ड |
C0 | परिणाम प्राप्त करें |
20 | बहुत बड़ा |
D6 | अद्यतन द्विभाषी |
DC | अद्यतन रिकॉर्ड |
APDU के जवाब में
, कार्ड हमेशा कम से कम 2 बाइट देता है, तथाकथित स्थिति शब्द (SW),
इसके अलावा, पहले और दूसरे बाइट्स को क्रमशः SW1 और SW2 कहा जाता है। SW द्वारा कमांड की निष्पादन स्थिति निर्धारित करना संभव है, SW1 के साथ आमतौर पर बुनियादी जानकारी प्रदान की जाती है, और SW2 अतिरिक्त जानकारी प्रदान करता है। सिम-कार्ड के मामले में, स्थिति 90 00 और 9F xx सफलता के बारे में बात करेगी (यहां xx एक हेक्साडेसिमल अंक है, जिसके बारे में अतिरिक्त जानकारी की लंबाई कम है)।
एसडब्ल्यू कार्ड के अलावा, यह डेटा भी लौटा सकता है। ऐसे कमांड भी हैं जिनके बाद अतिरिक्त जानकारी प्राप्त करना संभव है।
ऐसा करने के लिए, कमांड का उपयोग करें:
GET RESPONSE
इस निर्देश के "सेवाओं" का उपयोग करने के लिए, आपको यह ध्यान रखना होगा कि यह उस आदेश के
तुरंत बाद कॉल किया जाना चाहिए जिसका परिणाम आप अनुरोध करना चाहते हैं। यदि GET RESPONSE के अलावा किसी भी निर्देश को कहा जाता है, तो पिछले कमांड का संदर्भ खो जाएगा।
यदि कोई निर्देश आपको इसके कॉल के बाद GET RESPONSE का उपयोग करने की अनुमति देता है, तो SW2 में यह बाइट्स में डेटा की मात्रा लौटाता है जो GET RESPONSE कमांड वापस आ जाएगी।
GET RESPONSE के सबसे हड़ताली अनुप्रयोगों में से एक इसका उपयोग SELECT कमांड के बाद किया गया है - यह चयनित फ़ाइल सिस्टम ऑब्जेक्ट के बारे में उपयोगी जानकारी प्राप्त करना संभव बनाता है।
डेटा स्टोरेज सबसिस्टम

वैसे, यह मैप फाइल सिस्टम को याद करने का समय है। यह प्रणाली पदानुक्रमित है, एक रूट फ़ोल्डर (मास्टर फ़ाइल, एमएफ), नियमित फ़ोल्डर्स (समर्पित फ़ाइल, डीएफ) है और, वास्तव में, फाइलें (प्राथमिक फ़ाइल, ईएफ)। प्रत्येक फ़ाइल सिस्टम ऑब्जेक्ट में एक पहचानकर्ता (फ़ाइल आईडी, FID) होता है, जो सबसे सरल मामले में, चार हेक्साडेसिमल अंकों के होते हैं और जो इसे एक नाम के साथ बदल देता है। उदाहरण के लिए,
MF में हमेशा पहचानकर्ता
3F00
। प्रत्येक कार्ड मानक में आरक्षित फ़ाइल पहचानकर्ताओं की अपनी सूची है, उदाहरण के लिए, सिम एड्रेस बुक फ़ाइल में पहचानकर्ता 6 एफ 3 ए है, और एसएमएस स्टोरेज फ़ाइल में पहचानकर्ता 6 एफ 3 सी है। मानक फाइलों में भी नाम निर्दिष्ट हैं (पूरी तरह से मानव सुविधा के लिए, एपीआई उनका उपयोग नहीं करता है), उपरोक्त फ़ाइलों के लिए वे हैं, जैसे:
6F3A
लिए
EF ADN ;
6F3
लिए ईएफ एसएमएस।
सिम कार्ड के मामले में, मानक उपयोग परिदृश्य फ़ाइल संरचना के संशोधन के लिए प्रदान नहीं करते हैं, अर्थात्।
ईएफ या
डीएफ नहीं बना सकते।
केवल फ़ाइलों की सामग्री को संशोधित करना संभव है। बेशक, जीवन गैर-मानक परिदृश्यों को भी निर्धारित करता है, लेकिन अब हम उन पर विचार नहीं करेंगे।
फ़ाइल प्रकार
स्मार्ट कार्ड एपीआई तीन प्रकार की फाइलों में हेरफेर करने के लिए प्रदान करता है:
- पारदर्शक
किसी भी फ़ाइल सिस्टम की एक नियमित बाइनरी फ़ाइल का एनालॉग।
ऐसी फ़ाइलों के साथ काम करने के लिए उपकरण READ BINARY/UPDATE BINARY
एक जोड़े हैं।
- रैखिक तय किया
एक फ़ाइल जिसमें रिकॉर्ड की एक निश्चित संख्या होती है, एक ही लंबाई के सभी रिकॉर्ड के साथ, फ़ाइल बनाते समय रिकॉर्ड की लंबाई निर्दिष्ट की जाती है।
रिकॉर्ड 255 से अधिक टुकड़े नहीं हो सकते हैं, प्रत्येक रिकॉर्ड 255 बाइट्स से अधिक नहीं हो सकता है।
कार्य उपकरण READ RECORD / UPDATE RECORD की एक जोड़ी है।
आप निरपेक्ष (रिकॉर्ड संख्या से) और रिश्तेदार संबोधन (अगले / पिछले, लेकिन बिना साइकिल के) दोनों का उपयोग कर सकते हैं।
उपयोग का एक उदाहरण एक सिम कार्ड पर एक नोटबुक है।
- चक्रीय
सामान्य तौर पर - रैखिक फिक्स्ड के समान, लेकिन निम्नलिखित अतिरिक्त कार्यक्षमता के साथ:
पढ़ते समय: अलगाव - रिश्तेदार संबोधन का उपयोग करते समय, पिछले से अगले रिकॉर्ड तक बढ़ते हुए हम पहले तक पहुंचते हैं, पहले से पिछले रिकॉर्ड पर जाते हैं, हम आखिरी तक पहुंचते हैं।
रिकॉर्डिंग करते समय: केवल सापेक्ष पते को केवल पिछले रिकॉर्ड के संदर्भ में अनुमति दी जाती है। यहां तक कि एक विशेष कमांड भी है, केवल चक्रीय फ़ाइलों के लिए, जो सबसे पुराने फ़ाइल रिकॉर्ड को अपडेट करती है (इसके बाद यह सबसे नया हो जाता है) - प्रोत्साहन।
पहला रिकॉर्ड हमेशा नवीनतम डेटा संग्रहीत करता है, और अंतिम - सबसे पुराना।
उपयोग का एक उदाहरण पहले डायल किए गए नंबरों की एक सूची है। सामान्य तौर पर, इस प्रकार की फाइलें अन्य प्रकार की फाइलों की तुलना में बहुत कम बार उपयोग की जाती हैं।
एपीआई में
एमएफ या
डीएफ के लिए क्रमशः सभी फ़ाइलों / फ़ोल्डरों की सूची का अनुरोध करने की क्षमता नहीं है, किसी दिए गए मार्ग पर एक फ़ाइल की उपस्थिति की जांच करने के लिए, आपको इस फाइल को SELECT कमांड के साथ चुनने और SW का विश्लेषण करने का प्रयास करना होगा।
सामान्यीकृत फ़ाइल संचालन के प्रकार इस तालिका में प्रस्तुत किए गए हैं:
सामान्यीकृत ऑपरेशन प्रकार | कमान उदाहरण |
---|
पढ़ें | READ BINARY, READ RECORD |
अद्यतन | UPDATE RECORD, UPDATE RECORD, INCREASE |
अमान्य | INVALIDATE |
पुनर्वास | REHABILITATE |
मैं संक्षेप में अंतिम दो आदेशों की व्याख्या करूंगा:
INVALIDATE
- फ़ाइल की स्थिति को INVALIDATE
बदल देता है ताकि:
- इसके लिए एक विशेष ध्वज निर्धारित किया गया है, अर्थात् हम पता लगा सकते हैं कि फ़ाइल अमान्य है।
- अमान्य फ़ाइल की सेटिंग के आधार पर, पढ़ना और लिखना संभव नहीं हो सकता है।
REHABILITATE
- एक पूर्व अमान्य फ़ाइल को उसकी सामान्य स्थिति में लौटाता है, जबकि अमान्य द्वारा लगाए गए संभावित प्रतिबंध हटा दिए जाते हैं।
उपयोग का एक उदाहरण - फिक्स्ड डायलिंग मोड का सक्रियण तंत्र (जब केवल विशेष फोनबुक से ग्राहक कॉल कर सकते हैं) सिम कार्ड की मुख्य फोनबुक फ़ाइल के अमान्यकरण पर बनाया गया है। मुझे इस तंत्र के अन्य अनुप्रयोगों की जानकारी नहीं है।
फ़ाइल संचालन के सामान्यीकृत प्रकारों पर निर्णय लेने के बाद, हम एक्सेस कंट्रोल के सिद्धांतों के साथ खुद को परिचित करने के लिए आगे बढ़ सकते हैं।
अभिगम नियंत्रण
ये सिद्धांत निम्नलिखित अवधारणाओं पर आधारित हैं:
- एक्सेस स्थिति (एसी) - कार्ड की स्थिति, वर्तमान सत्र के भीतर, जिसमें एक विशिष्ट प्रकार का ऑपरेशन एक विशिष्ट फ़ाइल के लिए संभव है।
- एक्सेस स्थितियां, जिनमें से सबसे प्रसिद्ध एक पिन कोड की प्रस्तुति है।
संभव पहुँच की स्थिति:
पहुंच की स्थिति | स्पष्टीकरण |
---|
कभी नहीं | ऑपरेशन निषिद्ध है |
सदैव | ऑपरेशन हमेशा की अनुमति दी |
PIN1 ( CHV 1 के रूप में भी जाना जाता है) | ऑपरेशन करने के लिए, आपको कार्ड पर PIN1 प्रस्तुत करना होगा |
PIN2 ( CHV 2) | ऑपरेशन करने के लिए, आपको अपना पिन 2 कार्ड पेश करना होगा |
ADM | ऑपरेशन करने के लिए, कार्ड को एक प्रशासनिक कोड प्रस्तुत करना आवश्यक है। |
दोनों पिन कोड कार्ड के साथ प्रस्तुत किए जाते हैं।
एडीएम एक मालिकाना टीम द्वारा प्रस्तुत किया जाता है (जो निर्माता सोचता है कि वह क्या उपयोग करता है, क्योंकि यह मानक द्वारा विनियमित नहीं है)।
एक कोड प्रस्तुत करना कार्ड सत्र के पैमाने का एक ऑपरेशन है, यदि आपने एक बार पिन या
एडीएम प्रस्तुत किया है, तो आप उन सभी फाइलों के साथ संचालन कर सकते हैं जिनके लिए सत्र समाप्त होने तक उपयुक्त कोड की आवश्यकता होती है।
प्रत्येक फ़ाइल और प्रत्येक ऑपरेशन के लिए, मैपिंग मैपिंग स्टोर करता है: एक सामान्यीकृत ऑपरेशन एक एक्सेस स्थिति है।
उदाहरण के लिए,
EF ICCID फ़ाइल के लिए, जो
कार्ड की
विशिष्ट क्रम संख्या (मोबाइल फोन ग्राहक की संख्या के साथ भ्रमित नहीं होना) को संग्रहीत करता है,
एसी इस तरह दिखाई देगा:
पढ़ें | अद्यतन | अमान्य / पुनर्वास करें |
---|
सदैव | कभी नहीं | कभी नहीं |
मुख्य फोन बुक के लिए:
पढ़ें | अद्यतन | अमान्य / पुनर्वास करें |
---|
pin1 | pin1 | PIN2 |
यदि एक निश्चित कोड की प्रस्तुति अक्षम है, जैसा कि ऑपरेटर अक्सर PIN1 के साथ करते हैं, तो यह कोड कार्ड सत्र की शुरुआत से प्रस्तुत माना जाता है।
एक सेलेक्ट ऑपरेशन के लिए, सभी
एसी हमेशा होते हैं। किसी विशेष फ़ाइल के लिए
AC का पता लगाने के लिए, आपको इसे (SELECT) चुनना होगा, और फिर GET RESPONSE कमांड चलाएं।
एसी फ़ोल्डर आमतौर पर सिम कार्ड (
एमएफ और
डीएफ ) पर फ़ोल्डर्स के लिए लागू नहीं होते हैं। जब एक ऑपरेशन किया जाता है जो
एसी दृष्टिकोण से अमान्य है (जैसे कि
ईएफ आईसीसीआईडी को अपडेट करने की कोशिश करना), तो ऑपरेशन को अस्वीकार कर दिया जाएगा और एसडब्ल्यू को त्रुटि कोड प्रदान किया जाएगा।
बेशक, मैंने जो यहां बताया वह वास्तविक फाइल सिस्टम नहीं है - एक नियम के रूप में, इस अमूर्तता के पीछे, ओएस स्तर पर, परिचित एफएटी छिपा हुआ है।
अंत में, मुझे वास्तविक जीवन में इस एपीआई के उपयोग का एक उदाहरण देना होगा।
मुझे लगता है कि कई लोग पहले ही अनुमान लगा चुके हैं (या जानते हैं?) यह सबसे प्रसिद्ध और बड़े पैमाने पर उपकरण है जो इस एपीआई का लगातार और गहनता से उपयोग करता है, एक साधारण मोबाइल टर्मिनल है।
पुनश्च:
अगले लेख में मैं इस बारे में बात करने की योजना बना रहा हूं कि आप प्रोग्राम द्वारा मानचित्र के साथ काम करके अब प्राप्त ज्ञान को कैसे लागू कर सकते हैं।
PPS: आमंत्रित करने के लिए आप लोगों को धन्यवाद!