as i stated earlier, the password generated is used for saving the password on the hard drive, so not only is there no way to generate a completely random password with the given requirements, but there's no point in putting that much into it: it's only for encrypting and decrypting the password on YOUR COMPUTER
It is not available to everyone on the internet, which is how you are treating it.
The encryption, despite what you believe, is not there to encrypt the packets or any information leaving your computer, rather just to provide extra protection: I'm sure you wouldn't want the program to store the password in plain text
I do understand that the encryption is not being used between the program and the tremulous server, but it is still possible to use other secure and random approaches, as is done with ssh keys. Many ssh keys are stored are encrypted on the machine, in a similar, but actually secure, way. However,
If the plain text file on your computer is not considered secure enough, then the natural assumption is to evaluate the problem as if Eve has access to the file, is it not? It is also given that everyone (and thus Eve), has access to your binary.
Now, let me duplicate my previous post for you:
It is almost guaranteed to be a tractable problem to decompile the binary and figure out the password algorithm. Keep in mind that the client here is untrusted, as far as figuring out the algorithm goes. There is no security here, only the potential difficulty of understanding the x86 assembly, as opposed to plain C#.
If reading the source code could allow people to crack the password, then that is security by obscurity. If it would also require other, unknowable information,
I'll stop there, because it doesn't. Its security by obscurity because
everything necessary to decrypt the rcon password has already been published in the forum of the binary.
To continue
The only security [that exists] is trust. No matter how many fancy algorithms you create, they can all be cracked; the only place that security comes in is other people. You trust other people to not give away information.
Despite all your arguments, all of you were talking about how the program is 'insecure' because it generates a password, and that doing something else would make it secure. Not only is this false, but impractical. The password has to be able to be recreated otherwise it wouldn't be possible to be decrypted. I am not using security through obscurity quite simply because i am not trying to hide the source so people can't find holes in the security, but I'm doing to make it difficult to recreate the password. I am not using security through obscurity quite simply because i am not trying to hide the source so people can't find holes in the security, but I'm doing to make it difficult to recreate the password. As this is true with any type of security, you cannot generalize my unwillingness to reveal the method of password generation to security through obscurity without generalizing every other type of security to be security through obscurity
Yes, I can, because you already have revealed the method of password generation in your binary, and that knowledge is *all* that is necessary to recreate the rcon. You need to use information that is truly secret (and not just published in assembler, tremulant) to encrypt and decrypt your information here. SSH has done this.
I would stress that all of the methods, as well as the source code for ssh is public. Only the passwords are private. Your algorithm is insecure
because the source code for your own cypher is readily available to any hacker that cares to go through the assembly, whereas ssh is not insecure, because the source code (available in hard-to-read assembly as well as some implementations in C) does not need to be secret, only the passwords (at least one of which must not be available on any computer to be secure).