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.

StageWho resolvesPathFailure looks like
Endpoint lookupThe VPN appUnderlying network, protected socketNever connects; no tunnel interface traffic
Peer authenticationClient and serverTunnel transportConnects then drops; certificate or key error
Private name lookupApps via the tunnelResolver inside the tunTunnel 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.

Artikli relatati