Mozilla ได้ประกาศการรวมการสนับสนุนสำหรับผู้ใช้สาขา Firefox ที่เสถียรสำหรับกลไก ECH (Encrypted Client Hello) ซึ่งยังคงพัฒนาเทคโนโลยี ESNI (Encrypted Server Name Indication) ต่อไปและได้รับการออกแบบมาเพื่อเข้ารหัสข้อมูลเกี่ยวกับพารามิเตอร์ของเซสชัน TLS เช่น ชื่อโดเมนที่ร้องขอ รหัสสำหรับการทำงานกับ ECH เดิมถูกเพิ่มลงใน Firefox 85 แต่ถูกปิดใช้งานโดยค่าเริ่มต้น Chrome ค่อยๆ เริ่มรวมการรองรับ ECH โดยเริ่มตั้งแต่การเปิดตัว Chrome 115
เนื่องจากนอกเหนือจากการเชื่อมต่อกับแล้ว เซิร์ฟเวอร์ ข้อมูลโดเมนที่ร้องขอรั่วไหลผ่าน DNS เพื่อการป้องกันอย่างสมบูรณ์ นอกเหนือจาก ECH แล้ว คุณต้องใช้ DNS over HTTPS หรือ DNS over TLS เพื่อเข้ารหัสการรับส่งข้อมูล DNS Firefox จะไม่ใช้ ECH หากไม่ได้เปิดใช้งาน DNS over HTTPS ในการตั้งค่า คุณสามารถตรวจสอบการรองรับ ECH ในเบราว์เซอร์ของคุณได้ในหน้านี้
ปัจจัยหนึ่งที่เปิดใช้งานการสนับสนุน ECH ตามค่าเริ่มต้นใน Firefox คือการรวมการสนับสนุน ECH ของ Cloudflare ไว้ในเครือข่ายการจัดส่งเนื้อหาเมื่อไม่กี่วันที่ผ่านมา ในทางปฏิบัติ เนื่องจากข้อมูลเกี่ยวกับโฮสต์ที่ร้องขอเมื่อใช้ ECH ถูกซ่อนจากการวิเคราะห์ การกรอง และการบล็อกไซต์ที่ไม่ต้องการโดยใช้ Cloudflare CDN ตอนนี้จำเป็นต้องบล็อกเครือข่าย Cloudflare ทั้งหมด การบล็อกคำขอทั้งหมดจาก ECH หรือการจัดการการสกัดกั้น HTTPS โดยใช้ใบรับรองรูทปลอม บนระบบของผู้ใช้
ในขั้นแรก เพื่อจัดระเบียบงานบนที่อยู่ IP เดียวของไซต์ HTTPS หลายแห่ง จะใช้ส่วนขยาย TLS SNI ซึ่งระบุชื่อของโฮสต์ที่ร้องขอในข้อความ ClientHello ที่ส่งก่อนที่จะสร้างช่องทางการสื่อสารที่เข้ารหัส คุณลักษณะนี้ทำให้สามารถกระจายคำขอผ่านโฮสต์เสมือนได้ในช่วงเริ่มต้นของการประมวลผลการเชื่อมต่อ แต่ยังทำให้ฝั่ง ISP สามารถเลือกกรองการรับส่งข้อมูล HTTPS และวิเคราะห์ว่าไซต์ใดที่ผู้ใช้เปิด ซึ่งไม่อนุญาตให้บรรลุการรักษาความลับโดยสมบูรณ์เมื่อใช้งาน HTTPS
เพื่อแก้ไขปัญหานี้และป้องกันการรั่วไหลของข้อมูลเกี่ยวกับไซต์ที่ร้องขอ จึงมีการนำเสนอส่วนขยาย ESNI ในภายหลังซึ่งใช้การเข้ารหัสข้อมูลด้วยชื่อโฮสต์ ในระหว่างการนำ ESNI ไปใช้ มีการเปิดเผยว่ากลไกที่เสนอไม่ครอบคลุมแหล่งที่มาของการรั่วไหลของข้อมูลโฮสต์ที่เป็นไปได้ทั้งหมด และการใช้งานนั้นไม่เพียงพอที่จะรับประกันการรักษาความลับของเซสชัน HTTPS โดยสมบูรณ์ โดยเฉพาะอย่างยิ่ง เมื่อกลับมาดำเนินการต่อในเซสชันที่สร้างไว้ก่อนหน้านี้ ชื่อโดเมนในรูปแบบข้อความที่ชัดเจนยังคงถูกระบุในพารามิเตอร์ของส่วนขยาย TLS PSK (คีย์ที่แชร์ล่วงหน้า) นอกจากนี้ ความพยายามในการนำ 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 มีการใช้การเข้ารหัสแบบ end-to-end ที่ได้รับการตรวจสอบความถูกต้องโดยใช้กลไก HPKE (Hybrid Public Key Encryption) เพื่อรับและเข้ารหัสคีย์ นอกจากนี้ ECH ยังรองรับการส่งต่อคีย์อย่างปลอดภัยจากเซิร์ฟเวอร์ ซึ่งสามารถใช้ได้ในกรณีที่มีการหมุนเวียนคีย์ เซิร์ฟเวอร์ และเพื่อแก้ไขปัญหาเกี่ยวกับการดึงคีย์ที่ล้าสมัยจากแคช DNS
ที่มา: opennet.ru
