Signed HTTP Exchange

Kinuko Yasuda

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

แล้ว Signed HTTP Exchange ทำงานอย่างไร เทคโนโลยีนี้ช่วยให้ผู้เผยแพร่โฆษณาลงนาม HTTP Exchange รายการเดียว (กล่าวคือ เป็นคู่คำขอ/การตอบกลับ) ในลักษณะที่เซิร์ฟเวอร์การแคชเซิร์ฟเวอร์ใดๆ ก็ได้แสดง 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>

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

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

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

ความคิดเห็น