คำตอบนี้ได้รับการรวบรวมโดยความช่วยเหลือของผู้พัฒนาอาวุโสสองคน (John Brayton และ David Jennes)
เหตุผลหลักในการใช้โทเค็นการรีเฟรชคือการลดพื้นผิวการโจมตี
สมมุติว่าไม่มีรหัสรีเฟรชและลองดูตัวอย่างนี้:
อาคารมี 80 ประตู ประตูทุกบานถูกเปิดด้วยกุญแจเดียวกัน กุญแจจะเปลี่ยนทุกๆ 30 นาที ในตอนท้ายของ 30 นาทีฉันต้องมอบกุญแจเก่าแก่ผู้สร้างกุญแจและรับกุญแจใหม่
หากฉันเป็นแฮ็กเกอร์และรับกุญแจของคุณจากนั้นภายใน 30 นาทีฉันจะส่งมอบให้กับผู้สร้างกุญแจและรับรหัสใหม่ ฉันจะสามารถต่อเนื่องเปิดประตูทุกบานโดยไม่คำนึงถึงการเปลี่ยนแปลงที่สำคัญ
คำถาม: ในช่วง 30 นาทีที่ผ่านมาฉันมีโอกาสแฮ็คกุญแจจำนวนเท่าใด? ฉันมีโอกาสแฮ็ค 80 ครั้งทุกครั้งที่คุณใช้คีย์ (คิดว่านี่เป็นการร้องขอเครือข่ายและส่งโทเค็นการเข้าถึงเพื่อระบุตัวตนของคุณ) นั่นคือพื้นผิวการโจมตี 80X
ตอนนี้ลองทำตัวอย่างเดียวกัน แต่คราวนี้สมมติว่ามีคีย์รีเฟรช
อาคารมี 80 ประตู ประตูทุกบานถูกเปิดด้วยกุญแจเดียวกัน กุญแจจะเปลี่ยนทุกๆ 30 นาที ในการรับรหัสใหม่ฉันไม่สามารถส่งโทเค็นการเข้าถึงเก่าได้ ฉันจะต้องส่งคีย์รีเฟรชเท่านั้น
หากฉันเป็นแฮ็กเกอร์และรับกุญแจของคุณฉันสามารถใช้งานได้ 30 นาที แต่เมื่อสิ้นสุด 30 นาทีที่ส่งไปยังผู้สร้างคีย์นั้นไม่มีค่า ถ้าฉันทำเช่นนั้น keymaker จะพูดโทเค็นการรีเฟรชที่ไม่ดีนี้ เพื่อให้สามารถขยายการแฮ็คของฉันได้ฉันจะต้องแฮ็กผู้ให้บริการส่งเอกสารไปยังผู้ผลิตกุญแจ ผู้ให้บริการจัดส่งมีคีย์ที่แตกต่างกัน (คิดว่านี่เป็นโทเค็นการรีเฟรช)
คำถาม: ในช่วง 30 นาทีฉันมีโอกาสแฮ็คกับคีย์รีเฟรชกี่ครั้ง 80? ไม่ฉันมีโอกาสแฮ็คเพียง 1 ครั้งเท่านั้น ในช่วงเวลาที่ผู้ให้บริการจัดส่งสื่อสารกับผู้ผลิตกุญแจ นั่นคือพื้นผิวการโจมตี 1X ฉันมีโอกาสแฮ็คกับกุญแจ 80 ครั้ง แต่พวกเขาไม่ดีหลังจาก 30 นาที
เซิร์ฟเวอร์จะตรวจสอบโทเค็นการเข้าถึงตามข้อมูลประจำตัวและการลงชื่อ (โดยทั่วไป) JWT
การเข้าถึงโทเค็นการรั่วไหลไม่ดี แต่เมื่อหมดอายุแล้วจะไม่มีประโยชน์ต่อผู้โจมตีอีกต่อไป โทเค็นการรีเฟรชที่รั่วยิ่งแย่กว่านั้นมาก แต่น่าจะเป็นไปได้น้อยกว่า (ฉันคิดว่ามีช่องว่างที่จะถามว่าโอกาสในการรั่วไหลของโทเค็นรีเฟรชนั้นต่ำกว่าการรั่วไหลของโทเค็นที่เข้าถึงได้หรือไม่ แต่นั่นเป็นความคิด)
ประเด็นคือมีการเพิ่มโทเค็นการเข้าถึงในทุกคำขอที่คุณทำในขณะที่การใช้โทเค็นการรีเฟรชจะใช้เฉพาะในระหว่างขั้นตอนการรีเฟรชดังนั้นโอกาสที่ MITM จะเห็นโทเค็นน้อยลง
ความถี่ช่วยให้ผู้โจมตี หัวใจที่เหมือนข้อบกพร่องด้านความปลอดภัยใน SSL หัวใจที่อาจเกิดข้อบกพร่องด้านความปลอดภัยในไคลเอนต์และข้อบกพร่องด้านความปลอดภัยที่อาจเกิดขึ้นในเซิร์ฟเวอร์ทำให้การรั่วไหลเป็นไปได้
นอกจากนี้หากเซิร์ฟเวอร์การให้สิทธิ์แยกจากแอปพลิเคชันเซิร์ฟเวอร์ที่ประมวลผลคำขอของไคลเอ็นต์อื่นแอปพลิเคชันเซิร์ฟเวอร์นั้นจะไม่เห็นโทเค็นการรีเฟรช มันจะเห็นโทเค็นการเข้าถึงที่จะไม่อยู่อีกต่อไป
การแบ่งส่วนเป็นสิ่งที่ดีสำหรับความปลอดภัย
สุดท้าย แต่ไม่ท้ายสุดก็เห็นคำตอบที่ยอดเยี่ยมนี้
โทเค็นการรีเฟรชใดที่ไม่เกี่ยวกับ
ความสามารถในการอัปเดต / เพิกถอนระดับการเข้าถึงผ่านโทเค็นการรีเฟรชเป็นผลพลอยได้จากการเลือกใช้โทเค็นการรีเฟรชมิฉะนั้นโทเค็นการเข้าถึงแบบสแตนด์อโลนอาจถูกเพิกถอนหรือปรับเปลี่ยนระดับการเข้าถึงเมื่อหมดอายุและผู้ใช้ได้รับโทเค็นใหม่