I'm looking for advise on the 'right way' to authenticate interconnecting node.js applications. The use case is general: to share work tasks, sync data or for a control/monitoring channel. Databases have authentication, but what about the applications themselves?
What's the risk of intruders (from outside or on the network) to abuse your internal connections? Does it happen?
I find lot of cluster cooperation modules ranging from using raw sockets to like zeromq, but the examples never really mention the security aspect and just connect to some ip/port. But what do you do to make sure the new worker that's joining the workforce is not hostile? How does a worker know it's not being used for nefarious purposes?
I assume the network in a cloud hosting is less hostile then open internet (IS it???), but still, what kinds of things do you do? I'd say internal https all-the-way is too much, but what do you do to match identities? Do you put some certificate on each node? What kind of? Then how do you check it? When do you put it on?
If my database can do with a simple id/pass (plain text or what?) then should my application cluster too? If so, how do you secure and manage the id info?
A basic solution could be to ssh some custom tokens to each node and check in application with some hashing scheme for each connecting node but I have no idea of good industry practice so what do you think?