gpt4 book ai didi

java - 有关 Keystore 使用的基本问题

转载 作者:搜寻专家 更新时间:2023-10-31 19:36:05 27 4
gpt4 key购买 nike

我有一个生成 SecretKeys 的应用程序,每个客户端一个。这些需要保存在我们的数据库中。我真的不熟悉常见的安全模式或实现,我正在寻求建议。

KeyStore 类似乎被广泛使用,尤其是用于保护 SecretKeys。但是,我几乎没有看到将 KeyStore 与数据库一起使用,我想弄清楚这是因为它是基本用法(因此没有提到),还是因为这是一种糟糕或多余的方法,我真的应该这样做使用不同的技术。

基本设计是每个用户都有自己的 keystore ,通过转换为字节(我认为使用 load() 和 store())将其保存到数据库或从数据库加载。

到目前为止,这个设计有什么问题吗?我还想知道我应该如何处理 KeyStore 的密码。我们正在考虑对所有 keystore 只使用一个密码,但我们如何在没有 keystore 的情况下安全地存储它?

这意味着在后端应用程序中使用,客户端永远不会向我们传输密码,服务器端也没有人工运算符(operator)提供密码。

最佳答案

在现实世界中, secret key 安全地存储(强调我的)在 HSM 中如果要将它们安全地存储较长时间(从数小时到数年不等)。有 PKCS#11旨在帮助与此类系统接口(interface)的标准,但我将至少说明 - 大多数 HSM 都有自己与 HSM 接口(interface)的首选机制,而 PKCS#11 接口(interface)通常被证明是一个残缺的接口(interface)。

key 也可以安全地存储在智能卡和 USB token 等其他设备中,但这是为了在大众中分发 key ,而不是为后端系统存储 key 。

然而,并不是每个人都有 HSM 的预算,并且使用了许多其他不太安全(而且显然更便宜)的替代品。一些系统(我将以 Glassfish 应用程序服务器为例)存储一个主密码,用于保护其他密码。这同样适用于 key - 将有一个用于保护其他 key 的主 key (在某种程度上,这类似于 HSM 的内部工作方式)。当然,您随后将不得不保护主 key 。在某些环境中,这很容易,因为您可以将 key 放在一个仅限系统管理员和应用程序访问的文件中,而其他任何人都无法访问。

免责声明:这些都不应被视为盲目采纳的建议:-)。如果需要不惜一切代价保护您的 key ,请投资 HSM。

关于java - 有关 Keystore 使用的基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3339876/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com