问题标签 [json-web-signature]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
497 浏览

java - 为 JWT 存储 RSA256 密钥

我在为 Json Web 令牌 (JWT) 存储 RSA256 私有和公共令牌时遇到问题。

我正在使用 jsonwebtoken.io,我创建了令牌,并且能够使用已作为文本存储在我的数据库中的私钥和公钥来创建令牌。

但是,如果我将令牌带到 JWT.io 并尝试使用我的公钥验证它,它会说它是无效的。我的智威汤逊令牌

私钥

公钥

这就是我创建密钥的方式

这就是我从数据库中加载密钥的方式

0 投票
0 回答
76 浏览

jwt - CA API Gateway 编码 JWT-Sign 有效负载和解码 JWT-Validate

我有一个 2048 位 rsa 私钥文件(pem 格式),我需要在 CA API Gateway 中使用此私钥对有效负载进行签名。我正在尝试使用 Encode Json Web Token 断言。在 JWS 选项卡中,我使用“rsassa-pkcs-v1_5 using sha-256”签名算法。有没有一种方法可以让我只使用 pem 格式的私钥?我想使用此密钥而不将其转换为位于“管理私钥”部分的证书或 JSON Web 密钥。如果不可能,使用我的 .pem 私钥签署有效负载的最佳方式是什么?

除此之外,我需要使用 Decode Json Web Token 断言来验证 JWT。同样,我需要从 pem 格式的信任锚获取我将使用的公钥。我是否还需要使用证书进行验证?是否可以使用 pem 格式的公钥进行验证,而无需将其转换为证书或 JWK?

我想知道是否有办法使用 .pem 格式的密钥来签名和验证 JWS,感谢您的建议。

0 投票
1 回答
82 浏览

jwt - 如何使用 JWS Detached 验证 HTTP 消息

我想知道如何使用 JWS Detached 验证 HTTP 消息。目前,我在标题中收到 x-sign-jws 请求,如下所示

我需要使用我的密钥验证请求是否正确

例如:12345678

我正在使用 firebase/jwt 并尝试了下面的代码

但我没有得到任何结果。

我在网上搜索我找到了提到以下步骤的文章:

验证带有 JWS 分离的 HTTP 消息:a) 获取 HTTP 标头“x-sign-jws”,b) 获取 BASE64URL HTTP 正文 c) 将生成字符串 b) 放入 Payload 部分 d) 验证 JWS

但我对如何获取 Base64URL HTTP 正文感到困惑

任何帮助将不胜感激,因为只有几篇关于这个主题的文章。

0 投票
1 回答
147 浏览

json - 在 Django 中包含 JSON Web 签名的反序列化器 JSON 对象。App Store 服务器通知 responseBodyV2

我有一个 python django rest 应用程序,我需要它来处理 App Store 服务器通知的发布请求。

问题是 App Store 服务器通知负载的 v2 采用 JSON Web 签名 (JWS) 格式,由 App Store 签名。其中包含的字段反过来也是 JSON Web 签名 (JWS) 格式,由 App Store 签名。我知道如何在程序上使用 python-jose 来处理这个问题,但我不知道如何以优雅的方式将整个过程适应 Django 序列化程序,同时尽可能减少黑客攻击。

数据可能类似于:

然后解码的点之间的部分看起来像

然后如果以 jws 格式编码的字段也以与上面提到的相同的方式进行解码,则最终将如下所示:

这是我要存储到我的数据库表中的内容

任何帮助或想法都会得到极大的赞赏

0 投票
0 回答
19 浏览

android - 如何处理从 Android SafetyNet Attestation 响应中发布大型 JWS?

我正在开发一个 Android 应用程序,它应该将 SafetyNet attest() 响应的 JWSResult 转发到 API 以在服务器端处理它。

当我尝试在 Authorization 标头中发送 JWS 时,我从服务器收到错误,因为它太大了。不幸的是,我不拥有服务器(它是大学的),所以我无法更改允许的最大大小。

我想知道是否有任何方法可以解决这个问题 - 我简要了解了压缩它,但显然 Base64 并不适合它。我是否最好将 API 移动到 Heroku 服务器或我控制的东西?这是更多的工作,但我假设比在客户端处理其中一些要好得多!

Base64 JWS 的长度约为 4873 个字符 - 证书部分特别长。我没有足够的时间来了解这是否是典型的长度!但我假设 Web 服务器设置为相当低的限制,以允许处理大量请求(它是一所大型大学)。

谢谢 :) 如果我应该提供更多信息,请告诉我。