O fi profaili sori ẹrọ, ọ̀nà abẹ́lẹ̀ náà gòkè, gbogbo nǹkan sì dàbí pé ó ti parí. Lẹ́yìn náà fọ́nù náà tún bẹ̀rẹ̀, on-demand ru ìsopọ̀ náà sókè láìsí èyíkéyìí áàpù ní iwájú, ọ̀nà abẹ́lẹ̀ náà sì kọ̀ láti bẹ̀rẹ̀. Profaili náà ṣì wà níbẹ̀, ọ̀rọ̀ ìpamọ́ náà sì ṣì tọ́, ìdí nìyẹn tí ìkùnà yìí fi ń rán àwọn ènìyàn lọ wá ní ibi tí kò tọ́. Network Extension kò lè ka àṣírí rẹ láti inú profaili náà: ó nílò ìtọ́kasi kọ́kọ́rọ́ tí òun fúnra rẹ̀ lè yanjú.

Ìtọ́sọ́nà tí ó wà nísàlẹ̀ ń tẹ̀lé ìgbìyànjú ìsopọ̀ kan nípasẹ̀ ìfàṣẹ́wọ́ yẹn, láti ìbéèrè tí ó kọ́ ìtọ́kasi náà dé àtúnbẹ̀rẹ̀ tí ó dán an wò.

Profaili ń fi àkóso pamọ́, kì í ṣe àṣírí

NEVPNProtocol ń fi passwordReference àti sharedSecretReference hàn fún ìdí kan. Nígbà tí daemon bẹ̀rẹ̀ ọ̀nà abẹ́lẹ̀ kan, ó lè má ṣiṣẹ́ nínú ìlànà rẹ, nítorí náà kò lè pe kóòdù rẹ kí ó sì béèrè ọ̀rọ̀ ìpamọ́. Ó ń ka ìtọ́kasi kọ́kọ́rọ́ tí kò yí padà, ó ń yanjú rẹ̀ nínú ipò tirẹ̀, ó sì ń gbé ohun náà fúnra rẹ̀ wá.

O ń kọ́ ìtọ́kasi yẹn nípa béèrè lọ́wọ́ kọ́kọ́rọ́ náà, èyí tí ó yàtọ̀ sí béèrè fún dátà náà:

let query: [String: Any] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrService as String: "vpn-credentials",
  kSecAttrAccount as String: "user",
  kSecReturnPersistentRef as String: true,
  kSecMatchLimit as String: kSecMatchLimitOne
]

Fi ohun tí ó padà dé fún ìlànà náà, kì í ṣe dátà ohun náà. Ní àṣà, profaili ń ṣàkọsílẹ̀ ibi tí àṣírí náà ń gbé, ìdí nìyẹn tí àkópamọ́ ìṣètò kò fi ń dà ọ̀rọ̀ ìpamọ́ pọ̀ sí plist lẹ́nu.

Ìdí tí API fi ń dáhùn -50

errSecParam túmọ̀ sí pé ìbéèrè tàbí iye náà kò tọ́ ní ìrísí fún iṣẹ́ yẹn, ìgbà tí àwọn ìbéèrè ìtọ́kasi àti dátà bá dàpọ̀ ni àṣìṣe yìí máa ń hàn jùlọ. Béèrè fún dátà nígbà tí kóòdù tí ń gbà ń retí ìtọ́kasi, fífi báìtì àìṣeéṣe sí passwordReference, tàbí béèrè pẹ̀lú ẹgbẹ́ ìwọlé tí áàpù kò lè lò, gbogbo wọn ń bí i.

Àwọn ilé-ìkàwé ìpamọ́ ń pè sí èyí. Olùrànlọ́wọ́ tí ń dá báìtì padà kò lè rọ́pò èyí tí ń dá ìtọ́kasi padà, nítorí náà àtúnṣe sábà máa ń jẹ́ ìbéèrè mìíràn kì í ṣe ọ̀rọ̀ ìpamọ́ mìíràn.

Àìbáraẹnisọ̀rọ̀ kan náà ń ṣàlàyé profaili tí ó fi ara pamọ́ láìsí ẹ̀sùn tí kò sì lè sopọ̀: ohun tí a fi pamọ́ jẹ́ blob, kì í ṣe àkóso, daemon kò sì ní ohun tí yóò yanjú.

Ó ń fi ara pamọ́ dáadáa, ó ń kùnà nígbà ìsopọ̀

Fífi pamọ́ ń lo ipò áàpù rẹ. Ìsopọ̀ ń lo ti daemon, àwọn méjèèjì kò sì ní àǹfààní kan náà. Nítorí náà profaili lè gbégbá àwọn ìdánwò gbogbo nínú ẹrọ ìfarahọ̀ àṣepé, kí ó sì kùnà ní ìgbà ìbẹ̀rẹ̀ on-demand àkọ́kọ́.

Ìrísí àmì àtúnbẹ̀rẹ̀ náà sì jẹ́ bẹ́ẹ̀: ó ń ṣiṣẹ́ nígbà tí áàpù náà ṣí, ó sì ń kú nígbà tí ẹ̀rọ náà fúnra rẹ̀ bẹ̀rẹ̀ ọ̀nà abẹ́lẹ̀ náà.

Dán ọ̀nà ẹ̀yìn wò pẹ̀lú ìfọkàn tán ṣáájú kí o tẹ̀ jáde. Dá ìsopọ̀ on-demand sílẹ̀ nígbà tí áàpù náà tiì, lẹ́yìn náà ka kọ́ńsólù ẹ̀rọ náà kì í ṣe àkọsílẹ̀ áàpù, nítorí pé ìlànà tí ó gbìyànjú yanjú ìtọ́kasi náà ni ó ń ṣàkọsílẹ̀ ìkùnà náà. Bí kọ́ńsólù bá fi hàn pé daemon ń kọ̀ ohun náà, ìtọ́kasi náà dára, ìṣòro náà sì ni ìráàyésí ohun náà.

Ìráàyésí ni ó ń pinnu bóyá àtúnbẹ̀rẹ̀ yóò ṣiṣẹ́

Ohun náà gbọdọ̀ jẹ́ èyí tí ìlànà ẹ̀rọ èyíkéyìí tí ó bẹ̀rẹ̀ ọ̀nà abẹ́lẹ̀ náà lè kà, èyí sì pọ̀ ju áàpù rẹ lọ nígbà tí ó wà ní iwájú. Ààlà yẹn ni ó ń yan ẹ̀yà ìráàyésí fún ọ. Ohun tí a dáàbò bo títí dé ìṣílẹ̀ àkọ́kọ́ wà fún ìbẹ̀rẹ̀ ẹ̀yìn lẹ́yìn tí ẹ̀rọ náà ti ṣí lẹ́ẹ̀kan; ohun tí ó béèrè pé kí ẹ̀rọ náà ṣí báyìí kò sí.

Yíyan kíláàsì tí ó le jù ni ó ń fani mọ́ra, ìyẹn gan-an sì ni ó ń ba profaili on-demand jẹ́ lórí fọ́nù tí a ti sé.

Lẹ́yìn yíyí kíláàsì padà, dá ohun náà tuntun dípò kí o ṣàtúnṣe àwọn ẹ̀yà ohun tí ó wà, lẹ́yìn náà tún ìlànà náà pamọ́ pẹ̀lú ìtọ́kasi tuntun. Àwọn ìyípadà ẹ̀yà lórí ohun tí ó wà kì í sábà mú ìhùwàsí tí ìwé ẹ̀kọ́ ń tọ́ka sí, ohun tí a tún kọ́ sì ń mú iyèméjì kúrò.

Ìyípo ni ibi tí àwọn profaili tí a fi pamọ́ ti ń jẹrà

Yíyí ọ̀rọ̀ ìpamọ́ nínú kọ́kọ́rọ́ kò ní yí ohun tí profaili tí a fi pamọ́ ń tọ́ka sí padà fúnra rẹ̀. Píparẹ́ ohun náà burú jù: profaili ń di ìtọ́kasi ohun tí kò sí mọ́ mú, ìkùnà náà sì dàbí ìkọ̀ ìjẹ́rìí.

Yí i ká ní ìtòlẹ́sẹẹsẹ kan. Ṣe àtúnṣe ohun náà, béèrè ìtọ́kasi tuntun tí kò yí padà, tún ìlànà náà pamọ́, lẹ́yìn náà sopọ̀ nígbà tí áàpù náà tiì láti fi hàn pé daemon ṣì lè yanjú rẹ̀. Tọ́jú ọ̀rọ̀ ìpamọ́ olùlò àti àṣírí tí a pín sínú àwọn ohun ọ̀tọ̀ọ̀tọ̀ kí ọ̀kọ̀ọ̀kan lè yí ká ní ìtòlẹ́sẹẹsẹ tirẹ̀, má sì ṣàkọsílẹ̀ ìwé ìtumọ̀ ìbéèrè tàbí ìtọ́kasi náà fúnra rẹ̀ láé. Àkóso kì í ṣe àṣírí, ṣùgbọ́n ó jẹ́ àwòrán ọ̀nà sí i.

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