http://www.perlmonks.org?node_id=975524


in reply to Re^2: Keeping a password safe.
in thread Keeping a password safe.

Your analogy misses an important point. To compromise a windows system, you have to find a new vulnerability, which isn't easy.

But to get access a password that a program uses for accessing an FTP server, all one has to do is to monitor the network traffic. There are even tools that automatically sniff out passwords from traffic dumps.

Even if you use a more sophisticated approach (like ftp over ssl), the password needs to be in plain text in the memory of your application, and using a debugger it's not hard work to find it out.

So since the technical avenue is closed for you, I'd recommend to hand out the passwords to your users, and forbid them (in your terms of service) to give it to third parties. Since you want to protect the downloads, I infer that you sell your software commercially, so you already have some form of direct contact with your customers.

If you want to be a bit more careful, give out different passwords to different users, so that you can easily diable one of them if you suspect abuse.

Note that any "clever" solution which tries to obfuscate the password will make debugging much harder in case something goes wrong (and something always goes wrong).