कैरियर वाई-फाई

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

कैरियर वाई-फाई सुविधा वाले डिवाइस स्वचालित रूप से कॉन्फ़िगर किए गए कैरियर वाई-फाई नेटवर्क (सार्वजनिक कुंजी प्रमाणपत्र वाले नेटवर्क) से कनेक्ट होते हैं। जब कोई उपयोगकर्ता किसी वाहक वाई-फ़ाई नेटवर्क से मैन्युअल रूप से डिस्कनेक्ट हो जाता है, तो नेटवर्क को 24 घंटे के लिए ब्लैकलिस्ट कर दिया जाता है (कोई ऑटो-कनेक्शन नहीं)। उपयोगकर्ता किसी भी समय ब्लैकलिस्टेड नेटवर्क से मैन्युअल रूप से जुड़ सकते हैं।

वाहक वाई-फाई लागू होने के साथ एंड्रॉइड 9 या उच्चतर चलाने वाले उपकरणों पर, वाहक वाई-फाई के माध्यम से स्वचालित कनेक्शन डिफ़ॉल्ट रूप से बंद है। जब डिवाइस पहली बार किसी वाहक वाई-फाई नेटवर्क से कनेक्ट करने का प्रयास करता है तो उपयोगकर्ता को एक अधिसूचना भेजी जाती है।

कार्यान्वयन

डिवाइस निर्माताओं और वाहकों को वाहक वाई-फ़ाई लागू करने के लिए निम्नलिखित कार्य करने होंगे।

निर्माताओं

एंड्रॉइड 11 और उच्चतर चलाने वाले उपकरणों के लिए, प्रत्येक वाहक के लिए वाई-फाई प्रोफाइल जोड़ने के लिए वाई-फाई सुझाव एपीआई का उपयोग करें।

10 या उससे नीचे चलने वाले उपकरणों के लिए, कैरियर कॉन्फिग मैनेजर में प्रत्येक कैरियर के लिए carrier_wifi_string_array पैरामीटर को कॉन्फ़िगर करके वाई-फाई प्रोफाइल जोड़ें।

  • carrier_wifi_string_array : एक स्ट्रिंग सरणी जहां प्रत्येक स्ट्रिंग प्रविष्टि एक बेस 64-एन्कोडेड वाई-फाई एसएसआईडी और अल्पविराम द्वारा अलग किया गया एक ईएपी प्रकार है, जहां ईएपी प्रकार एक पूर्णांक है ( एक्स्टेंसिबल ऑथेंटिकेशन प्रोटोकॉल (ईएपी) रजिस्ट्री देखें)। उदाहरण के लिए, निम्नलिखित कॉन्फ़िगरेशन EAP-AKA का उपयोग करके SOME_SSID_NAME के ​​लिए है और EAP-SIM का उपयोग करके some_Other_SSID के लिए है:

    config {
      key: "carrier_wifi_string_array"
      text_array {
        item: "U09NRV9TU0lEX05BTUUK,23"
        item: "U29tZV9PdGhlcl9TU0lECg==,18"
      }
    }
    

कैरियर कॉन्फ़िगरेशन प्रबंधक में, प्रत्येक कैरियर के लिए निम्नलिखित पैरामीटर कॉन्फ़िगर करें:

  • imsi_key_availability_int : पहचानता है कि IMSI एन्क्रिप्शन के लिए उपयोग की जाने वाली कुंजी WLAN (बिट 1 सेट है), EPDG (बिट 0 सेट है), या दोनों (बिट 0 और बिट 1 दोनों सेट हैं) के लिए उपलब्ध है। उदाहरण के लिए, निम्नलिखित कॉन्फ़िगरेशन इंगित करता है कि आईएमएसआई एन्क्रिप्शन WLAN के लिए उपलब्ध है लेकिन EPDG के लिए नहीं:

    config {
      key: "imsi_key_availability_int"
      int_value: 2
    }
    
  • imsi_key_download_url_string : वह URL जिससे IMSI एन्क्रिप्शन के लिए उपयोग की जाने वाली वाहक की सार्वजनिक कुंजी वाला प्रोटो डाउनलोड किया जाता है। उदाहरण के लिए, निम्न कॉन्फ़िगरेशन एक विशिष्ट URL प्रदान करता है:

    config {
      key: "imsi_key_download_url_string"
      text_value: "https://www.some_company_name.com:5555/some_directory_name/some_filename.json"
    }
    
  • allow_metered_network_for_cert_download_bool : एक ध्वज जो दर्शाता है कि मीटर्ड (सेलुलर) नेटवर्क पर वाहक की सार्वजनिक कुंजी को डाउनलोड करने की अनुमति दी जानी चाहिए या नहीं। यदि यह फ़्लैग सेट नहीं है, तो बिना वाई-फ़ाई कनेक्टिविटी वाला नया डिवाइस कैरियर वाई-फ़ाई नेटवर्क से कनेक्ट नहीं हो पाएगा क्योंकि उसे कुंजी डाउनलोड करने की अनुमति नहीं होगी।

    config {
      key: "allow_metered_network_for_cert_download_bool"
      bool_value: true
    }
    

वाहक

वाहक वाई-फाई को लागू करने के लिए, वाहक को आईएमएसआई गोपनीयता सुरक्षा सक्षम करनी होगी और एक सार्वजनिक कुंजी प्रदान करनी होगी।

आईएमएसआई गोपनीयता सुरक्षा

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

स्थायी पहचान एन्क्रिप्शन

एन्क्रिप्टेड स्थायी पहचान का प्रारूप इस प्रकार है:

  • स्थायी पहचान <EAP-Method><IMSI>@<NAI realm> के प्रारूप में है।
  • ईएपी-विधि उपसर्ग एक एकल ऑक्टेट है जो प्रमाणीकरण के लिए उपयोग की जाने वाली ईएपी विधि को परिभाषित करता है:
    • 0 : ईएपी-उर्फ
    • 1 : ईएपी-सिम
    • 6 : ईएपी-उर्फ'
  • NAI क्षेत्र प्रारूप wlan.mnc XXX .mcc YYY .3gppnetwork.org है जहां XXX को सिम कार्ड के मोबाइल नेटवर्क कोड (MNC) से बदल दिया जाता है और YYY को मोबाइल देश कोड (MCC) से बदल दिया जाता है।
  • स्थायी पहचान को वाहक द्वारा प्रदान की गई आरएसए सार्वजनिक कुंजी का उपयोग करके एन्क्रिप्ट किया गया है। सार्वजनिक कुंजी X.509 प्रमाणपत्र में शामिल है।
  • एन्क्रिप्शन योजना RSAES-OAEP है जिसमें क्रिप्टोग्राफ़िक हैश फ़ंक्शन के रूप में SHA-256 है। यह एन्क्रिप्शन योजना हर बार योजना का उपयोग करने पर एक अद्वितीय सिफर टेक्स्ट की गारंटी देती है, इस प्रकार एक और लगातार पहचान से बचा जाता है जिसे ट्रैक किया जा सकता है।
  • RSA कुंजी की लंबाई 2048 बिट है।
  • एन्क्रिप्शन बफ़र 256 बाइट्स है.
  • सिफर टेक्स्ट Base64 के साथ एन्कोड किया गया है।
  • आउटपुट एन्क्रिप्टेड स्थायी पहचान की लंबाई 344 बाइट्स है।
Encrypted Permanent Identity = Base64(RSAES-OAEP-SHA-256(<EAP-Method><IMSI>@<NAI Realm>))
मुख्य पहचानकर्ता

कुंजी पहचानकर्ता एक वैकल्पिक विशेषता मान जोड़ी है जिसे वाहक प्रमाणीकरण के दौरान सर्वर को उचित निजी कुंजी का पता लगाने की अनुमति देने के लिए प्रमाणपत्र से जोड़ता है। मुख्य पहचानकर्ता का एक उदाहरण CertificateSerialNumber=123456 है। यदि मुख्य पहचानकर्ता प्रदान किया गया है, तो इसे प्रमाणीकरण प्रक्रिया के भाग के रूप में स्पष्ट रूप से भेजा जाता है।

सिम-आधारित ईएपी प्रमाणीकरण विधियों में संशोधन

जब किसी कनेक्शन पर आईएमएसआई गोपनीयता सुरक्षा सक्षम होती है, तो सिस्टम EAP-Request/Identity प्राप्त होने पर स्थायी पहचान नहीं भेजता है, इसके बजाय यह एक अनाम लॉगिन के साथ प्रतिक्रिया करता है:

SERVER: EAP-Request/Identity
UE: EAP-Response/Identity AT_IDENTITY=<prefix>|anonymous@<NAI Realm>

<prefix> वैकल्पिक है. यदि enable_eap_method_prefix_bool वाहक कॉन्फ़िगरेशन true पर सेट है, तो पहचान का पहला अक्षर ( anonymous से पहले) सर्वर को ईएपी एक्सचेंज शुरू होने से पहले उपयोग की जाने वाली ईएपी विधि के प्रकार के बारे में सूचित करता है।

  • 0 : ईएपी-उर्फ
  • 1 : ईएपी-सिम
  • 6 : ईएपी-उर्फ'

यदि वाहक कॉन्फ़िगरेशन false पर सेट है, तो यह उपसर्ग संदेश में शामिल नहीं है।

जवाब में, सर्वर एक EAP-Request/AKA-Identity संदेश भेजता है और सिस्टम निम्नलिखित प्रारूप में प्रतिक्रिया देता है:

SERVER: EAP-Request/AKA-Identity AT_ANY_ID_REQ
UE: EAP-Response/AKA-Identity AT_IDENTITY=<prefix>|<Encrypted Permanent Identity>|","|"<attribute>=<value>"

पहचान का पहला अक्षर सर्वर को सूचित करता है कि या तो एन्क्रिप्टेड पहचान का उपयोग किया जाता है, या कॉन्फ़िगर की गई ईएपी विधि का प्रकार:

  • \0 : एन्क्रिप्टेड स्थायी पहचान
  • 0 : ईएपी-उर्फ
  • 1 : ईएपी-सिम
  • 6 : ईएपी-उर्फ'

मुख्य पहचानकर्ता विशेषता मान जोड़ी वैकल्पिक है और यदि उपयोग में नहीं है तो इसे एन्क्रिप्टेड स्थायी पहचान के अंत में नहीं जोड़ा जाता है।

इस बिंदु पर, सर्वर कुंजी पहचानकर्ता (यदि प्रदान किया गया है) से निजी कुंजी का पता लगाता है, वाहक निजी कुंजी का उपयोग करके एन्क्रिप्टेड पहचान को डिक्रिप्ट करता है, और सामान्य ईएपी प्रवाह जारी रखता है।

सफल प्रमाणीकरण पर, सर्वर एक तेज़ पुन: प्रमाणीकरण पहचान या एक अस्थायी पहचान (छद्म नाम) प्रदान कर सकता है, जिसका उपयोग बाद के कनेक्शन में किया जाता है। यदि सर्वर द्वारा कोई अस्थायी पहचान प्रदान नहीं की जाती है, तो सिस्टम बाद के कनेक्शन में एन्क्रिप्टेड पहचान भेजता है।

वाहक प्रमाणपत्र पुनर्प्राप्ति, समाप्ति, और निरस्तीकरण

ऐसे मामले में जहां सिस्टम में कोई प्रमाणपत्र स्थापित नहीं है, सिस्टम HTTP GET विधि का उपयोग करके प्रमाणपत्र डाउनलोड करने के लिए imsi_key_download_url_string वाहक कॉन्फ़िगरेशन में दिए गए URL का उपयोग करता है। सिस्टम सेल्यूलर डेटा का उपयोग केवल तभी करता है जब allow_metered_network_for_cert_download_bool कैरियर कॉन्फ़िगरेशन true पर सेट हो। अन्यथा, सिस्टम प्रमाणपत्र तभी डाउनलोड करता है जब वाई-फ़ाई कनेक्शन उपलब्ध हो।

प्रमाणपत्र की समाप्ति प्रणाली द्वारा लागू की जाती है। सिस्टम प्रमाणपत्र की समाप्ति तिथि से 21 दिन पहले प्रमाणपत्रों को नवीनीकृत करने का प्रयास शुरू कर देता है, और नया प्रमाणपत्र डाउनलोड करने के लिए उसी URL का उपयोग करता है।

यदि सर्वर एन्क्रिप्टेड पहचान को डिक्रिप्ट करने में असमर्थ है, तो सर्वर ईएपी एक्सचेंज को समाप्त करने के लिए AT_NOTIFICATION कोड General Failure (16384) के साथ एक EAP-Request/AKA-Notification संदेश भेजता है।

ऐसे मामले में जहां प्रमाणपत्र रद्द कर दिया गया है या समाप्त हो गया है, सर्वर EAP एक्सचेंज को समाप्त करने के लिए AT_NOTIFICATION कोड Certificate Replacement Required (16385) के साथ एक EAP-Request/AKA-Notification संदेश भेजता है। प्रत्युत्तर में, सिस्टम यह निर्धारित करने के लिए आंतरिक अनुमान लागू करता है कि प्रमाणपत्र को हटाया जाए या नहीं और उसी यूआरएल से एक नया प्रमाणपत्र डाउनलोड करने का प्रयास किया जाए।

सार्वजनिक कुंजी प्रदान करना

किसी सर्वर को एक सार्वजनिक यूआरएल प्रदान करें, अधिमानतः टीएलएस पर HTTP का उपयोग करते हुए, जो वाहक के प्रमाणपत्र को होस्ट करता है:

  1. सार्वजनिक कुंजी और समाप्ति तिथि प्रमाणपत्र से निकाली जा सकती है।
  2. सर्वर से जानकारी JSON प्रारूप में इस प्रकार है:

    Property: key-identifier
    Type: String
    Encoding: UTF-8
    Description: Specifies an identifier that the carrier would like to attach to the certificate.
    Optional: Yes
    
    Property: certificate
    Property alternative name: public-key
    Type: String
    Encoding: Base64
    Description: The content of the carrier's X.509 certificate.
    Optional: No
    
    Property: key-type
    Type: String
    Encoding: UTF-8
    Description: Specifies the module that will use the key. The value for type must be either WLAN or EPDG.
    Optional: Yes. If the key-type property isn't included, then its value defaults to WLAN.
    

    निम्नलिखित सार्वजनिक कुंजी का एक उदाहरण है।

    {
    "carrier-keys" : [ {
      "key-identifier" : "CertificateSerialNumber=5xxe06d4",
      "public-key" : "-----BEGIN CERTIFICATE-----\r\nTIIDRTCCAi2gAwIBAgIEVR4G1DANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJVUzELMAkGA1UE\r\nCBMCTkExCzAJBgNVBAcTAk5BMQswCQYDVQQKEwJOQTELMAkGA1UECxMCTkExEDAOBgNVBAMTB1Rl\r\nc3RiT6N1/w==\r\n-----END CERTIFICATE-----"
    } ]
    }