ข้อมูลเข้าสู่ระบบเซสชันที่ผูกกับอุปกรณ์ (DBSC) เป็นความสามารถใหม่ของเว็บที่ออกแบบมาเพื่อปกป้องเซสชันของผู้ใช้จากการโจรกรรมคุกกี้และการลักลอบใช้เซสชัน ฟีเจอร์นี้พร้อมให้ทดสอบแล้วใน Chrome 135 ในฐานะเวอร์ชันทดลองของ Origin
ฉากหลัง
คุกกี้มีบทบาทสําคัญในการรับรองความถูกต้องของเว็บสมัยใหม่ ซึ่งช่วยให้ผู้ใช้เข้าสู่ระบบได้ตลอดเซสชันการท่องเว็บ อย่างไรก็ตาม ผู้โจมตีใช้ประโยชน์จากคุกกี้การตรวจสอบสิทธิ์ที่ขโมยมาเพื่อลักลอบใช้เซสชันมากขึ้นเรื่อยๆ โดยข้ามการตรวจสอบสิทธิ์แบบหลายปัจจัยและกลไกการรักษาความปลอดภัยในการเข้าสู่ระบบอื่นๆ
ผู้ปฏิบัติการมัลแวร์มักลักลอบนำคุกกี้เซสชันออกจากอุปกรณ์ที่ถูกบุกรุก ซึ่งทำให้เข้าถึงบัญชีผู้ใช้ได้โดยไม่ได้รับอนุญาต เนื่องจากคุกกี้เป็นโทเค็นของผู้ถือครอง จึงให้สิทธิ์เข้าถึงโดยไม่ต้องมีหลักฐานการครอบครอง ซึ่งทำให้คุกกี้เป็นเป้าหมายที่น่าสนใจสำหรับผู้โจมตี
ข้อมูลเข้าสู่ระบบเซสชันที่ผูกกับอุปกรณ์ (DBSC) มีจุดประสงค์เพื่อขัดขวางการโจรกรรมคุกกี้ด้วยการสร้างเซสชันที่ตรวจสอบสิทธิ์ซึ่งเชื่อมโยงกับอุปกรณ์ วิธีนี้ช่วยลดโอกาสที่คุกกี้ที่รั่วไหลจะเข้าถึงบัญชีจากอุปกรณ์เครื่องอื่นได้
วิธีการทำงาน
DBSC เปิดตัว API ใหม่ที่ช่วยให้เซิร์ฟเวอร์สร้างเซสชันที่ตรวจสอบสิทธิ์ซึ่งเชื่อมโยงกับอุปกรณ์ได้ เมื่อเริ่มเซสชันเบราว์เซอร์จะสร้างคู่คีย์สาธารณะและส่วนตัว โดยจัดเก็บคีย์ส่วนตัวอย่างปลอดภัยโดยใช้พื้นที่เก็บข้อมูลที่ได้รับการสนับสนุนจากฮาร์ดแวร์ เช่น Trusted Platform Module (TPM) หากมี
จากนั้นเบราว์เซอร์จะออกคุกกี้เซสชันปกติ ในระหว่างอายุการใช้งานเซสชัน เบราว์เซอร์จะพิสูจน์ความเป็นเจ้าของคีย์ส่วนตัวเป็นระยะๆ และรีเฟรชคุกกี้เซสชัน คุณสามารถตั้งค่าอายุของคุกกี้ให้สั้นพอที่การลักลอบใช้คุกกี้จะไม่เป็นประโยชน์ต่อผู้โจมตี
องค์ประกอบหลัก
การลงทะเบียนเซสชัน
- เมื่อผู้ใช้เข้าสู่ระบบ เซิร์ฟเวอร์จะขอเซสชันที่เชื่อมโยงกับอุปกรณ์โดยใช้ส่วนหัว HTTP
Sec-Session-Registration
- เบราว์เซอร์จะสร้างคู่คีย์ใหม่โดยจัดเก็บคีย์ส่วนตัวอย่างปลอดภัย
- ระบบจะสร้างคุกกี้การตรวจสอบสิทธิ์ที่มีอายุสั้นและเชื่อมโยงกับคู่คีย์นี้ด้วย
- เซิร์ฟเวอร์จะเชื่อมโยงเซสชันกับคีย์สาธารณะที่เกี่ยวข้อง เพื่อให้มั่นใจว่าเซสชันจะใช้ได้บนอุปกรณ์เดิมเท่านั้น
- เมื่อผู้ใช้เข้าสู่ระบบ เซิร์ฟเวอร์จะขอเซสชันที่เชื่อมโยงกับอุปกรณ์โดยใช้ส่วนหัว HTTP
การรีเฟรชเซสชันและหลักฐานการครอบครอง
- เมื่อคุกกี้ที่มีอายุสั้นหมดอายุ Chrome จะทริกเกอร์การรีเฟรชเซสชัน
- จากนั้นเบราว์เซอร์จะส่งคําขอไปยังปลายทางการรีเฟรชที่เซิร์ฟเวอร์กําหนด (ระบุไว้ระหว่างการลงทะเบียนเซสชัน) และหากเซิร์ฟเวอร์ระบุไว้ ก็จะส่งคําท้าที่ลงชื่อโดยใช้ส่วนหัว
Sec-Session-Challenge
- เซิร์ฟเวอร์จะยืนยันหลักฐานการครอบครองโดยการตรวจสอบการตอบกลับที่ลงนามด้วยคีย์ส่วนตัวของเซสชัน
- หากถูกต้อง เซิร์ฟเวอร์จะออกคุกกี้ใหม่ที่มีอายุสั้น ซึ่งจะช่วยให้เซสชันดำเนินต่อไปได้
ข้อดีอย่างหนึ่งของแนวทางนี้คือ Chrome จะเลื่อนคําขอที่อาจไม่มีคุกกี้ที่มีอายุสั้นซึ่งรีเฟรชแล้ว ลักษณะการทํางานนี้ช่วยให้คุกกี้ที่เชื่อมโยงกับเซสชันพร้อมใช้งานอย่างสม่ำเสมอตลอดเซสชัน และช่วยให้นักพัฒนาแอปเชื่อมั่นในคุกกี้ได้มากกว่าแนวทางที่คุกกี้อาจหมดอายุหรือหายไปโดยไม่ได้รับการต่ออายุใหม่โดยอัตโนมัติ
ตัวอย่างการใช้งาน
เซิร์ฟเวอร์สามารถขอเซสชันที่เชื่อมโยงกับอุปกรณ์ได้ดังนี้
HTTP/1.1 200 OK
Sec-Session-Registration: (ES256);path="/refresh";challenge="12345"
เมื่อเซสชันทำงานอยู่ เซิร์ฟเวอร์จะยืนยันเซสชันได้ด้วยการแลกเปลี่ยนข้อมูลแบบคำขอคำตอบ ดังนี้
HTTP/1.1 401 Unauthorized
Sec-Session-Challenge: "verify-session"
เบราว์เซอร์จะตอบกลับด้วย
POST /refresh
Sec-Session-Response: "signed-proof"
ข้อดี
- ลดการโจรกรรมคุกกี้: แม้ว่าจะมีการขโมยคุกกี้ของเซสชัน แต่ก็จะไม่สามารถใช้งานจากอุปกรณ์เครื่องอื่นได้
- เพิ่มความปลอดภัยโดยไม่เปลี่ยนแปลง UX ที่สำคัญ: ทํางานอย่างโปร่งใสในเบื้องหลังโดยที่ผู้ใช้ไม่ต้องดำเนินการใดๆ เพิ่มเติม
- ลดการพึ่งพาคุกกี้เซสชันที่มีอายุการใช้งานยาวนาน: ระบบจะรีเฟรชคุกกี้ที่มีอายุการใช้งานสั้นโดยอัตโนมัติ ตราบใดที่เซสชันยังคงใช้งานได้ในอุปกรณ์เดิม
- รองรับกลไกการเข้ารหัสมาตรฐาน: ใช้ประโยชน์จากพื้นที่เก็บข้อมูลที่ปลอดภัยซึ่งรองรับ TPM (หากมี) ซึ่งจะมอบการป้องกันที่มีประสิทธิภาพจากการลักลอบนำข้อมูลออก
ข้อควรพิจารณาด้านความเป็นส่วนตัวและความปลอดภัย
DBSC ออกแบบมาเพื่อเพิ่มความปลอดภัยไปพร้อมกับรักษาความเป็นส่วนตัวของผู้ใช้
- ไม่มีเวกเตอร์การติดตามเพิ่มเติม: เซสชันแต่ละรายการจะเชื่อมโยงกับคู่คีย์ที่ไม่ซ้ำกัน ซึ่งป้องกันการติดตามข้ามเซสชัน
- ไม่มีการเก็บข้อมูลลายนิ้วมือของอุปกรณ์ในระยะยาว: เซิร์ฟเวอร์ไม่สามารถเชื่อมโยงเซสชันต่างๆ ในอุปกรณ์เครื่องเดียวกัน เว้นแต่ผู้ใช้จะอนุญาตอย่างชัดเจน
- ผู้ใช้ล้างได้: ระบบจะลบเซสชันและคีย์เมื่อผู้ใช้ล้างข้อมูลเว็บไซต์
- สอดคล้องกับนโยบายคุกกี้: DBSC ใช้การกำหนดขอบเขตตามเว็บไซต์เช่นเดียวกับคุกกี้ เพื่อให้มั่นใจว่าจะไม่เกิดการรั่วไหลของข้อมูลจากแหล่งที่มาต่างๆ
ลองเลย
ช่วงทดลองใช้ข้อมูลเข้าสู่ระบบเซสชันที่ผูกกับอุปกรณ์ใน Origin พร้อมใช้งานใน Chrome เวอร์ชัน 135
สำหรับการทดสอบในเครื่อง
วิธีทดสอบ DBSC ในเครื่อง
- ไปที่
chrome://flags#device-bound-session-credentials
แล้วเปิดใช้ฟีเจอร์
สำหรับการทดสอบแบบสาธารณะ
วิธีทดสอบ DBSC กับการทดลองใช้จากต้นทางในสภาพแวดล้อมสาธารณะ
- ไปที่หน้าการทดลองใช้ Chrome Origin และลงชื่อสมัครใช้
เพิ่มโทเค็นที่ระบุลงในส่วนหัว HTTP ของเว็บไซต์
Origin-Trial: <your-trial-token>
แหล่งข้อมูล
- ข้อกำหนดเกี่ยวกับข้อมูลเข้าสู่ระบบเซสชันที่ผูกกับอุปกรณ์
- ที่เก็บ GitHub สำหรับ DBSC
- คู่มือการผสานรวมข้อมูลเข้าสู่ระบบเซสชันที่ผูกกับอุปกรณ์ (DBSC)
มีส่วนร่วมและกำหนดอนาคตของความปลอดภัยบนเว็บ
มาร่วมทำให้การตรวจสอบสิทธิ์บนเว็บปลอดภัยยิ่งขึ้น เราขอแนะนำให้นักพัฒนาเว็บทดสอบ DBSC ผสานรวมเข้ากับแอปพลิเคชัน และแชร์ความคิดเห็น คุณสามารถมีส่วนร่วมกับเราได้ใน GitHub หรือเข้าร่วมการสนทนากับกลุ่มทํางานด้านความปลอดภัยของเว็บแอป
การใช้ DBSC จะช่วยลดความความเสี่ยงในการลักลอบใช้เซสชันและเพิ่มความปลอดภัยในการตรวจสอบสิทธิ์ให้กับผู้ใช้ เริ่มต้นใช้งานเลยตั้งแต่วันนี้และช่วยกำหนดอนาคตของความปลอดภัยบนเว็บ