Unapounda skrini ya VPN ndani ya programu ya iOS, mshangao wa kwanza ni kwamba orodha ya itifaki katika programu ya Mipangilio si orodha ya API. Mfumo wa Network Extension huruhusu programu yako kuunda usanidi mmoja wa VPN wa kibinafsi, unaomilikiwa na programu hiyo, na hukubali vitu vichache tu vya itifaki. Kila kitu kingine ambacho watu hutegemea, kutoka L2TP hadi wasifu uliopakuliwa, kiko nje ya uso huo au ni wa faragha kwa Apple. Hitilafu zinazofuata mara nyingi si hitilafu programu, ni API inayokataa kazi ambayo haikuwahi kupewa.

Hadithi: API ni kihariri cha Mipangilio

Inaaminika kwamba kwa kuwa iOS inaweza kusanidi wasifu za IKEv1, IKEv2, L2TP na IPsec, programu inaweza kuunda yoyote kati yao kwa programu. Haiwezi. Mfumo huo hufichua nafasi moja ya usanidi kwa programu inayoiita, na nafasi hiyo hukubali seti ndogo tu ya madaraja ya itifaki ya umma. Kila kitu kingine ambacho watu hutegemea, kutoka L2TP hadi wasifu uliopakuliwa, kiko nje ya uso huo au ni wa faragha kwa Apple.

Hitilafu zinazofuata mara nyingi si hitilafu programu. Ni API inayokataa kazi ambayo haikuwahi kupewa, na suluhisho ni kubuni skrini kuzunguka kile ambacho API inamiliki.

Vitu vitatu vya itifaki na visivyopo

Chaguo zako ni IKEv1 kupitia NEVPNProtocolIPSec, IKEv2 kupitia NEVPNProtocolIKEv2, na NETunnelProviderProtocol ikiwa utasambaza kiendelezi chako cha handaki la pakiti. Marejeleo ya NEVPNManager huorodhesha vitu vya itifaki vinavyokubaliwa. L2TP na PPTP hazionekani kamwe katika orodha hiyo kwa sababu Apple haikuchapisha madaraja kwa ajili yao. Kujaribu kimojawapo huishia wakati wa kuhifadhi na hitilafu, au mbaya zaidi, na usanidi ambao mfumo unakataa kimya kutumia.

Msimbo wa kompyuta ya mezani hufuata kanuni tofauti. Kwenye macOS, SCNetworkInterfaceCreateWithInterface hurundika aina ya kiolesura kama L2TP juu ya IPv4 na kuunganisha na huduma ya mtandao, na networksetup -connectpppoeservice huanzisha matokeo. Haki za msimamizi na chombo kisaidizi zinahitajika, kwa sababu siri iliyoshirikiwa na nenosiri huenda kwenye ufunguo wa mfumo. Nakili muundo huo kwenye iOS na hakuna kitu kinachokusanywa.

Pitisha rejeleo la ufunguo wa funguo, si nenosiri

Hakuna daraja la IKE linalokubali nenosiri kama maandishi. Sifa mbili passwordReference na sharedSecretReference zinataka rejeleo la kudumu la ufunguo wa funguo, ambalo unapata kutoka SecItemCopyMatching kwa kuomba kSecReturnPersistentRef. Kupitisha data ya kipengele, au kuingiza mfuatano kwenye sehemu, huzalisha kushindwa kwa kuhifadhi au muunganisho wenye vitambulisho tupu. Rejeleo ni la kudumu kadiri kipengele cha ufunguo wa funguo kilicho nyuma yake, kwa hiyo kipengele lazima kiwepo kabla ya usanidi kukusanywa. Kiunde katika shughuli hiyo hiyo ya kuhifadhi na utaondoa daraja zima la hitilafu za mpangilio.

Uthibitishaji wa cheti huchukua njia nyingine: identityData pamoja na identityDataPassword kwa blob ya PKCS#12. Kusambaza blob hiyo ndani ya kifurushi cha programu ni tabia iliyorithiwa kutoka msimbo wa mfano, si uamuzi wa kutoa, kwa sababu nenosiri husafiri pamoja nayo na kila nakala ya programu hubeba utambulisho sawa.

Haki na upatikanaji huweka lango kwa kila kitu

Huenda meneja hayupo kabisa, na sababu ni utoaji wa huduma. Kitambulisho cha programu yako kinahitaji uwezo wa Network Extension pamoja na haki ya VPN ya kibinafsi, na wasifu unaosaini ujenzi lazima uchukue zote mbili.

Ruka hilo na mfano ulioshirikiwa hurudisha nil, au kuhifadhi kunashindwa na hitilafu ambayo haitaji haki kamwe. Upatikanaji ni lango lingine. Lenga kitu cha zamani kuliko iOS 8 na alama haipo wakati wa utekelezaji, kwa hiyo kushindwa ni ajali au meneja nil, si meneja bila usanidi. Angalia mazingira ya utekelezaji na haki kabla ya kutatua grafu yako ya vitu.

Pakia, badilisha, hifadhi, kisha angalia mpangilio kwa ombi

Chukulia mzunguko wa maisha kama upakiaji, mabadiliko, kuhifadhi, na usikose kamwe upakiaji. Hadi loadFromPreferences kamilika, meneja hashikili chochote na kipengele cha itifaki hakiwezi kusomwa au kubadilishwa.

Kuhifadhi kwa pili hubadilisha usanidi badala ya kuongeza mwingine, kwa hiyo kuhifadhi kusiko kamili kunaweza kuharibu wasifu uliokuwa ukifanya kazi. Kanuni za ombi huunda safu iliyopangwa, na mpangilio huo ndio sera. Weka kanuni ya kuunganisha kutoka mahali popote mbele ya kanuni ya kukata na kukata kwa mkono hufuatiwa na kuunganisha tena mara moja, jambo ambalo linaonekana kama kasoro lakini linafuata tathmini iliyoandikwa.

Hamisha kanuni ya kukata mbele wakati kitendo cha mtumiaji kinapaswa kushinda. Kinachobaki nje ya udhibiti wa programu ni muhimu vilevile. Njia hutoka kwenye handaki au sera ya seva badala ya mapendeleo unayoweka, na mtoa handaki la pakiti huziripoti anapoanza. Programu haiwezi kuorodhesha au kuhariri wasifu zilizosakinishwa na programu nyingine au wasifu za usanidi, kwa hiyo usiahidi skrini inayoonyesha kila VPN kwenye kifaa.

Makala zinazohusiana