Rregulli ishte i thjeshtë: filtro trafikun vetëm sa kohë telefoni është i lidhur me Wi-Fi-n e zyrës. Qëndroi muaj me radhë, dhe më pas një mëngjes telefoni ndodhej në të njëjtin SSID me të njëjtën ikonë çelësi dhe filtrimi ishte ndalur. Në rrjet nuk kishte ndryshuar asgjë; ajo që ndryshoi ishte nëse aplikacioni mund të shihte emrin e rrjetit. Në Android, «në çfarë Wi-Fi jam» dhe «bllokoje këtë trafik» janë dy punë të ndara, dhe një firewall që i ngatërron ato dështon hapur pikërisht kur emri bëhet i padisponueshëm.

Simptoma: identiteti zhduket dhe politika e ndjek

Një rregull SSID lexon një vlerë dhe më pas zgjedh një degë. Kur leximi nuk kthen asgjë të dobishme, kodi duhet të bëjë diçka, dhe vlera e parazgjedhur e zakonshme është «nuk është rrjeta e pritur, prandaj mos filtro». Kjo e kthen një problem lejeje në rrjedhje trafiku. Ikona e çelësit vazhdon të duket sepse shërbimi VPN ende po punon; thjesht po zbaton një degë tjetër.

Shikoni rendin e ngjarjeve, jo rrjetin. Një dialog lejeje i refuzuar, një përditësim sistemi që e zhvendosi aksesin në SSID pas një lejeje tjetër, shërbimet e vendndodhjes të fikura ose një ndryshim politike i profilit të punës mund të japin të njëjtin rezultat ndërsa telefoni mbetet në të njëjtën pikë aksesi.

Pse emri mund të kthehet i panjohur

WifiInfo.getSSID() kthen identifikuesin e grupit të shërbimeve të rrjetit aktual, dhe Android dokumenton se aksesi në fushat e ndjeshme ndaj vendndodhjes varet nga leja. Kur aksesi nuk është i disponueshëm, thirrja kthen UNKNOWN_SSID në vend që të dështojë me zë. Një vlerë e zbrazët ose e panjohur nuk është pra provë se telefoni la Wi-Fi-n; është provë se aplikacioni nuk mund ta klasifikojë rrjetin.

Dy kontrolle i ndajnë rastet. Konfirmoni që telefoni është i lidhur dhe shikoni çfarë raporton sistemi, pastaj konfirmoni që aplikacioni e ka vërtet lejen që i nevojitet në këtë version të Android:

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

Nëse rreshti i statusit tregon një rrjet të lidhur ndërsa aplikacioni sheh një emër të panjohur, keni një problem lejeje ose niveli API, jo një problem Wi-Fi. Rregullojeni përpara se të prekni rregullat e firewall-it, sepse çdo rregull pasues vlerësohet kundrejt një vlere që aplikacioni nuk mund ta lexojë.

Ku ekzekutohet në të vërtetë filtrimi

Një firewall lokal i Android përdor zakonisht modelin VpnService pa dërguar trafik në një server të largët: merr ndërfaqen virtuale, zbaton rregullat e veta dhe përçon atë që lejon. Platforma lejon një shërbim VPN aktiv për profil përdoruesi, dhe i dyti zëvendëson të parin në vend që të mbivendoset mbi të. Një aplikacion i veçantë firewall dhe një VPN pune e veçantë nuk formojnë pra një zinxhir dy-shkallësh; njëri prej tyre fiton.

Kjo ka rëndësi për një rregull SSID sepse pika e zbatimit dhe pika e vëzhgimit janë komponentë të ndryshëm. VpnService vendos çfarë largohet nga pajisja; API-ja e Wi-Fi vetëm furnizon një etiketë. Një aplikacion mund të zbatojë saktë dhe të klasifikojë gabimisht, dhe pikërisht kjo është defekti në këtë artikull.

Jepini të panjohurës politikën e vet

Trajtoni identitetin e rrjetit si tre gjendje dhe shkruani politikën për secilën përpara se ta publikoni rregullin. Gjendja e tretë është ajo që harrohet, dhe aty do t'ju vendosë një sulmues ose një konfigurim i gabuar.

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

Dështimi i mbyllur do të thotë që gjendja e panjohur trashëgon politikën më të rreptë të arsyeshme dhe jo atë më të përshtatshmen. Nëse kjo e bën telefonin të papërdorshëm në një rrjet të ri, zgjidhja e saktë është një përjashtim i qëllimshëm dhe i dukshëm, jo një vendim i heshtur besimi i fshehur në një kontroll vlere të zbrazët.

Një SSID i njohur është etiketë, jo provë e operatorit të rrjetit. Kushdo mund të drejtojë një pikë aksesi me emrin e zyrës, prandaj përputhja e emrit nuk duhet të jetë kurrë e vetmja gjë midis një sesioni të ndjeshëm dhe një segmenti të pabesueshëm.

Testoni tranzicionet, jo gjendjen e qëndrueshme

Testet në gjendje të qëndrueshme kalojnë në rrjetin ku e ndërtuat rregullin. Defektet jetojnë në tranzicione: leje e refuzuar, nga Wi-Fi në celular, nga një SSID në tjetrin, shërbimi VPN i rinisur dhe një aplikacion tjetër VPN që merr ndërfaqen. Për secilin, vendosni nëse lidhjet ekzistuese rishqyrtohen dhe nëse trafiku i mbrojtur mbetet i bllokuar sa kohë gjendja është e panjohur.

Shkruani rezultatin në tre fjali: kushti i vëzhguar, komponenti që zbaton vendimin dhe tërheqja e qëllimshme. Nëse mungon ndonjëri prej të treve, rregulli nuk është ende politikë; është një hamendësim që funksionon rastësisht në rrjetin e zyrës.

Artikuj të ngjashëm