നിയമം ലളിതമായിരുന്നു: ഫോൺ ഓഫീസിലെ Wi-Fi-ലുള്ളപ്പോൾ മാത്രം ട്രാഫിക് ഫിൽട്ടർ ചെയ്യുക. അത് മാസങ്ങളോളം നിലനിന്നു, പിന്നെ ഒരു രാവിലെ ഫോൺ അതേ SSID-യിൽ അതേ താക്കോൽ ഐക്കണുമായി ഇരുന്നു, ഫിൽട്ടറിംഗ് നിലച്ചിരുന്നു. നെറ്റ്‌വർക്കിൽ ഒന്നും മാറിയിരുന്നില്ല; മാറിയത് ആപ്പിന് നെറ്റ്‌വർക്കിന്റെ പേര് കാണാനാകുമോ എന്നതാണ്. Android-ൽ «ഞാൻ ഏത് Wi-Fi-ലാണ്» എന്നതും «ഈ ട്രാഫിക് തടയുക» എന്നതും രണ്ട് വേറിട്ട ജോലികളാണ്, ഇവ ചേർത്തുകളയുന്ന ഫയർവാൾ പേര് ലഭ്യമല്ലാതാകുന്ന അതേ നിമിഷത്തിൽ തുറന്ന് പരാജയപ്പെടുന്നു.

ലക്ഷണം: ഐഡന്റിറ്റി അപ്രത്യക്ഷമാകുന്നു, നയം അതിനെ പിന്തുടരുന്നു

SSID നിയമം ഒരു മൂല്യം വായിച്ച് പിന്നെ ഒരു ശാഖ തിരഞ്ഞെടുക്കുന്നു. വായന ഉപയോഗപ്രദമായ ഒന്നും തിരികെ നൽകാത്തപ്പോൾ കോഡ് എന്തെങ്കിലും ചെയ്യണം, സാധാരണ സ്വതേയുള്ളത് «പ്രതീക്ഷിച്ച നെറ്റ്‌വർക്ക് അല്ല, അതിനാൽ ഫിൽട്ടർ ചെയ്യരുത്» എന്നാണ്. ആ സ്വതേയുള്ളത് അനുമതിയുടെ പ്രശ്നത്തെ ട്രാഫിക് ചോർച്ചയാക്കി മാറ്റുന്നു. താക്കോൽ ഐക്കൺ കാണുന്നത് VPN സേവനം ഇപ്പോഴും പ്രവർത്തിക്കുന്നതിനാലാണ്; അത് മറ്റൊരു ശാഖ നടപ്പാക്കുകയാണ്.

നെറ്റ്‌വർക്കിനെയല്ല, സംഭവങ്ങളുടെ ക്രമത്തെ നോക്കുക. നിരസിച്ച അനുമതി ഡയലോഗ്, SSID ആക്‌സസ് മറ്റൊരു അനുമതിക്ക് പിന്നിലേക്ക് മാറ്റിയ സിസ്റ്റം അപ്‌ഡേറ്റ്, ഓഫാക്കിയ ലൊക്കേഷൻ സേവനങ്ങൾ, അല്ലെങ്കിൽ വർക്ക് പ്രൊഫൈൽ നയത്തിലെ മാറ്റം, ഇവയെല്ലാം ഫോൺ അതേ ആക്‌സസ് പോയിന്റിൽ നിൽക്കുമ്പോൾ അതേ ഫലം നൽകാം.

പേര് അജ്ഞാതമായി തിരികെ വരാനുള്ള കാരണം

WifiInfo.getSSID() നിലവിലെ നെറ്റ്‌വർക്കിന്റെ സേവന-ഗണം ഐഡന്റിഫയർ തിരികെ നൽകുന്നു, കൂടാതെ ലൊക്കേഷൻ-സെൻസിറ്റീവ് ഫീൽഡുകളിലേക്കുള്ള ആക്‌സസ് അനുമതിയെ ആശ്രയിച്ചിരിക്കുന്നു എന്ന് Android രേഖപ്പെടുത്തുന്നു. ആക്‌സസ് ലഭ്യമല്ലാത്തപ്പോൾ, വിളി ഉച്ചത്തിൽ പരാജയപ്പെടുന്നതിന് പകരം UNKNOWN_SSID തിരികെ നൽകുന്നു. അതിനാൽ ശൂന്യമോ അജ്ഞാതമോ ആയ മൂല്യം ഫോൺ Wi-Fi വിട്ടു എന്നതിന്റെ തെളിവല്ല; ആപ്പിന് നെറ്റ്‌വർക്ക് വർഗ്ഗീകരിക്കാൻ കഴിയില്ല എന്നതിന്റെ തെളിവാണ്.

രണ്ട് പരിശോധനകൾ ഈ സാഹചര്യങ്ങളെ വേർതിരിക്കുന്നു. ഫോൺ ബന്ധിപ്പിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കി സിസ്റ്റം എന്ത് റിപ്പോർട്ട് ചെയ്യുന്നു എന്ന് നോക്കുക, പിന്നെ ഈ Android പതിപ്പിൽ ആപ്പിന് ആവശ്യമായ അനുമതി യഥാർത്ഥത്തിൽ ഉണ്ടെന്ന് ഉറപ്പാക്കുക:

adb shell cmd wifi status
adb shell dumpsys package <your.app> | grep -i -E "ACCESS_FINE_LOCATION|NEARBY_WIFI_DEVICES"

സ്റ്റാറ്റസ് ലൈൻ ബന്ധിപ്പിച്ച നെറ്റ്‌വർക്ക് കാണിക്കുമ്പോൾ ആപ്പ് അജ്ഞാത നാമം കാണുന്നുവെങ്കിൽ, നിങ്ങളുടെ പ്രശ്നം അനുമതിയുടെതോ API നിലവാരത്തിന്റെതോ ആണ്, Wi-Fi-ന്റേതല്ല. ഫയർവാൾ നിയമങ്ങളിൽ സ്പർശിക്കുന്നതിന് മുമ്പ് അത് പരിഹരിക്കുക, കാരണം തുടർന്നുള്ള ഓരോ നിയമവും ആപ്പിന് വായിക്കാൻ കഴിയാത്ത മൂല്യത്തിനെതിരെയാണ് വിലയിരുത്തപ്പെടുന്നത്.

ഫിൽട്ടറിംഗ് യഥാർത്ഥത്തിൽ പ്രവർത്തിക്കുന്നിടം

പ്രാദേശിക Android ഫയർവാൾ സാധാരണയായി ട്രാഫിക് വിദൂര സെർവറിലേക്ക് അയക്കാതെ VpnService മാതൃക ഉപയോഗിക്കുന്നു: അത് വിർച്വൽ ഇന്റർഫേസ് എടുത്ത് സ്വന്തം നിയമങ്ങൾ പ്രയോഗിച്ച് അനുവദിക്കുന്നത് കൈമാറുന്നു. ഓരോ ഉപയോക്തൃ പ്രൊഫൈലിനും ഒരു സജീവ VPN സേവനം മാത്രമേ പ്ലാറ്റ്ഫോം അനുവദിക്കുന്നുള്ളൂ, രണ്ടാമത്തേത് ആദ്യത്തേതിന് മുകളിൽ പാളിയാകാതെ അതിനെ മാറ്റിസ്ഥാപിക്കുന്നു. അതിനാൽ വേറിട്ട ഫയർവാൾ ആപ്പും വേറിട്ട വർക്ക് VPN-ഉം രണ്ട് ഘട്ട ശൃംഖല രൂപപ്പെടുത്തുന്നില്ല; അവയിലൊന്ന് വിജയിക്കുന്നു.

SSID നിയമത്തിന് ഇത് പ്രധാനമാണ്, കാരണം നടപ്പാക്കൽ പോയിന്റും നിരീക്ഷണ പോയിന്റും വ്യത്യസ്ത ഘടകങ്ങളാണ്. ഉപകരണത്തിൽ നിന്ന് എന്ത് പുറത്തുപോകുന്നു എന്ന് VpnService തീരുമാനിക്കുന്നു; Wi-Fi API ഒരു ലേബൽ മാത്രം നൽകുന്നു. ആപ്പിന് ശരിയായി നടപ്പാക്കാനും തെറ്റായി വർഗ്ഗീകരിക്കാനും കഴിയും, ഈ ലേഖനത്തിലെ തകരാർ കൃത്യം അതാണ്.

അജ്ഞാതത്തിന് സ്വന്തം നയം നൽകുക

നെറ്റ്‌വർക്ക് ഐഡന്റിറ്റിയെ മൂന്ന് അവസ്ഥകളായി കണക്കാക്കി, നിയമം പുറത്തിറക്കുന്നതിന് മുമ്പ് ഓരോന്നിനും നയം എഴുതുക. മൂന്നാമത്തെ അവസ്ഥയാണ് മറക്കപ്പെടുന്നത്, ആക്രമണകാരിയോ തെറ്റായ കോൺഫിഗറേഷനോ നിങ്ങളെ കൃത്യം അവിടെ എത്തിക്കുന്നു.

ObservationPolicy to specify
Expected SSID is readableThe explicit filtering policy you designed
A different SSID is readableThe default policy for untrusted networks
Unknown, changing or unreadableFail closed until classification is reliable

അടച്ച് പരാജയപ്പെടുക എന്നത് അജ്ഞാത അവസ്ഥ ഏറ്റവും സൗകര്യപ്രദമല്ല, മറിച്ച് ഏറ്റവും കർശനമായ ന്യായമായ നയം പിന്തുടരുന്നു എന്നാണ്. അത് പുതിയ നെറ്റ്‌വർക്കിൽ ഫോൺ ഉപയോഗശൂന്യമാക്കുന്നുവെങ്കിൽ, ശരിയായ പരിഹാരം ബോധപൂർവവും കാണാവുന്നതുമായ ഒരു ഒഴിവാക്കലാണ്, ശൂന്യ മൂല്യ പരിശോധനയിൽ ഒളിഞ്ഞിരിക്കുന്ന നിശബ്ദ വിശ്വാസ തീരുമാനമല്ല.

പരിചിതമായ SSID ഒരു ലേബലാണ്, നെറ്റ്‌വർക്ക് ഓപ്പറേറ്ററുടെ തെളിവല്ല. ആർക്കും ഓഫീസിന്റെ പേരിൽ ആക്‌സസ് പോയിന്റ് നടത്താം, അതിനാൽ പേരിന്റെ പൊരുത്തം സെൻസിറ്റീവ് സെഷനും വിശ്വസനീയമല്ലാത്ത സെഗ്‌മെന്റിനും ഇടയിൽ നിൽക്കുന്ന ഒരേയൊരു കാര്യമാകരുത്.

സ്ഥിരാവസ്ഥയല്ല, പരിവർത്തനങ്ങൾ പരിശോധിക്കുക

സ്ഥിരാവസ്ഥയിലെ പരിശോധന നിയമം നിർമ്മിച്ച നെറ്റ്‌വർക്കിൽ വിജയിക്കുന്നു. തകരാറുകൾ പരിവർത്തനങ്ങളിൽ ജീവിക്കുന്നു: നിരസിച്ച അനുമതി, Wi-Fi-ൽ നിന്ന് മൊബൈലിലേക്ക്, ഒരു SSID-യിൽ നിന്ന് മറ്റൊന്നിലേക്ക്, VPN സേവനം പുനരാരംഭിക്കൽ, മറ്റൊരു VPN ആപ്പ് ഇന്റർഫേസ് ഏറ്റെടുക്കൽ. ഓരോന്നിനും, നിലവിലുള്ള കണക്ഷനുകൾ വീണ്ടും പരിശോധിക്കപ്പെടുന്നുണ്ടോ, അവസ്ഥ അജ്ഞാതമായിരിക്കുമ്പോൾ സംരക്ഷിത ട്രാഫിക് തടയപ്പെട്ടിരിക്കുന്നുണ്ടോ എന്ന് തീരുമാനിക്കുക.

ഫലം മൂന്ന് വാക്യങ്ങളിൽ എഴുതുക: നിരീക്ഷിച്ച വ്യവസ്ഥ, തീരുമാനം നടപ്പാക്കുന്ന ഘടകം, ബോധപൂർവമായ പകരം വഴി. ഇവ മൂന്നിൽ ഒന്ന് ഇല്ലെങ്കിൽ നിയമം ഇപ്പോഴും നയമല്ല; ഓഫീസ് നെറ്റ്‌വർക്കിൽ യാദൃച്ഛികമായി പ്രവർത്തിക്കുന്ന ഒരു ഊഹമാണ്.

അനുബന്ധ ലേഖനങ്ങൾ