การหมุนเวียนรีเฟรชโทเค็นคืออะไรและทำไมจึงสำคัญ?
มาเจาะลึกกันและพูดถึงว่าทำไมการหมุนเวียนรีเฟรชโทเค็นจึงเป็นวิธีที่มีประสิทธิภาพในการปกป้องความปลอดภัยของรีเฟรชโทเค็นของคุณ
มาเจาะลึกกันและพูดถึงว่าทำไมการหมุนเวียนรีเฟรชโทเค็นจึงเป็นวิธีที่มีประสิทธิภาพในการปกป้องความปลอดภัยของรีเฟรชโทเค็นของคุณ
รีเฟรชโทเค็นเป็นโทเค็นประเภทพิเศษที่ใช้เพื่อรับโทเค็นการเข้าถึงใหม่เมื่อโทเค็นการเข้าถึงปัจจุบันหมดอายุ ดูโพสต์ก่อนหน้าของเราที่ ทำความเข้าใจโทเค็นใน OIDC เพื่อเรียนรู้เพิ่มเติม
ในระหว่างการแนะนำ เราได้กล่าวไว้ว่า ใน Logto เพื่อปกป้องความปลอดภัยของรีเฟรชโทเค็นของคุณ เราได้บังคับใช้กลไก "การหมุนเวียนรีเฟรชโทเค็น" เป็นค่าเริ่มต้น
แต่แท้จริงแล้ว "การหมุนเวียนรีเฟรชโทเค็น" คืออะไร และมันเป็นประโยชน์ต่อผู้ใช้งานของเราอย่างไร มาดำน้ำลึกกันเลย!
การหมุนเวียนรีเฟรชโทเค็นเป็นกลไกที่ทำให้รีเฟรชโทเค็นก่อนหน้านี้เป็นโมฆะและออกโทเค็นใหม่เมื่อใช้รีเฟรชโทเค็นเพื่อรับโทเค็นการเข้าถึงใหม่ กลไกนี้ทำให้มั่นใจได้ว่ารีเฟรชโทเค็นจะได้รับการต่ออายุก่อนที่จะหมดอายุ
รีเฟรชโทเค็นมีช่วงเวลาชีวิตที่ยาวนาน มักนานเป็นสัปดาห์หรือแม้กระทั่งเดือน และเนื่องจากเราสามารถรับโทเค็นการเข้าถึงใหม่ด้วยรีเฟรชโทเค็น รีเฟรชโทเค็นจึงกลายเป็นเป้าหมายที่น่าสนใจสำหรับผู้โจมตี ดังนั้น ตาม OAuth 2.0 BCP เซิร์ฟเวอร์การอนุญาตต้องดำเนินมาตรการอย่างหนึ่งต่อไปนี้เพื่อป้องกันการโจมตีดังกล่าว
Sec-Token-Binding) ในหัวข้อคำขอรีเฟรช ดังนั้นรีเฟรชโทเค็นที่ออกจึงผูกพันทางการเข้ารหัสกับไคลเอนต์ที่เฉพาะเจาะจง อย่างไรก็ตาม ปัจจุบันมีเพียงบางไคลเอนต์พื้นเมืองเท่านั้นที่กำหนดให้กับผู้ส่ง และส่วนใหญ่ของ SPA และไคลเอนต์มือถือที่ทันสมัยไม่เป็นสาธารณะใน Logto เมื่อผู้ใช้งานเข้าสู่ระบบเรียบร้อย วัตถุ Grant จะถูกสร้างขึ้นก่อนในฐานข้อมูลและรีเฟรชโทเค็นที่ออกในภายหลังจะมีการอ้างอิง grantId และชี้ไปที่วัตถุ Grant แรกสุด
ทุกครั้งที่มีการหมุนเวียนรีเฟรชโทเค็น รีเฟรชโทเค็นก่อนหน้านี้จะถูกทำเครื่องหมายว่าใช้ไป และเซิร์ฟเวอร์การอนุญาตของ Logto จะออกรีเฟรชโทเค็นใหม่พร้อม grantId เดียวกัน
สมมติว่ารีเฟรชโทเค็นก่อนหน้านี้รั่วไหล แล้วไม่ว่าจะเป็นลูกค้าที่ถูกต้องตามกฎหมายหรือผู้โจมตีจะใช้มันเพื่อแลกโทเค็นการเข้าถึง และไม่ว่าใครจะทำสิ่งนั้น รีเฟรชโทเค็นที่รั่วไหลจะต้องถูกหมุนเวียนและทำเครื่องหมายว่าใช้ไปแล้ว ผู้ใช้คนหนึ่งที่ใช้รีเฟรชโทเค็นที่ใช้ไปแล้วที่สองจะบอกเซิร์ฟเวอร์การอนุญาตถึงการละเมิด เซิร์ฟเวอร์การอนุญาตจะยกเลิกรีเฟรชโทเค็นทั้งหมดที่มี grantId เดียวกัน
ในกรณีข้างต้น หลังจากที่มีการสัญญาณเตือน ลูกค้าที่ถูกต้องตามกฎหมายสามารถเข้าสู่ระบบอีกครั้งผ่านกระแสการเข้าสู่ระบบเพื่อรับรีเฟรชโทเค็นใหม่ ในทางกลับกัน ผู้โจมตีจะสูญเสียการควบคุมระบบของคุณและถูกบล็อกไว้ภายนอก
ใน Logto พฤติกรรมเริ่มต้นของการหมุนเวียนรีเฟรชโทเค็นระบุว่า:
ในคอนโซลผู้ดูแลระบบ Logto ไปที่ Admin Console > Applications และเลือกแอปพลิเคชันที่คุณต้องการสลับการหมุนเวียนรีเฟรชโทเค็น ในหน้ารายละเอียดแอปพลิเคชัน ไปที่แท็บ "การตั้งค่าขั้นสูง" และเลื่อนลงไปที่ด้านล่าง คุณจะพบสวิตช์พร้อมกับการตั้งค่าที่มีประโยชน์อื่นๆ

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