У меня есть 2 приложения NodeJS, и они обмениваются некоторыми данными. Данные шифруются через AES. В настоящий момент AES KEY жестко закодирован в коде javascript на клиенте и на сервере.Где хранить данные?
Вопрос в том, что такое лучшая практика? Где я могу хранить ключи на клиенте/сервере? Оба приложения - это 100% консольные приложения. (без взаимодействия с пользователем/браузером).
UPDATE: Я использовал термины client/server. Потому что - мне и в отношении приложения. логики его отношение сервер/клиент. НО, но приложения. буквально работают на двух отдельных экземплярах сервера AWS. Я даже могу сделать IP-ограничения между двумя экземплярами. Таким образом, никто не должен иметь доступ к экземплярам, другим из которых является учетная запись AWS RDP, а через порты два экземпляра - это передача через ...
Они обмениваются данными через соединение через веб-сокет, а иногда они также получают доступ к API HTTP, работающему на третий экземпляр ... вот и все ... так безопасно ли это, чтобы ключи были жестко закодированы или где их разместить?
общественный и закрытый ключ. Предоставьте клиенту открытый ключ. На сервере, где только администраторы могут получить закрытый ключ. Тогда вы все настроены. Если вы знаете целевую ОС, вы можете попробовать настроить ее в хранилищах ключей. – Tschallacka
Если есть какой-либо риск руткита (есть, всегда), старайтесь сделать все, чтобы предотвратить его в первую очередь. Затем вы можете добавить кодовую фразу и прочитать ее с помощью readline при запуске. Убедитесь, что вся конфиденциальная информация доступна только пользователю, если невозможно предотвратить ее хранение в файлах. Храните их в директории приложения. –