Computer >> कंप्यूटर ट्यूटोरियल >  >> नेटवर्किंग >> नेटवर्क सुरक्षा

एंड्रॉइड फोन पर नेटवर्क सुरक्षा कॉन्फ़िगरेशन कैसे बदलें?

एंड्रॉइड नेटवर्क सुरक्षा कॉन्फ़िगरेशन (Network Security Configuration)

एंड्रॉइड 7.0 (API 24+) से, ऐप्स एक XML फ़ाइल के माध्यम से अपने नेटवर्क सुरक्षा सेटिंग्स को घोषित रूप से कॉन्फ़िगर कर सकते हैं, बिना कोड बदले। यह res/xml/network_security_config.xml में परिभाषित होता है और AndroidManifest.xml में संदर्भित होता है।

मुख्य क्षमताएं

  • कस्टम CA (सर्टिफिकेट अथॉरिटी) पर भरोसा - उद्यम/परीक्षण वातावरण के लिए
  • सेल्फ-साइन सर्टिफिकेट पर भरोसा - विकास/स्टेजिंग सर्वर के लिए
  • क्लियरटेक्स्ट ट्रैफिक (HTTP) अनुमति/अस्वीकृति - डोमेन-वार नियंत्रण
  • सर्टिफिकेट पिनिंग - विशिष्ट सर्टिफिकेट/पब्लिक कुंजी तक सीमित भरोसा
  • डिबग-ओनली ओवरराइड - डिबग बिल्ड में ढील, रिलीज़ में सख्त

उदाहरण कॉन्फ़िगरेशन फ़ाइल

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <certificates src="system"/>
        </trust-anchors>
    </base-config>

    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">api.myapp.com</domain>
        <trust-anchors>
            <certificates src="system"/>
            <certificates src="@raw/my_custom_ca"/>
        </trust-anchors>
        <pin-set expiration="2025-12-31">
            <pin digest="SHA-256">base64_encoded_sha256_of_subject_public_key</pin>
            <pin digest="SHA-256">backup_pin_here</pin>
        </pin-set>
    </domain-config>

    <debug-overrides>
        <trust-anchors>
            <certificates src="system"/>
            <certificates src="user"/> <!-- उपयोगकर्ता-स्थापित CA के लिए -->
        </trust-anchors>
    </debug-overrides>
</network-security-config>

मैनिफेस्ट में पंजीकरण

<application
    android:networkSecurityConfig="@xml/network_security_config"
    ... >
    ...
</application>

Flutter में उपयोग

<!-- android/app/src/main/AndroidManifest.xml -->
<application ...>
    <meta-data
        android:name="io.flutter.network-policy"
        android:resource="@xml/network_security_config" />
</application>

क्लियरटेक्स्ट ट्रैफिक (HTTP) समस्या ठीक करना

समस्या: एंड्रॉइड 9+ डिफ़ॉल्ट रूप से क्लियरटेक्स्ट HTTP ब्लॉक करता है।

समाधान 1 (अनुशंसित नहीं - असुरक्षित):

<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system"/>
    </trust-anchors>
</base-config>

समाधान 2 (बेहतर - विशिष्ट डोमेन के लिए):

<domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">legacy-api.example.com</domain>
    <trust-anchors>
        <certificates src="system"/>
    </trust-anchors>
</domain-config>

समाधान 3 (Manifest में - त्वरित फिक्स):

<application
    android:usesCleartextTraffic="true"
    ...>

एंड्रॉइड पर सर्टिफिकेट प्रबंधन

  • सिस्टम CA: Google/डिवाइस निर्माता द्वारा प्री-इंस्टॉल विश्वसनीय CA (~150+)
  • उपयोगकर्ता CA: उपयोगकर्ता द्वारा सेटिंग्स > सुरक्षा > एन्क्रिप्शन और क्रेडेंशियल्स > प्रमाणपत्र स्थापित करें के माध्यम से जोड़े गए
  • ऐप-विशिष्ट CA: src="@raw/my_ca" के माध्यम से ऐप के साथ बंडल

SSL/TLS सर्टिफिकेट पिनिंग

पिनिंग MITM हमलों को रोकता है भले ही हमलावर के पास विश्वसनीय CA से वैध सर्टिफिकेट हो।

  • <pin-set> में SHA-256 बेस64-एन्कोडेड सब्जेक्ट पब्लिक कुंजी जानकारी (SPKI) पिन जोड़ें
  • हमेशा बैकअप पिन शामिल करें (सर्टिफिकेट रोटेशन के लिए)
  • expiration सेट करें - पिन अनिश्चित काल तक मान्य नहीं होने चाहिए
  • टेस्टिंग के लिए: debug-overrides में पिनिंग अक्षम करें

नेटवर्क सुरक्षा कॉन्फ़िगरेशन डीबग करना

  1. adb logcat | grep -i "network_security_config"
  2. adb shell dumpsys netpolicy - नेटवर्क नीति स्थिति
  3. क्रोम में chrome://net-internals/#events - TLS हैंडशेक विवरण

सामान्य गलतियों से बचें

  • उत्पादन में cleartextTrafficPermitted="true" वैश्विक रूप से सक्षम करना
  • बैकअप पिन के बिना पिनिंग - सर्टिफिकेट रोटेशन पर ऐप टूटेगा
  • डिबग ओवरराइड को रिलीज़ बिल्ड में लीक होने देना
  • समाप्त हो चुके पिन का उपयोग करना
  • उपयोगकर्ता-स्थापित CA पर भरोसा करना उत्पादन base-config में (केवल debug-overrides में)
  1. - नेटवर्क सुरक्षा को WPA2 में कैसे बदलें?

    मैक पर वायरलेस सुरक्षा को WPA2 में बदलना AirPort यूटिलिटी खोलें, बेस स्टेशन चुनें, मैनुअल सेटअप बटन क्लिक करें। टूलबार में AirPort आइकन → वायरलेस टैब → वायरलेस सिक्योरिटी मेनू से WPA2 पर्सनल चुनें। वाई-फाई सुरक्षा सेटिंग्स कैसे बदलें गेटवे → कनेक्शन → वाई-फाई में एडिट चुनकर सिक्योरिटी मोड बदलें। पर

  1. - नेटवर्क सुरक्षा कुंजी कैसे बदलें? चरण-दर-चरण गाइड

    नेटवर्क सुरक्षा कुंजी (वाई-फाई पासवर्ड) बदलना महत्वपूर्ण: नेटवर्क सुरक्षा कुंजी = वाई-फाई पासवर्ड। नियमित रूप से बदलना अच्छी सुरक्षा अभ्यास है। राउटर एडमिन पैनल के माध्यम से (सार्वभौमिक विधि) कंप्यूटर/फोन को राउटर नेटवर्क से कनेक्ट करें ब्राउज़र में राउटर IP दर्ज करें: अधिकांश: 192.168.1.1 या 19

  1. - नेटवर्क सुरक्षा प्रोफाइल कैसे बदलें?

    Windows 10 में नेटवर्क प्रोफाइल कैसे बदलें? Windows 10 में सेटिंग्स के तहत नेटवर्क और इंटरनेट सेटिंग्स खोलें। यदि आप वाई-फाई पर भरोसा करते हैं, तो साइन इन करें, वाई-फाई चुनें, उस नेटवर्क के नाम पर क्लिक करें या टैप करें जिससे आप जुड़े हुए हैं, और फिर उपयुक्त के रूप में निजी (Private) या सार्वजनिक (