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

שאלות לגבי המדיניות הזו אפשר לשלוח לפורום המדיניות של CT: ct-policy@chromium.org

כשאישור Transport Layer Security‏ (TLS) של חיבור מאומת באפליקציה שבחרתם להצטרף ל-Certificate Transparency, מתבצעת הערכה של התאימות שלו למדיניות של Android Certificate Transparency‏ (CT). אישורים שמצורפים אליהם חותמות זמן של אישורים חתומות (SCT) שעומדים בדרישות המדיניות הזו נקראים 'תואמים ל-CT'.

תאימות ל-CT מתקבלת באמצעות אישור וקבוצה של SCT נלווים שעומדים בקבוצה של דרישות טכניות, שמוגדרות במדיניות הזו, ומופעלות על ידי ספריות TLS פופולריות (כולל Conscrypt המובנה של Android) במהלך אימות האישור.

מצבים ביומן CT

תאימות ל-CT ב-Android נקבעת על ידי הערכת SCTs מיומני CT ומוודאים שהיומנים האלה נמצאים במצבים הנכונים בזמן הבדיקה. אלה המצבים האפשריים של יומן CT:

  • Pending
  • Qualified
  • Usable
  • ReadOnly
  • Retired
  • Rejected

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

אישורים שתואמים ל-CT

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

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

בהתאם לאופן שבו האישורים המאובטחים (SCT) מוצגים ל-Android, תוכלו לעמוד בדרישות התאימות ל-CT על ידי עמידה באחד מהקריטריונים הבאים:

SCTs מוטמעים:

  1. לפחות אישור SCT מוטמע אחד מיומן CT שהיה בסטטוס Qualified,‏ Usable או ReadOnly בזמן הבדיקה.
  2. יש SCTs מוטמעים מ-N יומני CT נפרדים לפחות, שהיו בסטטוס Qualified, ‏ Usable, ‏ ReadOnly או Retired בזמן הבדיקה, כאשר N מוגדר בטבלה הבאה.
  3. מבין אישורי ה-SCT שעומדים בדרישות 2, לפחות שני אישורי SCT חייבים להונפק על ידי מפעילים נפרדים של יומני CT, כפי שהם מוכרים על ידי Android.
  4. מבין אישורי ה-SCT שעומדים בדרישות 2, לפחות אישור SCT אחד חייב להינתן מיומן שמערכת Android מזהה כתואם ל-RFC 6962.
משך החיים של האישור מספר ה-SCTs מיומני CT נפרדים
פחות מ-180 ימים 2
יותר מ-180 ימים 3

SCTs שנשלחים דרך OCSP או TLS:

  1. לפחות שני אישורי SCT מיומן CT שהיה בסטטוס Qualified,‏ Usable או ReadOnly בזמן הבדיקה.
  2. מבין אישורי ה-SCT שעומדים בדרישות 1, לפחות שני אישורי SCT חייבים להונפק על ידי מפעילים נפרדים של יומני CT, כפי ש-Android מזהה אותם.
  3. מבין אישורי ה-SCT שעומדים בדרישות 1, לפחות אחד מהם צריך להונפק מיומן CT שמערכת Android מזהה כעומד בדרישות של RFC6962.

גם עבור SCTs מוטמעים וגם עבור SCTs שנשלחים באמצעות OCSP או TLS, הייחודיות של Log Operator מוגדרת כרשומה נפרדת בקטע operators בקובץ log_list.json.

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

הערות חשובות

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

כדי לתרום לתאימות של אישור ל-CT, צריך שה-SCT הונפק לפני חותמת הזמן Retired ביומן, אם יש כזו. מערכת Android משתמשת ב-SCT המוקדם ביותר מבין כל ה-SCT שמוצגים כדי להעריך את תאימות ה-CT לפי חותמות הזמן Retired ביומן ה-CT. כך ניתן להביא בחשבון מקרים קיצוניים שבהם יומן CT הופך ללא פעיל במהלך תהליך שליחת הבקשות לרישום ביומן של אישורים.

'SCT מוטמע' הוא SCT שנשלח באמצעות התוסף SignedCertificateTimestampList X.509v3 בתוך האישור עצמו. שרתי TLS רבים לא תומכים בהצמדה של OCSP או בהרחבת TLS, לכן רשויות אישורים צריכות להיות מוכנות להטמיע SCTs באישורים שהנפיקו כדי להבטיח אימות מוצלח או טיפול EV ב-Android.

איך מוסיפים יומני CT ל-Android

הקריטריונים לכך שיומני CT יכולים לקבל את הערך Qualified, וגם התנאים שיכולים לגרום להם לקבל את הערך Retired, מפורטים במדיניות בנושא יומני CT של Chrome.

הזמן הקצוב לאכיפת CT

Google מפרסמת מדי יום רשימה חדשה של יומני CT שמכילה log_list_timestamp עדכני. פעם ביום, מכשירי Android ינסו להוריד את הגרסה העדכנית ביותר של הרשימה הזו למטרות אימות. בכל שלב, אם אין רשימת יומנים זמינה במכשיר או אם חותמת הזמן של רשימת היומנים ישנה יותר מ-70 יום, אכיפת CT תושבת. הזמן הקצוב הזה מספק ביטחון קריטי לסביבת ה-CT, שמאפשר ליומני CT חדשים לעבור בבטחה למצב 'ניתן לשימוש' תוך פרק זמן קבוע לאחר שהם הופכים ל-Qualified.