שני יישומי iPhone יכולים שניהם להוסיף רשומת VPN בהגדרות, שניהם לקרוא לעצמם לקוחות VPN וכמעט לא לחלוק שום מימוש. אפל מכנה את אחד השילובים האלה VPN אישי, והשם הזה יוצר את רוב הבלבול. VPN אישי הוא API ליצירה ולניהול של תצורות שמשתמשות במימוש המובנה של IPsec או IKEv2. ספק מנהרת מנות הוא המודל האחר: היישום מספק הרחבה שמיישמת את צד הלקוח של הפרוטוקול שלו. כל מה שאנשים מסיקים מהתווית לאחר מכן, מהצפנים ועד הבעלות ועד לשאלה אם הטלפון חייב להיות מנוהל, הוא הסקה ולא הצהרה.

מי מיישם את המנהרה

החלוקה קובעת מי אחראי כשמשהו נשבר. עם IPsec או IKEv2 מובנים, iOS הוא הבעלים של מכונת המצב של המנהרה והיישום הוא הבעלים של התצורה והכפתורים. עם ספק, היישום הוא הבעלים של שניהם, ולכן באג בפרוטוקול הופך לעדכון יישום במקום עדכון מערכת הפעלה.

ההשוואה קצרה אם שואלים מי מיישם את הפרוטוקול.

IntegrationApple interfaceProtocol implementation
Personal VPNNEVPNManager with a Personal VPN configurationThe system IPsec or IKEv2 client
Packet tunnelNETunnelProviderManager plus the provider extensionWhatever the extension implements

תיעוד VPN אישי גם מציין את בקשת ההרשאה המפורשת של המשתמש כאשר יישום שומר תצורה בפעם הראשונה, וזה שייך למודל הזה ולא ליישומי VPN בכלל.

שתי טענות על התווית שכדאי לפרוש מהן

הראשונה היא ש-VPN אישי בוחר צופן. הוא לא; החבילה שנקבעה במשא ומתן מגיעה מהפרוטוקול ומהתצורה שלו, ותווית אישי לא אומרת דבר על איזו תקבל. השנייה היא ש-VPN אישי מרמז על פרוקסי או מנהרה מוגבלת. הוא מרמז על IPsec או IKEv2 מובנים, וזו מנהרה מלאה בכל פעם שהמסלולים אומרים זאת.

לכן נוכחותו של יישום אינה ראיה לגבי פרוטוקול החוט. לקוח צד שלישי שמדבר WireGuard או OpenVPN הוא יישום ספק מעצם הבנייה, משום ש-iOS אינו מיישם את הפרוטוקולים האלה באופן מקורי.

מדוע הניסוח הארגוני מטעה

התיעוד של אפל מסווג תצורות של NETunnelProviderManager כתצורות VPN ארגוניות רגילות. הניסוח הזה הוא קטגוריית API, והוא דוחף אנשים לשני שגיאות הפוכות: להניח שיישום צרכני לא יכול להשתמש במודל הספק, ולהניח שהטלפון חייב להיות בפיקוח לשם כך. אף אחת מהן לא נובעת מזה. יישומים צרכניים מספקים ספקים באופן שגרתי, והפיקוח הוא שאלה נפרדת לגבי מי רשאי לאכוף מדיניות.

בעלות הניהול היא השאלה הרביעית, והיא בלתי תלויה בשני המודלים. תצורה שמותקנת על ידי ארגון נושאת זהות, היקף תעבורה וכללי מחזור חיים משלה, ואלה נוסעים עם הפרופיל ולא עם היישום שמקרה התקין. קרא אותם לצד מודל השילוב, מפני שפרופיל מובנה מנוהל ופרופיל ספק לא מנוהל יכולים לשבת על טלפון אחד בו-זמנית.

בדוק את הראיה במקום את צילום המסך

צילומי מסך הם הראיה הגרועה ביותר שיש, מפני שקיבוץ ההגדרות משתנה בין גרסאות. פרופיל מנוהל מציין את סוג המטען שלו: פרופיל מובנה מצהיר על סוג VPN כגון IKEv2 או IPsec, ואילו פרופיל ספק נושא תת-סוג שמציין את מזהה החבילה של הספק. זה ניתן לבדיקה במכשיר שלפניך, וזה שורד את העיצוב מחדש הבא.

לגבי היישום עצמו, המחלקה שבשימוש עונה על אותה שאלה מהצד השני: אובייקטי תצורה מה-API של VPN אישי, או מנהל ספק וההרחבה שלו.

לאחר מכן בחר לפי מה שהמפעיל מספק בפועל. במקום שקיים פרופיל מקורי תואם, למסלול המובנה יש פחות חלקים נעים ודבר אחד פחות לעדכן. במקום שהשירות זקוק לפרוטוקול ש-iOS אינו מספק, יישום ספק הוא האפשרות היחידה וקצב השחרורים שלו הופך לחלק מהסיכון שלך.

שמור את הרשומה עם החיבור

צרף את האימות ואת מדיניות המשאבים לרשומת החיבור ולא ליישום, כדי שהתקנה מחדש לא תיקח איתה את מודל ההרשאה. הרשומה הזו היא גם מה שמהנדס תמיכה צריך כאשר המנהרה עולה ושום דבר אחר לא עובד.

השאלה ששווה לשאול בסוף אינה איזה מודל טוב יותר. היא איזה מודל המפעיל שלך תומך בו, ואיזה מהם אתה יכול לנפות בשתיים לפנות בוקר עם הכלים שבאמת יש לך.

מאמרים קשורים