Markaad dhisato shaashad VPN gudaha app iOS, yaabka ugu horreeya waa in liiska borotokoolka app-ka Settings uusan ahayn liiska API-ga. Framework-ka Network Extension wuxuu app-kaaga u ogolaadaa inuu sameeyo hal jaangooyo VPN oo shakhsi ah, oo uu app-kaas leeyahay, wuxuuna aqbalaa oo keliya dhowr shay borotokool. Wax kasta oo kale oo dadku filaan, laga bilaabo L2TP ilaa borofayl la soo dejiyay, waxay ka baxsan yihiin dushaas ama waa mid gaar u ah Apple. Guul-darrooyinka soo socda badanaa ma aha bug, waa API-ga oo diidaya shaqo aan waligiis la siin.

Khuraafaadka: API-ga waa tafatire Settings

Waxaa la aaminsan yahay in maadaama iOS uu habayn karo borofayllada IKEv1, IKEv2, L2TP iyo IPsec, app-ku uu mid kasta oo ka mid ah si barnaamij ah u samayn karo. Ma samayn karo. Framework-ku wuxuu app-ka wacaya siinayaa si sax ah hal boos jaangooyo, booskaasna wuxuu aqbalaa oo keliya koox yar oo fasallo borotokool oo dadweyne ah. Wax kasta oo kale oo dadku filaan, laga bilaabo L2TP ilaa borofayl la soo dejiyay, waxay ka baxsan yihiin dushaas ama waa mid gaar u ah Apple.

Guul-darrooyinka soo socda badanaa ma aha bug. Waa API-ga oo diidaya shaqo aan waligiis la siin, xalkuna waa in shaashadda lagu nashqadeeyo waxa API-gu leeyahay.

Saddex shay borotokool iyo kuwa aan jirin

Xulashooyinkaagu waa IKEv1 iyada oo loo marayo NEVPNProtocolIPSec, IKEv2 iyada oo loo marayo NEVPNProtocolIKEv2, iyo NETunnelProviderProtocol haddii aad soo dirto fidinta tunnelka paket-kaaga. Tixraaca NEVPNManager wuxuu taxaa shayada borotokool ee la aqbalay. L2TP iyo PPTP waligood kama soo baxaan liiskaas sababtoo ah Apple ma daabicin fasallo iyaga. Isku day midkood ka mid ah wuxuu ku dhammaadaa kaydinta qalad, ama ka sii xun, jaangooyo nidaamku si aamusan u diiday inuu isticmaalo.

Koodhka desktop-ku wuxuu raacaa sharciyo kale. macOS, SCNetworkInterfaceCreateWithInterface wuxuu isku rarayaa nooc interface sida L2TP oo IPv4 dul saaran wuxuuna ku xidhaa adeeg shabakadeed, networksetup -connectpppoeservice na wuxuu bilaabaa natiijada. Waxaa loo baahan yahay xuquuqda maamule iyo qalab caawiye, sababtoo ah sirta la wadaago iyo furaha sirta waxay galaan keychain-ka nidaamka. Koobi nashqaddan iOS oo waxba ma soo baxaan.

Gudbi tixraac keychain, ma aha furaha sirta

Midkoodna labada fasal IKE ma aqbalaan furaha sirta qoraal ahaan. Labada sifo passwordReference iyo sharedSecretReference waxay rabaan tixraac keychain oo joogto ah, oo aad ka hesho SecItemCopyMatching adigoo codsanaya kSecReturnPersistentRef. Gudbinta xogta shayga, ama gelinta xarig goobta, waxay soo saartaa guul-darro kaydineed ama xiriir leh aqoonsi madhan. Tixraacu wuxuu u adkaysanayaa sida shayga keychain ee ka dambeeya oo kale, taas darteed shaygu waa inuu jiraa ka hor inta aan jaangooyada la isku darin. Ku abuur isla macaamilka kaydinta oo waxaad tirtirtaa fasalka oo dhan oo bug-yada nidaamka ah.

Aqoonsiga shahaadada wuxuu qaataa waddo kale: PKCS#12 blob identityData iyo identityDataPassword. Soo dirista blobkaas gudaha xirmada app-ka waa caado laga soo qaatay koodhka tusaalaha, ma aha go'aan soo saaris, sababtoo ah furaha sirta ayaa la safraa isaga oo nuqul kasta oo app-ka ahna wuxuu qaataa isla aqoonsiga.

Xuquuqda iyo helitaanku waxay irrid ka yihiin wax walba

Maareeyuhu ma jiri karo haba yaraatee, sababtuna waa provisioning. Aqoonsiga app-kaaga wuxuu u baahan yahay awoodda Network Extension oo ay la socoto xuquuqda VPN shakhsi, borofaylka saxeexa build-kaana waa inuu qaataa labadaba.

Tan ka bood oo tusaalaha la wadaago wuxuu soo celinayaa nil, ama kaydintu waxay ku guul-darraataa qalad aan waligiis xusin xuquuqda. Helitaanku waa irridda kale. Haddii aad bartilmaameedsato wax ka duug ah iOS 8, calaamaddu ma jirto waqtiga socodka, sidaas darteed guul-darraduna waa shil ama maareeye nil, ma aha maareeye jaangooyo la'aan. Hubi deegaanka socodka iyo xuquuqda ka hor inta aadan debug gareyn graafka shaygaaga.

Soo rar, beddel, kaydi, ka dibna fiiri nidaamka codsiga

U tixgeli wareegga nolosha sida soo rarid, beddelid, kaydin, oo marnaba ha ka boodin soo rarista. Ilaa loadFromPreferences dhammaado, maareeyuhu waxba ma hayo mana akhriyi karo mana beddeli karo shayga borotokoolka.

Kaydinta labaad waxay beddelaa jaangooyada halkii ay ku dari lahayd mid kale, sidaas darteed kaydin badhkeed ah waxay dhaawici kartaa borofayl shaqaynayay. Xeerarka codsiga waxay sameeyaan array nidaamsan, nidaamkaasna waa siyaasadda. Xeerka isku xirka meel kasta ka hor dhigi xeerka goynta oo goyn gacmeed waxaa dabcool u socda isku xirid degdeg ah, taas oo u ekaanaysa cillad laakiin raacaysa qiimaynta la diiwaangeliyay.

U rar xeerka goynta hore marka ficilka isticmaaluhu waa inuu guuleysto. Waxa ka baxsan kontoroolka app-ka ayaa sidoo kale muhiim ah. Wadooyinku waxay ka yimaadaan tunnelka ama siyaasadda serverka halkii ay ka imaan lahaayeen doorasho aad dejiso, iyo bixiyaha tunnelka paket-ku wuxuu ka warbixiyaa marka uu bilaabo. App-ku ma taxin karo mana tafatiri karo borofayllada ay rakibeen app-yo kale ama borofayllada jaangooyo, sidaas darteed ha ballanqaadin shaashad muujinaysa VPN kasta oo qalabka ku jira.

Maqaallo la xiriira