Правилото беше едноставно: филтрирај сообраќај само додека телефонот е поврзан на канцеларискиот 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 апликација што го превзема интерфејсот. За секој одлучете дали постојните врски се преиспитуваат и дали заштитениот сообраќај останува блокиран додека состојбата е непозната.

Запишете го резултатот во три реченици: забележаниот услов, компонентата што ја спроведува одлуката и намерниот резервен тек. Ако недостига било кое од трите, правилото сè уште не е политика; тоа е претпоставка што случајно работи на канцелариската мрежа.

Поврзани статии