JWT Simetrik ve Asimetrik Doğrulama Yöntemleri

K. Murat Baseren
2 min readMay 8, 2024

--

JWT (JSON Web Token) doğrulaması genellikle bir secret key (simetrik anahtar) veya bir public/private key çifti (asimetrik anahtarlar) kullanılarak yapılır. JWT’lerin doğrulanması için token’ı imzalayan taraf ile doğrulayan taraf arasında bir tür ortak bilginin paylaşılması gerekir. Bu, token’ın bütünlüğünün ve kimliğinin doğrulanabilmesi için önemlidir.

Simetrik Anahtar (Secret Key) ile Doğrulama

Simetrik anahtar doğrulamasında, JWT oluşturulurken ve doğrulanırken aynı secret key kullanılır. Bu yöntemde, token’ı doğrulayabilmek için secret key’in hem token’ı oluşturan tarafta hem de doğrulayan tarafta bulunması gerekir. Bu özellikle aynı sistem içindeki bileşenler arası iletişimde kullanışlıdır. Ancak secret key’in güvenli bir şekilde yönetilmesi ve paylaşılması gerekir. Çünkü key’in ifşa olması, JWT’lerin güvenliğini tehlikeye atabilir.

Asimetrik Anahtarlar (Public/Private Key) ile Doğrulama

Asimetrik anahtar doğrulamasında, JWT bir private key ile imzalanır ve bir public key ile doğrulanır. Bu yöntemde, token’ı oluşturan taraf private key’i saklar ve güvenli tutar, doğrulayan taraf ise public key’i kullanarak token’ın geçerliliğini kontrol eder. Public key, adından da anlaşılacağı gibi, paylaşılabilir ve açık olarak erişilebilir olabilir. Bu da token’ın doğrulanmasını kolaylaştırır.

Asimetrik anahtar kullanımı, özellikle farklı sistemler veya kuruluşlar arasında güvenli bir şekilde token paylaşımı yapılması gereken durumlar için uygundur. Bu yöntemle, token’ı oluşturan tarafın güvenilirliğini doğrulamak mümkün olurken, private key’in güvenliği konusunda endişe etmenize gerek kalmaz.

JWT Doğrulaması İçin Secret Key Olmayan Yöntem

Eğer, bir JWT’yi herhangi bir ortak bilgi (secret veya public key) olmaksızın doğrulamak istenirse, standart JWT doğrulama mekanizmaları bir tür ortak bilgi gerektirir. JWT’nin içeriğini (payload) okuyabilirsiniz ancak, bu içeriğin doğrulanması ve token’ın imzasının geçerliliğin kontrol edilmesi için imza işlemi sırasında kullanılan bir anahtara ihtiyaç duyulur.

JWT’nin güvenliği, token’ın imzasının doğrulanabilmesine dayanır. İmzasız bir JWT (örneğin, imzası kontrol edilmeden sadece payload’ına bakılarak kullanılan), güvenliğin önemli olmadığı durumlar dışında önerilmez. İmzasız token’lar manipülasyona açık olabilir ve güvenliği sağlamaz.

--

--

K. Murat Baseren

Software Architect | .NET Developer | Project Manager | Instructor | Lifetime Learner