מניעת התנגשויות בין כללי מדיניות ופתרון שלהן
מדיניות ב-Certificate Authority Service יכולה להיות מדיניות הנפקה של מאגר רשויות אישורים או תבנית אישור. מדיניות הנפקת האישורים מגדירה את הכללים הכלליים למאגר של רשויות אישורים, בעוד שתבניות האישורים מספקות הוראות ספציפיות יותר לסוגים שונים של אישורים. מידע על אמצעי בקרה בנושא מדיניות זמין במאמר מידע על אמצעי בקרה בנושא מדיניות. כללי מדיניות מורכבים משני חלקים עיקריים:
ערכי בסיס: ערכי בסיס (נקראים גם ערכים מוגדרים מראש) הם הגדרות חובה לכל האישורים שהונפקו על ידי מדיניות ספציפית. לדוגמה, יכול להיות שיש לכם מדיניות שאומרת: "כל אישור שמונפק במסגרת המדיניות הזו חייב להפעיל את הדגל
digitalSignatureבתוסףkeyUsage". כך אפשר לוודא שכל האישורים שמונפקים על ידי המדיניות הזו יכולים לשמש לחתימות דיגיטליות.מגבלות על תוספים: מגבלות על תוספים מגבילות את התוספים שאפשר להוסיף לאישורים מחוץ למדיניות עצמה. לדוגמה, יכול להיות שמדיניות תציין: "רק את התוסף AIA-OCSP מותר להוסיף לאישורים שלא נכללים במדיניות הזו". כלומר, אם מישהו ינסה להוסיף תוספים אחרים (כמו שם חלופי של בעלים (subject)) באמצעות מדיניות אחרת או ישירות בבקשת האישור, התוספים האלה יתעלמו.
כשמבקשים אישור, מאגר רשויות האישורים משתמש בתבנית שצוינה כדי ליצור את האישור. עם זאת, מדיניות ההנפקה שמצורפת למאגר רשויות האישורים גם בודקת את הבקשה בהתאם לכללים שלה. סכסוכים מתרחשים כשההגדרות בתבנית של אישור סותרות את ההגדרות במדיניות הנפקת האישורים שנוספה למאגר CA, כי שתיהן מנסות לאכוף כללים על אותו אישור. אלה כמה תרחישים אפשריים:
הגדרות חופפות של תוספים
סתירות מתרחשות כשאותו תוסף מוגדר בערכי הבסיס של שתי המדיניות. לדוגמה, אם מגדירים את אותו התוסף keyUsage במדיניות ההנפקה של מאגר CA ובתבנית האישור, Certificate Authority Service מזהה את זה כהתנגשות גם אם מציינים חלקים שונים של התוסף בכל מקום.
דוגמה:
- מדיניות הנפקה: נדרש
digitalSignature: trueבתוסףkeyUsage. - תבנית אישור: נדרש
keyEncipherment: trueבתוסףkeyUsage.
המצב הזה עדיין נחשב כבעיה כי Certificate Authority Service מתייחס לכל התוסף כיחידה אחת ובודק אם התוסף מוגדר בשני המקומות, ולא את הערכים הספציפיים בתוך התוסף.
כדי למנוע התנגשויות, חשוב להגדיר כל תוסף רק פעם אחת, במדיניות ההנפקה של מאגר רשויות האישורים או בתבנית האישור, אבל לא בשניהם. כך אפשר לוודא שההסבר ברור ולמנוע כשלים לא צפויים בהנפקת האישור.
מגבלות סותרות של תוספים וערכי בסיס
סתירה בין כללי מדיניות מתרחשת כאשר מגבלות ההרחבה של כלל מדיניות אחד מתנגשות עם ערכי הבסיס של כלל מדיניות אחר. המצב הזה קורה במקרים הבאים:
- מדיניות אחת מגבילה או אוסרת על שימוש בתוסף: יכול להיות שההגבלה או האיסור חלים על כל התוספים, או שקיימת רשימה ספציפית של תוספים מותרים שלא כוללת את התוסף הרלוונטי.
- מדיניות אחרת דורשת את אותה תוסף: המשמעות היא שלמדיניות השנייה יש ערך בסיסי מוגדר עבור התוסף הספציפי הזה.
דוגמה:
- מדיניות הנפקה: כוללת אילוצי תוספים שמאפשרים רק את התוסף
keyUsage. - תבנית אישור: נדרש התוסף
certificatePoliciesבערכי הבסיס שלה.
נוצרת התנגשות כי מדיניות ההנפקה אוסרת למעשה על התוסף certificatePolicies, אבל תבנית האישור דורשת אותו.
כשמגדירים את כללי המדיניות, חשוב לשקול בקפידה את ערכי הבסיס ואת מגבלות ההרחבה כדי לוודא שהם פועלים יחד. מוודאים שלא יהיו מצבים שבהם מדיניות אחת מגבילה תוסף שמדיניות אחרת דורשת. כך נמנעים קונפליקטים ומובטח שהנפקת האישורים תתבצע בצורה חלקה.
התנגשויות בביטויים של Common Expression Language (CEL)
אם אתם משתמשים ב-Common Expression Language (CEL) כדי לשלוט בצורה פרטנית, יכולים להיווצר קונפליקטים בגלל ביטויים סותרים בתבנית האישור ובמדיניות ההנפקה.
התנגשויות כאלה מונעות הנפקה של אישורים ממאגר ה-CA. לדוגמה,
יכול להיות שיש לכם ביטוי אחד שדורש ששם הדומיין יסתיים ב-.example.com וביטוי אחר שדורש שהוא יסתיים ב-.example.net. שני הביטויים האלה של CEL מטילים הגבלות שונות על אותו שדה, ולכן כל הבקשות להנפקת אישורים נכשלות.
אם אתם משתמשים גם במדיניות הנפקת אישורים וגם בתבניות אישורים, מומלץ לוודא שביטויי ה-CEL שלהם לא סותרים זה את זה.
בכל התרחישים האלה, CA Service API מחזיר שגיאה של ארגומנט לא חוקי.
פתרון בעיות בהתנגשויות מדיניות
כש-CA Service API מזהה התנגשות במדיניות, ה-API מחזיר שגיאה של ארגומנט לא תקין ובקשת האישור נכשלת. כדי לראות את העימותים בין המדיניות ולפתור אותם:
- לוחצים על הקישור פותר הבעיות של מדיניות ההנפקה שמוצג עם הודעת השגיאה. יופיע דף לפתרון בעיות שבו תוכלו להשוות בין ערכי הבסיס והמגבלות של התוסף במדיניות ההנפקה של מאגר אישורי ה-CA לבין ערכי הבסיס והמגבלות של התוסף בתבנית האישור. שימו לב שהקונפליקטים במדיניות מסומנים בהדגשה.
- כדי לפתור את הבעיה, צריך להיכנס למאגר CA או לתבנית האישור ולעדכן את הערכים שיוצרים את הקונפליקט.
אחרי שהבעיה תיפתר, צריך לשלוח שוב את בקשת האישור.