HSM 和 Argon2 的区别?哪一个更可取

Posted

技术标签:

【中文标题】HSM 和 Argon2 的区别?哪一个更可取【英文标题】:Difference between HSM and Argon2 ? which one is preferrable 【发布时间】:2020-03-14 21:52:24 【问题描述】:

我正在开发一个处理客户详细信息的应用程序,我们希望将其以加密形式存储在我们的数据库中,哪一个更适合 Argon2

【问题讨论】:

【参考方案1】:

Argon2 是一种散列算法,可用于将密码存储在数据库中,或多或少安全。请参阅OWASP guide 来存储密码。HSM 是硬件专用于密钥存储 - 如果您可以访问 HSM,则应该使用它来存储您的加密密钥、证书密钥等.

虽然您可以使用 HSM 存储使用可逆加密算法(即 AES、SALSA)加密的密码,但它的作用类似于密码存储软件,例如 KeePass。

如果您只需要存储密码以验证用户身份,则需要保留盐和盐化密码的哈希值。根据定义,散列函数总是为相同的数据提供相同的结果。创建用户帐户后,您生成盐,将其添加到密码,并对结果进行哈希处理。然后你保存哈希和盐。当用户尝试进行身份验证时,将存储的盐添加到密码中,对结果进行哈希处理,并检查其值是否等于数据库中的哈希值。

另一方面,如果您要创建某种密码保险库,则需要能够解密存储的数据。 HSM 可能对此有用。

【讨论】:

以上是关于HSM 和 Argon2 的区别?哪一个更可取的主要内容,如果未能解决你的问题,请参考以下文章

[方括号]和*星号之间的区别

Argon2 与节点 docker 容器

Spring DriverManagerDataSource vs apache BasicDataSource

将 Maven 项目导入 Eclipse

typescript 访问修饰符和 javascript 访问修饰符有啥区别?在使用打字稿时我应该更喜欢哪一个?

ResultSet 与 RowSet:选择哪一个以及何时选择?