Jerin izini na Android VpnService: me yasa shafukan da aka yarda suke ratayewa
Jerin izininka yana da kyau. Shafuka suna ratayewa saboda amsar DNS, teburin hanya, soket din mai warwarewa ko MTU. Ga tsarin da za a bincika.
Ka saka wani yanki a jerin izini, tambayar ta isa app ɗinka, mai daidaitawa ya mayar da izini, amma shafin ba ya taɓa lodawa. A wannan lokacin yawancin mutane su kan fara sake rubuta mai daidaitawa da ƙara kwatancen wildcard. A gogewata, mai daidaitawa yakan kasance daidai, kuma gazawar tana kwance a wani Layer na gaba: a cikin amsar DNS da ka ƙirƙira, a cikin hanyar da ka saka, ko a cikin soket ɗin da ka yi amfani da shi don tura tambayar. Jerin shine sashe mai sauƙi; hanyar fakiti ita ce inda jerin izini ke karyewa.
Ba kasafin mai daidaitawa ne kuskuren ba
Abu na farko da za a raba shi ne tsakanin an toshe da ya lalace. Sunan da aka toshe ya kamata ya gaza da sauri kuma a bayyane, domin mai bincike yana samun amsar cewa sunan babu ya tsaya. Sunan da ya lalace yana ratayewa, yana sake gwadawa ta IPv6, yana komawa wani jigilar dabam, ya bar ka da mai juyawa. Idan ka ga mai juyawa, jerin izininka yana yiwuwa yana amsa wani abu da abokin ciniki ba zai iya yin komai da shi ba.
Rikodin A fanko shine kuskuren gargajiya. Mayar da NOERROR da amsoshi sifili yana kama da ingantacciyar amsa, don haka mai warwarewa na stub yana karɓe ta, mai bincike yana sake gwadawa, yana gwada AAAA, yana gwada wani mai warwarewa, sannan ya daina da yawa daga baya. Lambar amsa 3, wato NXDOMAIN, tare da maimaita sashin tambaya da kwafin ID na ma'amala, tana ƙare tattaunawar nan take. Yi amfani da ita ga kowace suna da ka ƙi da gangan.
IPv6 ma ya cancanci wannan shawarar maimakon tsoho. Idan ka amsa NXDOMAIN ga A kuma ka bar AAAA ya wuce, abokin ciniki zai iya isa sunan da aka toshe ta IPv6 kuma matatar tana zubo. Wasu aiwatarwa suna amsa tambayoyin AAAA da aka toshe da adireshin loopback domin haɗin ya gaza nan take maimakon komawa wata hanya. Zaɓi manufa ɗaya, yi amfani da ita ga duka nau'ikan rikodin, kuma ka rubuta duka biyun.
Hanyar da ke kama komai tana mallakar komai
Tsarin DNS kawai ba ya taɓa ƙara addRoute("0.0.0.0", 0), don haka tambayoyi ne kawai ke shiga ƙofar TUN kuma duk sauran suna ci gaba da amfani da cibiyar sadarwar da ke ƙasa. Wannan shine siffar aminci, kuma yana bayyana dalilin da yasa wasu jerin izini suke kama da aiki a Wi-Fi amma suna gaza a cibiyar sadarwar wayar hannu.
Lokacin da hanyar tsoho ta kasance, kowane kwarara naka ne. Fakitin TCP da ya isa ƙofar kuma ba a tura shi ba ko a amsa shi, yana zama a layi har lokacin abokin ciniki ya ƙare, kuma babu kuskuren da za a rubuta domin babu abin da ya yi kuskure. Na ga wani ya kwashe da yamma a kan jerin izini da ya lalace wanda a gaskiya ya kasance mai tura da ya ɓace na tashar 443. Rubuta ka'idar da makoma ta kowane fakiti da ka yanke shawarar jefar da shi.
Soket ɗin mai warwarewa dole ya fita daga rami
Tura shi ne inda tarko na gaba yake. Masu warwarewa na kamfanin sadarwa sukan zauna a wani adireshi mai zaman kansa wanda ramin ba zai iya isa ba, don haka tambayar da ka tura ba ta zuwa ko'ina kuma app ɗin yana bayar da rahoton ƙarewar lokacin karatu. Aika tambayoyin da aka yarda zuwa mai warwarewa da ka san ana iya isa gare shi, kuma ka ba da wannan soket ɗin ga VpnService.protect() da farko. Soket ɗin da ba a kare shi ba yana mayar da tambayar cikin raminka, inda ta sake isa app ɗin kuma tana juyawa har sai lokaci ya ƙare.
Gazawar tana kama da katsewar cibiyar sadarwa, kuma shi ya sa take rayuwa tsawon haka a rahotannin kuskure. Riƙe ƙididdiga na tambayoyin da aka aika da amsoshin da aka karɓa: idan lamba ta farko tana ƙaruwa kuma ta biyu ta tsaya a sifili, kana kallon soket ɗin, ba jerin ba.
Girma da jimlar dubawa suna gaza ba tare da saƙo ba
Zubewar shiru kuma tana zuwa daga girma. Amsar DNS da ke da babban saitin amsa, ko musabakar TCP da zaɓuɓɓuka masu yawa, na iya wuce MTU na hanya da ba ka taɓa saita a fili ba; guntun yana ɓacewa a sama kuma abokin ciniki ko ya sake gwadawa da ƙarami ko ya daina gwadawa. Saita MTU na ƙofar a 1280 zaɓi ne mai tsanani wanda ke jure yawancin hanyoyin wayar hannu, kuma kasancewa a fili ya fi gado da tsohon da ba wanda ya auna.
Idan kana gina fakiti da kanka, jimlar dubawa ita ce wata mai kashewa ta shiru. Jimlar dubawar UDP da aka ƙididdige a kan takardar kai ta ƙarya da ta bar tsawon UDP ko filin ka'ida tana samar da fakiti da ke kama da kyau a gefenka kuma mai karɓa ya watsar da shi ba tare da wata alama ba. Kwatanta takardar kai ta ƙaryarka da ƙayyadaddun fili-fili, kuma buga jimlar da aka ƙididdige don wata kwarara sananna yayin da kake gyara.
Abin da VpnService ba zai yi maka ba
Iyaka biyu sun cancanci sani kafin ka ƙirƙira a kusa da su. Babu wata app ta yau da kullum da za ta iya saka proxy na dukan tsarin ko fayil ɗin PAC a wajen Wi-Fi, kuma wannan sashe bai canza ba. Hanyar kowace app ta canza: kafin API 29 VpnService.Builder ba zai iya ɗaukar proxy ko kaɗan ba, kuma daga API 29 setHttpProxy(ProxyInfo.buildPacProxy(uri)) yana ba da tsarin rubutun PAC don kimantawa don cibiyar sadarwar VPN. Kimanta dokoki a cikin lambar ku lokacin da kuke nufin tsofaffin API ko lokacin da tsarin PAC ba zai iya bayyana dokar ba. UDP ma ba kyauta ba ne: masu bincike suna aika TCP ne kawai ta hanyar proxy na SOCKS, kuma yawancin abokan ciniki na SOCKS5 ba sa taɓa aiwatar da UDP ASSOCIATE, don haka tsarin da ya dogara da proxy yana jefar da UDP ko yana zubarwa yayin da TCP ke kama da lafiya.
Wannan iyaka ta biyu ita ce dalilin da yasa ka'idar da ta dogara da UDP zata iya aiki a cibiyar sadarwa ta yau da kullum kuma ta gaza a lokacin da VPN ɗinka ya haɗa. Idan ana sa ran ramin zai ɗauki UDP, mai turawa dole ya aiwatar da hanyar turawa dominsa, ba hanyar TCP kawai da wani nau'in soket ba.
Bincika a wannan tsari
Yi aiki da jerin a tsari kuma ka tsaya a matakin farko da ya gaza, domin kowane bincike na gaba surutu ne har sai na farko ya tsaya.
- Lissafa hanyoyin da aka saka kuma tabbatar ko fakiti da ba DNS ba suna shiga ƙofar TUN ko kaɗan.
- Rubuta sunan tambaya, shawara da lambar amsa ga suna ɗaya da aka toshe da ɗaya da aka yarda.
- Tabbatar an kare soket ɗin mai warwarewa kuma mai warwarewar da aka zaɓa yana amsa daga cikin ramin.
- Tabbatar da MTU na ƙofar da jimlar dubawa na amsa ɗaya da ka gina da hannu.
- Maimaita shafi ɗaya a Wi-Fi da kuma a cibiyar sadarwar wayar hannu, domin masu warwarewa na kamfanin sadarwa da MTU na hanya sun bambanta.
Idan duka biyar sun tsaya kuma shafin har yanzu yana ratayewa, wanda ake zargi na gaba shine mai turawa da kansa: kwatanta buƙatun da aka kama da amsar da aka kama kuma nemi ƙidayar byte da ta ɓace ko soket ɗin da ya rufe rabi. Bayanin VpnService.Builder ya shafi yarjejeniyoyin hanya, DNS da MTU, kuma protect() kira ne na VpnService daban ba zaɓi na builder ba; haɗaɗɗiyar ƙofa tana nufin kawai yarjejeniya ta farko ta cika.