Let's Encrypt

רשות אישורים שהושקה ב־2015

Let's Encrypt היא רשות להנפקת תעודות ללא כוונת רווח המנוהלת על ידי Internet Security Research Group‏ (ISRG) המספקת אישורי X.509 עבור קידוד TLS ‏(Transport Layer Security) ללא עלות. האישור תקף למשך 90 יום וניתן לחדש אותו במהלכם בכל עת בתהליך אוטומטי. הרשות הושקה ב־12 באפריל 2016, ונכון לתחילת 2024 הארגון מספק אישורים לכמעט 400 מיליון אתרים.[1]

Let's Encrypt
תחום קריפטוגרפיה עריכת הנתון בוויקינתונים
מדינה ארצות הברית עריכת הנתון בוויקינתונים
מטה הארגון סן פרנסיסקו עריכת הנתון בוויקינתונים
מייסדים קרן החזית האלקטרונית, קרן מוזילה, אוניברסיטת מישיגן עריכת הנתון בוויקינתונים
עובדים 13 (2019)
תקופת הפעילות 18 בנובמבר 2014 – הווה (10 שנים) עריכת הנתון בוויקינתונים
https://letsencrypt.org
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

מטרת המיזם היא ליצור חיבורים מוצפנים לשרתי אינטרנט בכל מקום. [2] ביטול העלות, הגדרת שרתים, ניהול אימות בדוא״ל ומשימות חידוש אישורים נועדו להפחית משמעותית את המורכבות של הגדרת ותחזוקת הצפנת TLS.

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

השירות מנפיק אך ורק אישורי אימות שם תחום, מכיוון שניתן להנפיק אותם באוטומציה מלאה. אימות ארגון ואישורי אימות מורחבים שניהם דורשים אימות אנושי עבור כל אחד מהם, ולכן אינם מוצעים על ידיLet's Encrypt. בזכות שקיפות מרבית ככל הניתן, בארגון מקווים לשמור על האמינות וגם להגן מפני התקפות וניסיונות תמרון. לשם כך מפרסם הארגון באופן קבוע דוחות שקיפות, מתעד פומבית את כל פעולות ה־ACME (למשל באמצעות שקיפות אישורים) ומשתמשים בתקנים פתוחים ובתכנה חופשית ככל הניתן. התמיכה ב־ACME v2 ובאישורים כוללניים נוספה במרץ 2018. [3]

גופים מעורבים

עריכה

Let's Encrypt הוא שירות שמסופק על ידי קבוצת מחקר אבטחת האינטרנט (ISRG), שהוא ארגון לתועלת הציבור. נותני החסות העיקריים הם קרן החזית האלקטרונית (EFF), קרן מוזילה, OVH, סיסקו מערכות, גוגל, AWS ואיגוד האינטרנט העולמי.[4] שותפים נוספים כוללים את רשות האישורים IdenTrust, את אוניברסיטת מישיגן (UM), את בית הספר למשפטים של אוניברסיטת סטנפורד, את קרן לינוקס, את סטיבן קנט מ־Raytheon / BBN טכנולוגיות ואת אלכס פולבי מ־CoreOS.[דרוש מקור]

טכנולוגיה

עריכה

ביוני 2015, הכריזה Let's Encrypt על יצירת אישור ה־RSA העליון הראשון שלה ISRG Root X1.[5] האישור שימש כדי לחתום על שני אישורי תווך, שנחתמו באופן צולב גם על ידי רשות האישורים IdenTrust. אחת מתעודות התווך משמשת לחתימה על אישורים שהונפקו, ואילו השנייה נשמרת במצב לא מקוון כגיבוי במקרה של תקלות עם אישור התווך ראשון. מכיוון שאישור IdenTrust מותקן מראש בדפדפני האינטרנט הגדולים, האישורים של Let's Encrypt מאומתים ומתקבלים עם ההתקנה עוד לפני שספקי הדפדפנים כוללים את האישור העליון של ISRG כעוגן אמון.

מפתחי Let's Encrypt תכננו להנפיק אישור ECDSA עליון גם כן במהלך 2015,[5] שנדחה לתחילת 2016 ואז שוב לשנת 2020.[6][7][8]

פרוטוקול ACME

עריכה

פרוטוקול האתגר-מענה שמשמש לאוטומציה של ההרשמה לרשות האישורים נקרא ACME ‏(Automated Management Management Certificate). הפרוטוקול עוסק בבקשות שונות לשרת האינטרנט עבור שם התחום המכוסה על ידי האישור. אם התגובות שהתקבלו תואמות את הציפיות, לנרשם מובטחת שליטה על שם התחום (אימות שם תחום). כדי לעשות זאת, תוכנית הלקוח ACME מגדירה שרת TLS מיוחד במערכת השרת שמתושאל על ידי שרת רשות האישורים של ACME עם בקשות מיוחדות המשתמשות בחיווי שם שרת (אימות שם תחום באמצעות חיווי שם שרת, DVSNI).

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

התקשורת מול ACME מבוססת על החלפת מסמכי JSON על גבי חיבורי HTTPS. מפרט טיוטה זמין ב־GitHub והוגשה גרסה Internet Engineering Task Force‏ (IETF) כהצעה לתקן אינטרנטי.

ב־Let's Encrypt מומשה טיוטה עצמאית לפרוטוקול ACME. במקביל, הייתה גם חתירה לתקינה. מה שהוביל ל„תקן המוצע” (RFC8555) במאי 2019. הצעה זו הציגה שינויים שסותרים גרסאות קודמות ולכן זכה לכינוי ACMEv2.‏ Let's Encrypt מימשה את הגרסה החדשה והחלה לעודד לקוחות קיימים לשדרוגים. העידוד בוצע תוך הפסקות פעילות שירות לסירוגין של ממשק ה־API של ACMEv1. סיום חיי התקן הישן הוכרז יחד עם תאריכים ושלבים בסעיף „תוכנית סוף החיים עבור ACMEv1”. [9]

סיום חיי ACMEv1

עריכה
רישומי חשבון חדשים
עריכה

סביבת הכנה להקמה:

  • 2019 - 6 באוגוסט עד 7 באוגוסט - השבתה חלקית ראשונה
  • 2019 - 13 באוגוסט עד 15 באוגוסט - השבתה חלקית שנייה
  • 2019 - 27 באוגוסט עד 3 בספטמבר - השבתה חלקית שלישית
  • 2019 - 1 באוקטובר - רישום חשבונות ACME v1 חדשים הושבת לצמיתות

סביבת פעילות שוטפת:

  • 2019 - 10 באוקטובר עד 11 באוקטובר - השבתה חלקית ראשונה
  • 2019 - 16 באוקטובר עד 18 באוקטובר - השבתה חלקית שנייה
  • 2019 - 8 בנובמבר - רישום חשבונות ACME v1 חדשים הושבת לצמיתות
אימות שמות תחום חדשים
עריכה

יוני 2020 - אימות שמות תחום חדשים יושבת

אימותי חידוש אישורים
עריכה

השבתות חלקיות ל־24 שעות תחלנה בינואר 2021

יוני 2021 - ACMEv1 יושבת לחלוטין

מימוש תוכנתי

עריכה
 
דו-שיח לבחירת שם תחום

רשות האישורים נשענת על תוכנית בשם Boulder, שנכתבה ב־Go, שמיישמת את צד השרת של פרוטוקול ACME. התוכנית מופצת כתוכנה חופשית יחד עם קוד המקור תחת תנאי גרסה 2 של הרישיון הציבורי של מוזילה (MPL). היא מספקת API מסוג RESTful שניתן לגשת אליו דרך ערוץ TLS מוצפן. Boulder משתמש ב־cfssl, ערכת כלים של CloudFlare PKI/TLS, באופן פנימי. [10]

תוכנית שכתובה בפייתון ברישיון אפאצ'י לניהול אישורים בשם certbot (לשעבר letsencrypt) מותקנת בצד הלקוח (שרת האינטרנט של מי שנרשם לשירות). התוכנית משמשת להזמנת האישור, ניהול תהליך אימות שם התחום, התקנת האישור, הגדרת תצורת ה־HTTPS בשרת HTTP ובהמשך חידוש הקובץ של האישור באופן קבוע. לאחר ההתקנה וההסכמה לרישיון המשתמש די בביצוע פקודה בודדת כדי להתקין אישור תקף. ניתן להפעיל אפשרויות נוספות כמו שידוך OCSP או HTTP Strict Transport Transport (HSTS). ההתקנה אוטומטית עובדת בשלב זה רק עם אפאצ׳י ועם Nginx.

מערכת Let's Encrypt מנפיקה אישורים שתקפים ל־90 יום. הסיבה לכך היא שאישורים אלו „מגבילים נזק כתוצאה מפגיעה במפתח והנפקה שגויה” ומעודדים אוטומציה. [11]

בהתחלה, Let's Encrypt פיתחה לקוח ACME משלה - Certbot - כמימוש רשמי. הלקוח הועבר לקרן החזית האלקטרונית ושמו הקודם „letsencrypt” הוחלף ב־„certbot”. יש מבחר גדול של לקוחות ומיזמים סביב ACME שפותחו על ידי הקהילה למגוון סביבות. [12]

 
דוגמה לאתר עם אישור של Let's Encrypt

היסטוריה

עריכה

מיזם Let's Encrypt נוסד בשנת 2012 על ידי שני עובדי מוזילה, ג׳וש אאס ואריק רסקורלה, יחד עם פיטר אקרסלי מקרן החזית האלקטרונית וג׳. אלכס הלדרמן מאוניברסיטת מישיגן. קבוצת מחקר אבטחת האינטרנט, החברה שמאחורי Let's Encrypt, נוסדה במאי 2013.

ההכרזה לציבור יצאה ב־18 בנובמבר 2014.

ב־28 בינואר 2015 הוגש פרוטוקול ACME ל־IETF באופן רשמי לצורך תקינה. ב־9 באפריל 2015 הכריזו ISRG וקרן לינוקס על שיתוף פעולה. האישורים העליונים ואישורי התווך נוצרו בתחילת יוני. ב־16 ביוני 2015, הוכרז לוח הזמנים הסופי להשקת השירות, כאשר הנפקת האישור הראשון צפויה הייתה מתישהו בשבוע סביב 27 ביולי 2015 ולאחריו תקופת הנפקה מוגבלת לבדיקת האבטחה ויכולת הגדילה. הזמינות הכללית של השירות תוכננה במקור להתחיל מתישהו בשבוע של 14 בספטמבר 2015. ב־7 באוגוסט 2015, תוקן לוח הזמנים של ההשקה כדי לספק זמן רב יותר להבטיח אבטחה ויציבות מערכתית, כאשר האישור הראשון שהונפק בשבוע סביב 7 בספטמבר 2015 ולאחריו זמינות כללית בשבוע שסביב 16 בנובמבר 2015. החתימה הצולבת של IdenTrust תוכננה להיות זמינה עם פתיחת Let's Encrypt לקהל הרחב.

ב־14 בספטמבר 2015, Let's Encrypt הנפיקה את האישור הראשון שלה, שהיה מיועד לשם התחום helloworld.letsencrypt.org. באותו יום הגישה ISRG את יישומי תוכנית האישור העליון שלה למוזילה, מיקרוסופט, גוגל ואפל.

ב־19 באוקטובר 2015, אישורי התווך נחתמו באופן צולב על ידי IdenTrust, מה שגרם לכך שכל האישורים שהונפקו על ידי Let's Encrypt ייחשבו מהימנים על ידי כל הדפדפנים הגדולים.

ב־12 בנובמבר 2015, Let's Encrypt הודיעה כי הזמינות הכללית תידחה וכי הבטא הציבורית הראשונה תתחיל ב־3 בדצמבר 2015. הבטא הציבורית התקיימה החל מ־3 בדצמבר 2015 [13] ועד 12 באפריל 2016.[14]

ב־3 במרץ 2020, Let's Encrypt הודיעה כי תצטרך לבטל למעלה מ־3 מיליון אישורים ב־4 במרץ, עקב פגם בתוכנית רשות האישורים שלה. [15] באמצעות עבודה עם ספקי תוכנה ויצירת קשר עם מפעילי אתרים, Let's Encrypt הצליחה לחדש 1.7 מיליון מהתעודות המושפעות לפני המועד האחרון. בסופו של דבר הוחלט לא לבטל את שאר האישורים הנגועים, מכיוון שהסיכון לאבטחת המידע היה נמוך ותוקף האישורים אמור היה לפוג במהלך 90 הימים שלאחר מכן בכל מקרה.[16]

במרץ 2020 הוענק ל־Let's Encrypt הפרס השנתי של קרן התוכנה החופשית למיזמים בעלי תועלת חברתית. [17]

אישורים שהונפקו

עריכה
תאריך אישורים שהונפקו
8 במרץ 2016 מיליון [18]
21 באפריל 2016 2 מיליון [19]
3 ביוני 2016 4 מיליון [20]
22 ביוני 2016 5 מיליון [21]
9 בספטמבר 2016 10 מיליון
27 בנובמבר 2016 20 מיליון
12 בדצמבר 2016 24 מיליון
28 ביוני 2017 100 מיליון [22]
6 באוגוסט 2018 115 מיליון [23]
14 בספטמבר 2018 380 מיליון [24]
24 באוקטובר 2019 837 מיליון [25]
27 בפברואר 2020 מיליארד [26]


לקריאה נוספת

עריכה
  • Barnes, R.; Hoffman-Andrews, J.; McCarney, D.; Kasten, J. (מרץ 2019). סביבת ניהול אישורים אוטומטית (ACME) RFC 8555. IETF.

קישורים חיצוניים

עריכה
  מדיה וקבצים בנושא Let's Encrypt בוויקישיתוף

הערות שוליים

עריכה
  1. ^ Let's Encrypt Stats - Let's Encrypt, letsencrypt.org (באנגלית אמריקאית)
  2. ^ "How It Works". Let's Encrypt. נבדק ב-9 ביולי 2016. {{cite web}}: (עזרה)
  3. ^ Aas, Josh (13 במרץ 2018). "ACME v2 and Wildcard Certificate Support is Live". Let's Encrypt. נבדק ב-24 במאי 2018. {{cite web}}: (עזרה)
  4. ^ https://www.abetterinternet.org/sponsors/
  5. ^ 1 2 Aas, Josh (4 ביוני 2015). "Let's Encrypt Root and Intermediate Certificates". Let's Encrypt. {{cite web}}: (עזרה)
  6. ^ "Certificates". Let's Encrypt. אורכב מ-המקור ב-3 בדצמבר 2015. {{cite web}}: (עזרה)
  7. ^ Aas, Josh (13 באוגוסט 2015). "Elliptic Curve Cryptography (ECC) Support". Let's Encrypt. אורכב מ-המקור ב-12 בדצמבר 2015. {{cite web}}: (עזרה)
  8. ^ "Certificates". Let's Encrypt. אורכב מ-המקור ב-9 באוקטובר 2017. {{cite web}}: (עזרה)
  9. ^ End of Life Plan for ACMEv1
  10. ^ 'Run Boulder inside your organization?' from Let's Encrypt user forum
  11. ^ Aas, Josh (9 בנובמבר 2015). "Why ninety-day lifetimes for certificates?". Let's Encrypt. נבדק ב-2016-06-26. {{cite web}}: (עזרה)
  12. ^ "Let's Encrypt - Documentation".
  13. ^ "Entering Public Beta - Let's Encrypt - Free SSL/TLS Certificates". Let's Encrypt. 3 בדצמבר 2015. נבדק ב-6 בינואר 2016. {{cite web}}: (עזרה)
  14. ^ "Let's Encrypt Leaves Beta". LinuxFoundation.org. אורכב מ-המקור ב-15 באפריל 2016. נבדק ב-17 באפריל 2016. {{cite web}}: (עזרה)
  15. ^ "Revoking certain certificates on March 4". נבדק ב-4 במרץ 2020. {{cite web}}: (עזרה)
  16. ^ Barrett, Brian. "The Internet Avoided a Minor Disaster Last Week". Wired. Conde Nast. נבדק ב-9 במרץ 2020. {{cite web}}: (עזרה)
  17. ^ Let's Encrypt, Jim Meyering, and Clarissa Lima Borges receive FSF's 2019 Free Software Awards Free Software Foundation, 2020
  18. ^ Aas, Josh (8 במרץ 2016). "Our Millionth Certificate - Let's Encrypt - Free SSL/TLS Certificates". letsencrypt.org. נבדק ב-15 במרץ 2016. {{cite web}}: (עזרה)
  19. ^ "Let's Encrypt Reaches 2,000,000 Certificates". 2016-04-22. נבדק ב-2016-09-24.
  20. ^ "Let's Encrypt Stats". letsencrypt.org. 5 ביוני 2016. נבדק ב-5 ביוני 2016. {{cite web}}: (עזרה)
  21. ^ "Progress Towards 100% HTTPS, June 2016". letsencrypt.org. 24 ביוני 2016. נבדק ב-22 ביוני 2016. {{cite web}}: (עזרה)
  22. ^ "Milestone: 100 Million Certificates Issued - Let's Encrypt - Free SSL/TLS Certificates". letsencrypt.org (באנגלית). נבדק ב-2017-07-02.
  23. ^ "Let's Encrypt Root Trusted By All Major Root Programs". letsencrypt.org (באנגלית). נבדק ב-2018-09-11.
  24. ^ "Let's Encrypt on Twitter". Twitter (באנגלית). נבדק ב-2018-09-16.
  25. ^ "Let's Encrypt Growth Timeline". letsencrypt.org (באנגלית). נבדק ב-2019-10-24.
  26. ^ "Let's Encrypt Has Issued a Billion Certificates - Let's Encrypt - Free SSL/TLS Certificates". letsencrypt.org. נבדק ב-2020-03-03.