Kanuni ya firewall ya SSID iliacha kuchuja baada ya kubadilisha Wi-Fi
Firewall inayotegemea SSID inashindwa kwa uwazi wakati Android inarudisha jina la mtandao lisilojulikana. Tenganisha utambulisho na utekelezaji na ipe hali isiyojulikana sera yake yenyewe.
Kanuni ilikuwa rahisi: chuja trafiki tu wakati simu imeunganishwa na Wi-Fi ya ofisi. Ilidumu kwa miezi, na kisha asubuhi moja simu ilikuwa kwenye SSID ile ile na ikoni ile ile ya ufunguo na uchujaji ulikuwa umesimama. Hakuna kilichobadilika kwenye mtandao; kilichobadilika ni kama programu inaweza kuona jina la mtandao. Katika Android, «niko kwenye Wi-Fi gani» na «zuia trafiki hii» ni kazi mbili tofauti, na firewall inayozichanganya inashindwa kwa uwazi hasa wakati jina linapokosa kupatikana.
Dalili: utambulisho unatoweka na sera inaufuata
Kanuni ya SSID inasoma thamani na kisha kuchagua tawi. Wakati usomaji haurudishi kitu chochote cha manufaa, msimbo lazima ufanye kitu, na chaguo-msingi la kawaida ni «si mtandao unaotarajiwa, kwa hiyo usichuje». Chaguo hilo hugeuza tatizo la idhini kuwa uvujaji wa trafiki. Ikoni ya ufunguo inaendelea kuonekana kwa sababu huduma ya VPN bado inaendesha; inatekeleza tawi lingine tu.
Angalia mpangilio wa matukio, si mtandao. Dirisha la idhini lililokataliwa, sasisho la mfumo lililohamisha ufikiaji wa SSID nyuma ya idhini nyingine, huduma za mahali zilizozimwa, au mabadiliko ya sera ya wasifu wa kazi yanaweza yote kutoa matokeo sawa wakati simu inabaki kwenye sehemu ile ile ya ufikiaji.
Kwa nini jina linaweza kurudi lisilojulikana
WifiInfo.getSSID() hurudisha kitambulisho cha seti ya huduma ya mtandao wa sasa, na Android inaeleza kwamba ufikiaji wa sehemu zinazohusiana na mahali unategemea idhini. Ufikiaji usipokuwepo, simu hurudisha UNKNOWN_SSID badala ya kushindwa kwa sauti kubwa. Kwa hiyo thamani tupu au isiyojulikana si ushahidi kwamba simu iliondoka Wi-Fi; ni ushahidi kwamba programu haiwezi kuainisha mtandao.
Ukaguzi mbili hutenganisha hali hizo. Hakikisha simu imeunganishwa na uone mfumo unaripoti nini, kisha hakikisha programu ina idhini inayohitaji katika toleo hili la Android:
adb shell cmd wifi status
adb shell dumpsys package <your.app> | grep -i -E "ACCESS_FINE_LOCATION|NEARBY_WIFI_DEVICES"
Ikiwa mstari wa hali unaonyesha mtandao umeunganishwa wakati programu inaona jina lisilojulikana, una tatizo la idhini au la kiwango cha API, si tatizo la Wi-Fi. Rekebisha hilo kabla ya kugusa kanuni za firewall, kwa sababu kila kanuni inayofuata inapimwa dhidi ya thamani ambayo programu haiwezi kuisoma.
Uchujaji unafanyika wapi kwa kweli
Firewall ya ndani ya Android kwa kawaida hutumia modeli ya VpnService bila kutuma trafiki kwa seva ya mbali: inachukua kiolesura pepe, inatumia kanuni zake na kupeleka kile inachoruhusu. Jukwaa huruhusu huduma moja hai ya VPN kwa wasifu wa mtumiaji, na ya pili inachukua nafasi ya ya kwanza badala ya kujirundika juu yake. Kwa hiyo programu tofauti ya firewall na VPN tofauti ya kazi haziundi mnyororo wa hatua mbili; mmoja wao hushinda.
Hilo ni muhimu kwa kanuni ya SSID kwa sababu sehemu ya utekelezaji na sehemu ya uchunguzi ni vipengele tofauti. VpnService huamua kinachotoka kwenye kifaa; API ya Wi-Fi hutoa lebo tu. Programu inaweza kutekeleza vizuri na kuainisha vibaya, na hicho ndicho hitilafu katika makala hii.
Ipe hali isiyojulikana sera yake yenyewe
Chukulia utambulisho wa mtandao kama hali tatu, na uandike sera ya kila moja kabla ya kutoa kanuni. Hali ya tatu ndiyo inayosahaulika, na ndiyo mvamizi au usanidi mbaya unakuweka ndani yake.
| Observation | Policy to specify |
|---|---|
| Expected SSID is readable | The explicit filtering policy you designed |
| A different SSID is readable | The default policy for untrusted networks |
| Unknown, changing or unreadable | Fail closed until classification is reliable |
Kushindwa kwa kufungwa kunamaanisha hali isiyojulikana inarithi sera kali zaidi inayofaa badala ya ile iliyo rahisi zaidi. Ikiwa hilo linafanya simu isitumike kwenye mtandao mpya, suluhisho sahihi ni ubaguzi wa kukusudia na unaoonekana, si uamuzi wa utulivu wa kimya uliofichwa katika ukaguzi wa thamani tupu.
SSID inayojulikana ni lebo, si ushahidi wa mwendeshaji wa mtandao. Mtu yeyote anaweza kuendesha sehemu ya ufikiaji kwa jina la ofisi, kwa hiyo ulinganifu wa jina haupaswi kamwe kuwa kitu pekee kati ya kikao nyeti na sehemu isiyoaminika.
Jaribu mabadiliko, si hali tulivu
Jaribio la hali tulivu hufaulu kwenye mtandao uliojengea kanuni. Hitilafu huishi katika mabadiliko: idhini iliyokataliwa, Wi-Fi kwenda simu ya mkononi, SSID moja kwenda nyingine, huduma ya VPN kuanzishwa upya, na programu nyingine ya VPN kuchukua kiolesura. Kwa kila moja, amua kama miunganisho iliyopo inazingatiwa upya na kama trafiki iliyolindwa inabaki imezuiwa wakati hali haijulikani.
Andika matokeo kwa sentensi tatu: sharti lililozingatiwa, kipengele kinachotekeleza uamuzi, na mbadala wa kukusudia. Ikiwa kimoja kati ya vitatu hakipo, kanuni bado si sera; ni dhana inayofanya kazi kwa bahati kwenye mtandao wa ofisi.