Bu cevap iki üst düzey geliştiricinin (John Brayton ve David Jennes) bir araya getirildi.
Yenileme belirteci kullanmanın ana nedeni saldırı yüzeyini azaltmaktır.
Diyelim ki yenileme tuşu yok ve bu örneği inceleyelim:
Bir binanın 80 kapısı vardır. Tüm kapılar aynı anahtarla açılır. Anahtar her 30 dakikada bir değişir. 30 dakikanın sonunda eski anahtarı anahtar üreticisine vermek ve yeni bir anahtar almak zorundayım.
Ben hacker'ım ve anahtarını alırsam, o zaman 30 dakikanın sonunda, bunu anahtar yapımcısına kurtaracağım ve yeni bir anahtar alacağım. Ben yapabileceksiniz sürekli anahtar değişen bakılmaksızın tüm kapıları açın.
Soru: 30 dakika boyunca, anahtara karşı kaç hackleme fırsatım oldu? Anahtarı her kullandığınızda 80 hackleme fırsatım oldu (bunu bir ağ isteği yapmak ve kendinizi tanımlamak için erişim belirtecini geçmek olarak düşünün). Yani bu 80X saldırı yüzeyi.
Şimdi aynı örneği inceleyelim ama bu sefer bir yenileme anahtarı olduğunu varsayalım.
Bir binanın 80 kapısı vardır. Tüm kapılar aynı anahtarla açılır. Anahtar her 30 dakikada bir değişir. Yeni bir anahtar almak için eski erişim kodunu geçemiyorum. Sadece yenileme anahtarını geçmeliyim.
Bilgisayar korsanıyım ve anahtarınızı alırsam, 30 dakika boyunca kullanabilirim, ancak 30 dakikanın sonunda anahtar üreticisine göndermenin hiçbir değeri yoktur. Eğer yaparsam, anahtar yapımcı sadece bu kötü yenileme jetonunu söylerdi. Saldırılarımı genişletebilmek için kuryeyi anahtar yapımcısına hacklemem gerekir. Kurye farklı bir anahtar var (bunu bir yenileme belirteci olarak düşünün).
Soru: 30 dakika boyunca, yenileme anahtarına karşı kaç hackleme fırsatım oldu? 80? Hayır. Sadece 1 hackleme fırsatım oldu. Kurye süre içinde anahtar yapımcısı ile iletişim kurar. Yani bu 1X saldırı yüzeyi. Anahtara karşı 80 hackleme fırsatım oldu, ancak 30 dakika sonra iyi değiller.
Bir sunucu kimlik bilgilerini ve (tipik olarak) bir JWT'nin imzalanmasını temel alarak bir erişim belirtecini doğrular.
Erişim belirteci sızıntısı kötü, ancak süresi dolduğunda saldırgan için artık kullanışlı değil. Yenileme belirteci sızıntısı çok daha kötüdür, ancak muhtemelen daha az olasıdır. (Bir yenileme belirtecinin sızma olasılığının, erişim belirtecinin sızıntı olasılığından çok daha düşük olup olmadığını sorgulamak için yer olduğunu düşünüyorum, ancak fikir bu.)
Önemli olan, erişim belirtecinin yaptığınız her isteğe eklenmesi, ancak bir yenileme belirtecinin yalnızca yenileme akışı sırasında kullanılmasıdır. Bir MITM'nin belirteci görme şansı daha azdır
Frekans bir saldırgana yardımcı olur. SSL'deki kalp gibi potansiyel güvenlik kusurları, istemcideki potansiyel güvenlik kusurları ve sunucudaki potansiyel güvenlik kusurları sızıntıyı mümkün kılar.
Ayrıca, yetkilendirme sunucusu diğer istemci isteklerini işleyen uygulama sunucusundan ayrıysa, uygulama sunucusu hiçbir zaman yenileme jetonlarını görmez. Yalnızca çok daha uzun süre yaşamayan erişim belirteçlerini görecektir.
Bölümlendirme güvenlik için iyidir.
Son fakat en az değil, bu harika cevabı gör
Hangi yenileme simgesi DEĞİLDİR?
Yenileme jetonları aracılığıyla erişim düzeyini güncelleme / iptal etme yeteneği, yenileme jetonlarını kullanmayı seçmenin bir yan ürünüdür, aksi takdirde bağımsız bir erişim jetonu iptal edilebilir veya süresi dolduğunda ve kullanıcılar yeni bir jeton aldığında erişim seviyesi değiştirilebilir.