במאמר הזה מפורטים הדרישות שכל אישור בשרשרת X.509 צריך לעמוד בהן כדי שיוגדר כמהימן לשימוש באימייל מוצפן או באימייל שנחתם באמצעות S/MIME.
בנוסף לדרישות האלה, השרשרת צריכה להיות מעוגנת לאישור של רשות אישורים (CA) ש-Google סומכת עליה באופן מפורש למטרה הזו. אפשר גם לבחור לקבל אישורי בסיס מרשויות אישורים שאתם סומכים עליהן. למידע נוסף, אפשר לעיין בהנחיות לגבי אישור בסיס.
הערות:
- Google מספקת רשימה של אישורי CA שמוגדרים כאישורים מהימנים ב-Gmail לשימוש ב-S/MIME, וגם מתחזקת אותה. רשימת הרשויות להנפקת אישורים מהימנה אך ורק על פי שיקול דעתה של Google. Google שומרת לעצמה את הזכות להסיר רשויות אישורים של שורש בכל שלב ללא הודעה מוקדמת.
- מוודאים שהתוספים המותקנים לא סותרים תוספים אחרים באותו אישור. לדוגמה, אם מוגדרים nsCertTypes, הם צריכים לכסות את אותם שימושים בדיוק כמו התוסף key usage, התוסף extended key usage והתוסף basic constraints.
כללים לשרשרת אישורים
רשות אישורים (CA) עליונה
| שדה | ערך |
|---|---|
|
שם דומיין של המנפיק |
חובה לציין את רשות האישורים. לדוגמה, ה-DN לא יכול להיות ערך כללי כמו 'רשות אישורים'. |
|
שם דומיין של הנושא |
הטופס המקודד חייב להיות זהה בבייט ל-DN של המנפיק. |
|
פרטי מפתח ציבורי של נושא |
rsaEncryption עם מודול RSA של 2048, 3072 או 4096. או ecPublicKey באמצעות secp256r1 או secp384r1. |
אישורי ביניים של CA שאינם מה-CA שמנפיק אישורי ביניים
אפשר להשתמש במידע הזה אם יש יותר מ-CA ביניים אחד בין שורש ה-CA לבין ישות הקצה, באופן ישיר או עקיף.
רשות האישורים ברמת הביניים שמנפיקה את האישור היא רשות האישורים ברמת הביניים שמנפיקה את האישור של ישות הקצה. הסעיף הזה רלוונטי לכל רשויות אישורים ברמת הביניים בשרשרת, מלבד רשות האישורים ברמת הביניים שהנפיקה את האישור.
| שדה | ערך | ||
|---|---|---|---|
| גרסה | גרסה 3 | ||
| מספר סידורי | הערך חייב להיות גדול מאפס (0). כשמבצעים קידוד DER כמספר שלם, הערך חייב להיות קטן מ-20 בייטים או שווה לו. | ||
| אלגוריתם חתימה | RSA עם SHA‐256, SHA‐384 או SHA‐512. או ECDSA עם SHA‐256, SHA‐384 או SHA‐512 | ||
| שם דומיין של המנפיק |
הערך חייב להיות זהה לערך של Subject DN של רשות האישורים המנפיקה, כולל כל בית. |
||
| תקופת תוקף | ללא תנאי | ||
| שם דומיין של הנושא | ללא תנאי | ||
| פרטי מפתח ציבורי של נושא |
rsaEncryption עם מודול RSA של 2048, 3072 או 4096. או ecPublicKey באמצעות secp256r1 או secp384r1 |
||
| תוסף | נוכחות | קריטי | ערך |
| שימוש במפתח | חובה | כן |
צריך להגדיר את מיקומי הביטים הבאים: keyCertSign |
| מגבלות בסיסיות | חובה | כן | השדה cA צריך להיות מוגדר כ-true צריך לכלול את השדה pathLenConstraint |
| נקודות הפצה של CRL | חובה | לא |
צריך לציין לפחות מזהה משאב אחיד (URI) אחד של HTTP |
| (הערה) | שרתי ביטול צריכים לעמוד בדרישות הבאות של מדיניות האישורים של CA/Browser Forum בנושא הנפקה וניהול של אישורים מהימנים לציבור,גרסה 1.3.2 ואילך:
|
||
| תוספים אחרים | יכול להיות שיהיה נוכח | ||
אישור CA ביניים שמנפיק את ישות הקצה
חשוב: בשרשרת חייב להיות לפחות אישור CA ביניים אחד. כלומר, רשות הבסיס לא יכולה להנפיק ישירות אישורים של ישויות קצה.
| שדה | ערך | ||
|---|---|---|---|
| גרסה | גרסה 3 | ||
| מספר סידורי | הערך חייב להיות גדול מאפס (0), וכשהוא מקודד ב-DER כמספר שלם, הוא חייב להיות קטן מ-20 בייט או שווה לו. | ||
| אלגוריתם חתימה |
RSA עם SHA‐256, SHA‐384 או SHA‐512. או ECDSA עם SHA‐256, SHA‐384 או SHA‐512. |
||
| שם דומיין של המנפיק |
הערך חייב להיות זהה לערך של Subject DN של רשות האישורים המנפיקה, כולל כל בית. |
||
| תקופת תוקף |
ההבדל בין notBefore לבין notAfter התקופה לא יכולה להיות ארוכה מ-10 שנים, ולא יכולה להיות ארוכה מ-20 שנים. |
||
| שם דומיין של הנושא |
צריך לציין את השימוש ב-CA. |
||
| פרטי מפתח ציבורי של נושא |
rsaEncryption עם מודול RSA של 2048, 3072 או 4096. או ecPublicKey באמצעות secp256r1 או secp384r1 |
||
| תוסף | נוכחות | קריטי | ערך |
| שימוש במפתח | חובה | כן |
צריך להגדיר את מיקומי הביטים עבור: אסור להגדיר מיקומי ביטים אחרים |
| שימוש מורחב במפתח | חובה | בשני המצבים | חייב להיות נוכח: emailProtection אסור להיות נוכח: serverAuth codeSigning timeStamping anyExtendedKeyUsage |
|
מגבלות בסיסיות |
חובה | כן |
השדה cA צריך להיות מוגדר כ-true |
| מדיניות אישורים | אופציונלי | לא |
צריך לספק policyIdentifier שמזהה את המדיניות שלפיה פועלת רשות האישורים, והוא לא יכול להיות anyPolicy. |
| נקודות הפצה של CRL | חובה | לא |
צריך לציין לפחות מזהה משאב אחיד (URI) אחד של HTTP |
| (הערה) |
שרתי ביטול צריכים לפעול בהתאם לסעיפים הבאים של מדיניות האישורים של CA/Browser Forum Baseline Requirements בנושא הנפקה וניהול של אישורים מהימנים לציבור, גרסה 1.3.2 ואילך:
|
||
| תוספים אחרים | אופציונלי | לא |
יכול להיות שיופיע. |
אישור של ישות קצה
| שדה | ערך | ||
|---|---|---|---|
| גרסה | גרסה 3 | ||
| מספר סידורי |
הערך חייב להיות גדול מאפס (0) ולהכיל לפחות 64 ביטים בלתי צפויים. הערה: נעדכן את המאמר בהתאם לדרישות האנטרופיה של המספר הסידורי של ישות הקצה שמופיעות במדיניות האישורים של CA/Browser Forum Baseline Requirements. |
||
| אלגוריתם חתימה | RSA עם SHA‐256, SHA‐384 או SHA‐512. או ECDSA עם SHA‐256, SHA‐384 או SHA‐512. | ||
| שם דומיין של המנפיק |
הערך חייב להיות זהה לערך של Subject DN של רשות האישורים המנפיקה, כולל כל בית. |
||
| תקופת תוקף |
ההפרש בין notBefore ל-notAfter לא יכול להיות ארוך מ-27 חודשים. השעה שמוגדרת ב-notBefore חייבת להיות השעה של החתימה, בתוספת או בניכוי של 48 שעות. |
||
| שם דומיין של הנושא |
כל שמות יחסיים מובחנים של נושאים, מלבד כתובת אימייל, חייבים לעבור אימות קפדני לפני הנפקתם, באמצעות הליך שמתועד ונבדק באופן ציבורי. הליך מקובל מפורט בקטע 3.2.3 'אימות של זהות אישית' במדיניות האישורים של CA/Browser Forum בנושא הנפקת אישורים וניהול אישורים שמהימנים על הציבור, גרסה 1.3.2 ואילך. כל כתובות האימייל (לדוגמה, בשדות commonName או emailAddress) צריכות להופיע גם בתוסף Subject Alternate Name בתור rfc822Name. |
||
| פרטי מפתח ציבורי של נושא |
rsaEncryption עם מודול RSA של 2048, 3072 או 4096. או ecPublicKey באמצעות secp256r1 או secp384r1 |
||
| תוסף | נוכחות | קריטי | ערך |
| שימוש במפתח (RSA) | חובה | כן |
צריך להגדיר את מיקומי הביטים עבור: אסור להגדיר מיקומי ביטים אחרים. |
| שימוש במפתח (ECDH) | חובה |
חובה להגדיר את מיקומי הביטים עבור: אסור להגדיר מיקומי ביטים אחרים. |
|
| שימוש מורחב במפתח | חובה | בשני המצבים |
חייב להיות נוכח: |
|
מגבלות בסיסיות |
אופציונלי | בשני המצבים |
אם השדה הזה קיים, השדה cA לא יכול להיות מוגדר כ-true |
| מדיניות אישורים | חובה | לא |
חובה להציג: צריך לספק policyIdentifier שמזהה את המדיניות שלפיה הונפק האישור, ואסור שיהיה anyPolicy. יכול להיות שיופיע: cps. אם הוא מופיע, הוא חייב להכיל קישור תקין מסוג HTTP או HTTPS אל ה-CPS שעל פיו הונפק האישור. |
|
גישה לפרטי רשות |
אופציונלי | לא |
הפרמטרים caIssuers ו-ocsp, אם הם קיימים, חייבים להכיל לפחות מזהה משאב אחיד (URI) מסוג HTTP שזמין לציבור. הפרמטר AccessDescription לא יכול להכיל תוויות או פרמטרים שספציפיים לאישור מסוים. |
| נקודות הפצה של CRL | חובה | לא |
צריך לציין לפחות מזהה משאב אחיד (URI) של HTTP |
|
(הערה) |
שרתי ביטול צריכים לפעול בהתאם לסעיפים הבאים של מדיניות האישורים של CA/Browser Forum Baseline Requirements בנושא הנפקה וניהול של אישורים מהימנים לציבור, גרסה 1.3.2 ואילך:
|
||
|
שם חלופי לנושא |
חובה | לא |
חייב להכיל לפחות פריט אחד מסוג rfc822Name. |
|
תוספים אחרים |
אופציונלי | לא | יכול להיות שיופיע. |