我正在使用一个客户机,为了使用他们的JSON2.0WebAPI,需要我为他们提供一个包含嵌入式X.509证书的JSON (JWK)。然后,当我从API请求信息时,他们说我需要在每个请求上传递一个“带有私钥的签名(带有私钥) JWT Bearer令牌”。
我以前从未使用过JWK,所以我查看了JWK官方文件,但是它非常密集,并且没有真正讨论这些如何在实际应用程序中使用。
我发现这个站点 / 命令行工具可以以不同的格式生成JWK,它使用X.509自签名的证书生成JWK。我想知道,在这种情况下,使用一个自签名的证书可以与这个API对话吗?我知道,在web浏览器中,您绝对需要一个来自可信CA的证书,因为客户机和web服务器本质上是陌生的,但是这个证书不是公开用于网站的;它只是在我的应用程序和这个OAuth API之间使用,而且双方已经相互信任了。
所以,我的问题是,使用自签名的X.509证书生成JWK是否足够,然后使用证书的私钥在实际使用API时对JWT Bearer令牌进行签名?
发布于 2020-08-21 18:59:14
可能使用自签名证书应该是客户的安全策略和/或安全指南的一部分。我强烈建议不要在任何类型的生产网络中为任何目的使用自签名证书,因为它提供的安全性低于由可信CA签署的证书。
要回答您的问题,证书将提供所需的功能,但我怀疑是否可以使用它,这是您的决定。你应该和你的客户商量一下。
发布于 2021-01-19 08:00:50
听起来他们使用的是OAuth mTLS。您可以使用OAuth mTLS存档两种不同的内容:
这两个目标都可以用自签证书( c.f )存档。第2.2款.OAuth mTLS RFC的。
发布于 2021-06-18 16:47:02
提取您所描述的用例:
JWK{ X.509Cert{ RSAPubKey } } --signs--> JWT显然,服务器不希望接受由任何人的密钥签名的JWT,因此它需要某种方式来建立对RSAPubKey的信任。
有两种基本办法:
这两种方法都很好。在PKI情况下,CA完成了确保证书中的名称信息与用户帐户信息匹配的所有繁重工作。在自签名的情况下,用户可以自己选择cert元数据,因此您的服务器需要在注册过程中进行更多的检查,并且需要小心地将证书/发布密钥映射到帐户,但是这种方法没有根本问题。
https://security.stackexchange.com/questions/237401
复制相似问题