डिजिटल क्रेडेंशियल के बारे में खास जानकारी

डिजिटल क्रेडेंशियल, क्रिप्टोग्राफ़िक तरीके से पुष्टि किए जा सकने वाले दस्तावेज़ होते हैं. इनका इस्तेमाल, किसी उपयोगकर्ता की पहचान की पुष्टि करने, उसे अनुमति देने या उसके बारे में जानकारी देने के लिए किया जा सकता है. ये आम तौर पर, मोबाइल ड्राइवर लाइसेंस, डिजिटल पासपोर्ट, बोर्डिंग पास वगैरह होते हैं. ये डिजिटल वॉलेट नाम के वर्चुअल कंटेनर में मौजूद होते हैं. साथ ही, ये W3C स्टैंडर्ड का हिस्सा होते हैं. इस स्टैंडर्ड में यह बताया गया है कि इन्हें कैसे ऐक्सेस और वापस पाया जा सकता है. इस स्टैंडर्ड को वेब पर इस्तेमाल के उदाहरणों के लिए, W3C Credential Management API के साथ लागू किया जाता है. साथ ही, Android पर इसे Credential Manager के DigitalCredential API के साथ लागू किया जाता है.

डिजिटल क्रेडेंशियल के बारे में जानकारी

असल दुनिया में, कोई व्यक्ति अपनी पहचान को अपने वॉलेट में रख सकता है. साथ ही, मांगने पर उसे अनुरोध करने वाले पक्ष को दिखा सकता है:

वॉलेट के साथ सामान्य इंटरैक्शन का फ़्लो दिखाने वाली इमेज
पहली इमेज. फ़िज़िकल क्रेडेंशियल के अनुरोध को पूरा करने की प्रोसेस. अनुरोध करने वाला व्यक्ति, उपयोगकर्ता से कोई क्रेडेंशियल मांगता है. इसके बाद, उपयोगकर्ता अपने फ़िज़िकल वॉलेट से इसे चुनता है और वापस पाता है. आखिर में, उपयोगकर्ता, अनुरोध करने वाले व्यक्ति को क्रेडेंशियल देता है.

इस मामले में, आम तौर पर उपयोगकर्ता के पास एक ही वॉलेट होता है. वह अनुरोध करने वाले व्यक्ति को दिखाने के लिए, वॉलेट से अनुरोध किए गए क्रेडेंशियल वापस पाता है. वॉलेट में मौजूद कार्ड और पास वगैरह को एक-दूसरे के साथ शेयर किया जा सकता है. साथ ही, इनमें एक जैसी जानकारी सेव की जा सकती है.

डिजिटल क्रेडेंशियल, असल दुनिया में मौजूद क्रेडेंशियल से इन मामलों में अलग होते हैं:

  1. उपयोगकर्ताओं के पास एक से ज़्यादा वॉलेट होने चाहिए. इन्हें होल्डर भी कहा जाता है. इनमें अलग-अलग क्रेडेंशियल हो सकते हैं. Wallet तय करते हैं कि उनमें कौनसे क्रेडेंशियल सेव किए जा सकते हैं.
  2. जिस ऐप्लिकेशन या सेवा को ऐक्सेस करने के लिए क्रेडेंशियल की ज़रूरत होती है या जो किसी व्यक्ति की पहचान की पुष्टि करती है उसे पुष्टि करने वाला कहा जाता है.
  3. क्रेडेंशियल बनाने वाली इकाई को जारी करने वाली इकाई कहा जाता है. यह इकाई, विषय के बारे में दावे करती है. जैसे, कोई यूनिवर्सिटी, सरकार या टेक्नोलॉजी कंपनी.
  4. क्रेडेंशियल दिखाने की प्रोसेस सॉफ़्टवेयर में होती है. इसका मतलब है कि एपीआई की कोई सतह क्रेडेंशियल को वापस लाती है और उन्हें दिखाती है. Android में, यह Credential Manager होता है.

इसलिए, क्रेडेंशियल मैनेजर कई ऐसी भूमिकाएं निभाता है जिन्हें पहले उपयोगकर्ता मैनेज करता था:

  1. Android पर, वॉलेट को Credential Manager के साथ अपने क्रेडेंशियल मेटाडेटा को रजिस्टर करना होगा. इससे, उन्हें Credential Manager के यूज़र इंटरफ़ेस (यूआई) में शामिल किया जा सकेगा.
  2. क्रेडेंशियल मैनेजर, अनुरोध के आधार पर सभी वॉलेट में क्रेडेंशियल मैच करता है. इसके बाद, उपयोगकर्ता को चुनने के लिए एक सूची दिखाता है.
  3. जब उपयोगकर्ता सूची में कोई क्रेडेंशियल चुनता है, तो क्रेडेंशियल मैनेजर, वॉलेट को चालू करता है. इसके बाद, वॉलेट लेन-देन के बाकी हिस्से को मैनेज करता है. जैसे, यूज़र इंटरफ़ेस (यूआई) दिखाना वगैरह. साथ ही, क्रेडेंशियल को ऐप्लिकेशन पर वापस भेजता है.

इस फ़्लो को यहां दिखाया गया है:

डिजिटल क्रेडेंशियल के इंटरैक्शन का फ़्लो दिखाने वाली इमेज
दूसरी इमेज. डिजिटल क्रेडेंशियल की पुष्टि करने के लिए इंटरैक्शन मॉडल. Credential Manager, पहले से रजिस्टर किए गए क्रेडेंशियल के मेटाडेटा का इस्तेमाल करता है. यह मेटाडेटा, उपयोगकर्ता के सभी वॉलेट में मौजूद होता है. इससे, पुष्टि करने वाले व्यक्ति के अनुरोध का मिलान किया जाता है. साथ ही, उपयोगकर्ता को क्रेडेंशियल चुनने के लिए कहा जाता है. इसके बाद, Credential Manager गतिविधि के फ़्लो को उस वॉलेट पर भेजता है जो लेन-देन के बाकी हिस्से को मैनेज करता है. साथ ही, पुष्टि करने वाले व्यक्ति को क्रेडेंशियल वापस भेजता है. ध्यान दें: पुष्टि करने वाले को क्रेडेंशियल के जवाब को मैनेज करना होगा और उसकी पुष्टि करनी होगी.

ऐसे क्रेडेंशियल जिनकी पुष्टि की जा सकती है

पुष्टि किए जा सकने वाले क्रेडेंशियल, डिजिटल क्रेडेंशियल का एक सबसेट होते हैं. ये कड़े मानकों के मुताबिक काम करते हैं. जैसे, W3C Verifiable Credentials Data Model. इन क्रेडेंशियल में ऐसे दावे शामिल होते हैं जिन्हें क्रिप्टोग्राफ़िक तरीके से सुरक्षित किया जाता है. इससे यह पता चलता है कि इनमें छेड़छाड़ नहीं की गई है. साथ ही, यह भी पता चलता है कि इन्हें किसने जारी किया है.

सभी डिजिटल क्रेडेंशियल, पुष्टि किए जा सकने वाले क्रेडेंशियल नहीं होते. हालांकि, सभी पुष्टि किए जा सकने वाले क्रेडेंशियल, डिजिटल क्रेडेंशियल होते हैं.

दावे की पुष्टि होने का क्या मतलब है

जब Android Credential Manager API के ज़रिए कोई क्रेडेंशियल मिलता है और उसमें मौजूद किसी दावे को "पुष्टि की गई" के तौर पर मार्क किया जाता है, तो इसका मतलब है कि जारी करने वाला व्यक्ति या कंपनी यह दावा कर रही है कि उसने उस डेटा की जांच की है. हालांकि, इसका मतलब यह नहीं है कि डेटा पूरी तरह से सही है और हर जगह लागू होता है. "पुष्टि की गई" एक प्रोसेस है. इससे अपने-आप भरोसा नहीं मिलता.

इस इकोसिस्टम का मुख्य सिद्धांत यह है कि पुष्टि करने वाले व्यक्ति या इकाई के पास हमेशा यह तय करने का अधिकार होता है कि किसी क्रेडेंशियल पर भरोसा किया जाए या नहीं. जब पुष्टि करने वाले व्यक्ति (आपका ऐप्लिकेशन) को क्रिप्टोग्राफ़िक रूप से सुरक्षित डेटा मिलता है और उसे पता चलता है कि जारी करने वाले ने इसे "पुष्टि की गई" के तौर पर मार्क किया है, तो उसे यह तय करना होगा कि क्या वह जारी करने वाले पर भरोसा करता है कि उसने दावे की पुष्टि अपने मानकों के हिसाब से की है.

उपयोगकर्ता अनुभव

Android के फ़्लो में दिखाया गया है कि उपयोगकर्ता को सही क्रेडेंशियल चुनने के लिए, Credential Manager के यूज़र इंटरफ़ेस (यूआई) के साथ सिर्फ़ एक बार इंटरैक्ट करना होता है. यहां एक उदाहरण दिया गया है, जिससे पता चलता है कि सिलेक्टर कैसा दिखता है:

क्रेडेंशियल मैनेजर में डिजिटल क्रेडेंशियल का यूज़र इंटरफ़ेस (यूआई) दिखाने वाली इमेज
तीसरी इमेज. डिजिटल क्रेडेंशियल का यूज़र इंटरफ़ेस.

सुलभता के मानक

डिजिटल क्रेडेंशियल के अनुरोध, OpenID4VP स्टैंडर्ड का इस्तेमाल करके बनाए जाते हैं. डिजिटल क्रेडेंशियल की डेमो साइट पर, अनुरोधों के उदाहरण देखे जा सकते हैं.

डिजिटल क्रेडेंशियल के जवाब आम तौर पर, क्रेडेंशियल के स्टैंडर्ड फ़ॉर्मैट में दिए जाते हैं. इन्हें अलग-अलग स्टैंडर्ड बॉडी मैनेज करती हैं. इनमें W3C Verifiable Credentials, sd-jwt, और mdoc शामिल हैं.

कस्टम प्रोटोकॉल का भी इस्तेमाल किया जा सकता है. हालांकि, हमारा सुझाव है कि आप अपने ऐप्लिकेशन में किसी एक स्टैंडर्ड प्रोटोकॉल का इस्तेमाल करें.

इसे आज़माएं

Android Wallet और वेब पर उपलब्ध पुष्टि करने वाले ऐप्लिकेशन की मदद से, अलग-अलग प्लैटफ़ॉर्म पर डिजिटल क्रेडेंशियल के फ़्लो को आज़माया जा सकता है:

  1. अपने Android फ़ोन पर CMWallet का सार्वजनिक सैंपल इंस्टॉल करें. इसके लिए, रिपॉज़िटरी से पुल करें और सीधे Android Studio से इंस्टॉल करें. इसके अलावा, https://github.com/digitalcredentialsdev/CMWallet/actions पर जाकर, app-debug.apk फ़ाइल का नया वर्शन ऐक्सेस करने के लिए, नया बिल्ड चुनें.
  2. क्रेडेंशियल मैनेजर के साथ मेटाडेटा रजिस्टर करने के लिए, CMWallet खोलें. पक्का करें कि ब्लूटूथ चालू हो, ताकि आपके डिवाइस एक-दूसरे से कनेक्ट हो सकें.
  3. https://digital-credentials.dev/ पर जाएं और Request Credentials (OpenID4VP) को चुनें.
  4. चेतावनी वाले प्रॉम्प्ट स्वीकार करें और अपने फ़ोन से क्यूआर कोड स्कैन करें. इसके बाद, "पासकी का इस्तेमाल करें" को चुनें. साथ ही, पुष्टि करने के लिए टैप करके, उपलब्ध क्रेडेंशियल दिखाएं.
  5. ब्राउज़र पर वापस जाने के लिए, CMWallet से क्रेडेंशियल चुनें. ब्राउज़र को, वापस भेजी गई क्रेडेंशियल दिखानी चाहिए.

यह भी देखें:

  • अपने ऐप्लिकेशन में डिजिटल क्रेडेंशियल का अनुरोध करने के लिए, Credential Manager का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Credential Manager - Verifier API पेज पढ़ें.
  • Credential Manager का इस्तेमाल करके डिजिटल वॉलेट बनाने के बारे में ज़्यादा जानने के लिए, Credential Manager - Holder API पेज पढ़ें.