Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何安全地存储Google Authenticator密钥?_Security_Authentication_Encryption_Google Authenticator - Fatal编程技术网

Security 如何安全地存储Google Authenticator密钥?

Security 如何安全地存储Google Authenticator密钥?,security,authentication,encryption,google-authenticator,Security,Authentication,Encryption,Google Authenticator,我正在开发一个网站,将允许使用谷歌认证双因素认证。我的问题是:存储用户密钥的最佳方式是什么?如果我把它保存在一个数据库中,并且它被黑客攻击,那么攻击者将能够生成一次性密码。我不能像使用单向加密的密码一样对其进行加密,因为我需要这个秘密种子来生成一次性密码。您可以将其存储在安全令牌智能卡中,但随后您必须配置对该安全令牌的访问权限-这将使您回到原来的问题。如果能够在启动应用程序之前执行操作,则可以使用基于密码的加密来保护密钥。或者,您可能需要为持有钥匙的智能卡提供PIN码。USB存储卡也可用于永久存

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

您可以将其存储在安全令牌智能卡中,但随后您必须配置对该安全令牌的访问权限-这将使您回到原来的问题。如果能够在启动应用程序之前执行操作,则可以使用基于密码的加密来保护密钥。或者,您可能需要为持有钥匙的智能卡提供PIN码。USB存储卡也可用于永久存储密钥。别忘了备份

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


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

在另一个StackExchange站点上有一个关于此问题的老讨论: