是否有标准化的方法来使用公钥/私钥作为 Web 服务的身份验证?

问题描述 投票:0回答:1

我正在构建一个对其用户一无所知的网络服务。我只是存储加密的共享/公钥,并且从用户接收的任何元数据也都是加密发送/存储的。任何涉及私钥的操作都发生在客户端,并且客户端需要导出其私钥以便在 cookie 被删除时安全保存。

我正在构建的服务通过可公开验证的秘密共享方案大量使用椭圆曲线加密技术。

是否有一种标准化的方法以这种方式使用 HTTP 服务进行身份验证?我已经使用 OAuth 和其他方式很多年了,但不能说我见过类似的实现......除了解密 PGP 消息并提供服务器使用您的公钥加密的令牌之外。我不想重新发明轮子并尽可能遵循某种标准。

在前端的初始站立中,我使用私钥设置 cookie,从中派生公钥,并从后端的公钥查询匿名参与者。如果 cookie 中没有密钥,客户端可以生成新身份或上传导出的私钥来设置 cookie 并查看他们之前创建的秘密或共享。

事物最终将迁移到本地存储,因此关闭选项卡时不会留下私钥,除非有标准化的方法来执行此操作,否则我被告知这是不明智的。如有任何帮助,我们将不胜感激。

authentication http security cryptography
1个回答
0
投票

由于您正在寻找一种使用 HTTP 服务进行身份验证的标准化方法,同时通过加密和客户端密钥管理来维护用户隐私,因此您可能会考虑采用非对称加密技术的 JSON Web Takes (JWT)。 以下是如何实现它的高级概述:

  1. 用户身份验证:当用户登录或创建帐户时,服务器生成一个jwt,并使用用户的公钥进行加密。
  2. 客户端存储:客户端安全地将jwt存储在内存或本地存储中。由于它是用用户的公钥加密的,因此只有相应的私钥才能解密它。 3.授权:当客户端向服务器发出请求时,它会在请求标头中包含jwt。服务器使用用户私钥(应安全地存储在客户端)对 jwt 进行解密,以对用户进行身份验证并授权请求。 4.Token查询和刷新:您还可以实现Token过期和刷新机制以增强安全性。当令牌过期时,客户端可以使用刷新令牌来获取新的 jwt,而无需再次登录。
  3. :令牌撤销:实现令牌撤销机制,以防用户想要撤销访问权限或令牌被泄露。 采用非对称加密技术的 jwt 提供了一种标准化且安全的方式来对用户进行身份验证,同时维护隐私和安全。它被许多库和框架广泛使用和支持,使其成为您场景的不错选择。 请记住安全地处理密钥管理并遵循加密操作的最佳实践,以确保用户数据的完整性和机密性。
© www.soinside.com 2019 - 2024. All rights reserved.