Каковы основы безопасного соединения приложений / работников / кластеров node.js? - PullRequest
3 голосов
/ 12 декабря 2011

Я ищу совет о «правильном способе» аутентификации взаимосвязанных приложений node.js.Вариант использования является общим: для совместного использования рабочих задач, синхронизации данных или для канала управления / мониторинга.Базы данных имеют аутентификацию, но как быть с самими приложениями?

Каков риск того, что злоумышленники (извне или в сети) могут злоупотребить своими внутренними соединениями?Это происходит?

Я нахожу множество модулей взаимодействия кластеров, начиная от использования сырых сокетов и заканчивая подобными zeromq, но примеры никогда не затрагивают аспект безопасности и просто подключаются к какому-либо ip / порту.Но что вы делаете, чтобы новый работник, который присоединяется к рабочей силе, не был враждебным?Откуда работник узнает, что он не используется в гнусных целях?

Я предполагаю, что сеть на облачном хостинге менее враждебна, чем открытый интернет (не так ли?), Но все же, какие вещи вы делаетеделать?Я бы сказал, что внутренний HTTPS слишком велик, но что вы делаете, чтобы соответствовать личностям?Вы ставите какой-нибудь сертификат на каждый узел?Какого рода?Тогда как ты это проверяешь?Когда вы надеваете это?

Если моя база данных может использовать простой идентификатор / пароль (простой текст или что?), То и мой кластер приложений тоже должен?Если да, как вы защищаете и управляете информацией об идентификаторе?

Основным решением может быть ssh некоторых пользовательских токенов для каждого узла и регистрация в приложении с некоторой схемой хеширования для каждого соединительного узла, но я не имею представления о хорошей отраслевой практике, так что вы думаете?

1 Ответ

0 голосов
/ 12 декабря 2011

Если вы используете такие решения, как ZeroMQ или Redis, убедитесь, что вы установили для них пароль.

Ответственность за то, что делают ваши процессы, полностью лежит на вас. Вы должны убедиться, что ваше приложение не имеет никаких недостатков дизайна, поэтому только вы (со стороны сервера) или прошедшие проверку пользователи могут отправлять сообщения через «конвейер» (например, если вы разрабатываете чат, убедитесь, что только аутентифицированы / зарегистрированы). пользователи могут отправлять сообщения).

Если вам нужна дополнительная безопасность в локальной сети, вы можете использовать iptables .

...