Nǹkan méjì tí ó yàtọ̀ pátápátá ni a ń pè ní dídínà ọ̀rọ̀ tí ó ṣe kedere lórí Android. Ọ̀kan jẹ́ ìlànà nínú áàpù kan tí ó pàṣẹ fún ìtẹ́ ọ̀nà ìsopọ̀ tirẹ̀ láti kọ HTTP lasan. Èkejì jẹ́ ìṣètò ní ìpele ẹ̀rọ tí ó ń gbìyànjú láti dáàbò bo gbogbo nǹkan lórí fọ́nù lẹ́ẹ̀kan, ní ọ̀pọ̀ ìgbà nípasẹ̀ gbígbé ìṣàn lọ sí VPN. Wọ́n yanjú ìṣòro ọ̀tọ̀ọ̀tọ̀, èkejì kò sì lè tún èkíní ṣe: ihò ń dáàbò bo apá tí ó wà láàrin fọ́nù àti ibi ìjáde, nígbà tí áàpù tí ó ń sọ̀rọ̀ HTTP ṣì ń sọ̀rọ̀ HTTP pẹ̀lú gbogbo ohun tí ó wà ní ìkọjá ibi ìjáde yẹn.

Ìṣòro méjì lábẹ́ orúkọ kan

Ìṣòro kìíní ni ẹrù: áàpù ń kọ àwọn ẹ̀rí tàbí àwọn tọ́kẹ́nì sínú ìbéèrè tí kò ní ìdìpọ̀ láti ìpilẹ̀ṣẹ̀ dé òpin, nítorí náà gbogbo ìfojú tí ó lè rí i lè kà á. Èkejì ni ọ̀nà: áàpù lè jẹ́ títọ́ pátápátá, àti pé ìwọ ṣì fẹ́ kí olùdarí Wi-Fi àdúgbò má ṣe kọ́ nǹkan kan nípa ibi tí ó ti ń sopọ̀. VPN ń ṣiṣẹ́ lórí èkejì àti èkejì nìkan.

Ìyàtọ̀ yẹn ń pinnu ẹni tí ó ni àtúnṣe náà. Ẹrù jẹ́ ti ẹni tí ó ń pín áàpù, nítorí pé kódù yẹn nìkan ni ó ń pinnu URL wo ni a pè àti bóyá a ń fọwọ́ sí ìwé ẹ̀rí. Ọ̀nà jẹ́ ti ẹ̀rọ tàbí ti àwọn nẹ́tíwọ́kì, nítorí pé ìbéèrè ni ibi tí àwọn pákẹ́tì ń lọ, kì í ṣe ohun tí wọ́n ní.

Ọ̀nà kìíní: áàpù tí ìwọ ń darí

Tí ìwọ bá ń pín áàpù náà, àtúnṣe ni ìpinnu nípa ìgbéwọlé àti ìlànà tí ó ń mú un ṣẹ. Darí gbogbo ibi ìparí sí HTTPS, jẹ́ kí ìfọwọ́sí orúkọ olùgbàlejò àti ìwé ẹ̀rí wà ní ṣíṣí, kí o sì pa ọ̀nà àbọ̀ sẹ́yìn sí HTTP lasan rẹ́ pẹ̀lú fífi í sílẹ̀ ní àsíá fíléèbù ìṣètò kan. Ìtúnjú kò ṣe ìrànwọ́ níbí: ìbéèrè HTTP tí ó gba 301 ti fi àwọn àkọlé àti ara rẹ̀ ránṣẹ́ ní gbangba tẹ́lẹ̀, nítorí náà àwọn ẹ̀rí kò gbọdọ̀ rìn rí pẹ̀lú èrò pé ìtúnjú yóò dáàbò bò wọ́n.

Láti Android 7.0, Network Security Configuration ń fi ìlànà hàn. Fáìlì tí ó wà ní ìsàlẹ̀ ni ẹ̀dà tí ó wúlò jùlọ: ó kọ ọ̀rọ̀ tí ó ṣe kedere níbi gbogbo àyàfí tí ìyọkùrò kan pàtó fún ìkànpé kan bá sọ bẹ́ẹ̀.

<network-security-config>
    <base-config cleartextTrafficPermitted="false" />
</network-security-config>

Tọ́ka sí orísun yẹn láti inú àkọsílẹ̀, kí o sì ka àwọn ìyọkùrò tí ó ti wà tẹ́lẹ̀ kí o tó pín. Ìkànpé àtúnṣe àtijọ́ tàbí àkọsílẹ̀ SDK ti olùpèsè ìsanwó lè tún gbà ọ̀rọ̀ tí ó ṣe kedere láàyè ní ìdákẹ́jẹ́ fún olùgbàlejò tí ìwọ ń gbìyànjú láti dáàbò bò.

Àlàyé ẹ̀dà méjì yẹ́ kí a mọ̀. Àwọn áàpù tí ó ń fojú kan API 28 tàbí tí ó tuntun ju bẹ́ẹ̀ lọ ti kọ ọ̀rọ̀ tí ó ṣe kedere ní àtọwọ́dọ́wọ́, nítorí náà áàpù tí ó ṣì ń sọ HTTP lasan yálà ń fojú kan ìpele API àtijọ́ tàbí ó ní ìyọkùrò níbìkan. Àti nígbà tí ìṣètò ààbò nẹ́tíwọ́kì bá wà, ànímọ́ àkọsílẹ̀ àtijọ́ android:usesCleartextTraffic kò pinnu ìbéèrè náà mọ́, ìdí nìyẹn tí yíyí fíléèbù yẹn padà fi ń dàbí ẹni pé kò ṣe nǹkan kan nígbà mìíràn.

Ọ̀nà kejì: áàpù tí ìwọ kò darí

Fún áàpù ẹlẹ́ẹ̀kẹta tí a ti fi sórí ẹ̀rọ, ìwọ kò lè tún ìṣètò ààbò rẹ̀ kọ nípasẹ̀ ètò olùlò. Àwọn àṣàyàn tí ó wà ní ti gidi ni àwọn ìṣàkóso ìsopọ̀ ààbò ti ara ọjà náà, àfidípò tí a ń tọ́jú tí ó ti ń lo TLS, tàbí ìlànà ẹ̀rọ tí a ń darí tí ó ń dínà ohun tí ẹ̀rọ lè ṣiṣẹ́. Ìwọ̀nyí jẹ́ ìlérí ọ̀tọ̀ọ̀tọ̀, àti pé ìkẹta nìkan ni ó ń gbilẹ̀ sí ẹgbẹ́ ẹ̀rọ.

Àwọn òfin nẹ́tíwọ́kì jẹ́ àfidípò tí ó rẹ̀wẹ̀sì ju bí wọ́n ti rí. Fífàyè gbà fún ibùdókọ̀ 443 nìkan kò fi TLS tí a ti jẹ́rìí mú, nítorí pé ọ̀pọ̀ àwọn ìlànà ọ̀rọ̀ tí ó ṣe kedere ni a lè gbé lọ sí ibùdókọ̀ yẹn, àti dídínà ibùdókọ̀ 80 kò bo ọ̀rọ̀ tí ó ṣe kedere lórí àwọn ibùdókọ̀ mìíràn. Ipò HTTPS-nìkan ti aṣàwákiri pẹ̀lú wà ní ààlà sí aṣàwákiri yẹn, kì í ṣe sí áàpù ìméèlì tàbí ìfọ̀rọ̀wérọ̀ ọ̀tọ̀ lórí fọ́nù kan náà.

Fífi ìwé ẹ̀rí ìdínà sórí ẹ̀rọ kí ìṣàn lè dàbí ẹni pé ó ti ní ìdìpọ̀ jẹ́ ìyípadà ìgbẹ́kẹ̀lé, kì í ṣe àtúnṣe. Ó ń rọ́pò ìfọwọ́sí olùpín áàpù pẹ̀lú tìrẹ, àti áàpù tí kò fọwọ́ sí àwọn ìwé ẹ̀rí láti ìbẹ̀rẹ̀ kò ní àtúnṣe pẹ̀lú èyí; ìwọ kàn gbé ẹni tí ó lè ka ìṣàn náà lọ.

Ibi tí VPN ń ṣe ìrànwọ́ àti ibi tí kò ti ṣe é

Ihò jẹ́ ohun èlò tí ó tọ́ nígbà tí ìbéèrè náà jẹ́ kí nẹ́tíwọ́kì àdúgbò má kọ́ nǹkan kan nípa ìsopọ̀, tàbí kí áàpù lè dé iṣẹ́ àdáni tí kò lè dé bí bẹ́ẹ̀ kọ́. Ó jẹ́ ohun èlò tí kò tọ́ fún mímú olùbánisọ̀rọ̀ HTTP sọ̀rọ̀ HTTPS, nítorí pé ìbéèrè náà ń jáde kúrò nínú ihò gẹ́gẹ́ bí ó ti wọlé.

Android ń fi ààlà tí ó wà ní ti gidi kún un: pẹpẹ ń ṣiṣẹ́ iṣẹ́ VPN kan ṣoṣo lẹ́ẹ̀kan. Áàpù àyọkúrò àdúgbò tí ó gba ibi yẹn ń díje pẹ̀lú ihò ọ̀nà jíjìnnà tí ìwọ nílò ní ti gidi, àti yíyí láàrin àwọn méjèèjì jẹ́ ìgbésẹ̀ ní ìpele ẹ̀rọ kì í ṣe ti áàpù. Ibi kan náà jẹ́ ìdí tí ó dára láti tọ́jú ìlànà ẹrù nínú áàpù àti láti pa ihò mọ́ fún ọ̀nà.

Ìṣẹ̀lẹ̀ kan ṣoṣo tí àwọn méjèèjì ti ń ṣù pọ̀ ni sẹ́bà àdáni tí ìwọ pẹ̀lú ń darí. Níbẹ̀ ihò lè sọ ọ̀nà di àdáni bí ó tilẹ̀ jẹ́ pé ìlànà náà ṣì jẹ́ ọ̀rọ̀ tí ó ṣe kedere, èyí tí ó dín ìfarahàn ṣùgbọ́n kò yí padà ohun tí ẹrù náà jẹ́. Wo èyí gẹ́gẹ́ bí ìdínkù ewu, kì í ṣe ìdìpọ̀ dátà.

Ohun tí a gbọdọ̀ dán wò kí a tó pè é ní dídínà

Bẹ̀rẹ̀ pẹ̀lú àtọwọ́dọ́wọ́ tí ó ń yà àwọn ènìyàn lẹ́nu: áàpù tí ó ń fojú kan API 28 tàbí tí ó tuntun ju bẹ́ẹ̀ lọ yẹ kí ó ti kọ ọ̀rọ̀ tí ó ṣe kedere, nítorí náà yẹ ìpele àfojúsùn wò kí o tó fi ìṣètò tí ó ń ṣe àtúnṣe àtọwọ́dọ́wọ́ kún un. Lẹ́yìn náà dán ìṣẹ̀lẹ̀ ìkùnà wò pẹ̀lú ìmọ̀ọ́mọ̀: ìbéèrè sí olùgbàlejò HTTP lasan gbọdọ̀ kùnà, kì í ṣe kí ó ṣàṣeyọrí ní ìdákẹ́jẹ́ nípasẹ̀ àbọ̀ sẹ́yìn.

adb shell dumpsys package com.example.app | grep -E 'targetSdk|versionName'
adb logcat | grep -i cleartext

Fún ìṣẹ̀lẹ̀ àṣeyọrí, jẹ́rìí pé ìpè HTTPS ń fọwọ́ sí ẹ̀wọ̀n ìwé ẹ̀rí gidi àti pé a kọ àgbàrá tí ó ní ìwé ẹ̀rí tí kò gbẹ́kẹ̀lé sílẹ̀ dípò kí a faradà rẹ̀. Ìfọwọ́wọ́ tí ó ṣàṣeyọrí lòdì sí ìwé ẹ̀rí èyíkéyìí kò fi nǹkan kan hàn nípa ààbò ìgbéwọlé.

Fún áàpù ẹlẹ́ẹ̀kẹta, kọ ààlà tí ìwọ lè fi múlẹ̀ ní ti gidi, yálà ìlànà ẹ̀rọ tí a ń darí, òfin nẹ́tíwọ́kì tàbí kò sí nǹkan kan, kí o sì sọ ọ́ nínú àwọn ìlànà ìtẹ́wọ́gbà. ìtọ́sọ́nà ìṣètò ààbò Android ń ṣe àkójọ àwọn àtọwọ́dọ́wọ́ pẹpẹ àti àwọn ẹ̀yà wo ni ó ń bọ̀wọ̀ fún ìlànà náà, àti pé apá yẹn ni ó ń pinnu bóyá ìṣètò rẹ ṣe nǹkan kan rárá.

Àwọn àpilẹ̀kọ tó jọra