RFC 9278 JWK Thumbprint URI, modern kimlik ve API güvenliği uygulamalarında belirli bir birlikte çalışabilirlik sorununu çözmek için yayımlanmış IETF standardıdır. Doğru uygulama yalnız başarılı örneği çalıştırmak değil, saldırı ve hata koşullarını da açık biçimde yönetmek anlamına gelir.
RFC 7638 ile hesaplanan JWK Thumbprint değerini URI gerektiren bağlamlarda güvenli ve türü belirli bir anahtar kimliği olarak taşımak için standart bir urn:ietf:params:oauth:jwk-thumbprint öneki tanımlar.
RFC 9278 JWK Thumbprint URI: Hızlı Bakış
| Temel dayanak |
RFC 7638 JWK Thumbprint |
| URI öneki |
urn:ietf:params:oauth:jwk-thumbprint |
| Zorunlu algoritma |
SHA-256 |
| Amaç |
URI biçiminde anahtar kimliği |
| Girdi |
Canonical JWK üyeleri |
RFC 9278 JWK Thumbprint URI Neden Önemlidir?
Dağıtık sistemlerde token, anahtar ve yetkilendirme verisi birden fazla bileşen arasında taşınır. RFC 9278 JWK Thumbprint URI ortak veri biçimi ve doğrulama beklentisi sağlayarak özel, birbirine uyumsuz çözümleri azaltır. Ancak standart biçimi kullanmak tek başına güvenlik sağlamaz; issuer, audience, algoritma, yaşam süresi, hata yönetimi ve anahtar politikaları ayrıca uygulanmalıdır.
RFC 9278 JWK Thumbprint URI İçin 10 Kritik Güvenlik Kontrolü
1. URI Önekini Tam Eşleştirin
Gelen değerin urn:ietf:params:oauth:jwk-thumbprint önekini doğru kullandığını kontrol edin. Benzer görünen özel şemaları veya yazım farklılıklarını otomatik kabul etmeyin.
2. Hash Algoritması Tanımlayıcısını Doğrulayın
URI içindeki algoritma adı IANA Named Information Hash Algorithm Registry değerlerinden biri olmalıdır. Bilinmeyen algoritmalar geçersiz sayılmalıdır.
3. SHA-256 Desteğini Zorunlu Tutun
RFC 9278 birlikte çalışabilirlik için SHA-256 desteğini zorunlu kılar. Daha zayıf algoritmalar için geriye uyumluluk bahanesiyle sessiz geçiş yapmayın.
4. Thumbprint Hesabını RFC 7638’e Göre Yapın
JWK üyelerini rastgele JSON sırasıyla özetlemek farklı sonuç üretir. Anahtar türüne gerekli üyeleri seçin, canonical JSON biçimini oluşturun ve UTF-8 baytları üzerinde hash hesaplayın.
5. Base64url Kodlamasını Kontrol Edin
Thumbprint değeri URL güvenli Base64 kodlamasını padding olmadan kullanır. Standart Base64, boşluk veya hatalı karakterleri normalleştirerek kabul etmeyin.
6. Anahtar Türüne Göre Üyeleri Seçin
RSA, EC ve oct anahtarlarında thumbprint hesabına giren zorunlu üyeler farklıdır. Gereksiz metadata alanlarını hesaba katmak birlikte çalışabilirliği bozar.
7. URI ile Gerçek Anahtarı Eşleştirin
Bir anahtar sunulduğunda thumbprint’i yeniden hesaplayın ve URI değeriyle sabit zamanlı karşılaştırın. Yalnız kid alanına güvenmeyin.
8. Anahtar Rotasyonunu Tasarlayın
Yeni anahtar yeni thumbprint ve URI üretir. Eski kimliklerin kabul süresini, iptalini ve cache temizliğini açık biçimde yönetin.
9. Bağlamlar Arası Karışıklığı Önleyin
Aynı URI biçimi farklı protokollerde kullanılabilir. Anahtar kimliğinin hangi issuer, tenant veya güven alanına ait olduğunu ayrıca doğrulayın.
10. Kayıt ve Gizlilik Politikasını Belirleyin
Thumbprint özel anahtarı açığa çıkarmaz; yine de kalıcı bir anahtar tanımlayıcısı olarak sistemler arasında ilişkilendirme yaratabilir. Log saklama ve paylaşım politikasını sınırlandırın.
RFC 9278 JWK Thumbprint URI Uygulama Örneği
urn:ietf:params:oauth:jwk-thumbprint:sha-256:BASE64URL_THUMBPRINT
Örnek yalnız yapıyı göstermek içindir. Üretim ortamında gerçek anahtar, uç nokta, algoritma ve güven politikaları kuruluşun tehdit modeline göre seçilmelidir. Testler yalnız geçerli veriyi değil; hatalı imza, yanlış audience, bilinmeyen algoritma, tekrar saldırısı ve süresi dolmuş veri senaryolarını da kapsamalıdır.
Sık Yapılan Uygulama Hataları
- JSON üye sırasını canonical hâle getirmemek
- Standart Base64 kullanmak
- Bilinmeyen algoritmayı kabul etmek
- kid ile thumbprint’i aynı sanmak
- Anahtar rotasyonunda eski URI’leri süresiz kabul etmek
İlgili Tekno Türkiye İçerikleri
RFC 7662 Token Introspection, RFC 9449 DPoP ve RFC 8414 Authorization Server Metadata rehberlerini de inceleyebilirsiniz.
Sık Sorulan Sorular
JWK Thumbprint URI ne işe yarar?
Bir JWK thumbprint değerini URI beklenen alanlarda türü belirli bir anahtar kimliği olarak taşır.
Hangi algoritma zorunludur?
SHA-256 desteği zorunludur.
kid ile aynı şey midir?
Hayır. kid atanmış bir anahtar etiketi olabilir; thumbprint anahtar malzemesinden deterministik hesaplanır.
Özel anahtar URI içinde bulunur mu?
Hayır. URI yalnız canonical genel anahtar gösteriminin hash değerini taşır.
Essential Uygulama Özeti
RFC 9278 JWK Thumbprint URI uygulanırken giriş doğrulama, anahtar yönetimi ve bağlam kontrolleri birlikte ele alınmalıdır. RFC 9278 JWK Thumbprint URI yalnız veri biçimi olarak görülmemeli, uçtan uca güven politikasıyla desteklenmelidir. Her RFC 9278 JWK Thumbprint URI dağıtımı negatif testler ve gözlemlenebilir güvenlik kayıtları içermelidir. Güvenli bir RFC 9278 JWK Thumbprint URI uygulaması beklenmeyen algoritmayı reddeder, yetki sınırlarını dar tutar ve hataları istemciye gereksiz ayrıntı vermeden yönetir.
Resmî ve Güvenilir Kaynaklar
Sonuç
RFC 9278 JWK Thumbprint URI, doğru tehdit modeli ve sıkı doğrulama kurallarıyla kullanıldığında kimlik altyapısının birlikte çalışabilirliğini ve güvenliğini güçlendirir. En önemli yaklaşım, standardı yalnız normal akış için değil; anahtar değişimi, saldırı, iptal ve hata senaryoları için de eksiksiz uygulamaktır.