Signed HTTP Exchange

Kinuko Yasuda

Signed HTTP Exchange (หรือ "SXG") เป็นชุดย่อยของเทคโนโลยีที่เพิ่งเกิดใหม่ที่เรียกว่าแพ็กเกจเว็บ ซึ่งช่วยให้ผู้เผยแพร่เนื้อหาสามารถทำให้เนื้อหาของตนถ่ายโอนได้อย่างปลอดภัย กล่าวคือ บุคคลอื่นนำไปเผยแพร่ต่อได้โดยที่ยังรักษาความสมบูรณ์และการระบุแหล่งที่มาของเนื้อหาไว้ เนื้อหาแบบพกพามีประโยชน์มากมาย ตั้งแต่ช่วยให้การแสดงเนื้อหาเร็วขึ้นไปจนถึงช่วยให้ผู้ใช้แชร์เนื้อหาระหว่างผู้ใช้ ตลอดจนประสบการณ์ออฟไลน์ที่ง่ายขึ้น

แล้ว Signed HTTP Exchange ทำงานอย่างไร เทคโนโลยีนี้ช่วยให้ผู้เผยแพร่โฆษณาลงนามการแลกเปลี่ยน HTTP เดียว (กล่าวคือ คู่คำขอ/การตอบกลับ) ในลักษณะที่แสดง Signed Exchange จากเซิร์ฟเวอร์การแคชใดก็ได้ เมื่อเบราว์เซอร์โหลด Signed Exchange นี้ เบราว์เซอร์จะแสดง URL ของผู้เผยแพร่โฆษณาในแถบที่อยู่ได้อย่างปลอดภัย เนื่องจากลายเซ็นใน Exchange แสดงหลักฐานที่เพียงพอว่าเนื้อหาเดิมมาจากต้นทางของผู้เผยแพร่โฆษณา

Signed Exchange: หัวใจสำคัญ

ซึ่งจะแยกที่มาของเนื้อหาจากผู้เผยแพร่เนื้อหานั้น เนื้อหาของคุณ สามารถเผยแพร่บนเว็บได้โดยไม่ต้องพึ่งเซิร์ฟเวอร์ การเชื่อมต่อ หรือบริการโฮสติ้งเฉพาะ! เรารู้สึกตื่นเต้นเกี่ยวกับการใช้งาน SXG ที่เป็นไปได้ เช่น

  • การดึงข้อมูลล่วงหน้าที่รักษาความเป็นส่วนตัว: แม้ว่าการดึงข้อมูลทรัพยากรล่วงหน้า (เช่น ด้วยลิงก์ rel=prefetch) สำหรับการนำทางครั้งต่อๆ ไปจะทำให้การนำทางรวดเร็วขึ้นมาก แต่ก็มีข้อเสียด้านความเป็นส่วนตัวเช่นกัน ตัวอย่างเช่น การดึงข้อมูลทรัพยากรล่วงหน้าสำหรับการนำทางแบบข้ามต้นทางจะเปิดเผยเว็บไซต์ปลายทางว่าผู้ใช้อาจสนใจข้อมูลใดชิ้นหนึ่ง แม้ว่าท้ายที่สุดผู้ใช้จะไม่ได้เข้าชมเว็บไซต์ดังกล่าวก็ตาม ในทางกลับกัน SXG เปิดโอกาสให้ดึงทรัพยากรแบบข้ามต้นทางล่วงหน้าจากแคชที่รวดเร็วโดยไม่ต้องเข้าถึงเว็บไซต์ปลายทาง จึงสื่อสารความสนใจของผู้ใช้ได้ก็ต่อเมื่อมีการนำทางเกิดขึ้นเท่านั้น เราเชื่อว่าสิ่งนี้จะเป็นประโยชน์สำหรับเว็บไซต์ ที่มีเป้าหมายคือการส่งผู้ใช้ไปยังเว็บไซต์อื่นๆ โดยเฉพาะอย่างยิ่ง Google วางแผนที่จะใช้ข้อมูลนี้ในหน้าผลการค้นหาของ Google เพื่อปรับปรุง URL ของ AMP และเร่งการคลิกผลการค้นหา

  • ประโยชน์ของ CDN โดยไม่ต้องควบคุมคีย์ส่วนตัวของใบรับรอง: เนื้อหาที่ได้รับความนิยมอย่างกะทันหัน (เช่น ลิงก์จากหน้าแรกของ reddit.com) มักทำให้เว็บไซต์แสดงเนื้อหามากเกินไป และหากเว็บไซต์นั้นมีขนาดเล็ก ก็มีแนวโน้มที่จะให้บริการช้าลงหรือไม่พร้อมใช้งานชั่วคราว เราหลีกเลี่ยงสถานการณ์นี้ได้หากมีการแชร์เนื้อหาโดยใช้เซิร์ฟเวอร์แคชที่เร็วและมีประสิทธิภาพ และ SXG ดำเนินการนี้ได้โดยไม่ต้องแชร์คีย์ TLS

ทดลองใช้ Signed Exchange

Signed Exchange พร้อมให้บริการใน Chrome 73 ขึ้นไป และก่อนหน้านี้ มีให้ใช้งานแบบทดลองใช้จากต้นทาง

กำลังสร้าง SXG

ในการสร้าง SXG สำหรับต้นทาง (ในฐานะผู้เผยแพร่โฆษณา) คุณต้องมีคีย์ใบรับรองเพื่อลงนามลายเซ็น และใบรับรองต้องมีส่วนขยาย"CanSignHttpExchanges" พิเศษเพื่อประมวลผลเป็น SXG ที่ถูกต้อง ตั้งแต่เดือนพฤศจิกายน 2018 เป็นต้นมา DigiCert เป็น CA เดียวที่รองรับส่วนขยายนี้ และคุณจะขอใบรับรองที่ใช้กับ SXG ได้จากหน้านี้

เมื่อได้รับใบรับรองสำหรับ SXG แล้ว คุณจะสร้าง SXG ของคุณเองได้โดยใช้เครื่องมือสร้างการอ้างอิงที่เผยแพร่ใน GitHub

นอกจากนี้ คุณยังสามารถดูไฟล์ตัวอย่าง SXG จริงในที่เก็บโค้ดของ Chrome (เช่น อันนี้เป็นไฟล์ที่ง่ายที่สุดที่สร้างขึ้นสำหรับไฟล์ข้อความแบบง่าย) โปรดทราบว่ารหัสเหล่านี้สร้างขึ้นเพื่อการทดสอบในเครื่องเป็นหลัก โปรดอย่าคาดหวังว่าจะมีใบรับรองที่ถูกต้องและการประทับเวลาในลายเซ็น

การทดสอบฟีเจอร์เฉพาะที่

สำหรับการสร้าง SXG เพื่อวัตถุประสงค์ในการทดสอบ คุณจะสร้างใบรับรองแบบ Self-Signed แล้วเปิดใช้ chrome://flags/#allow-sxg-certs-without-extension เพื่อให้ Chrome ประมวลผล SXG ที่สร้างขึ้นด้วยใบรับรองโดยไม่ต้องมีส่วนขยายพิเศษได้

โค้ดต่อไปนี้จะใช้งานได้หากมีการตั้งค่าเซิร์ฟเวอร์ ใบรับรอง และ SXG ไว้อย่างถูกต้อง

<!-- prefetch the sample.sxg -->
<link rel="prefetch" href="https://your-site.com/sample.sxg" />

<!-- clicking the link below should make Chrome navigate to the inner
     response of sample.sxg (and the prefetched SXG is used) -->
<a href="https://your-site.com/sample.sxg">Sample</a>

โปรดทราบว่า SXG รองรับเฉพาะแท็ก Anchor (<a>) และ link rel=prefetch ใน Chrome 73 ขึ้นไป และโปรดทราบว่าอายุการใช้งานของลายเซ็นจำกัดไว้ที่ 7 วันตามข้อกำหนดเฉพาะ ดังนั้นเนื้อหาที่ลงนามแล้วจะหมดอายุอย่างรวดเร็ว

ให้ความคิดเห็น

เราอยากทราบความคิดเห็นของคุณเกี่ยวกับการทดสอบนี้ที่ webpackage-dev@chromium.org คุณยังสามารถเข้าร่วมการแลกเปลี่ยนความคิดเห็นเกี่ยวกับข้อมูลจำเพาะหรือรายงานข้อบกพร่องของ Chrome ให้ทีมทราบ ความคิดเห็นของคุณจะมีส่วนช่วยอย่างมากในกระบวนการกำหนดมาตรฐาน และยังช่วยให้เราแก้ปัญหาในการใช้งานด้วย

ความคิดเห็น