【发布时间】:2016-07-21 15:36:52
【问题描述】:
我的应用程序正在使用 JWT,应该可以防止重放攻击。我正在测试这个并遇到了以下问题。
当我拥有有效的 JWT 并更改令牌/签名的最后一个字符时,JWT 仍然有效。例如。以下令牌都正确验证:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJTb21lIFRlc3QiLCJjbGFpbSI6IlNvbWUgQ2xhaW0ifQ.UkFYSK7hSSeiqUOSMdbXgbOErMFnuK0Emk1722ny-r4
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJTb21lIFRlc3QiLCJjbGFpbSI6IlNvbWUgQ2xhaW0ifQ.UkFYSK7hSSeiqUOSMdbXgbOErMFnuK0Emk1722ny-r5
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJTb21lIFRlc3QiLCJjbGFpbSI6IlNvbWUgQ2xhaW0ifQ.UkFYSK7hSSeiqUOSMdbXgbOErMFnuK0Emk1722ny-r6
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJTb21lIFRlc3QiLCJjbGFpbSI6IlNvbWUgQ2xhaW0ifQ.UkFYSK7hSSeiqUOSMdbXgbOErMFnuK0Emk1722ny-r7
我已经在http://jwt.io/ 上检查了这一点,并且也可以在我的 .Net 应用程序中复制。
有人可以解释为什么签名对于给定的有效负载不是唯一的吗?我知道可能会发生冲突,但我无法解释它们是连续的序列。
【问题讨论】:
标签: base64 digital-signature jwt hmac