存储API机密和加密密钥的最佳方法是什么?

时间:2016-10-01 17:57:00

标签: security

我使用环境变量来存储API机密和数据加密密钥。我想知道环境变量是存储此类数据最安全的方式吗?如果黑客进入我的服务器,他可以访问环境变量吗?

1 个答案:

答案 0 :(得分:1)

这取决于平台,它可能有些自以为是,但总的来说,我认为环境变量是在许多情况下存储机密的好方法。

例如,如果您的应用程序容易受到SQL注入,本地文件包含或某些其他应用程序级别漏洞的攻击,那么存储在数据库或文件中的任何秘密都可能很容易受到攻击。如果使用环境变量,则可能无法进行相同的攻击,例如,本地文件包含不能用于检索环境变量。

同样使用环境变量有助于解决版本控制问题,它有助于避免将秘密检查到VCS中。它可以让您更好地跨环境管理秘密,只允许相关人员在生产中学习这些秘密。

但是,如果服务器完全受损,攻击者当然也可以检查环境变量。但是,如果您的服务器被泄露到那个级别,那么无论如何都会丢失。

可能列出了更好的存储机密方法的示例,但它们特定于您正在使用的环境和技术堆栈。例如,在Azure中,密钥保险库有时会更好,在亚马逊,类似的设施是密钥管理服务(KMS)等。