JWT.io正在基于空秘密验证令牌,并说签名已验证

时间:2020-04-24 18:50:02

标签: security jwt json-web-signature

我对此完全陌生,所以请忍受我的问题是否完全愚蠢。我正在学习如何使用https://jwt.io

来验证签名

以下是我在做什么

生成的公钥/私钥对

私钥

-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,4A6A48288A531DCA

m2glcvku6rdV8z0QBsBc3Hc72vG4NN3wIPnqdC47FTA3y9WiD7Ukh4m3ZpL2mraz
7PSblIe8ob/aaG9TYViIb4QRYZFg8z3jR6WeNEhC2EbC2CwkSSH3ug8ViQ+1i8d1
kMnQDK1i/s0BZvxlhKPuSy2kOIjelWctkDHvJyvU/WQ=
-----END EC PRIVATE KEY-----

公钥

ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHpqkegB/A/12vqfApHOaFXaJcHkyhNw1u9XnZe2+hiDT698U4c3iet5VyTo3D1DOe7Xi5dG07UorsMvWCmSbvU= 

我使用this网站生成了 ECDSA-256 密钥对,其密码短语为 H2

创建JSON Web令牌(JWT)

我使用http://jwtbuilder.jamiekurtz.com/生成令牌

我使用私钥对JWT进行了签名。以下是令牌

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIYXJpdCIsImlhdCI6MTU4Nzc1MjM3NCwiZXhwIjoxNjE5Mjg4Mzc0LCJhdWQiOiJodHRwczovL3d3dy5oYXJpdC5kZXYiLCJzdWIiOiJjb250YWN0QGhhcml0LmNvbSIsIkdpdmVuTmFtZSI6Ikhhcml0IiwiU3VybmFtZSI6IkhpbWFuc2h1In0.pmvGfBXH4603YMGYDB6qOXlQjhfdPulvbODrK70ihS0

验证

我去了https://jwt.io网站,下面是我尝试过的视频

JWT Issue

问题

当机密为空时,JWT如何验证并告知其为有效签名。我什至没有提供这个秘密。

我想念什么?

1 个答案:

答案 0 :(得分:5)

当您在左侧粘贴令牌,然后在右侧列的输入字段中更改密钥或密钥时,将计算出一个新签名,然后自动对其进行验证。而且这个秘密也可以是空的,不是可取的,而是可能的。

请在左栏中观察令牌的签名部分发生了什么。您会注意到它发生了变化!

这通常会导致误解,人们在这里问为什么要使用给定的秘密来验证其令牌,但是他们的API表示它是无效的。但是他们没有注意到输入秘密时重新计算了签名。

如果要检查是否可以使用给定的密码验证令牌,则始终需要首先将密码粘贴到右列(在“验证签名”下)和然后将令牌粘贴到左列。