如果服务器受到威胁,如何保证访问密钥的安全?

如果服务器受到威胁,如何保证访问密钥的安全?

当服务器受到威胁时,保证访问令牌安全的最佳策略是什么?

假设我有一台 Linux Web 服务器,我经常通过 ssh 访问它。该服务器上存储了各种关键访问令牌(例如加密密钥、用于备份的 Amazon S3 等)。如果攻击者可以 ssh 访问服务器,那么阻止他们读取密钥的最佳策略是什么?

答案1

阻止密钥被读取非常困难。使用 AppArmor 或 SELinux 对守护进程进行强制访问控制将增强限制读取访问权限的能力。

利用软件保险库更上一层楼。就像 Amazon 的 STS 提供的临时凭证系统一样,这可以应用于您为一些存在的模块编写的任何后端,从而创建临时且易于撤销的凭证。如果直接写入您的应用程序,这将使密码保持在配置文件之外。

您可以使用身份验证后端,例如应用程序 ID一个,或者如果你有硬件,那就变得超级花哨并编写一个基于 TPM 的。

答案2

  1. 加密密钥应该是非对称的,所以如果它们落入别人手中,他们除了用密钥加密数据(而不是解密)之外什么也做不了。
  2. S3 凭证应频繁自动轮换,并且应仅给予最低限度地访问存储桶。备份密钥应该仅有的对存储桶具有 PUT 访问权限,而不是列出/删除/修改/获取等。同样,如果这些密钥落入坏人之手,他们所能做的就是向您推送更多数据。
  3. 实施保护服务器的标准方法:密钥认证、sudo 访问的强密码等。
  4. 使用 HIDS(如 OSSEC)来审计文件访问/修改并对异常发出警报。
  5. 仅向需要密钥的特定用户授予读取权限。

除此之外,你还需要使用高速存储模块,这增加了不少费用和复杂性。如果您已经在使用 AWS,他们有一个密钥管理服务,您可以使用它来保护和审计密钥的使用情况。

相关内容