HSTS คืออะไร และควรเปิดใช้งานหรือไม่
HSTS คืออะไร
HTTP Strict Transport Security (HSTS) กำหนดใน RFC 6797 เป็นกลไกที่ให้เซิร์ฟเวอร์บอกเบราว์เซอร์ว่าโฮสต์นี้ต้องใช้ HTTPS เท่านั้นเป็นเวลา max-age วินาที
การทำงาน
1. ผู้ใช้เข้าเว็บผ่าน HTTPS สำเร็จ
2. เซิร์ฟเวอร์ส่ง Strict-Transport-Security
3. เบราว์เซอร์บันทึกโฮสต์ไว้ใน HSTS cache
4. ครั้งถัดไปแม้ผู้ใช้พิมพ์ http:// เบราว์เซอร์จะอัปเกรดเป็น HTTPS ก่อนส่งคำขอ
HSTS จึงช่วยลด SSL stripping บนเครือข่ายที่ไม่น่าเชื่อถือ หลังจากเยี่ยมชมครั้งแรกที่ปลอดภัยแล้ว
HSTS Preload
รายการ preload ของ Chromium ถูกฝังในเบราว์เซอร์หลัก ทำให้โดเมนใช้ HTTPS ตั้งแต่ครั้งแรก เงื่อนไขปัจจุบันประกาศที่ hstspreload.org โดยสรุปต้องมี
- ใบรับรองที่ถูกต้องและ redirect HTTP ไป HTTPS
max-ageอย่างน้อย 31536000 (หนึ่งปี)includeSubDomains- คำว่า
preload
Strict-Transport-Security: max-age=63072000; includeSubDomains; preloadการถอนจาก preload list ใช้เวลาตามรอบอัปเดตเบราว์เซอร์ ไม่ใช่ทันที
ข้อควรระวัง
- เปิด HSTS เมื่อ HTTPS ทำงานครบทุกเส้นทางแล้ว
includeSubDomainsจะบังคับ HTTPS กับทุกซับโดเมน รวมโฮสต์ภายในที่อาจยังไม่มีใบรับรอง- ส่ง HSTS เฉพาะบนคำตอบ HTTPS อย่าส่งบน HTTP ตาม RFC 6797
แนะนำให้เริ่มจาก max-age สั้น เช่น 5 นาที ระหว่างทดสอบ แล้วค่อยเพิ่มเป็นหนึ่งปีเมื่อมั่นใจ
สรุป
HSTS ควรเปิดบนเว็บที่ให้บริการสาธารณะผ่าน HTTPS แล้ว Preload เป็นทางเลือกเมื่อองค์กรพร้อมผูกโดเมนทั้งโซนกับ HTTPS ระยะยาว