【问题标题】:Secure configuration in an unsecure environment在不安全的环境中进行安全配置
【发布时间】:2019-07-21 16:02:36
【问题描述】:

我有一个配置中包含机密的节点应用程序。 但它在不安全的环境中运行。

有没有办法以无法读取但仍可供应用程序使用的方式存储配置?

可能的想法(仍在寻找解决方案)

  1. 节点可能在每次运行以解密加密的密码存储时都需要密码。
  2. 编译应用程序。(显然只能混淆,不能编译)

如果有任何其他解决方案或如何实施上述任何可能的解决方案。

【问题讨论】:

  • 据我所知,你不能编译 node.js 应用程序,你只能混淆代码,但这绝不是安全的。
  • 您可以将配置存储在另一台服务器的某个地方,并且每次节点启动时都从另一台服务器获取配置。 (尽管登录节点应用程序会显示配置)。

标签: node.js security configuration production-environment


【解决方案1】:

有没有办法以无法读取但仍可供应用程序使用的方式存储配置?

不,没有。

如果您的程序可以读取它,那么任何有权访问您服务器上的数据/代码的人都可以读取它。

该服务器上或您可以存储它的其他服务器上的任何安全容器都需要凭据才能进入该容器,然后需要一个地方来存储这些凭据。因此,您必须有一个安全的地方来存储凭据以确保数据安全。

【讨论】:

  • 这是一种死锁情况,您将配置存储在另一台服务器中并使用凭据对其进行保护,您需要将凭据存储在某处(即 db 或 envs 或任何东西)然后再次可以读取任何对应用程序具有读取权限的人。
  • @AritraChakraborty - 是的,就是这样。这就是为什么答案是“否”以及为什么您必须拥有物理上安全的服务器才能获得安全的凭据。否则,每次重新启动服务器时,受信任的人都必须提供某种启动凭据(以解锁存储的凭据)。
  • @jfriend00 是的,我开始意识到这是最好的解决方案。将所有秘密存储在加密存储中,在应用程序启动时,用户通过用户输入提供密码来解密存储。这样主密码只在内存中使用。
  • @PrivatMamtora - 如果这是一个最终用户应用程序,那么这是有道理的。如果它是一个应该在它出现故障时自行重启的服务器,那就更难了。
猜你喜欢
  • 2013-09-17
  • 2018-10-26
  • 2013-05-22
  • 2015-08-14
  • 2012-03-19
  • 2014-10-27
  • 1970-01-01
  • 2014-09-29
相关资源
最近更新 更多