מוזילה הודיעה שהיא מאפשרת תמיכה במנגנון ECH (Encrypted Client Hello) עבור משתמשי Firefox יציבים. זהו המשך של טכנולוגיית ESNI (Encrypted Server Name Indication) והיא נועדה להצפין מידע אודות פרמטרי סשן TLS, כגון שם הדומיין המבוקש. בתחילה, הקוד לעבודה עם ECH נוסף במהדורת Firefox 85, אך הושבת כברירת מחדל. בכרום, תמיכה ב-ECH נוספה בהדרגה, החל ממהדורת Chrome 115.
מכיוון שבנוסף לחיבור עם שרת פרטי הדומיין המבוקשים דולפים דרך DNS. להגנה מלאה, בנוסף ל-ECH, עליך להשתמש ב-DNS over HTTPS או DNS over TLS כדי להצפין את תעבורת ה-DNS. Firefox לא ישתמש ב-ECH מבלי להפעיל DNS over HTTPS בהגדרות. תוכל לבדוק את התמיכה ב-ECH בדפדפן שלך בדף זה.
אחד הגורמים שהובילו לכך ש-Firefox מאפשר תמיכה ב-ECH כברירת מחדל היה ש-Cloudflare מאפשרת תמיכה ב-ECH ברשת אספקת התוכן שלה לפני מספר ימים. מבחינה מעשית, מכיוון שהנתונים אודות המארחים המבוקשים מוסתרים מניתוח בעת שימוש ב-ECH, סינון וחסימה של אתרים לא רצויים באמצעות CDN של Cloudflare ידרוש כעת חסימת רשת Cloudflare כולה, חסימת כל הבקשות עם ECH, או ארגון יירוט HTTPS באמצעות אישורי שורש מזויפים במערכת המשתמש.
בתחילה, סיומת SNI TLS שימשה לארגון עבודה על כתובת IP אחת של מספר אתרי HTTPS, שבהם שם המארח המבוקש צוין בהודעת ClientHello ששודרה לפני יצירת ערוץ תקשורת מוצפן. תכונה זו אפשרה חלוקת בקשות בין מארחים וירטואליים בשלב מוקדם של עיבוד החיבור, אך גם אפשרה לספק האינטרנט לסנן באופן סלקטיבי תעבורת HTTPS ולנתח אילו אתרים המשתמש פותח, מה שלא איפשר השגת סודיות מוחלטת בעת שימוש ב-HTTPS.
כדי לפתור בעיה זו ולמנוע דליפת מידע אודות האתר המבוקש, הוצע מאוחר יותר התוסף ESNI, המייישם הצפנת נתונים עם שם המארח. במהלך יישום ESNI, נמצא כי המנגנון המוצע אינו מכסה את כל המקורות האפשריים של דליפת נתוני מארח והשימוש בו אינו מספיק כדי להבטיח סודיות מוחלטת של הפעלות HTTPS. בפרט, בעת חידוש סשן שהוקם בעבר, שם הדומיין בטקסט רגיל המשיך להיות מצוין בין הפרמטרים של התוסף PSK (Pre-Shared Key) TLS. בנוסף, ניסיונות ליישם ESNI חשפו בעיות תאימות וקנה מידה שמנעו את ההפצה הנרחבת של ESNI.
בהתחשב בחסרונות שזוהו של ESNI, פותח מנגנון אוניברסלי חדש בשם ECH, המאפשר הצפנת פרמטרים של כל סיומת TLS. מבחינה טכנית, ההבדל העיקרי בין ECH ל-ESNI הוא שבמקום שדות בודדים, כל הודעת ClientHello מוצפנת בבת אחת. ECH כרוך בפיצול ClientHello לשתי הודעות נפרדות - הודעת ClientHelloInner מוצפנת (SNI Inner) והודעת ClientHelloOuter בסיסית לא מוצפנת (SNI Outer). ה-SNI Outer הלא מוצפן משדר נתונים לא רגישים, כגון גרסת TLS ורשימת הצפנים שבהם נעשה שימוש, כמו גם שם דומיין משותף שאינו חופף לשם בפועל של הדומיין המבוקש. לדוגמה, עבור כל לקוחות Cloudflare, ה-SNI Outer הלא מוצפן מציין את המארח המשותף "cloudflare-ech.com", והשם בפועל של המארח המבוקש מועבר ב-SNI Inner המוצפן ואינו זמין לניתוח.

ECH משתמש גם בתכנית חלוקת מפתחות הצפנה שונה: מידע על מפתח ציבורי מועבר ברשומות DNS של HTTPSSVC ולא ברשומות TXT. הצפנה מאומתת מקצה לקצה המבוססת על מנגנון HPKE (הצפנת מפתח ציבורי היברידית) משמשת להשגת והצפנת המפתח. ECH תומך גם בשידור חוזר מאובטח של מפתחות מהשרת, שניתן להשתמש בה במקרה של סיבוב מפתחות. שרת ולפתור בעיות באחזור מפתחות מיושנים ממטמון ה-DNS.
מקור: OpenNet.ru
