Spring boot 使用JWTTokenValidator验证Okta令牌时面临问题
我在使用JWTTokenValidator验证Okta令牌时遇到了一个问题 对于ex代币是:eDue41r18EPlCG8JwTAxYAv15jfInh$$$$9hf6H6XBZYSradVOSk9A7wvwB3oJT mlXT&&&&&ORWA3SIRFZCKUNOUKIA*dyvlx0BQutl3YYdfuBzk4OlhqNlump 案例1:如果我在这里更改大于g的最后一个字符,则Jwt验证获得成功(即意外结果) 案例2:如果我更改的最后一个字符小于g,则Jwt验证失败(即正确验证) Okta jwt验证程序版本:“0.5.0” 我找到了两个答案: a b 针对上述解决方案提出的问题(b) 此解决方案表明它是特定于算法的 --如果这是特定于算法的,那么我们如何最终确定要使用的算法,以及未来新算法的出现是否会影响我们的算法? --为什么这不是通用的? 期望:Spring boot 使用JWTTokenValidator验证Okta令牌时面临问题,spring-boot,jwt,okta-api,Spring Boot,Jwt,Okta Api,我在使用JWTTokenValidator验证Okta令牌时遇到了一个问题 对于ex代币是:eDue41r18EPlCG8JwTAxYAv15jfInh$$$$9hf6H6XBZYSradVOSk9A7wvwB3oJT mlXT&&&&&ORWA3SIRFZCKUNOUKIA*dyvlx0BQutl3YYdfuBzk4OlhqNlump 案例1:如果我在这里更改大于g的最后一个字符,则Jwt验证获得成功(即意外结果) 案例2:如果我更改的最后一个字符小于g,则Jwt验证失败(即正确验证) Okt
案例1和案例2的验证均应失败。i、 e如果我替换令牌中的任何字符,则验证将失败这是否回答了您的问题@jps根据您在关于上述链接中给出的答案,我们是说Okta令牌的验证/验证完全依赖于
Base64
编码吗?如果是,那么在HS384
、HS512
、HS25
或不久的将来可能推出的其他产品中,哪一种最好&为什么?我们怎么能说使用Okta令牌的应用程序(不用担心,比如最后2位来自填充)是完全安全的?@OO7 Okta令牌的验证/验证完全依赖于Base64编码-JWT的签名恰好是Base64Url编码的,除此之外,我不知道验证如何依赖于编码。验证取决于匹配的签名(即匹配的x字节长散列值)。这些值是Base64Url还是十六进制,或者标记中编码的任何值都不相关。对于有关信息安全的问题,姐妹站点可能比堆栈溢出更合适。谢谢@jps回复我的查询。正如您所建议的,OP可以在中提出这个问题,以了解更多有关安全性的信息。(b)此解决方案建议它是特定于算法的,请再次阅读,它基本上取决于签名的长度。如果以位为单位的长度(始终是8的倍数)可以被6除而不带余数,那么在末尾就不会有任何不重要的位。简单的数学。为什么这是一个如此大的问题?当base64编码的签名被解码时,您会得到一个x字节长的二进制值,这才是最重要的。