当前位置: 首页 > 知识库问答 >
问题:

Java库或公钥/私钥消息加密

鲜于璞瑜
2023-03-14
  • 在SpringBoot中有一个“rest-server”
  • 服务在某个地方安装了许多Java中的“rest-clients”。我不控制它。
  • “rest-server”为每个(!)生成公钥/私钥对客户端并与客户端共享pub密钥
  • 每个“Rest-Client”生成自己的公钥/私钥对,并与“Rest-Server”共享公钥。客户端共享其公钥和唯一ID。
  • “Rest-Clients”不时轮询“”Rest-Server“
  • “REST-Client”从以下位置发送请求:
    • clientid(帮助“REST-Server”找到正确的客户端pub密钥以解密消息)
    • 有效负载使用为给定客户端分配的“REST-Server”公钥编码
    • 原始消息SHA以便“Rest-Server”可以验证有效负载是否已正确解密
    • 客户端签名使用客户端的私钥创建,因此服务器可以验证消息是否来自授权的客户端

    “REST-服务器”

    >

  • 通过“uniqieID”定位与客户端关联的私钥

    用SHA解密并验证

    使用客户端签名和已知客户端的公共密钥验证发件人

    “rest-server”以表单形式发送响应

      null

共有1个答案

殷浩慨
2023-03-14

我将更多地关注客户机角度,而不是服务器角度:

  • 某些客户端可以保密(后端/机密客户端)
  • 某些客户端无法(web/mobile UI-公用客户端)
  • 如果客户端API凭据受损,则可能会出现永久性安全漏洞

这感觉像是OAuth2.x解决的问题:

    null
 类似资料:
  • 并且我将这个函数称为用RSA公钥加密DSA密钥的函数:

  • 为了更新一些证书,我必须将jks密钥库转换为PKCS#12密钥库,并在转换过程中包含私钥。我们收到的密钥库是JKS密钥库,但是我们的网络服务器使用PKCS#12密钥库,我们收到的密钥库只包含证书,而不包含私钥。 我试着用谷歌搜索并阅读SO的几个条目,我只想出了一个解决方案,这似乎更像是一个变通方法,而不是一个好的方法,所以我想知道是否有人有更好的方法如何注入私钥,并以更简单的方式从jks密钥库转换

  • Auth0提供了两个JWT库,一个用于Node:Node jsonwebtoken,另一个用于Java:Java JWT。 我创建了私有/公钥对,并在Node中成功地使用了node-jsonwebToken: 但是我发现没有办法在java-jwtJava做同样的事情。 有人有一个如何在Java中为JWT使用私钥/公钥的工作示例吗?

  • 我看到钥匙和mModulas是相等的,有人知道吗?

  • Auth0提供了两个JWT库,一个用于Node:Node jsonwebtoken,另一个用于Java:Java JWT。事实证明,JavaJWT不支持公钥/私钥对。 然而,另一个java库jjwt库声称支持该特性。但是,该文档没有显示如何在jjwt中使用自己的公钥/私钥对。 我创建了私有/公钥对,并在Node中成功地使用了node-jsonwebToken: 但是我发现在Java中用JWT无法做

  • 我试图理解使用带有私钥/公钥(RS512)的JSON Web令牌的逻辑,当将从客户端(在本例中是React Native App)发送到服务器的数据有效载荷签名时。 我认为私钥/公钥的全部意义在于将私钥保持为私钥(在我的服务器上),并将公钥交给成功登录应用程序的人。 我认为,对于我的服务器的每个API请求,经过身份验证的应用程序用户将使用公钥创建JWT(在客户端),服务器将使用私钥验证来自API请