วิธีที่ BBC เปิดตัว HSTS เพื่อการรักษาความปลอดภัยและประสิทธิภาพที่ดียิ่งขึ้น

BBC กําลังเปิดตัว HSTS สำหรับเว็บไซต์เพื่อปรับปรุงความปลอดภัยและประสิทธิภาพ ดูความหมายและประโยชน์ที่ HSTS

การใช้ HTTPS เพิ่มขึ้นอย่างต่อเนื่องในช่วงไม่กี่ปีที่ผ่านมา ข้อมูลตามเว็บ Almanac ปี 2021 ของ HTTP Archive ประมาณ 91% ของคำขอทั้งหมดสำหรับเดสก์ท็อปและอุปกรณ์เคลื่อนที่แสดงผลผ่าน HTTPS HTTPS ไม่ได้เป็นเพียงแพลตฟอร์มปัจจุบัน แต่ยังเป็นข้อกำหนดเบื้องต้นที่จำเป็นในการใช้ฟีเจอร์ เช่น Service Worker และโปรโตคอลสมัยใหม่อย่าง HTTP/2 และ HTTP/3

เมื่อเร็วๆ นี้ Neil Craig หัวหน้าสถาปนิกด้านเทคนิคของ BBC ได้ทวีตว่ากำลังทยอยเปิดตัว HTTP Strict Transport Security (HSTS) สำหรับ bbc.com มาดูกันว่า BBC มีความหมายอย่างไรและสำคัญกับคุณอย่างไร

ปัญหา

เว็บเซิร์ฟเวอร์มักรอฟังคำขอจากพอร์ต 80 และ 443 ทั้ง 2 พอร์ต พอร์ต 80 มีไว้สำหรับคำขอ HTTP ที่ไม่ปลอดภัย ส่วนพอร์ต 80 มีไว้สำหรับ HTTPS ที่ปลอดภัย ซึ่งอาจสร้างปัญหาได้เนื่องจากเมื่อคุณป้อนที่อยู่ลงในแถบที่อยู่โดยไม่มีคำนำหน้าโปรโตคอล https:// อย่างที่ผู้ใช้ส่วนใหญ่มักจะทำ บางเบราว์เซอร์จะเปลี่ยนเส้นทางการเข้าชมไปยังเว็บไซต์เวอร์ชัน HTTP ที่ไม่ปลอดภัยด้วยเหตุผลเดิม (แต่อาจไม่เป็นเช่นนี้เสมอไป)

วิธีทั่วไปที่ช่วยให้มั่นใจว่าผู้ใช้จะไม่เข้าถึงเว็บไซต์เวอร์ชันที่ไม่ปลอดภัยคือการระบุการเปลี่ยนเส้นทาง HTTP-to-HTTPS สําหรับคําขอทั้งหมด วิธีนี้ได้ผลแน่นอน แต่เป็นจุดเริ่มต้นของเหตุการณ์ต่อไปนี้

  1. เซิร์ฟเวอร์ได้รับคำขอผ่าน HTTP
  2. เซิร์ฟเวอร์ออกการเปลี่ยนเส้นทางเพื่อไปยังทรัพยากรที่เทียบเท่ากับ HTTPS
  3. เซิร์ฟเวอร์ผ่าน HTTPS ต้องเจรจาการเชื่อมต่อที่ปลอดภัยกับเบราว์เซอร์
  4. เนื้อหาจะโหลดตามปกติ

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

ป้อน HSTS

การสนับสนุนเบราว์เซอร์

  • 4
  • 12
  • 4
  • 7

แหล่งที่มา

ส่วนหัวการตอบกลับ HTTP ของ Strict-Transport-Security สำหรับคำขอ HTTPS จะกำหนด HSTS เมื่อตั้งค่าแล้ว การกลับไปที่เว็บไซต์จะทริกเกอร์การเปลี่ยนเส้นทางพิเศษที่เรียกว่า "การเปลี่ยนเส้นทางภายใน 307" ซึ่งเป็นเวลาที่เบราว์เซอร์จัดการตรรกะการเปลี่ยนเส้นทาง ไม่ใช่เกี่ยวกับเซิร์ฟเวอร์ วิธีนี้จะป้องกันไม่ให้มีการดักฟังคำขอ เนื่องจากไม่มีการออกจากเบราว์เซอร์ จึงมีความปลอดภัยมากกว่า ยิ่งไปกว่านั้น การเปลี่ยนเส้นทางประเภทนี้จึงทำได้รวดเร็วมาก จึงขจัดเวลาในการตอบสนองที่สังเกตเห็นได้ชัดระหว่างการกระโดดจาก HTTP-to-HTTPS ออกไป

การเปลี่ยนเส้นทางภายใน 307 จาก HTTP ไปยัง HTTPS ที่ทริกเกอร์โดยส่วนหัว HSTS การเปลี่ยนเส้นทาง 307 ใช้เวลาเพียง 2 มิลลิวินาที

ส่วนหัว HSTS จะระบุคำสั่ง max-age ในลักษณะเดียวกับคำสั่ง max-age ของ Cache-Control คำสั่งนี้จะใช้ค่าเป็นวินาทีซึ่งระบุระยะเวลาที่นโยบายจะมีผลสำหรับสิ่งต่อไปนี้

Strict-Transport-Security: max-age=3600

ในตัวอย่างข้างต้น นโยบายจะมีผลเพียง 1 ชั่วโมงเท่านั้น

การติดตั้งใช้งาน HSTS

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

BBC ใช้แนวทางที่เหมาะสมในการติดตั้งใช้งาน HSTS ดังที่ Neil Craig พูดถึงในทวีต ค่าเริ่มต้นที่ตั้งไว้สำหรับ bbc.com คือ max-age=10

ซึ่งหมายความว่านโยบายมีผลบังคับใช้ในช่วงแรกเป็นเวลา 10 วินาทีเท่านั้น ถึงแม้สิ่งนี้จะไม่มีประโยชน์มากนัก แต่ก็ควรพิจารณาว่าจะมีปัญหาเกี่ยวกับการใช้ HSTS หรือไม่ เมื่อเวลาผ่านไป คุณสามารถเพิ่มนโยบายทีละน้อยและดูว่าเกิดปัญหาหรือไม่ ในขณะที่เขียนบทความนี้ bbc.com ได้ระบุนโยบาย HSTS ของ max-age=86400 ซึ่งจะเพิ่มขึ้นแทบแน่นอนเมื่อเวลาผ่านไป

คุณคงไม่อยากออกจากเครือข่ายด้วยค่า max-age ที่ใช้เวลานานเมื่อติดตั้งใช้งาน HSTS คุณอาจพบว่าตัวเองต้องพยายามแก้ไขปัญหาอย่างกะทันหันในขณะที่ผู้ใช้พบปัญหา เริ่มต้นจากจำนวนน้อยๆ แล้วค่อยๆ เพิ่มขึ้น เมื่อมั่นใจว่าทุกอย่างเรียบร้อยดีแล้ว คุณสามารถตั้งค่าคำสั่ง max-age ให้มีระยะเวลานานขึ้นมาก ขอแนะนําให้ตั้งค่า max-age เป็น 1 หรือ 2 ปีเมื่อเปิดตัวอย่างเต็มรูปแบบ

รับการนำทางเบื้องต้นที่ปลอดภัยและรวดเร็วยิ่งขึ้นด้วยรายการโหลดล่วงหน้า HSTS

นโยบาย HSTS จะมีผลหลังจากการเข้าชมเว็บไซต์ครั้งแรกเท่านั้น จึงไม่มีประโยชน์ในการเข้าชมเว็บไซต์ครั้งแรก การดำเนินการนี้ยังคงต้องมีการเปลี่ยนเส้นทางที่ไม่ปลอดภัย อย่างไรก็ตาม คุณจะโหลดนโยบาย HSTS ล่วงหน้าได้โดยการส่งเว็บไซต์ไปยังรายการโหลดล่วงหน้าของ HSTS ซึ่งเป็นรายการเว็บไซต์ที่เบราว์เซอร์ทราบว่าเป็น HTTPS อย่างชัดเจน เมื่อเว็บไซต์ของคุณอยู่ในรายการโหลดล่วงหน้า การเข้าชมครั้งแรกจะได้รับการปกป้องและเวลาในการตอบสนองการเปลี่ยนเส้นทาง HTTP-to-HTTPS ผ่าน HSTS จะเกิดขึ้นทันที

ทดลองด้วยตัวคุณเอง

หาก BBC สะดวกที่จะทดสอบ HSTS ก็มีโอกาสสูงที่คุณจะทำแบบเดียวกันนี้สำหรับเว็บไซต์ของคุณได้ ลองใช้เว็บไซต์ดูเลย และหากต้องการปรับปรุงสิ่งต่างๆ ให้เพิ่มลงในรายการโหลดล่วงหน้าของ HSTS เมื่อคุณมั่นใจว่าไม่มีข้อบกพร่องเพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ปลอดภัยและเร็วขึ้น