在服务器上存储 API 个密钥和秘密

Storing API keys & secrets on servers

我对 API 密钥和机密的安全存储有疑问。

这是我的场景:

我正在开发一个 collects/analyzes 来自多个外部 API 数据的程序。数据相当敏感,API 都需要密钥和秘密。我的软件将调用这些 APIs,处理返回的数据,并存储结果。我希望我最终会在 'the cloud' 中托管此软件,这样我就可以获得最大的正常运行时间和可扩展性。

我的问题是 safest/best 为我调用的外部 API 存储凭据(密钥和机密)的方法是什么?

以下是我一直在考虑的一些事情,但我对任何事情都持开放态度...

你最终会追逐这个,纯粹是因为服务器漏洞游戏结束了。您肯定可以采取一些措施来减少服务器漏洞可能造成的损害,但没有什么是万无一失的。

考虑您概述的选项:

  • 使用数据库加密:攻击者可以从数据库中提取并以与您的服务器完全相同的方式解密。
  • 使用平面文件加密:攻击者可以像您的服务器一样直接解密。
  • 独立服务器:攻击者可以像您的服务器一样调用独立服务器。

我的意思是,您关注的安全部分是错误的。如果攻击者获得了对服务器的访问权,那么游戏就已经结束了。首先集中精力防止对您的服务器的访问。