JWT Çözücü

JSON Web Token'lar (JWT'ler), iki taraf arasında talepleri temsil etmenin kompakt ve URL güvenli bir yoludur. Çoğu JWT, bütünlüğü sağlayan ancak içeriği şifrelemeyen JWS (JSON Web Signature) kullanılarak imzalanır. Bu araç, talepleri ortaya çıkarmak için başlık ve yükü çözer, zaman damgalarını okunabilir formatta gösterir ve token'ın süre dolumu durumunu görüntüler.

Spesifikasyonlar

Yaygin Kullanim Alanlari

  • OAuth 2.0 ve OpenID Connect kimlik doğrulama akışlarını hata ayıklama
  • Kimlik sağlayıcılarından (Auth0, Okta, Keycloak) erişim token'larını ve ID token'larını inceleme
  • API geliştirme sırasında token taleplerinin beklenen değerlerle eşleştiğini doğrulama
  • "401 Unauthorized" hatalarını giderirken token süre dolumunu kontrol etme
  • Üçüncü taraf hizmetlerle entegrasyon sırasında token yapısını anlama
  • Güvenlik incelemesi için token denetimi (algoritma, talepler, süre dolumu)

Ozellikler

  • JWT başlık ve yükünü çözme (JWS formatı)
  • Algoritma (HS256, RS256, ES256, PS256, EdDSA) ve token türünü görüntüleme
  • Kayıtlı talepleri ayrıştırma: iss (yayıncı), sub (konu), aud (hedef kitle), exp (süre dolumu), nbf (öncesinde geçersiz), iat (yayınlanma zamanı), jti (JWT ID)
  • Okunabilir geri sayım ile süre dolumu durumunu gösterme
  • Çözülmüş bölümleri biçimlendirilmiş JSON olarak kopyalama

Ornekler

OAuth 2.0 Erişim Token'ı

Deneyin →

Konu, yayıncı ve süre dolumu dahil standart taleplere sahip tipik bir erişim token'ı.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE5MTYyMzkwMjJ9.4S5J5J5J5J5J5J5J5J5J5J5J5J5J5J5J5J5J5J5J5J5

Ipuclari

  • JWS token'ları (en yaygın tür) imzalanır ancak şifrelenmez. Token'a sahip herkes yükü Base64 çözme ile okuyabilir.
  • JWE token'ları yükü şifreler ancak daha az yaygındır. Bu araç JWS token'larını çözer.
  • Taleplere güvenmeden önce sunucu tarafında imzaları her zaman doğrulayın. Bu araç çözülmüş içeriği gösterir ancak imzaları doğrulamaz.
  • "alg": "none" algoritması bir güvenlik riskidir ve sunucular tarafından reddedilmelidir.
  • Simetrik algoritmalar (HS256) paylaşılan bir gizli anahtar kullanır; asimetrik algoritmalar (RS256, ES256) açık/özel anahtar çiftleri kullanır.
  • "exp" talebi saniye cinsinden Unix zaman damgasıdır. Süresi dolmuş token'ları kabul etmemek için kontrol edin.

Anlama JWT Çözücü

JSON Web Token'lar (JWT'ler), modern web kimlik doğrulama ve yetkilendirme için baskın token formatıdır. JWT, noktalarla ayrılmış üç Base64url kodlu segmentten oluşan kompakt ve URL güvenli bir dizedir: imzalama algoritmasını belirten bir başlık, kullanıcı veya oturum hakkında talepleri içeren bir yük ve token'ın değiştirilmediğini garanti eden kriptografik bir imza. Bu yapı, herhangi bir tarafın basit Base64 çözme ile token içeriğini okumasına olanak tanırken, yalnızca imzalama anahtarına sahip taraflar geçerli token'lar oluşturabilir veya doğrulayabilir.

Çoğu JWT, yükün imzalandığı ancak şifrelenmediği JWS (JSON Web Signature) formatını kullanır. Başlıktaki "alg" alanı algoritmayı belirtir: HS256 gibi simetrik algoritmalar hem yayıncı hem de doğrulayıcı tarafından bilinen paylaşılan bir gizli anahtar kullanırken, RS256 ve ES256 gibi asimetrik algoritmalar imzalama için özel anahtar ve doğrulama için açık anahtar kullanır. Asimetrik algoritmalar, doğrulama anahtarının imzalama anahtarını tehlikeye atmadan herkese açık olarak paylaşılabilmesi nedeniyle dağıtık sistemlerde tercih edilir.

Yük, RFC 7519 tarafından tanımlanan kayıtlı talepleri içerir: "iss" (yayıncı), "sub" (konu), "aud" (hedef kitle), "exp" (süre dolumu zamanı), "nbf" (öncesinde geçersiz), "iat" (yayınlanma zamanı) ve "jti" (JWT ID). OAuth 2.0 ve OpenID Connect, kapsamlar, roller ve kullanıcı profil bilgileri için ek talepler ekler. "exp" talebi güvenlik açısından kritiktir - süre dolumu olmayan veya aşırı uzun ömürlü token'lar yaygın bir güvenlik açığıdır.

JWT'ler OAuth 2.0 erişim token'larında, OpenID Connect ID token'larında, API kimlik doğrulamasında ve oturum yönetiminde kullanılır. Auth0, Okta ve Keycloak gibi kimlik sağlayıcıları, uygulamaların sağlayıcıyla iletişime geçmeden doğrulayabildiği JWT'ler yayınlayarak durumsuz kimlik doğrulamayı mümkün kılar. Ancak bu, iptal etmeyi zorlaştırır - ele geçirilmiş bir token süresi dolana kadar geçerli kalır, bu nedenle kısa süre dolumleri ve token yenileme akışları temel güvenlik uygulamalarıdır.

JWS token'ları şifrelenmek yerine Base64url ile kodlandığından, token'a sahip herkes başlığı ve yükü çözüp okuyabilir. Parolalar, kredi kartı numaraları ve gizli bilgiler gibi hassas veriler asla JWT yüküne konulmamalıdır. JWE (JSON Web Encryption) token'ları yükü şifreler ancak pratikte çok daha az yaygındır. Kodlama ile şifreleme arasındaki fark, JWT'lerle çalışırken anlaşılması gereken en önemli konulardan biridir.

İmzalama algoritması seçiminin önemli güvenlik etkileri vardır. HS256, hem imzalama hem de doğrulama için tek bir paylaşılan gizli anahtar kullanan simetrik bir algoritmadır; uygulanması basittir ancak her iki tarafın da aynı gizli anahtarı güvenli bir şekilde saklamasını gerektirir. RS256 ve ES256, imzalama için özel anahtar ve doğrulama için açık anahtar kullanan asimetrik algoritmalardır. Dağıtık sistemlerde, açık anahtar genellikle bir JWKS (JSON Web Key Set) uç noktası aracılığıyla açıkça paylaşılabildiğinden ve imzalama anahtarını tehlikeye atmadığından asimetrik algoritmalar tercih edilir. "alg": "none" seçeneği, hiç imzası olmayan imzasız bir token'ı belirtir, yani herkes rastgele taleplerle token'lar sahteleştirebilir. İyi bilinen bir saldırı, algoritma başlığını "none" olarak değiştirip imzayı kaldırmayı içerir. Sunucular algoritmayı her zaman bir izin listesine göre doğrulamalı ve imzasız token'ları reddetmelidir.

Uygun süre dolumu yönetimi JWT güvenliği için zorunludur. Uygulamalar, token'a güvenmeden önce her istekte "exp" talebini kontrol etmelidir. Token'ın süresi dolduğunda, güvenli bir şekilde saklanan yenileme token'ı (genellikle httpOnly çerezinde) kullanılarak kullanıcının tekrar oturum açmasına gerek kalmadan yeni bir erişim token'ı alınabilir. Erişim token'ı ömrünü kısa tutmak - genellikle 5 ila 15 dakika - token ele geçirildiğinde maruz kalma süresini sınırlar. Erişim token'ının süresi dolmadan önce token yenilemeyi proaktif olarak uygulamak, uygulamadaki kullanıcıya görünür kesintileri önler.

← Tum araclara don