0

我爲我的nodejs項目實現了JWT令牌,但對撤銷令牌的需求使我切換到引用持票人令牌,以完全控制令牌生存期。根據我的項目要求:引用令牌生成最佳實踐

  1. 令牌必須比自我描述的JWT令牌短得多。
  2. 必須有某種方法來確保服務器發出令牌(如JWT中的hs256驗證),但由於參考令牌中沒有有效負載部分,情況會變得更加複雜。

什麼是最佳實踐來實現一個安全的,不可能的猜測,引用標記?

回答

0

一個不透明的令牌只是一個ramdom字符串,它在服務器中映射到一個經過驗證的用戶名。看看https://security.stackexchange.com/questions/19676/token-based-authentication-securing-the-token

這樣的令牌是不夠好,安全,只要攻擊者無法建立以不可忽略的概率,一個「有效令牌」是「令牌是在數據庫中的有效令牌發射令牌「。是足夠的令牌值具有長度至少16字節和產生與加密的強PRNG

爲了減少服務器的存儲需求,則令牌可以包含的用戶名及發行日期,並用加密HMAC私鑰,以便服務器可以驗證真實性。

最後的解決方案非常接近JWT。使用JWT,您還可以使用黑名單標記無效令牌,存儲到其過期時間並在每個請求中檢查它。 (黑名單打破智威湯遜無國籍狀態,因爲它要求保持國家)