iOS VPN-snið: passwordReference, ekki lykilorðið
Tilvísun í lyklakippu er handfang, ekki leyndarmálið. Að senda bæti skýrir villu -50, bilun við endurræsingu og snúningsgildruna í vistuðum VPN-sniðum.
Þú setur upp snið, göngin koma upp og allt virðist fullbúið. Svo endurræsist síminn, on-demand vekur tenginguna án nokkurrar apper í forgrunni, og göngin neita að ræsa. Sniðið er enn þar og lykilorðið enn rétt, og þess vegna sendir þessi bilun fólk að leita á röngum stað. Network Extension getur ekki lesið leyndarmálið þitt úr sniðinu: það þarf tilvísun í lyklakippu sem það getur leyst sjálft.
Leiðsögnin hér að neðan fylgir einni tengingartilraun í gegnum þá afhendingu, frá fyrirspurninni sem byggir tilvísunina til endurræsingarinnar sem prófar hana.
Sniðið geymir handfang, ekki leyndarmálið
NEVPNProtocol birtir passwordReference og sharedSecretReference af ástæðu. Þegar dæmoninn ræsir göng getur hann verið að keyra utan þíns ferlis, svo hann getur ekki kallað á kóðann þinn og beðið um lykilorð. Hann les varanlega tilvísun í lyklakippu, leysir hana í eigin samhengi og sækir hlutinn sjálfur.
Þú byggir þá tilvísun með því að biðja lyklakippuna um hana, sem er önnur beiðni en beiðnin um gögnin:
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
]Afhentu protókollinu hlutinn sem kom til baka, ekki gögn hlutarins. Í reynd skráir sniðið hvar leyndarmálið býr, og þess vegna afritar öryggisafrit af stillingunum ekki lykilorðið hljóðlaust í plist.
Af hverju API svarar -50
errSecParam þýðir að beiðnin eða gildið var rangt mótað fyrir aðgerðina, og það er villan sem sést oftast þegar beiðnir um tilvísun og gögn ruglast saman. Að biðja um gögn á meðan kóðinn sem tekur við á von á tilvísun, að úthluta hráum bætum í passwordReference eða að fyrirspyrja með aðgangshópi sem appið getur ekki notað, framleiða hana öll.
Umbúðarsöfn bjóða þessu heim. Hjálparfall sem skilar bætum er ekki skiptanlegt með því sem skilar tilvísun, svo viðgerðin er venjulega önnur fyrirspurn en ekki annað lykilorð.
Sama misræmið skýrir snið sem vistast án kvartana og tengist svo ekki: það sem vistað var er blob, ekki handfang, og dæmoninn hefur ekkert að leysa.
Vistast vel, bregst við tengingu
Vistun æfir samhengi appsins þíns. Tenging æfir samhengi dæmonsins, og þau tvö hafa ekki sama aðgang. Snið getur því staðist öll próf í herminum og brugðist við fyrstu on-demand ræsingu.
Sama lögun er á einkennum endurræsingarinnar: það virkar meðan appið er opið og deyr þegar kerfið ræsir göngin sjálft.
Prófaðu bakgrunnsleiðina viljandi fyrir útgáfu. Kveiktu á on-demand tengingu með appið lokað og lestu svo stjórnborð tækisins en ekki log appsins, því biluninni er skráð af ferlinu sem reyndi að leysa tilvísunina. Ef stjórnborðið sýnir að dæmoninn hafni hlutnum er tilvísunin í lagi og vandamálið er aðgengi hlutarins.
Aðgengi ræður því hvort endurræsing virkar
Hluturinn verður að vera læsilegur fyrir hvaða kerfisferli sem ræsir göngin, og það er breiðari hópur en appið þitt á meðan það er í forgrunni. Þessi takmörkun velur aðgengiseiginleikann fyrir þig. Hlutur sem er varinn til fyrstu aflæsingar er tiltækur fyrir bakgrunnsræsingu eftir að tækið hefur verið opnað einu sinni; hlutur sem krefst þess að tækið sé opnað núna er það ekki.
Að velja stranga flokkinn er freistandi og er einmitt það sem brýtur on-demand snið í læstum síma.
Eftir að flokknum er breytt skaltu endurskapa hlutinn í stað þess að breyta eiginleikum á þeim sem fyrir er, og vistaðu svo protókollið aftur með nýrri tilvísun. Eiginleikabreytingar á fyrirliggjandi hlut gefa ekki alltaf þá hegðun sem skjölin gefa í skyn, og endurbyggður hlutur fjarlægir efa.
Snúningurinn er þar sem vistuð snið grotna
Að breyta lykilorðinu í lyklakippunni breytir ekki sjálfkrafa því sem vistaða sniðið bendir á. Að eyða hlutnum er verra: sniðið heldur tilvísun í eitthvað sem er ekki lengur til, og bilunin lítur út eins og höfnun auðkenningar.
Snúðu í einni röð. Uppfærðu hlutinn, spurðu um nýja varanlega tilvísun, vistaðu protókollið aftur og tengdu svo með appið lokað til að sanna að dæmoninn geti enn leyst hana. Hafðu notendalykilorðið og sameiginlega leyndarmálið í aðskildum hlutum svo hvert snúist eftir sínu plani, og skráðu aldrei fyrirspurnarorðabókina né tilvísunina sjálfa. Handfangið er ekki leyndarmál, en það er kort að einu.