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.

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

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.

Makala zinazohusiana