存储发送数据的位置?

时间:2017-02-21 10:13:20

标签: javascript node.js encryption

我有2个NodeJS应用,他们交换了一些数据。数据通过AES加密。 目前,AES KEY在客户端和服务器的javascript代码中进行了硬编码。

问题是:什么是最佳做法?我在哪里将密钥存储在客户端/服务器上?这两款应用都是100%的控制台应用。 (没有用户/浏览器交互)。

更新:我使用的术语是客户端/服务器。因为 - 给我和关于应用程序。逻辑它的服务器/客户关系。但是应用程序。实际上是在两个独立的AWS服务器实例上运行。我甚至可以在两个实例之间进行IP限制。因此,没有人可以访问AWS RDP帐户以及两个实例通过端口进行通信的其他实例...

他们通过网络套接字连接交换数据,有时他们也访问在第三个实例运行的HTTP API ......这就是全部...所以它是否足够安全,以便将密钥硬编码或者应该放在哪里?

1 个答案:

答案 0 :(得分:1)

你应该有一个随机密钥而不是修复密钥,因为如果有人抓住它,那么他们可以使用中间人攻击。

尝试在服务器上生成密钥并将其发送给客户端。在客户端上,您可以将其存储在某个位置(最好是在范围内),当您需要读取或写入消息时,您只需使用它即可。

此外,您应为每个客户端使用不同的密钥,如果可能,您应该定期更改密钥。

如果您知道如何将其转换回来,即使使用混淆器(您几乎总是可以反混淆),一切都是非常开源的。拥有硬编码密钥同样有用,因为根本没有密钥。

相关问题