Tags:

มาตรฐาน HTTP Strict Transport Security (HSTS) ใช้เพื่อป้องกันไม่ให้เว็บเบราว์เซอร์เข้าเว็บผ่าน HTTP ในกรณีที่ผู้ใช้ไม่ได้ระบุ URL เป็น HTTPS โดยตรง เว็บเซิร์ฟเวอร์จะแจ้งเบราว์เซอร์ให้จำโดเมนว่าจำเป็นต้องเข้าผ่าน HTTPS เท่านั้น และเบราว์เซอร์จะไม่เข้าเว็บผ่าน HTTP อีกเลยตลอดช่วงเวลาที่กำหนด

Yan Zhu (@bcrypt) นำเสนอแนวทางการตรวจสอบประวัติการเข้าเว็บด้วยการจับเวลาการเข้าเว็บ ประกอบเข้ากับนโยบาย Content Security Policy (CSP) ที่สามารถกำหนดให้โหลดภาพผ่าน HTTP (ไม่เข้ารหัส) เท่านั้น ซึ่งเป็นนโยบายที่ไม่ค่อยมีใครทำกันแต่ก็สามารถใช้งานได้

เนื่องจากการ redirect ภาพจาก HTTP ไปยัง HTTPS จะเป็นการฝ่าผืนนโยบาย CSP ที่ตั้งไว้ ทำให้การโหลดจะมีอีเวนต์ onerror ขึ้นมา ในกรณีที่เบราว์เซอร์ไม่เคยเข้าเว็บนั้นๆ มาก่อน การ redirect จะมาจากตัวเซิร์ฟเวอร์เองซึ่งใช้เวลาประมาณ 100ms ขณะที่หากเคยเข้าเว็บที่ใช้ HSTS ตัวเบราว์เซอร์จะเป็นผู้ redirect ให้และใช้เวลาเพียง 1ms เท่านั้น เมื่อเว็บจับเวลาอยู่ก็จะรู้ได้ว่าผู้ใช้เคยเข้าเว็บต้องสงสัยหรือไม่

กระบวนการนี้ใช้ได้กับไฟร์ฟอกซ์และโครมเท่านั้น กระบวนการเองมีความผิดพลาดอยู่เรื่อยๆ จากความไม่แม่นยำในการจับเวลา เช่น Tor Browser นั้นไม่สามารถใช้งานได้เลยเพราะจับเวลาได้ละเอียดที่สุดที่ 100ms เท่านั้น และหากผู้ใช้ติดตั้ง HTTPS Everywhere จะทำให้รายงานผลผิดพลาดมากขึ้น แต่ในกรณีทั่วไปความแม่นยำอาจจะสูงถึง 80%

รายงานนี้นำเสนอในงาน ToorCon 2015 โค้ดตัวอย่างอยู่ใน GitHub

ที่มา - The Register

alt="upic.me"

Get latest news from Blognone