יומני שקיפות אישורים (CT)

עדכון אחרון: | הצגת כל התיעוד

לתשומת לבך: הגרסה האנגלית נערכה מאז שתורגמה () מעבר לאנגלית

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

מערכת Let's Encrypt מגישה את כל האישורים שאנו מנפיקים ליומני שקיפות אישורים. אנו מפעילים בנוסף שני יומני שקיפות אישורים שנתיים בחלוקה ליחידות גיבוי בשמות Oak ו־Testflume. כל רשויות האישורים שנחשבות למהימנות בעיני הציבור מוזמנות לתעד ליומנים שלנו. אישורים עליונים רבים של מגוון רשויות אישורים כבר נכללו ביומני שקיפות האישורים שלנו. ניתן ליצור אתנו קשר בדוא״ל בנוגע להוספת אישורים עליונים ליומנים שלנו אם האישור שלך לא נכלל אצלנו.

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

מימון

אנו מעוניינים להודות לשותפים הבאים על נדיבותם במימון יומן שקיפות האישורים (CT) של Let's Encrypt. אם הארגון שלך מעוניין להמשיך בעבודה הזאת, נא לשקול לתת חסות או לתרום.

Sectigo

ארכיטקטורה

בבלוג שלנו ניתן לראות כיצד Let's Encrypt מריץ יומני שקיפות אישורים!

מעקב אחר יומנים

ארגון Let's Encrypt יצר כלי מעקב יומני שקיפות אישורים בקוד פתוח בשם CT Woodpecker (נקר יומני אישורים). אנו משתמשים בכלי הזה כדי לעקוב אחר יציבות ותאימות היומנים שלנו עצמנו ומקווים שגם אחרים יעזרו בו.

יומני שקיפות אישורים

פעילות מלאה (Production)

בדיקה (Testing)


פעולות על היומן

כדי למנות את האישורים העליונים הנכללים ליומן שקיפות אישורים מסוים עליך להריץ את הפקודה הבאה במסוף החביב עליך:

$ for i in $(curl -s https://oak.ct.letsencrypt.org/2020/ct/v1/get-roots | jq -r '.certificates[]'); do
    echo '------'; base64 -d <<< "${i}" | openssl x509 -inform der -noout -issuer -serial
done

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

$ echo | \
openssl s_client \
    -connect "letsencrypt.org":443 \
    -servername "letsencrypt.org" \
    -verify_hostname "letsencrypt.org" 2>/dev/null | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > example.crt

לפני שניתן להגיש אישור, יש לקודד אותו ל־JSON במבנה מיוחד. ניתן להשתמש במחולל ה־JSON שסופק על ידי https://crt.sh/gen-add-chain לביצוע הפעולה הזאת. הכלי crt.sh יחזיר מאגד JSON. עליך להוריד את המאגד למחשב שלך, לשנות את שם הקובץ אם יש בכך צורך ולהריץ את הפקודה הבאה כדי לבצע פעולת add-chain (הוספת שרשרת - RFC 6962 סעיף 4.1) כדי להגיש את האישור ליומן שקיפות האישורים. הפלט יכיל חתימה שהיא למעשה SCT. נפרט יותר על החתימה עוד רגע קט.

$ curl \
    -X POST \
   --data @example-json-bundle.json \
    -H "Content-Type: application/json" \
    -H "User-Agent: lets-encrypt-ct-log-example-1.0" \
   https://oak.ct.letsencrypt.org/2020/ct/v1/add-chain
{"sct_version":0,"id":"5xLysDd+GmL7jskMYYTx6ns3y1YdESZb8+DzS/JBVG4=","timestamp":1576689972016,"extensions":"","signature":"BAMARzBFAiEA4OmuTcft9Jq3XLtcdZz9XinXCvYEY1RdSQICXayMJ+0CIHuujkKBLmQz5Cl/VG6C354cP9gxW0dfgMWB+A2yHi+E"}

כדי לאמת שיומן שקיפות האישורים נחתם על ידי שבר 2020 של Oak, אנו משתמשים בשדה המזהה (id) מהפקודה שלהלן ומריצים אותו דרך הפקודה הבאה. תוצאות הפלט של הפקודה הזאת יציג את מזהה היומן של יומן שקיפות האישורים.

$ base64 -d <<< "5xLysDd+GmL7jskMYYTx6ns3y1YdESZb8+DzS/JBVG4=" | xxd -p -c 64 | sed -e 's/../&:/g' -e 's/:$//' | tr '[:lower:]' '[:upper:]'
E7:12:F2:B0:37:7E:1A:62:FB:8E:C9:0C:61:84:F1:EA:7B:37:CB:56:1D:11:26:5B:F3:E0:F3:4B:F2:41:54:6E

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

$ base64 -d <<< "BAMARzBFAiEA4OmuTcft9Jq3XLtcdZz9XinXCvYEY1RdSQICXayMJ+0CIHuujkKBLmQz5Cl/VG6C354cP9gxW0dfgMWB+A2yHi+E" | xxd -p -c 16 | sed -e 's/../&:/g' -e 's/:$//' | tr '[:lower:]' '[:upper:]'
04:03:00:47:30:45:02:21:00:E0:E9:AE:4D:C7:ED:F4
9A:B7:5C:BB:5C:75:9C:FD:5E:29:D7:0A:F6:04:63:54
5D:49:02:02:5D:AC:8C:27:ED:02:20:7B:AE:8E:42:81
2E:64:33:E4:29:7F:54:6E:82:DF:9E:1C:3F:D8:31:5B
47:5F:80:C5:81:F8:0D:B2:1E:2F:84