We have .net apps running on many machines now. The db connection string is stored it a settings XML file on each. Each application starts up and as a first step, loads this string from its settings file. It works fine, but if we ever had to change our login info, it would be a nightmare to find all the places we've stored it over the years. Further, with virtual machines, we're adding new machines all the time and it would be ideal to simply deploy the exes/dlls and have the app get the connection string automatically and securely.
I considered encrypting the string and putting it on our web server so the remote apps can fetch it via http and dns name and decrypt it but that's rather simplistic and since security is so important for this piece of info, I need to be very careful.
So the question is, how do you securely decimenate connection string to remote apps so upon startup they'll know to reach the db? Once they can do that, they can fetch addition settings from a configuration table in the database.