Nígbà tí o bá ń kọ́ ojú-ìwé VPN nínú ohun èlò iOS, ìyàlẹ́nu àkọ́kọ́ ni pé àkójọpọ̀ ìlànà nínú ohun èlò Ètò kì í ṣe àkójọpọ̀ API. Ètò Network Extension ń jẹ́ kí ohun èlò rẹ lè ṣẹ̀dá ìṣètò VPN ti ara ẹni kan, tí ohun èlò yẹn ní, ó sì gba àwọn ohun ìlànà mélòó kan péré. Gbogbo ohun mìíràn tí àwọn ènìyàn ń retí, láti L2TP dé profáìlì tí a gbà sórí ẹ̀rọ, wà ní òde ibi ìmú-ọ̀rọ̀ yẹn tàbí ó jẹ́ ìkọ̀kọ̀ fún Apple. Àwọn ìkùnà tí ń tẹ̀lé kì í ṣe bọ́ọ̀gì ní gbogbo ìgbà, API ni ó ń kọ̀ iṣẹ́ tí a kò fún un rí.

Àlọ́: API jẹ́ olùṣàtúnṣe Ètò

A gbà pé níwọ̀n bí iOS ti lè ṣètò àwọn profáìlì IKEv1, IKEv2, L2TP àti IPsec, ohun èlò kan lè ṣẹ̀dá èyíkéyìí nínú wọn pẹ̀lú ìlànà ẹ̀rọ. Kò lè. Ètò náà ń fi ààyè ìṣètò kan gbáà fún ohun èlò tí ń pè é, ààyè yẹn sì gba ẹ̀ka ìlànà gbangba díẹ̀ péré. Gbogbo ohun mìíràn tí àwọn ènìyàn ń retí, láti L2TP dé profáìlì tí a gbà sórí ẹ̀rọ, wà ní òde ibi ìmú-ọ̀rọ̀ yẹn tàbí ó jẹ́ ìkọ̀kọ̀ fún Apple.

Àwọn ìkùnà tí ń tẹ̀lé kì í ṣe bọ́ọ̀gì ní gbogbo ìgbà. API ni ó ń kọ̀ iṣẹ́ tí a kò fún un rí, ìtúsílẹ̀ náà sì ni láti ṣe àpẹẹrẹ ojú-ìwé kó yí ohun tí API ní ká.

Àwọn ohun ìlànà mẹ́ta àti àwọn tí kò sí

Àwọn àṣàyàn rẹ ni IKEv1 nípasẹ̀ NEVPNProtocolIPSec, IKEv2 nípasẹ̀ NEVPNProtocolIKEv2, àti NETunnelProviderProtocol tí o bá ń fi àfikún ihò pákítì tirẹ jáde. Ìwé ìtọ́kasí NEVPNManager ń ṣàkójọ àwọn ohun ìlànà tí a gbà. L2TP àti PPTP kì í fi ara wọn hàn nínú àkójọpọ̀ yẹn rí nítorí pé Apple kò tẹ ẹ̀ka kankan jáde fún wọn. Ìgbìyànjú èyíkéyìí nínú wọn ń parí nígbà ìpamọ́ pẹ̀lú àṣìṣe, tàbí èyí tí ó burú jù, pẹ̀lú ìṣètò tí ètò ń kọ̀ láti lò ní ìdákẹ́jẹ́.

Kóòdù ojú-ìwé orí tábílì ń tẹ̀lé àwọn òfin mìíràn. Lórí macOS, SCNetworkInterfaceCreateWithInterface ń kó oríṣi ìsopọ̀ bí L2TP lórí IPv4 jọ, ó sì so mọ́ iṣẹ́ nẹ́tíwọ́kì kan, networksetup -connectpppoeservice sì ń bẹ̀rẹ̀ èsì náà. Àwọn ẹ̀tọ́ aláṣẹ àti irinṣẹ́ olùrànlọ́wọ́ ní a nílò, nítorí pé àṣírí tí a pín àti ọ̀rọ̀ ìpamọ́ ń lọ sínú kọ́kọ́rọ́ ètò. Dà á ṣe àpẹẹrẹ yẹn sí iOS kí ohunkóhun kò lè kóòdù.

Fi ìtọ́kasí kọ́kọ́rọ́ ránṣẹ́, kì í ṣe ọ̀rọ̀ ìpamọ́

Kò sí ẹ̀ka IKE kan tí ó gba ọ̀rọ̀ ìpamọ́ gẹ́gẹ́ bí ọ̀rọ̀. Àwọn ànímọ́ méjì passwordReference àti sharedSecretReference fẹ́ ìtọ́kasí kọ́kọ́rọ́ tí kò ní yí padà, èyí tí o ń gbà láti SecItemCopyMatching nípa béèrè kSecReturnPersistentRef. Fífi dátà ohun náà ránṣẹ́, tàbí fífi okùn kan sínú pápá, ń mú ìkùnà ìpamọ́ tàbí ìsopọ̀ pẹ̀lú ẹ̀rí òfìfo wá. Ìtọ́kasí náà ń dúró tó bí ohun kọ́kọ́rọ́ tí ó wà lẹ́yìn rẹ̀, ìdí nìyẹn tí ohun náà fi gbọ́dọ̀ wà kí a tó kó ìṣètò náà jọ. Dá a nínú ìnáwó kan náà pẹ̀lú ìpamọ́ kí o sì yọ gbogbo ẹ̀ka àwọn àṣìṣe ìtẹ̀lé kúrò.

Ìjẹ́rìí ẹ̀rí-ìmọ̀ ń gbà ọ̀nà mìíràn: identityData pẹ̀lú identityDataPassword fún blob PKCS#12. Fífi blob yẹn ránṣẹ́ nínú àpò ohun èlò jẹ́ àṣà tí ó wá láti inú kóòdù àpẹẹrẹ, kì í ṣe ìpinnu ìtújáde, nítorí pé ọ̀rọ̀ ìpamọ́ ń rìn pẹ̀lú rẹ̀, ẹ̀dà kọ̀ọ̀kan ohun èlò náà sì ní ìdánimọ̀ kan náà.

Ẹ̀tọ́ àti wíwà ń ṣọ́ gbogbo nǹkan

Olùṣàkóso lè má wà rárá, ìdí náà sì ni ìpèsè. Ìdánimọ̀ ohun èlò rẹ nílò agbára Network Extension pẹ̀lú ẹ̀tọ́ VPN ti ara ẹni, profáìlì tí ń fi ọwọ́ sí ìkọ́ náà sì gbọ́dọ̀ gbé méjèèjì.

Fo èyí kọjá, ẹ̀dà tí a pín yóò dá nil padà, tàbí ìpamọ́ yóò kùnà pẹ̀lú àṣìṣe tí kò ní dárúkọ ẹ̀tọ́ rí. Wíwà ni ẹnubodè kejì. Tí o bá ń fojú kan ohun tí ó dàgbà ju iOS 8 lọ, àmì náà kò sí nígbà ìṣiṣẹ́, nítorí náà ìkùnà jẹ́ ìgbáṣubú tàbí olùṣàkóso nil, kì í ṣe olùṣàkóso tí kò ní ìṣètò. Ṣàyẹ̀wò àyíká ìṣiṣẹ́ àti ẹ̀tọ́ kí o tó ṣàtúnṣe àwòrán ohun rẹ.

Gbé wọlé, yí padà, pamọ́, kí o sì wo ìtẹ̀lé nípa ìbéèrè

Ka ìyípo ìgbésí ayé gẹ́gẹ́ bí gbígbéwọlé, yíyípadà àti ìpamọ́, kí o má ṣe fo gbígbéwọlé kọjá rí. Títí loadFromPreferences yóò fi parí, olùṣàkóso kò di ohunkóhun mú, a kò sì lè ka tàbí pààrọ̀ ohun ìlànà náà.

Ìpamọ́ kejì ń rọ́pò ìṣètò náà dípò kí ó fi òmíràn kún un, nítorí náà ìpamọ́ tí ó ṣẹ̀ṣẹ̀ dópin lè ba profáìlì tí ń ṣiṣẹ́ jẹ́. Àwọn òfin ìbéèrè ń dá àkójọpọ̀ tí a tò lẹ́sẹẹsẹ, ìtẹ̀lé yẹn sì ni ìlànà. Fi òfin ìsopọ̀ láti ibikíbi síwájú òfin ìpínyà, ìpínyà afọwọ́ṣe yóò sì tẹ̀lé ìsopọ̀ padà lẹ́sẹ̀kẹsẹ̀, èyí tí ó dà bí àbùkù ṣùgbọ́n ó ń tẹ̀lé ìgbéléwọ̀n tí a kọ sílẹ̀.

Gbé òfin ìpínyà síwájú nígbà tí ìgbésẹ̀ olùlò gbọ́dọ̀ borí. Ohun tí ó kù ní òde ìṣàkóso ohun èlò náà ṣe pàtàkì bákan náà. Àwọn ọ̀nà ń wá láti inú ihò tàbí ìlànà sáfà dípò àṣàyàn tí o ṣètò, olùpèsè ihò pákítì sì ń ròyìn wọn nígbà tí ó bá bẹ̀rẹ̀. Ohun èlò kò lè ṣàkójọ tàbí ṣàtúnṣe àwọn profáìlì tí àwọn ohun èlò mìíràn tàbí profáìlì ìṣètò fi sórí ẹ̀rọ, nítorí náà má ṣe ṣèlérí ojú-ìwé tí yóò fi gbogbo VPN hàn lórí ẹ̀rọ náà.

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