Ħriġt build ġdid, mort fuq il-VPN, u l-istess skrin waqaf jillowdja. Fuq Android 9 u wara l-ispjegazzjoni l-aktar komuni hija aktar tedjanti: il-pjattaforma tirrifjuta HTTP sempliċi għall-apps li jimmiraw għal API 28 jew ogħla, u l-VPN biddel biss biżżejjed kuntest biex jikxef dan. L-iżball li tara jiddependi mill-klijent HTTP, u għalhekk tant rari jgħid cleartext.

X’inhu dan il-falliment fil-verità

Minn Android 9 il-pjattaforma timblokka cleartext bħala default malli app timmira għal livell API 28 jew ogħla. It-talba lejn indirizz HTTP sempliċi hija miċħuda mill-pjattaforma qabel ma joħroġ saħansitra pakkett wieħed mill-apparat. Liema żball tara jiddependi mil-librerija HTTP: xi drabi falliment ġenerali tan-netwerk, xi drabi timeout, xi drabi messaġġ li jsemmi cleartext direttament. Dak li qatt ma tagħmel huwa li tasal għas-server tiegħek. Android jiddokumenta d-default u l-alternattiva limitata għad-dominju fil-gwida tal-konfigurazzjoni tas-sigurtà tiegħu.

Browser fuq l-istess apparat xorta jista’ jillowdja l-paġna, u dik hija l-ħjiel li ħafna nies jaqilgħu. Il-browsers mhumiex suġġetti għall-politika tas-sigurtà tan-netwerk tal-app tiegħek.

Għaliex jingħata t-tort lill-VPN

Normalment tliet affarijiet jinbidlu f’daqqa. L-app tista’ ssolvi hostname differenti wara li jikkonnettja l-VPN, l-apparat jista’ jkun ġdid b’build aktar ġdid, jew il-build innifsu jista’ jkun mar għal livell API fil-mira li jqajjem id-default. Il-VPN jidher u s-SDK fil-mira ma jidhirx, għalhekk il-VPN jieħu l-biljett.

Qabbel il-livelli fil-mira tal-build qadim u l-ġdid qabel ma tmiss il-konfigurazzjoni tan-netwerk. App li timmira għal 27 jew inqas hija eżentata, u dan jispjega kull rapport tat-tip «jaħdem fuq il-mowbajl il-qadim tiegħi».

Fejn tasal il-flag tal-Expo fil-verità

Fi proġett Expo maniġġjat, iż-żieda ta’ setting ma’ app.json ma teditja manifest tal-Android, għax il-manifest jinħoloq mill-prebuild u mill-builds tal-iżvilupp. Huwa l-plugin tal-konfigurazzjoni li jikteb is-setting f’dak l-istadju. Il-passaġġ appoġġjat huwa expo-build-properties, ikkonfigurat fil-konfigurazzjoni tal-app bl-għażla cleartext taħt android.

{
  "plugins": [
    ["expo-build-properties", {
      "android": { "usesCleartextTraffic": true }
    }]
  ]
}

Is-snippet jistabbilixxi biss l-għażla tal-plugin; il-manifest jinħoloq aktar tard. Mexxi prebuild jew build ġdid tal-klijent tal-iżvilupp, imbagħad qabel ma terġa’ tittestja spezzjona l-AndroidManifest.xml iġġenerat għal android:usesCleartextTraffic, għax rikarikament bl-JS biss iżżomm il-manifest il-qadim. Qabbil il-verżjoni tal-plugin mal-Expo SDK li fuqha jaħdem il-proġett. L-għażliet tal-plugin jiċċaqilqu bejn rilaxxi, u snippet ikkopjat minn SDK ieħor huwa sors affidabbli ta’ no-ops siekta.

Il-fluss bare u l-għażla eqreb

Għal bare React Native l-ekwivalenti huwa android:usesCleartextTraffic fuq l-element application, jew konfigurazzjoni tas-sigurtà tan-netwerk li tippermetti cleartext biss għal dominji msemmija. Il-forma limitata għad-dominju hija dik li għandha tiġi preferuta, għax tippermetti l-API interna u tħalli kollox ieħor fuq HTTPS. Hija wkoll tiddokumenta l-lista tal-eċċezzjonijiet tagħha, u dik hija l-parti li se jistaqsi dwarha reviżur.

L-ebda waħda miż-żewġ approċċi ma tbiddel id-default tal-pjattaforma għal xi ħaġa li ma semmejtx.

L-ewwel ipprova dan mil-log tal-apparat

Qabel ma teditja l-konfigurazzjoni, ġib il-falliment eżatt. adb logcat fuq apparat imqabbad juri ċ-ċaħda tal-cleartext mill-pjattaforma u jsemmi l-komponent li qajjemha. Socket miċħud, isem li ma jiġix solvut jew handshake TLS fallut jindikaw post kompletament ieħor, u li tattiva cleartext ikun biss iddgħajjef l-app għal xejn.

Imbagħad żomm il-produzzjoni onesta. Cleartext huwa aċċettabbli għal endpoint tal-laboratorju li ma jistax joffri TLS, u biss għall-iqsar żmien li tista’ tippjana. Jekk l-API tista’ ttemm TLS ġewwa n-netwerk privat, poġġi ċ-ċertifikat fl-store tal-fiduċja tal-apparat u ħalli cleartext mitfi, għax it-tunnel jikkripta l-passaġġ sal-ħruġ tiegħu u xejn lil hinn.

Malli l-endpoint iwieġeb fuq HTTPS, neħħi l-permess, erġa’ ibni u ttestja fuq il-VPN u fuq Wi-Fi ordinarju fl-istess sessjoni. Is-soluzzjoni tal-ismijiet tista’ tvarja bejn dawn iż-żewġ passaġġi, u l-par biss jgħidlek liema qed tgħid il-verità.

Artikli relatati