iOS VPN профайл: passwordReference, нууц үг биш
Түлхүүрийн бөгжний лавлагаа бол бариул, нууц биш. Байт дамжуулах нь -50 алдаа, дахин ачаалах үеийн бүтэлгүйтэл, хадгалсан VPN профайл дахь эргэлтийн урхийг тайлбарлана.
Та профайл суулгаж, туннель өргөгдөж, бүх зүйл дууссан мэт харагдана. Дараа нь утас дахин ачаалагдаж, on-demand урд төлөвлөгөөнд аппгүйгээр холболтыг сэрээж, туннель эхлэхээс татгалзана. Профайл хэвээр байгаа бөгөөд нууц үг хэвээр зөв байгаа тул энэ доголдол хүмүүсийг буруу газар хайхад хүргэдэг. Network Extension таны нууцыг профайлаас уншиж чадахгүй: өөрөө шийдэж чадах түлхүүрийн бөгжний лавлагаа хэрэгтэй.
Доорх гарын авлага нь лавлагааг бүтээх асуулгаас эхлээд түүнийг шалгах дахин ачааллыг хүртэл, энэ дамжуулалтаар нэг холболтын оролдлогыг дагана.
Профайл нууцыг биш, бариулыг хадгална
NEVPNProtocol нь passwordReference болон sharedSecretReference-ийг шалтгаангүйгээр ил гаргадаггүй. Демон туннель эхлүүлэх үед таны процесс дотор ажиллахгүй байж болох тул таны кодыг дуудаж нууц үг асууж чадахгүй. Тэр түлхүүрийн бөгжний байнгын лавлагааг уншиж, өөрийн контекстэд шийдэж, зүйлийг өөрөө авчирна.
Та уг лавлагааг түлхүүрийн бөгжнөөс асууж бүтээдэг бөгөөд энэ нь өгөгдөл асуухаас өөр хүсэлт юм:
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
]Буцаасан объектыг протоколд өг, зүйлийн өгөгдлийг биш. Практикт профайл нууц хаана амьдардаг гэдгийг тэмдэглэдэг тул тохиргооны нөөц хуулбар нууц үгийг plist рүү чимээгүй хуулбарладаггүй.
API яагаад -50 гэж хариулдаг вэ
errSecParam нь хүсэлт эсвэл утга тухайн үйлдэлд буруу хэлбэржсэнийг илэрхийлдэг бөгөөд лавлагаа болон өгөгдлийн хүсэлтүүд холилдох үед хамгийн их харагддаг алдаа юм. Хүлээн авах код лавлагаа хүлээж байхад өгөгдөл асуух, passwordReference-д түүхий байт оноох, эсвэл апп ашиглаж чадахгүй хандалтын бүлгээр асуулга хийх, бүгд үүнийг бий болгодог.
Боох сангууд үүнд урьдаг. Байт буцаадаг туслах нь лавлагаа буцаадаг туслахтай солигддоггүй тул засвар нь ихэвчлэн өөр нууц үг биш, өөр асуулга байдаг.
Мөн адил зөрүү нь гомдолгүй хадгалагдаж, дараа нь холбогдож чадахгүй профайлыг тайлбарлана: хадгалсан нь blob, бариул биш бөгөөд демонд шийдэх зүйл байхгүй.
Сайхан хадгалагдана, холболтын үед бүтэлгүйтнэ
Хадгалалт нь таны аппын контекстийг дасгалжуулна. Холболт нь демоны контекстийг дасгалжуулна, хоёулаа ижил хандалтгүй. Тиймээс профайл симуляторт хийсэн бүх шалгалтыг давж, эхний on-demand эхлэлд бүтэлгүйтэж болно.
Дахин ачааллын шинж тэмдгийн хэлбэр ч мөн адил: апп нээлттэй байх үед ажиллаж, систем туннелийг өөрөө эхлүүлэх үед үхдэг.
Хүргэхийн өмнө арын замыг зориуд шалга. Апп хаалттай үед on-demand холболт үүсгэ, дараа нь аппын лог биш, төхөөрөмжийн консолыг унш, учир нь алдааг лавлагааг шийдэх гэж оролдсон процесс бичдэг. Консол демон зүйлийг татгалзаж байгааг харуулбал, лавлагаа зөв бөгөөд асуудал зүйлийн хүртээмжид байна.
Дахин ачаалал ажиллах эсэхийг хүртээмж шийднэ
Зүйл нь туннелийг эхлүүлэх аливаа системийн процессын хувьд уншигдахуйц байх ёстой бөгөөд энэ нь апп урд төлөвлөгөөнд байх үеийнхээс өргөн үзэгчид юм. Тэр хязгаарлалт нь танд зориулж хүртээмжийн шинж чанарыг сонгодог. Эхний түгжээг тайлалтыг хүртэл хамгаалагдсан зүйл төхөөрөмж нэг удаа түгжээг тайлагдсаны дараа арын эхлэлд боломжтой; төхөөрөмж яг одоо түгжээтэй байхыг шаарддаг зүйл тийм биш.
Илүү хатуу ангиллыг сонгох нь уруу татагч бөгөөд яг тэр нь түгжигдсэн утсан дээр on-demand профайлыг эвддэг.
Ангиллыг өөрчилсний дараа одоо байгаа зүйлийн шинж чанарыг засахын оронд зүйлийг дахин үүсгэ, дараа нь протоколыг шинэ лавлагаагаар дахин хадгал. Одоо байгаа зүйл дээрх шинж чанарын өөрчлөлт нь баримт бичгийн илэрхийлж буй зан төлөвийг үргэлж өгдөггүй бөгөөд дахин бүтээсэн зүйл эргэлзээг арилгана.
Эргэлт бол хадгалсан профайлууд ялзрах газар
Түлхүүрийн бөгжид нууц үгийг өөрчлөх нь хадгалсан профайл юунд зааж байгааг өөрчлөхгүй. Зүйлийг устгах нь бүр муу: профайл цаашид байхгүй зүйл рүү лавлагаа барьж, доголдол нь баталгаажуулалтаас татгалзсан мэт харагдана.
Нэг дарааллаар эргүүлээрэй. Зүйлийг шинэчил, шинэ байнгын лавлагаа асуу, протоколыг дахин хадгал, дараа нь апп хаалттай үед холбогдож демон үүнийг шийдэж чадахыг батал. Хэрэглэгчийн нууц үг болон хуваалцсан нууцыг тусдаа зүйлд байлгаж, тус бүр өөрийн хуваарийн дагуу эргэлдэх болтугай, асуулгын толь бичиг эсвэл лавлагааг өөрөө хэзээ ч битгий бүртгэ. Бариул нь нууц биш, гэхдээ түүн рүү хүрэх газрын зураг юм.