Let's Encrypt

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

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

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

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

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

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

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

 פרוטוקול 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”. End of Life Plan for ACMEv1

 סיום חיי 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, באופן פנימי. 'Run Boulder inside your organization?' from Let's Encrypt user forum

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

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

בהתחלה, Let's Encrypt פיתחה לקוח ACME משלה - Certbot - כמימוש רשמי. הלקוח הועבר לקרן החזית האלקטרונית ושמו הקודם „letsencrypt” הוחלף ב־„certbot”. יש מבחר גדול של לקוחות ומיזמים סביב ACME שפותחו על ידי הקהילה למגוון סביבות. 
ממוזער| דוגמה לאתר עם אישור של 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 הנפיקה את האישור הראשון שלה, שהיה מיועד לשם התחום . באותו יום הגישה ISRG את יישומי תוכנית האישור העליון שלה למוזילה, מיקרוסופט, גוגל ואפל.

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

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

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

במרץ 2020 הוענק ל־Let's Encrypt הפרס השנתי של קרן התוכנה החופשית למיזמים בעלי תועלת חברתית. Let's Encrypt, Jim Meyering, and Clarissa Lima Borges receive FSF's 2019 Free Software Awards Free Software Foundation, 2020

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

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

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


 https://certbot.eff.org
 Let's Encrypt ב־GitHub
 ההרצאה של סת׳ שון ב־Libre Planet בשנת 2015 על Let's Encrypt
 השיחה של pde על Let's Encrypt מ־CCCamp של 2015
 רשימת האישורים שהונפקו על ידי Let's Encrypt

 הערות שוליים 

קטגוריה:אבטחת מידע
קטגוריה:מוזילה
קטגוריה:אתרי אינטרנט שהושקו ב-2014