Android always-on VPN: kif l-isem tal-punt tat-tarf jiġi riżolt l-ewwel
Android jimblokka t-traffiku qabel ma jeżisti t-tunnel, iżda l-klijent xorta jrid jirriżolvi l-punt tat-tarf tiegħu. Hawn hi l-ordni, u fejn jinqabad.
It-telefon jerġa' jibda, always-on huwa attiv, «imblokka konnessjonijiet mingħajr VPN» huwa mixgħul, u t-tunnel ma jitla' qatt. Xejn mhu konfigurat ħażin: il-blokk qed jagħmel xogħlu, u l-attentat tal-klijent stess li jasal għall-punt tat-tarf tiegħu huwa suġġett għalih ukoll. L-isem tal-punt tat-tarf irid jiġi riżolt qabel ma jeżisti t-tunnel, minn klijent li jitħalla jkellem in-netwerk waqt li l-apps l-oħra kollha ma jitħallewx. Li tifhem liema komponent jagħmel dan, u b'liema ordni, huwa dak li jibdel dan il-misteru f'domanda ta' konfigurazzjoni.
X'inhu fil-fatt jitlob il-builder tal-VPN
App tal-VPN tal-Android ma tagħtix lill-pjattaforma indirizz tas-server. Tibni interface lokali: indirizzi u rotot għat-tunnel, ir-resolvers li l-apps għandhom jużaw ġo fih, u mbagħad establish() irodd lura deskrittur tal-fajl li l-app taqra u tikteb bħala pakketti IP nejjin. Il-punt tat-tarf remot ma jidher qatt f'dak il-builder.
Dan huwa l-fatt strutturali ewlieni. Il-pjattaforma toħloq interface tun u tapplika l-politika fuqha; l-app timplimenta t-trasport fl-ispazju tal-utent, jiġifieri l-app stess tirriżolvi l-isem tal-punt tat-tarf tagħha u tiftaħ il-konnessjoni kriptata. Għalhekk punt tat-tarf fil-forma ta' isem tal-host huwa possibbli — mhux għax il-pjattaforma tappoġġja l-ismijiet, imma għax il-pjattaforma qatt ma tara l-punt tat-tarf.
Qasam wieħed tal-builder xorta jieħu indirizzi: is-servers DNS. Dawk iridu jkunu indirizzi numeriċi tar-resolvers, normalment dawk li l-operatur irid jistaqsi permezz tat-tunnel. Dak il-qasam jiddeskrivi fejn l-apps jibagħtu l-mistoqsijiet wara li t-tunnel ikun tela'. Ma jgħid xejn dwar kif il-klijent isib il-punt tat-tarf, u li tittratta t-tnejn bħala l-istess setting hija minn fejn tibda l-konfużjoni.
Żewġ mistoqsijiet DNS, mhux waħda
L-ewwel mistoqsija hi: fejn l-apps jibagħtu l-mistoqsijiet ladarba t-tunnel ikun tela'? It-tweġiba hija indirizz tar-resolver ġewwa t-tunnel, jintlaħaq permezz tal-interface tun, u numeriku bil-kostruzzjoni.
It-tieni mistoqsija hi: kif il-klijent isib il-punt tat-tarf tiegħu stess qabel ma jeżisti dak it-tunnel? Dak it-tiftix iseħħ barra mit-tunnel, fuq in-netwerk ta' taħt, fil-proċess tal-klijent. Jista' juża isem, u jrid juża resolver li l-apparat jista' jilħaq mingħajr il-VPN.
| Stage | Who resolves | Path | Failure looks like |
|---|---|---|---|
| Endpoint lookup | The VPN app | Underlying network, protected socket | Never connects; no tunnel interface traffic |
| Peer authentication | Client and server | Tunnel transport | Connects then drops; certificate or key error |
| Private name lookup | Apps via the tunnel | Resolver inside the tun | Tunnel up, internal sites do not resolve |
Tliet stadji, tliet sintomi differenti. Messaġġ wieħed ta' żball li jgħid «ma tistax tikkonnettja» jgħaqqadhom kollha, u għalhekk in-nies jibdew jeditjaw il-qasam tas-server DNS biex isewwu problema li sseħħ qabel ma dak il-qasam qatt jiġi kkonsultat.
Għaliex il-bootstrap jista' jinqabad
Always-on bil-blokk mixgħul ifisser li t-traffiku li mhuwiex ġewwa l-VPN jiġi skartat, inkluż it-traffiku tal-app li għandha l-VPN. Il-ħruġ huwa espliċitu: l-app issejjaħ protect() fuq socket, li jorbotha man-netwerk ta' taħt biex hekk tgħaddi mit-tunnel u titħalla toħroġ. Kull klijent tal-VPN irid jagħmel dan għat-trasport tiegħu, inkella qatt ma jasal għal server.
Issa kkunsidra installazzjoni fejn l-uniku resolver li jaf l-isem tal-punt tat-tarf huwa stess ġewwa t-tunnel. Il-klijent jeħtieġ it-tunnel biex jirriżolvi l-isem, u l-isem biex jibni t-tunnel. Din hija dipendenza ċirkolari vera, u l-ebda konfigurazzjoni tal-klijent ma ssolviha. Hija żball fid-disinn, mhux bug.
Il-ħin juri l-istess dipendenza f'forom ħafna aktar ħfief. Fil-boot qabel l-ewwel tqaxxir, l-apparat jista' għad m'għandux netwerk użabbli; fuq captive portal in-netwerk jeżisti imma jimblokka kollox ħlief il-portal; fit-tranżizzjoni minn Wi-Fi għal ċellulari, in-netwerk ta' taħt tas-socket protett jinbidel u l-klijent irid jinduna u jerġa' jirriżolvi. Kull wieħed minn dawn huwa avveniment ta' bootstrap, u kull wieħed jistħoqqlu li jiġi ttestjat apposta minflok ma jiġi skopert fit-3 ta' filgħodu.
Għaliex li tiffissa t-tweġiba mhijiex soluzzjoni
Il-ħarba li tħajjar hija li tirriżolvi l-isem darba u tpejst l-indirizz li joħroġ f'qasam numeriku, jew tiffissah b'mod iebes fi build apposta. Jidher li jaħdem, u jbdel isem f'ritratt. Meta l-operatur iċaqlaq il-punt tat-tarf — migrazzjoni, bidla anycast, indirizz reġjonali ġdid — il-klijent jibqa' jċempel lill-antik u xejn fl-interface ma jispjega għaliex.
Ir-rekords DNS iġorru time to live apposta biex it-tweġibiet ikunu jistgħu jinbidlu; il-caching huwa definit skont dak il-ħajja, mhux għal dejjem. Li tiffissa tweġiba tarmi l-mekkaniżmu li jagħmel isem aħjar minn indirizz, filwaqt li żżomm l-ispiża operattiva li tkun użajt isem.
It-tiffissar għandu tendenza li jivvjaġġa ma' drawwa ħażina oħra: li tħoll il-verifiki tal-identità għax il-konnessjoni issa tfalli b'mod differenti. Il-verifika tal-identità tas-server mhijiex parti mill-problema tal-bootstrap, u li ddgħajjifha tbdel inkonvenjenza DNS ma' riskju ta' interċettazzjoni.
Disinni li jgħaddu minn reboot
L-arranġament dejjiemi mhuwiex sabiħ. Uża klijent li jimplimenta s-sockets protetti kif suppost u jirriżolvi l-punt tat-tarf tiegħu fuq in-netwerk ta' taħt, u agħtih isem tal-punt tat-tarf li jiġi riżolt pubblikament, jew permezz ta' resolver li jintlaħaq qabel it-tunnel. Żomm il-blokk mixgħul; li titfi kollu biex jaħdem id-DNS ineħħi l-proprjetà li għaliha teżisti l-installazzjoni.
Fejn il-punt tat-tarf irid jibqa' privat, ipprovdi triq bootstrap espliċita li l-pjattaforma tista' tuża — resolver li jintlaħaq mingħajr it-tunnel, jew konnessjoni ta' ġestjoni li żżomm l-operatur — u żomm dak l-eċċezzjoni dejqa u proprjetà tal-politika, mhux ta' toggle tal-utent. Id-dokumentazzjoni tal-Android VpnService hija r-referenza għal dak li l-pjattaforma tiggarantixxi dwar il-protezzjoni u ċ-ċiklu tal-ħajja, u ir-referenza għal VpnService.Builder tikkonferma li l-qasam DNS jieħu indirizzi numeriċi.
Imbagħad ivverifika t-tliet stadji, fl-ordni, fuq konnessjoni ġdida wara reboot: l-isem tal-punt tat-tarf jiġi riżolt, it-tunnel jiġi stabbilit u l-peer jiġi awtentikat, u isem privat jiġi riżolt permezz tar-resolver tat-tunnel. Jekk l-ewwel stadju jfalli, xejn wara ma jista' jaħdem, u t-tiswija tappartjeni lit-triq tal-bootstrap — qatt lill-qasam tar-resolver.
- Ir-riżoluzzjoni tal-punt tat-tarf isseħħ fl-app, barra mit-tunnel, fuq socket protett.
- Il-qasam DNS fil-builder huwa għall-apps ġewwa t-tunnel, mhux għall-punt tat-tarf tal-klijent stess.
- Resolver li jintlaħaq biss permezz tat-tunnel huwa qabda, mhux bidu bil-mod.
- Ittestja l-punt tat-tarf, l-awtentikazzjoni u t-tiftix privat separatament wara reboot.