Refreshtoken API'sini açığa çıkarmak güvenli midir

0

Soru

Ön uçta React kullanılarak geliştirilmiş bir uygulamam var ve ASP.Net Arka uçta Web API'si. Yetkilendirme için JWT kullanıyorum. Süreç şu şekildedir

  1. Bir kullanıcı oturum açtığında ve kimliği doğrulandığında, ön uç, erişim belirteci ve yenileme belirtecine 2 belirteç gönderilir. Erişim belirteci jwt'dir ve yenileme belirteci rasgele bir dizedir ve yenileme belirteci bir veritabanında depolanır.
  2. Sonraki her API çağrısı için erişim belirteci başlığa eklenir, erişim belirtecini doğrulayan bir kimlik doğrulama filtrem var.
  3. Erişim belirtecinin süresi dolduğunda, TokenExpired hata iletisiyle 401 durumu atılır.
  4. Ön uç 401'i aldığında, yenileme belirtecini almak için yenileme belirteci API'sini çağırır

Vadesi dolmuş erişim simgesi için 401 atar gibi yenile simgeleri API erişim simgesi doğrulamak için kimlik doğrulama filtre olamaz benim merak ettiğim şey ise, yani refresh token API anonim olmak çok kimlik doğrulama süzgeci vurmak için değil gerek. Anonim hale getirirsem, kullanıcı için saklanan yenileme belirtecini almak ve ön uçtan aldığım ile karşılaştırmak için veritabanına bir çağrı yapıyorum. Öyleyse, en iyi yol değilse, yenileme belirteci API'sini anonim hale getirmek güvenli midir?

asp.net-web-api c# jwt
2021-11-24 05:13:45
2
0

Auth0'da, yaşam döngülerine güvenlik önlemleri ve kontroller uygulayarak yenileme belirteçlerinin kullanımıyla ilişkili riskleri azaltan bir dizi özellik oluşturuldu. Kimlik platformumuz, otomatik yeniden kullanım tespiti ile birlikte gelen yenileme belirteci rotasyonu sunar.

Lütfen aşağıdaki konuyu okuyun.

Belirteç Rotasyonunu Yenile

Jetonu Yenile Otomatik Yeniden Kullanım Algılama

2021-11-24 05:56:21

Yenileme belirteci rotasyonu yapıyoruz. Yeni bir erişim belirteci istendiğinde yenileme belirteciyle doğrularız ve yeni bir erişim belirteci ve yeni bir yenileme belirteci sağlarız ve yenileme belirteci veritabanında güncelleştirilir. Bununla birlikte, otomatik yeniden kullanım tespitinde belirtildiği gibi şimdiye kadar oluşturulan tüm yenileme belirteçlerinin listesini saklayabileceğimizi sanmıyorum
Raghul Raman
0

JWT önceden paylaşılan gizli anahtar kullanılarak imzalanır. Arka uçta REST API'si olduğundan ve vatansız olduğundan, jwt yetkilendirme ve ana nesne oluşturma için kullanılır

Dediğiniz gibi, erişim belirteci uygulamanızda yetkilendirmeyi temsil eder, yenileme belirteci açıksa yenileme belirteci kötü bir aktör tarafından aynı yetkilendirme için kullanabilecekleri bir erişim belirteci elde etmek üzere sunulabilir.

'Önceden paylaşılan bir sır' kullanmak, jwt'nin yalnızca jwt'nin bir HMAC varyantı olduğunu, yani 'önceden paylaşılan bir sır' yerine özel ve genel anahtar çiftini göstereceği için şifreleme olmadığını gösterir. Bu nedenle, JWT esasen güvenlik özelliklerinin amaçları için bir imzadır jwt'nin iddialarının iyi bir şekilde oluşturulduğunu ve imzalandığından beri değiştirilmediğini bütünlüğü sağlıyoruz. Aynı zamanda, bir uçta imzalama için diğer uçta doğrulamak için kullanıldığı gibi aynı sırrın kullanılması gerektiği anlamına gelir, çünkü imzanın doğrulanması her iki ucun da imzayı oluşturmasını ve her ikisinin de imzanın eşleşmesini gerektirir. Yani hiçbir veri şifrelenmiyor, bu yüzden jwt'deki veriler hassas değil ve korunması gerekiyor.

Bu bağlam göz önüne alındığında, hem yenileme hem de erişim belirteci, yalnızca sırrın sahibi tarafından oluşturulabilen basit bir JWT'DİR-eğer açığa çıkarlarsa, geçerli kaldıkları sürece kötü amaçlı istekler yapmak için kullanılabilirler (nbf iddia).

Esasen, bu tür bir JWT, jwt'yi imzalayan sırrın temsil ettiği kimliği taklit etmeye maruz kalırsa, sırrın kendisini bilmeden kötüye kullanılabilir. nbf iddia belirteç süresi ve yenileme token uzatmak için mekanizma nbf sırrına sahip olmadan hak talebinde bulunun (ki bu yeni bir imzaya neden olur, çünkü nbf talep kullanıldığında değişecektir).

Erişim belirtecinin yeniden kullanılmasına karşı bir koruma vardır, bu nonce iddiasıdır. Eğer ki şu anda kullanılan pasif iddia edemez okumak hakkında nasıl OİDC var uygulanan ve o da aynı sizin app. Ancak dediğiniz gibi, uygulamanız durumsuzdur, ancak umarım arka uç, yeniden kullanılmamasını sağlamak ve JWT imzasının yeniden kullanılmasını önlemek için bir durum biçimine sahiptir. Her nonce için JWT imzası değişir, bu nedenle erişim belirteci değişir ve yalnızca 1 kez kullanılabilir. Yani eğer çalınmış büyük ölçüde mükemmel bir çözüm değil ama riski minimize token ilk kullanan ırk bir durumdur.

2021-11-24 09:11:17

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................