Signed HTTP Exchange

Kinuko Yasuda

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

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

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 (เช่น อันนี้ เป็นรูปแบบที่เรียบง่ายที่สุดที่สร้างขึ้นสำหรับ ไฟล์ข้อความธรรมดา) โปรดทราบว่า URL ดังกล่าวสร้างขึ้นเพื่อการทดสอบในท้องถิ่นเป็นหลัก โปรดอย่าคาดหวัง ว่ามีใบรับรองที่ถูกต้องและการประทับเวลาในลายเซ็น

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

สำหรับการสร้าง SXG เพื่อวัตถุประสงค์ในการทดสอบ คุณสามารถสร้าง ใบรับรองที่ลงนามด้วยตนเอง และเปิดใช้ 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 กับทีม ความคิดเห็นของคุณจะช่วยกระบวนการกำหนดมาตรฐานได้อย่างมาก และยังช่วยเราแก้ปัญหาการใช้งาน

ความคิดเห็น