DPoP — jeton neden çalınamaz
Her erişim jetonu, istemcinin DPoP anahtarının parmak izine (cnf.jkt) bağlıdır. Her istekte o anahtarla imzalı kısa bir
kanıt (DPoP başlığı) gönderilir: yöntem (htm), adres (htu, sorgu dizesi olmadan), zaman (iat, ±60 sn), tek
kullanımlık kimlik (jti), sunucu nonce’u (nonce) ve jetonun özeti (ath). Çalınan jeton, anahtar olmadan işe yaramaz.
- Kabul edilen algoritmalar: ES256 ve EdDSA. RSA yok.
- Sunucu nonce’u 5 dakikada bir döner;
401+WWW-Authenticate: DPoP error="use_dpop_nonce"gelirse yanıttakiDPoP-Nonceile kanıtı yeniden üret. - Tarayıcıda anahtarı
crypto.subtle.generateKey({ name: "ECDSA", namedCurve: "P-256" }, false, ["sign"])ile üret (dışa aktarılamaz) ve IndexedDB’de tut; jetonlarılocalStorage’a yazma. - Refresh jetonu da aynı anahtara bağlıdır; anahtar değişirse üyeden yeniden izin istenir.