RFC 9901 SD-JWT: Hızlı Bakış
| Taraflar | Issuer, Holder, Verifier |
|---|---|
| Temel yapı | Issuer-signed JWT + Disclosures |
| Bağlama seçeneği | Key Binding JWT |
| Varsayılan özet | SHA-256 |
| Bileşik biçim | SD-JWT veya SD-JWT+KB |
RFC 9901 SD-JWT Neden Önemlidir?
Dağıtık sistemlerde token, anahtar ve yetkilendirme verisi birden fazla bileşen arasında taşınır. RFC 9901 SD-JWT 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 9901 SD-JWT İçin 10 Kritik Güvenlik Kontrolü
1. Issuer İmzasını Zorunlu Tutun
Issuer-signed JWT güvenilir bir anahtarla imzalanmalıdır. none algoritmasını reddedin, alg değerini sabit politikayla kontrol edin ve anahtarın doğru issuer kaydından geldiğini doğrulayın.2. Salt İçin Yeterli Entropi Kullanın
Tahmin edilebilir veya tekrar kullanılan salt değerleri açıklanmayan düşük entropili iddiaların sözlük saldırısıyla bulunmasını kolaylaştırır. Her disclosure için güvenli rastgele salt üretin.3. Hash Algoritmasını Açıkça Yönetin
_sd_alg alanını politika kapsamında doğrulayın. RFC 9901 birlikte çalışabilirlik için SHA-256 desteğini zorunlu kılar; bilinmeyen veya zayıf algoritmaları reddedin.4. Disclosure Özetlerini Yeniden Hesaplayın
Verifier, gelen her disclosure değerinin özetini hesaplamalı ve imzalı payload içindeki karşılıkla eşleştirmelidir. Eşleşmeyen, tekrarlanan veya beklenmeyen disclosure kabul edilmemelidir.5. İddia Adlarını da Gizlilik Açısından Değerlendirin
Bir iddianın değeri saklansa bile adının görünmesi hassas bilgi sızdırabilir. Veri modelini yalnız değer gizliliğine göre tasarlamayın.6. Geçerlilik İddialarını Yanlışlıkla Seçilebilir Yapmayın
exp, nbf veya kritik politika alanlarının disclosure içine alınması verifier’ın geçerlilik kararını bozmamalıdır. Profil, hangi iddiaların daima açık ve zorunlu olduğunu belirlemelidir.7. Holder Key Binding Gereksinimini Belirleyin
Kimlik bilgisinin başka biri tarafından sunulması riskliyse SD-JWT+KB kullanın. cnf anahtarı, KB-JWT imzası, sd_hash, nonce ve audience birlikte doğrulanmalıdır.8. Nonce ile Tekrar Saldırısını Önleyin
Key Binding JWT içindeki nonce tek kullanımlık ve verifier tarafından ilişkilendirilmiş olmalıdır. Eski nonce değerlerini tekrar kabul etmek sunum kopyalama riskini artırır.9. Yalnız Gerekli Disclosure Alanlarını İsteyin
Verifier veri minimizasyonu uygulamalı ve hizmet için gerekmeyen iddiaları talep etmemelidir. Seçici açıklama desteği, aşırı veri toplama için gerekçe değildir.10. Anahtar Yaşam Döngüsünü Planlayın
Issuer ve holder anahtarlarının üretimi, saklanması, rotasyonu ve iptali için ayrı politikalar tanımlayın. Eski anahtarlarla imzalanmış sunumların ne kadar süre kabul edileceğini belirleyin.RFC 9901 SD-JWT Uygulama Örneği
~~~
Ö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ı
- Zayıf veya tekrar kullanılan salt üretmek
- Disclosure özetini kontrol etmemek
- Key Binding gereken yerde yalnız SD-JWT kabul etmek
- Nonce tekrarını engellememek
- Gereksiz kişisel verileri istemek
İ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
SD-JWT ne sağlar?
Holder’ın yalnız seçtiği iddiaları açıklamasını ve verifier’ın bütünlüğü doğrulamasını sağlar.SD-JWT bütün veriyi şifreler mi?
Hayır. Seçici açıklama ve imzalı özet yapısı sağlar; taşıma gizliliği ayrıca korunmalıdır.SD-JWT+KB farkı nedir?
Key Binding JWT ekleyerek holder’ın ilgili özel anahtara sahip olduğunu kanıtlar.Varsayılan hash algoritması nedir?
_sd_alg yoksa SHA-256 kullanılır ve uygulamalar SHA-256’yı desteklemelidir.Essential Uygulama Özeti
RFC 9901 SD-JWT uygulanırken giriş doğrulama, anahtar yönetimi ve bağlam kontrolleri birlikte ele alınmalıdır. RFC 9901 SD-JWT yalnız veri biçimi olarak görülmemeli, uçtan uca güven politikasıyla desteklenmelidir. Her RFC 9901 SD-JWT dağıtımı negatif testler ve gözlemlenebilir güvenlik kayıtları içermelidir. Güvenli bir RFC 9901 SD-JWT 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
- RFC 9901 — Selective Disclosure for JWTs
- RFC 7519 — JSON Web Token
- RFC 8725 — JWT Best Current Practices
