我正在使用“隐式流”将 Open Id Connect 作为依赖方实施。我们使用基于 HS256 MAC 的算法进行签名。
作为此实现的一部分,我们需要生成与双方共享的共享密钥或密钥。
将此共享密钥存储在我们的数据库中而不对其进行哈希处理是否安全?通常我们会对密码或 API 密钥进行散列和加盐,但似乎使用 Open Id Connect 中指定的“隐式流”,秘密永远不会通过网络发送,因此我们需要始终能够再次检索它。
在这种情况下,最佳做法是什么?
我正在使用“隐式流”将 Open Id Connect 作为依赖方实施。我们使用基于 HS256 MAC 的算法进行签名。
作为此实现的一部分,我们需要生成与双方共享的共享密钥或密钥。
将此共享密钥存储在我们的数据库中而不对其进行哈希处理是否安全?通常我们会对密码或 API 密钥进行散列和加盐,但似乎使用 Open Id Connect 中指定的“隐式流”,秘密永远不会通过网络发送,因此我们需要始终能够再次检索它。
在这种情况下,最佳做法是什么?
据我了解,如果您实现了隐式流程,那么您使用的是公共客户端。
在 Open ID Connect 规范中,您可以阅读 10.1:公共(非机密)客户端不得使用对称签名,因为它们无法保密。
在这种情况下,您必须使用使用非对称密钥(RSA 或 EDCSA)的签名算法。