在哪里存储有关数据?

我有2个NodeJS应用程序,他们交换一些数据。 数据通过AESencryption。 目前AES KEY在客户端和服务器的JavaScript代码中被硬编码。

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

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

他们通过networking套接字连接交换数据,有时候他们也会访问第三个实例运行的HTTP API …所以这是足够安全的钥匙硬编码或我应该把它们放在哪里?

你应该有一个随机的钥匙,而不是修正的钥匙,因为如果有人得到它,那么他们可以使用一个人在中间的攻击。

尝试在服务器上生成密钥并将其发送给客户端。 在客户端存储这个地方(最好在一个范围内),当你需要读取或写入消息,那么你可以简单地使用它。

另外,每个客户应该有一个不同的钥匙,如果可能的话,你应该定期更换钥匙。

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