1

我正在开发一个允许使用 Google Authenticator 进行两因素身份验证的网站。我的问题是:存储用户密钥的最佳方式是什么?如果我将它保存在数据库中并且被黑客入侵,那么攻击者将能够生成一次性密码。而且我不能像使用单向加密的密码一样对其进行加密,因为我需要这个秘密种子来生成一次性密码。

4

1 回答 1

0

您可以将其存储在安全令牌(智能卡)中,但随后您必须配置对该安全令牌的访问 - 这会让您回到原来的问题。如果您能够在启动应用程序之前执行操作,那么您可以使用基于密码的加密来保护(包装)密钥。或者,您可能需要持有密钥的智能卡的 PIN。USB 存储卡也可用于永久存储密钥(不要忘记备份)。

显然,首先保护对应用程序的访问是一个好主意。您可能在某个时间点仍需要内存中的密钥,因此如果该内存未受到保护,攻击者将能够将其捞出。

另一种方法经常使用它来混淆密钥。但是,无论以何种方式进行混淆,一个坚定的黑客通常都不会遇到太多麻烦来检索密钥。

于 2014-01-23T14:56:12.567 回答