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

בדקו את שני המילונים לפני שעורכים ערך

בתוך הגדרות IKEv2 של מטען ה-VPN, IKESecurityAssociationParameters מתאר את שיוך ה-IKE ו-ChildSecurityAssociationParameters מתאר את ה-Child SA. סכימת Apple קובעת שפרמטרי IKE חלים גם על ה-Child SA כאשר המילון השני חסר. הירושה הזו נוחה, וכך בדיוק פרופיל מגיע לערכים שאיש לא בחר בהם במודע.

<key>IKESecurityAssociationParameters</key>
<dict>
  <key>EncryptionAlgorithm</key><string>AES-256</string>
  <key>IntegrityAlgorithm</key><string>SHA-256</string>
  <key>DiffieHellmanGroup</key><integer>14</integer>
  <key>LifeTimeInMinutes</key><integer>1440</integer>
</dict>

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

בדקו מה המשמעות של כל מפתח לפני שמעתיקים מחרוזת

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

KeyHoldsCommon mistake
EncryptionAlgorithmCipher for that associationAssuming an AEAD name also sets integrity
IntegrityAlgorithmIntegrity for the chosen suiteLeaving it set for an AEAD suite that does not use one
DiffieHellmanGroupNumeric group identifierReading the number as key size in bits
LifeTimeInMinutesAssociation lifetimeSetting it shorter than the gateway's renewal margin

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

בדקו את מגבלות הגרסה שמוציאות אלגוריתמים ישנים

סכימת המטען של Apple מגבילה את DES, 3DES, SHA1-96, SHA1-160 וקבוצות Diffie-Hellman 1, 2 ו-5 לגרסאות macOS שלפני 26. פרופיל שהועבר מפריסה ישנה יותר עשוי עדיין להכיל אחד מהערכים האלה ועדיין להתחבר לשער ישן, וזה בדיוק המקרה שבו תצורה עובדת מסתירה תאריך הוצאה משימוש.

השיגו את גרסאות ה-Mac הנתמכות ואת מדיניות ההצעות שהשער מתחזק לפני שאתם בונים את הפרופיל. אחר כך בחרו את החיתוך ותעדו מדוע שאר האפשרויות הוחרגו. הערה שאומרת „השער עדיין מציע קבוצה 2 ללקוחות ישנים” שווה יותר מרשימת צפנים בלי היסטוריה. בלי ההערה הזו הסוקר הבא לא יכול להבחין בין חריגה מכוונת לבין מחדל.

בדקו את האימות בשורה נפרדת

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

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

פרסו מהדורה אחת ובדקו מה נוהל משא ומתן

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

במהלך הקבלה בדקו את התצורה המותקנת ואת שיוכי ה-IKE וה-Child SA שנוהלו באמצעות אבחון מאושר. אחר כך כפו חידוש מבוקר, כי החיבור הראשון מוכיח רק שהמשא ומתן הראשוני עבד; אי-התאמה בתוחלת החיים מופיעה בדרך כלל בהחלפת המפתח הראשונה, הרבה אחרי שהפריסה אושרה.

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

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