डिवाइस रजिस्टर करना

डिवाइस रजिस्ट्रेशन के दौरान, जारी करने वाले की सिस्टम में आइडेंटिटी की कुंजी रजिस्टर करके, डिवाइस को वीसीडी सेव करने के लिए तैयार किया जाता है.

अनुरोध का फ़्लो

फ़्लो का ब्यौरा

चरण स्रोत ब्यौरा
1 Android पर चलने वाला डिवाइस उपयोगकर्ता के डिवाइस पर, वीसीडी के लिए एक नया अनुरोध बनाया गया है. जारी करने वाले को आइडेंटिटी की एक नई कुंजी बनानी होगी. उपयोगकर्ता का डिवाइस, इस प्रोसेस को शुरू करने के लिए getDeviceRegistrationNonce को कॉल करता है.
2 Google के सर्वर पर Google, getDeviceRegistrationNonce का अनुरोध, जारी करने वाले को भेजता है.
3 जारी करने वाले के सर्वर पर जारी करने वाला, एक नॉनस जनरेट करता है. इसे deviceReferenceId के साथ सेव करता है. इसके बाद, Google को नॉनस भेजता है.
4 Google के सर्वर पर Google, नॉनस को उपयोगकर्ता के डिवाइस पर भेजता है.
5 Android पर चलने वाला डिवाइस उपयोगकर्ता का डिवाइस, नॉनस को साइन करता है और इसे x509 सर्टिफ़िकेट में एम्बेड करता है. डिवाइस की पुष्टि करने के लिए, इसे registerDevice कॉल में शामिल किया जाता है.
6 Google के सर्वर पर Google, registerDevice कॉल को जारी करने वाले को भेजता है.
7 जारी करने वाले के सर्वर पर जारी करने वाला, डिवाइस की इंटिग्रिटी की जांच करता है और डिवाइस से जुड़ी आइडेंटिटी की कुंजी को सेव करता है

डिवाइस की इंटिग्रिटी की पुष्टि करने का तरीका

डिवाइस एटेस्टेशन, सुरक्षा से जुड़ी एक ऐसी सुविधा है जिसकी मदद से जारी करने वाले, डिवाइस को रजिस्टर करने से पहले उसकी इंटिग्रिटी की पुष्टि कर सकते हैं. इससे ऐसे डिवाइसों को रजिस्टर होने से रोका जा सकता है जिनके साथ छेड़छाड़ की गई हो या जिन पर अनधिकृत सॉफ़्टवेयर चल रहा हो.

डिवाइस की इंटिग्रिटी की पुष्टि करने के लिए, जारी करने वाले को यह काम करना चाहिए:

  1. /registerDevice अनुरोध में भेजे गए सर्टिफ़िकेट चेन की पुष्टि करें. चेन में मौजूद रूट सर्टिफ़िकेट, Google से मिले सर्टिफ़िकेट से मेल खाना चाहिए.
  2. पक्का करें कि रूट सर्टिफ़िकेट, सर्टिफ़िकेट रिवोकेशन लिस्ट का हिस्सा न हो.
  3. लीफ़ सर्टिफ़िकेट को पार्स करें, एक्सटेंशन पढ़ें, और इनकी पुष्टि करें:
    • attestationChallenge की वैल्यू, nonce ऑपरेशन के दौरान भेजे गए /getDeviceRegistrationNonce से मेल खाती हो.
    • teeEnforced.rootOfTrust में ये प्रॉपर्टी होनी चाहिए:
      • deviceLocked=TRUE
      • verifiedBootState=VERIFIED
    • softwareEnforced.attestationApplicationId में मौजूद पैकेज के नाम, com.google.android.gms या com.google.android.gsf से मेल खाते हों.

डिवाइस एटेस्टेशन की प्रोसेस के अलग-अलग हिस्सों के बारे में जानकारी

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