การเปิดใช้งาน HSTS บน Cloudflare เพื่อเพิ่มความปลอดภัย

HSTS ทำงานอย่างไร

HSTS ทำงานโดยส่งส่วนหัว HTTP (HTTP Header) พิเศษกลับไปยังเบราว์เซอร์ของผู้ใช้งาน เมื่อเบราว์เซอร์ได้รับ HSTS Header นี้ มันจะจำว่าเว็บไซต์นี้ต้องใช้ HTTPS เสมอ ในการเชื่อมต่อครั้งต่อไป เบราว์เซอร์จะปฏิเสธการเชื่อมต่อ HTTP และบังคับใช้ HTTPS แทน วิธีนี้ช่วยป้องกันการโจมตี SSL Stripping ที่พยายามบังคับให้ผู้ใช้เชื่อมต่อผ่าน HTTP ที่ไม่ปลอดภัย

ป้องกันการโจมตี SSL Stripping Attack

SSL Stripping Attack เป็นการโจมตีที่ผู้โจมตีพยายามแปลง HTTPS เป็น HTTP เพื่อดักจับข้อมูลของผู้ใช้งาน ผู้โจมตีอาจวางตัวอยู่ระหว่างผู้ใช้งานและเว็บไซต์ (Man-in-the-Middle Attack) แล้วสั่งให้เบราว์เซอร์เชื่อมต่อผ่าน HTTP แทน HTTPS เมื่อ HSTS ถูกเปิดใช้งาน เบราว์เซอร์จะปฏิเสธการเชื่อมต่อ HTTP และจะบังคับใช้ HTTPS เท่านั้น ทำให้การโจมตีประเภทนี้ล้มเหลวโดยสิ้นเชิง

วิธีการเปิดใช้งาน HSTS บน Cloudflare

การเปิดใช้งาน HSTS บน Cloudflare มีขั้นตอนที่ตรงไปตรงมา:

  • เข้าสู่ Cloudflare Dashboard และเลือกโดเมนของคุณ
  • ไปที่เมนู SSL/TLS (หรือ Security)
  • คลิกที่ “HSTS (HTTP Strict Transport Security)”
  • เปิดใช้งาน HSTS โดยคลิกปุ่ม Enable HSTS
  • ตั้งค่า max-age ตามความเหมาะสม (แนะนำ 31536000 วินาที = 1 ปี)
  • เลือก “Apply to subdomains” หากต้องการให้ HSTS ใช้กับ subdomain ทั้งหมด

หมายเหตุ: HSTS เป็นคุณสมบัติของแผนการที่เสียค่าบริการ หากใช้ Cloudflare Free Plan อาจจำเป็นต้องอัปเกรดเป็นแผนการที่สูงขึ้น

สำหรับ Apache:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

เพิ่มบรรทดนี้ในไฟล์ .htaccess หรือใน VirtualHost configuration

สำหรับ Nginx:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

เพิ่มบรรทดนี้ในเซคชัน server ของไฟล์ nginx.conf

หลังจากเพิ่มการตั้งค่า ให้รีสตาร์ท Web Server เพื่อให้การตั้งค่ามีผล

ข้อดีของการเปิด HSTS

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

ข้อเสียและความเสี่ยงของการไม่เปิด HSTS

การไม่เปิดใช้งาน HSTS อาจนำมาซึ่งความเสี่ยงหลายประการ:

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

การตั้งค่า max-age สำหรับ HSTS

Max-age เป็นพารามิเตอร์สำคัญที่กำหนดระยะเวลา (เป็นวินาที) ที่เบราว์เซอร์จะจำว่าเว็บไซต์ต้องใช้ HTTPS เสมอ

  • 31536000 วินาที (1 ปี): ค่าแนะนำสำหรับเว็บไซต์ที่ใช้ HTTPS อย่างสมบูรณ์
  • 2592000 วินาที (30 วัน): เหมาะสำหรับการทดสอบ HSTS
  • 63072000 วินาที (2 ปี): ค่ามาตรฐานสำหรับเว็บไซต์ที่มีความเสถียรสูง

เคล็ดลับเพิ่มเติม: หากต้องการให้ HSTS ใช้กับ subdomain ทั้งหมด ให้เพิ่ม includeSubDomains ในการตั้งค่า เพื่อให้ทุก subdomain ได้รับการป้องกันจาก HSTS

สิ่งที่ต้องระวังเมื่อตั้งค่า HSTS

การเปิดใช้งาน HSTS อย่างไม่ถูกต้องอาจนำมาซึ่งปัญหา:

  • หากตั้งค่า HSTS แล้วปิดการใช้งาน HTTPS เบราว์เซอร์จะปฏิเสธการเข้าถึง
  • หากใบรับรอง SSL หมดอายุและไม่ได้รับการต่ออายุ เบราว์เซอร์จะไม่สามารถเข้าถึงได้
  • ระยะเวลา max-age ที่ยาวเกินไปอาจทำให้ไม่สามารถแก้ไขได้อย่างรวดเร็ว

ตรวจสอบว่า HSTS ทำงานหรือไม่

คุณสามารถตรวจสอบว่า HSTS ทำงานอย่างถูกต้องโดย:

  • เปิด Developer Tools ในเบราว์เซอร์ (F12)
  • ไปที่แท็บ Network
  • ส่งคำขอ HTTPS ไปยังเว็บไซต์
  • ดูส่วนหัว Response และค้นหา “Strict-Transport-Security”
  • หากเห็น HSTS Header และค่า max-age แสดงว่าตั้งค่าได้อย่างถูกต้อง

สรุป

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