मोबाइल और इंटरनेट सेवा देने वाली कंपनी का वाई-फ़ाई

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

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

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

लागू करना

मोबाइल और इंटरनेट सेवा देने वाली कंपनी को लागू करने के लिए, डिवाइस बनाने वाली कंपनियों और मोबाइल और इंटरनेट सेवा देने वाली कंपनियों को ये काम करने होंगे वाई-फ़ाई.

निर्माता

Android 11 और उसके बाद के वर्शन वाले डिवाइसों के लिए, वाई-फ़ाई के सुझाव का एपीआई मोबाइल और इंटरनेट सेवा देने वाली हर कंपनी की वाई-फ़ाई प्रोफ़ाइल जोड़ने के लिए.

जिन डिवाइसों पर 10 या उससे कम डिवाइस चला रहे हैं उनके लिए, वाई-फ़ाई प्रोफ़ाइल इसके हिसाब से जोड़ें इसमें हर मोबाइल और इंटरनेट सेवा देने वाली कंपनी के लिए, carrier_wifi_string_array पैरामीटर को कॉन्फ़िगर किया जा रहा है: कैरियर कॉन्फ़िगरेशन मैनेजर.

  • carrier_wifi_string_array: स्ट्रिंग अरे जिसमें हर स्ट्रिंग एंट्री, Base64 कोड में बदला गया वाई-फ़ाई SSID होता है और कॉमा से अलग किया गया ईएपी टाइप, जहां ईएपी टाइप एक पूर्णांक है (यहां देखें एक्सटेंसिबल ऑथेंटिकेशन प्रोटोकॉल (ईएपी) रजिस्ट्री). उदाहरण के लिए, नीचे दिया गया कॉन्फ़िगरेशन SOME_SSID_NAME का है. इसके लिए, यह कॉन्फ़िगरेशन इस्तेमाल किया गया है ईएपी-सिम का इस्तेमाल करने वाले ईएपी-AKA और Some_Other_SSID:

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

इस कैरियर कॉन्फ़िगरेशन मैनेजर, हर कैरियर के लिए ये पैरामीटर कॉन्फ़िगर करें:

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

    config {
      key: "imsi_key_availability_int"
      int_value: 2
    }
    
  • imsi_key_download_url_string: वह यूआरएल जहां से उस प्रोटो में मौजूद है जिसमें मोबाइल और इंटरनेट सेवा देने वाली कंपनी की सार्वजनिक कुंजी है IMSI एन्क्रिप्शन डाउनलोड हो गया है. उदाहरण के लिए, नीचे दिया गया कॉन्फ़िगरेशन एक खास यूआरएल देता है:

    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
    }
    

मोबाइल और इंटरनेट सेवा देने वाली कंपनियां

मोबाइल और इंटरनेट सेवा देने वाली कंपनी को वाई-फ़ाई की सुविधा लागू करने के लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनी को IMSI निजता सुरक्षा चालू करनी होगी और एक सार्वजनिक कुंजी उपलब्ध करा सके.

IMSI निजता सुरक्षा

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

स्थायी पहचान को एन्क्रिप्ट (सुरक्षित) करने का तरीका

एन्क्रिप्ट (सुरक्षित) की गई स्थायी पहचान का फ़ॉर्मैट इस तरह है:

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

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

सिम से ईएपी की पुष्टि करने के तरीकों में बदलाव

किसी कनेक्शन पर IMSI की निजता सुरक्षा चालू होने पर, सिस्टम 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: ईएपी-अका'

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

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

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

मोबाइल और इंटरनेट सेवा देने वाली कंपनी का सर्टिफ़िकेट वापस पाना, उसकी समयसीमा खत्म होना, और रद्द करने की प्रक्रिया

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

सिस्टम, सर्टिफ़िकेट की समयसीमा तय करता है. सिस्टम कोशिश करना शुरू कर देता है सर्टिफ़िकेट की समयसीमा खत्म होने की तारीख से 21 दिन पहले उसे रिन्यू करने के लिए करता है और नया प्रमाणपत्र डाउनलोड करने के लिए वही यूआरएल डालें.

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

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

सार्वजनिक पासकोड उपलब्ध कराएं

ऐसे सर्वर को एक सार्वजनिक यूआरएल दें जो टीएलएस के बजाय एचटीटीपी का इस्तेमाल करता है मोबाइल और इंटरनेट सेवा देने वाली कंपनी का सर्टिफ़िकेट, जहां:

  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-----"
    } ]
    }