RFC 7515 JSON Web Signature: Hızlı Bakış
| Standart | RFC 7515 |
|---|---|
| Temel yapı | Protected Header, Payload, Signature |
| Gösterimler | Compact ve JSON Serialization |
| Ana amaç | Bütünlük ve kaynağın doğrulanması |
| Önemli not | JWS veriyi şifrelemez |
RFC 7515 JSON Web Signature İçin 10 Kritik Kontrol
1. Algoritma İzin Listesi Kullanın
Token içinden gelen algoritmayı otomatik kabul etmeyin.
2. none Algoritmasını Reddedin
İmzasız JWS beklenmiyorsa alg none kesin biçimde reddedilmelidir.
3. Protected Header Alanını Doğrulayın
alg, kid, typ ve crit gibi alanları korumalı başlıkta taşıyın.
4. Anahtarı Güvenilir Kaynaktan Seçin
kid yalnız seçme ipucudur. Anahtarı önceden güvenilen JWKS kaynağından alın.
5. İmzayı Önce Doğrulayın
İmza doğrulanmadan payload içindeki kimlik veya yetki verisini kullanmayın.
6. crit Parametresini İşleyin
Anlaşılmayan kritik uzantıları reddedin.
7. Detached Payload Bağlamını Sabitleyin
Ayrı taşınan payload ile doğrulanan baytların aynı olduğundan emin olun.
8. İmza Girdisini Doğru Kurun
Base64url, ayraç ve UTF-8 işlemleri RFC’ye uymalıdır.
9. Anahtar Yaşam Döngüsünü Yönetin
Anahtar üretimi, rotasyonu ve iptalini birlikte planlayın.
10. Negatif Testler Uygulayın
Yanlış anahtar, bozuk base64url ve izin verilmeyen alg örneklerini test edin.
Uygulama Örneği
protected = BASE64URL({"alg":"ES256","typ":"JWT","kid":"key-2026-08"})
payload = BASE64URL(message)
input = protected + "." + payload
signature = BASE64URL(SIGN(private_key, input))
jws = input + "." + signature
Sık Yapılan Hatalar
- alg değerini tokenın belirlemesine izin vermek
- İmzayı doğrulamadan payload kullanmak
- kid değerini güven kanıtı sanmak
- Bilinmeyen crit alanını yok saymak
- JWS’yi şifreleme zannetmek
İlgili İçerikler
RFC 7662 Token Introspection, RFC 9449 DPoP ve RFC 8414 Authorization Server Metadata içeriklerini inceleyebilirsiniz.
Canlı Ortama Geçmeden Önce Son Testler
Canlı ortama geçişten önce doğrulama kütüphanesinin güncel sürümü kullanılmalı ve güvenlik ayarlarının bütün servislerde aynı olduğu kontrol edilmelidir. Başarılı isteklerin yanında değiştirilmiş içerik, eksik bölüm, bozuk kodlama, yanlış anahtar ve izin verilmeyen algoritma örnekleri de denenmelidir.
Hata kayıtlarında yeterli teknik ayrıntı bulunmalı ancak istemciye anahtar, imza veya sistem yapılandırması hakkında bilgi verilmemelidir. Anahtar değişimi sırasında eski ve yeni anahtarların ne kadar süre birlikte kullanılacağı önceden belirlenmeli, beklenmeyen doğrulama hataları için izleme ve alarm kuralları oluşturulmalıdır.
Sık Sorulan Sorular
JWS ile JWT aynı şey midir?
Hayır. JWT bir claim biçimidir; JWT çoğunlukla JWS ile imzalanır.
JWS içeriği gizler mi?
Hayır. Gizlilik için JWE gerekir.
Compact JWS kaç bölümden oluşur?
Protected header, payload ve signature olmak üzere üç bölümden oluşur.
RFC 7515 JSON Web Signature Production Validation Flow
RFC 7515 JSON Web Signature doğrulaması yalnız imza kütüphanesinden başarılı cevap almakla tamamlanmaz. Uygulama önce compact veya JSON gösteriminin yapısını kontrol etmeli, ardından protected header alanlarını ayrıştırmalıdır. Doğrulama için kullanılacak algoritma ve anahtar, token içeriğine göre değil sunucunun önceden tanımlanmış güvenlik politikasına göre seçilmelidir.
Üretim Ortamı Kontrol Sırası
- JWS bölüm sayısını ve base64url biçimini doğrulayın.
- alg değerinin izin verilen algoritmalar arasında bulunduğunu kontrol edin.
- kid değerini yalnız güvenilir JWKS içindeki anahtarı seçmek için kullanın.
- İmzayı doğrulamadan payload içindeki hiçbir değeri işlemeyin.
- Doğrulama başarısızsa tokenı tamamen reddedin ve güvenli bir hata kaydı oluşturun.
Ayrıca aynı doğrulama politikasının bütün servislerde uygulanması gerekir. Bir API’nin reddettiği algoritmayı başka bir servisin kabul etmesi güvenlik sınırını zayıflatabilir. Anahtar rotasyonu sırasında yeni ve eski public anahtarlar kontrollü bir örtüşme süresiyle yayımlanmalıdır.
Test ortamında değiştirilmiş payload, bozuk imza, bilinmeyen kid, izin verilmeyen alg ve anlaşılmayan crit parametresi ayrı senaryolar olarak denenmelidir. Bu yaklaşım normal kullanıcı akışını bozmadan hatalı JWS verilerinin erken aşamada reddedilmesini sağlar.
Essential Uygulama Özeti
RFC 7515 JSON Web Signature uygulanırken giriş doğrulama ve anahtar yönetimi birlikte yapılmalıdır. RFC 7515 JSON Web Signature yalnız veri biçimi olarak görülmemelidir. Her RFC 7515 JSON Web Signature dağıtımı negatif testler içermelidir. Güvenli bir RFC 7515 JSON Web Signature uygulaması beklenmeyen algoritmayı reddeder.
Resmî Kaynaklar
Sonuç
RFC 7515 JSON Web Signature, doğru algoritma ve anahtar politikasıyla veri bütünlüğünü güçlendirir.
