sencode
·
内容没细看,但我对这标题确实无比认同。
jwt最致命的问题,就是将用户标识明文(base64等同明文)的放在客户端,而且单一依赖同一个secret。一旦secret被泄露,那攻击者就可以毫不费力的冒充所有用户。
而不幸的是,secret的?;げ⒉蛔愎唬?br>1. 一般作为配置,总有人容易接触到。(在安全领域,人是最不可靠的)
2. 要更换secret的话,已签发的所有token都将失效(比如知道了secret的人要离职)
3.算法是明文的,所以,攻击者通过暴力破解,有较大可能碰撞出secret,这是因为:
a. 很多人用一些常见或简单的词语作为secret
b. 碰撞时只需要本机运算,不会访问服务器(如果有足够的利益驱动,算力不是问题),也就是说服务端根本不会知道有人得知了secret。
同样,如果有人碰撞出了secret,那他可以任意的构造不同的用户身份而且不会被发觉