Tremulous Forum

Mods => Mod Releases => Tools and Utilities => Topic started by: Foe of Eternity on March 25, 2011, 04:40:54 am

Title: Rcon Utility
Post by: Foe of Eternity on March 25, 2011, 04:40:54 am
Hey everyone, made a little remote control utility for trem
put in the server, port, and rcon password and you will be able to execute commands and view the results in the console

So here it is:
http://www.mediafire.com/?nq7cym0pmosp62x (http://www.mediafire.com/?nq7cym0pmosp62x)

Enjoy

and as always post any bugs you encounter
Title: Re: Rcon Utility
Post by: Lakitu7 on March 25, 2011, 04:49:48 am
Uhh, perhaps you should post the source for such a thing; or else you're expecting someone to put the keys to their servers into a program that may darn well be sending all the logins to you.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 25, 2011, 04:52:09 am
i'd rather not reveal the password encryption method...but here's the code for sending/receiving rcon commands:
Code: [Select]
        string Add;
        bool ready = false;
        UdpClient cli = new UdpClient();
        private void btnSend_Click(object sender, EventArgs e)
        {
            btnSend.Enabled = false;
            try
            {
                cli = new UdpClient(txtServer.Text, int.Parse(txtPort.Text));
            }
            catch (Exception ee)
            {
                MessageBox.Show("Error\n" + ee.ToString());
            }
            string test = "rcon " + txtPass.Text + " " +txtCmd.Text;
            List<byte> bytes = new List<byte>();
            for( int i = 0; i < 4; i++ )
                bytes.Add((byte)255);
            foreach (char c in test)
                bytes.Add((byte)c);
            byte[] send = new byte[bytes.Count];
            for (int i = 0; i < bytes.Count; i++)
            send[i] = bytes[i];
            cli.Send(send, send.Length);
            txtConsole.Text += "]" + txtCmd.Text;
            cli.BeginReceive(new AsyncCallback(GetPackets), cli);
            ready = false;
            while (!ready)
                Application.DoEvents();
            txtConsole.Text += Add;
            txtConsole.SelectionStart = txtConsole.Text.Length;
            txtConsole.SelectionLength = 0;
            txtConsole.ScrollToCaret();
            txtCmd.Text = "";
            for (int i = 0; i < 7; i++)
            {
                Application.DoEvents();
                Thread.Sleep(100);
            }
            btnSend.Enabled = true;
        }

        private void GetPackets(IAsyncResult iar)
        {
            Add = "";
            try
            {
                IPEndPoint address = new IPEndPoint(IPAddress.Any, int.Parse(txtPort.Text));
                Byte[] receiveBytes = new Byte[0];
                for( int i = 0; i < 1; i++ )
                     receiveBytes = cli.EndReceive(iar, ref address);
                Add = Encoding.ASCII.GetString(receiveBytes);
                Add = Add.Remove(0, 9);
                ready = true;
            }
            catch (Exception ee)
            {
                Add = ee.ToString();
                ready = true;
            }
        }
Language is C#
(i know it's not optimized but it doesn't slow it down too much)

i know for a fact it only sends data to the server you tell it to, if you feel more comfortable, you can check the connections it opens
(double checked with WPE)
Title: Re: Rcon Utility
Post by: Tremulant on March 25, 2011, 05:09:35 am
Uhh, perhaps you should post the source for such a thing; or else you're expecting someone to put the keys to their servers into a program that may darn well be sending all the logins to you.
Hey, at least it's not obfuscated to buggery like the last .net project he posted ::)
Seriously, what's so precious about your apps that makes it impossible for you to release the source?
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 25, 2011, 05:16:16 am
The project last time was for stability testing and I released a clean version

As for this project, I released all the code that mattered...I added in encryption when it saves the rcon pass to prevent privacy issues and would rather it not be released so I can reuse it
Title: Re: Rcon Utility
Post by: Lakitu7 on March 25, 2011, 08:31:02 am
Unless you post a full source that someone can both inspect and compile themselves, they cannot be safe, because without compiling it themselves they cannot know that the binary posted is actually from the source provided.

It was already a bad idea for people to run server browsers that are closed like this, but for something that handles sensitive login information, it is an extremely bad idea.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 25, 2011, 11:07:58 am
As I said before I released all the code that mattered (it's enough information to compile it yourself)
However when I get the chance I'll release the source without encryption

But a packet capture utility (such as WPE is enough because it's clear that the only packet sent is to the server you specify with the data you gave it
You would need to worry more about people on your network sniffing the password than the program itself because you can test the program...
Title: Re: Rcon Utility
Post by: F50 on March 25, 2011, 03:36:56 pm
Not quite, malicous code can be much more clever than that. One way to do it is to keep a list of rcon passwords and servers (one could probably even store it in the executable itself if one so desired), and send them monthly/weekly. Password encryption would be a sensible place to put such malicious code.

I'm sorry you are not getting more support for these tools but this is an open source community, so I hope you understand our skepticism of closed-source code.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 25, 2011, 05:18:40 pm
As I said before I released all the code that mattered (it's enough information to compile it yourself)
Title: Re: Rcon Utility
Post by: swamp-cecil on March 26, 2011, 04:04:04 am
How did you manage to make a program in C# thats actually USEFUL???
Title: Re: Rcon Utility
Post by: Tremulant on March 26, 2011, 06:01:03 am
How did you manage to make a program in C# thats actually USEFUL???
There are loads of useful apps coded in C#(f-spot, banshee, tomboy, etc), yes it adds annoying overheads, but it isn't just another visual basic.
Title: Re: Rcon Utility
Post by: NotYarou on March 26, 2011, 03:54:46 pm
you want us to run a blackbox c# app w/o showing src

nothx
Title: Re: Rcon Utility
Post by: Meisseli on March 26, 2011, 04:35:50 pm
I guess you need to take the encryption out, then, and release it as open source.
Title: Re: Rcon Utility
Post by: Undeference on March 27, 2011, 03:01:38 am
i'd rather not reveal the password encryption method...
Security through obscurity is no security at all.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 27, 2011, 10:00:10 pm
i'd rather not reveal the password encryption method...
Security through obscurity is no security at all.
i didn't finish the quote but i don't want to release it so i can reuse it...i'm not using security through obscurity

you want us to run a blackbox c# app w/o showing src

nothx
how many times do i need to say i released enough of the source to remake it...i've already made 3 posts repeating this but i'll do it again just for you
As I said before I released all the code that mattered (it's enough information to compile it yourself)

and besides, if you have the source, there's no way to verify that the source that's released is the program that was released...but seriously there's no point in making a malicious program, the tremulous community (and this board specifically isn't very active) isn't exactly large-scale...and hiding the source would raise suspicion, if it was a malicious program a fake source would probably be released as i said earlier

anyway, i'll be releasing the source without the encryption, i was just away for the weekend and didn't have time to release it
Title: Re: Rcon Utility
Post by: Kiwi on March 27, 2011, 10:07:50 pm
As I said before I released all the code that mattered (it's enough information to compile it yourself)

and besides, if you have the source, there's no way to verify that the source that's released is the program that was released...

If you release the source, then we could compile it ourselves.  That takes your pre-compiled program out of the loop.
Title: Re: Rcon Utility
Post by: Teapot on March 28, 2011, 02:42:05 am
As author, you are the copyright holder and can use it any way you want, no matter what license you release the source under (which is how MySQL has proprietary and free software (http://www.gnu.org/philosophy/free-sw.html) versions, for example).
So now we've established that obscurity isn't more secure and you can reuse it how you wish, you have no excuse, unless it is malicious ;)

If you care about incorporating community changes into proprietary products you create, I recommend using the Apache 2.0 License (https://secure.wikimedia.org/wikipedia/en/wiki/Apache_License) (as used by Google and Apache) but the Modified BSD (https://secure.wikimedia.org/wikipedia/en/wiki/BSD_license#3-clause_license_.28.22New_BSD_License.22_or_.22Modified_BSD_License.22.29), Simplified BSD (https://secure.wikimedia.org/wikipedia/en/wiki/BSD_license#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29) and zlib (https://secure.wikimedia.org/wikipedia/en/wiki/zlib_license) licenses would all do roughly the same job.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 28, 2011, 03:30:53 am
how many times do i have to repeat myself
YOU CAN COMPILE THE SOURCE
i gave you enough code that if you knew how to open a C# editor you could compile it

i will not release the full source, no matter how you argue it, so stop trying to convince me there's 'no reason not to release the full source'

i released this for the benefit of the community

if you're so desperate to find the whole source then take the time to decompile it

and seriously, stop posting about how "it could be malicious"
if you think it's malicious, by all means don't download it, as that is a good security practice
Title: Re: Rcon Utility
Post by: Tremulant on March 28, 2011, 03:50:03 am
So, moving away from the topic of full source disclosure, what's the point in this utility, i don't run a server, what would you otherwise use for rcon, how does this app improve on the standard method?
Title: Re: Rcon Utility
Post by: F50 on March 28, 2011, 03:56:24 am
It means you can put it on a netbook or phone that lacks openGL. This is not the only way to do so (ssh and screen can also do this), but is one way to do so.

However, you cannot cannot compile the source. Not as given. Sure, it would be easier to figure out what needs done than to write the whole thing myself, but I'd have to re-create your UI, and then try to understand what exactly it is that your code needs done before it can work. Its not working code. There is no reason not to release the rest of the working code (minus the encryption).

What I think we are saying here is that your code is dead until we don't have to care about it to get it to run (compiles without effort).
Title: Re: Rcon Utility
Post by: RAKninja-Decepticon on March 28, 2011, 05:32:24 am


i released this for the benefit of the community


considering it's an open source community with quite a few people running on linux distros, surely you understand the distaste most of us have for closed source software.

it is more than possible to have decent encryption with open source software.
Title: Re: Rcon Utility
Post by: kharnov on March 28, 2011, 05:46:21 am
i gave you enough code that if you knew how to open a C# editor you could compile it

How are we supposed to know if the code you gave us is even in the program?

if you think it's malicious, by all means don't download it, as that is a good security practice

We all think it's malicious. You're not very good at advertising your product.
Title: Re: Rcon Utility
Post by: Tremulant on March 28, 2011, 11:28:23 am
It means you can put it on a netbook or phone that lacks openGL. This is not the only way to do so (ssh and screen can also do this), but is one way to do so.
ssh and screen sounds good to me.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 28, 2011, 02:13:55 pm
So, moving away from the topic of full source disclosure, what's the point in this utility, i don't run a server, what would you otherwise use for rcon, how does this app improve on the standard method?

it's designed for server owners to be able to use rcon without having to open trem with it, so it's useless if you don't own a server/don't have rcon on it


i released this for the benefit of the community


considering it's an open source community with quite a few people running on linux distros, surely you understand the distaste most of us have for closed source software.

it is more than possible to have decent encryption with open source software.

the encryption is just a rijndael cipher, i don't want to release how i encrypted it, not the encryption, so that people can't recreate the password and use it to decrypt the encrypted data

and yes i understand the distaste of closed source software as i use linux too, but the only thing you need to recreate is the gui, all the names and such are pretty self explanatory

Code: [Select]
        string Add;
        bool ready = false;
        UdpClient cli = new UdpClient();
        private void btnSend_Click(object sender, EventArgs e)
        {
            btnSend.Enabled = false;
            try
            {
                cli = new UdpClient(txtServer.Text, int.Parse(txtPort.Text));
            }
            catch (Exception ee)
            {
                MessageBox.Show("Error\n" + ee.ToString());
            }
            string test = "rcon " + txtPass.Text + " " +txtCmd.Text;
            List<byte> bytes = new List<byte>();
            for( int i = 0; i < 4; i++ )
                bytes.Add((byte)255);
            foreach (char c in test)
                bytes.Add((byte)c);
            byte[] send = new byte[bytes.Count];
            for (int i = 0; i < bytes.Count; i++)
            send[i] = bytes[i];
            cli.Send(send, send.Length);
            txtConsole.Text += "]" + txtCmd.Text;
            cli.BeginReceive(new AsyncCallback(GetPackets), cli);
            ready = false;
            while (!ready)
                Application.DoEvents();
            txtConsole.Text += Add;
            txtConsole.SelectionStart = txtConsole.Text.Length;
            txtConsole.SelectionLength = 0;
            txtConsole.ScrollToCaret();
            txtCmd.Text = "";
            for (int i = 0; i < 7; i++)
            {
                Application.DoEvents();
                Thread.Sleep(100);
            }
            btnSend.Enabled = true;
        }

        private void GetPackets(IAsyncResult iar)
        {
            Add = "";
            try
            {
                IPEndPoint address = new IPEndPoint(IPAddress.Any, int.Parse([quote author=kharnov link=topic=15440.msg220325#msg220325 date=1301287581]
[quote author=Foe of Eternity link=topic=15440.msg220306#msg220306 date=1301279453]
i gave you enough code that if you knew how to open a C# editor you could compile it
[/quote]

How are we supposed to know if the code you gave us is even in the program?

[quote author=Foe of Eternity link=topic=15440.msg220306#msg220306 date=1301279453]
if you think it's malicious, by all means don't download it, as that is a good security practice
[/quote]

We all think it's malicious. You're not very good at advertising your product.
[/quote]Port.Text));
                Byte[] receiveBytes = new Byte[0];
                for( int i = 0; i < 1; i++ )
                     receiveBytes = cli.EndReceive(iar, ref address);
                Add = Encoding.ASCII.GetString(receiveBytes);
                Add = Add.Remove(0, 9);
                ready = true;
            }
            catch (Exception ee)
            {
                Add = ee.ToString();
                ready = true;
            }
        }
txtConsole - a textbox representing the console
txtCmd - a textbox representing the entered command
btnSend - a button that when clicked runs btnSend_Click
txtPort - a textbox representing the server port
txtPass - a textbox representing the password
txtServer - a textbox representing the server address

as i said, everything is self explanatory; i would've expected anyone who wanted the source to be able to figure this out...
i gave you enough code that if you knew how to open a C# editor you could compile it

How are we supposed to know if the code you gave us is even in the program?

if you think it's malicious, by all means don't download it, as that is a good security practice

We all think it's malicious. You're not very good at advertising your product.
how are we supposed to know the tremulous executable contains what the source says it does?

you can't.
i gave you enough information to make it yourself if you don't trust it

also, in case you didn't notice, IT'S FREE
it's not a product, i don't care if no one downloads it, as i said i was releasing it for the benefit of the community, if they don't want to use it, it doesn't matter to me
READ THIS POST BEFORE POSTING AGAIN (and the following message)
Title: Re: Rcon Utility
Post by: Tremulant on March 28, 2011, 02:28:30 pm
So, moving away from the topic of full source disclosure, what's the point in this utility, i don't run a server, what would you otherwise use for rcon, how does this app improve on the standard method?
it's designed for server owners to be able to use rcon without having to open trem with it, so it's useless if you don't own a server/don't have rcon on it
Sorry, i think i confused you, i was inquiring what one would use for rcon if they didn't have access to your app, trem itself or ssh and screen were the answers.
also, in case you didn't notice, IT'S FREE
it's not a product, i don't care if no one downloads it, as i said i was releasing it for the benefit of the community, if they don't want to use it, it doesn't matter to me
READ THIS POST BEFORE POSTING AGAIN (and the following message)
Surely rcon passwords are rather sensitive pieces of information, not the kind of thing anyone wants to feed into some random guy's app, and if someone's capable of building their own clean version from your source they're probably also capable of figuring out ssh.
If you don't care that no one uses it, that's fine, i personally would care, if i'd bothered to write the program and felt that it was worth the effort, i'd want to provide source that builds and runs on multiple platforms. Have you considered starting a sourceforge or google code account and turning your trem tools into a real project? I imagine people are quite happy to type their rcon password when it's needed, if you just want to strip out the password saving and hashing code i'm sure people wouldn't mind. If you do choose this route, good luck.

You really must appreciate that you're some guy, posting binaries on mediafire for an app that accepts peoples server addresses and rcon passwords as input, anyone would have to be pretty braindead to take that risk.
Title: Re: Rcon Utility
Post by: Teapot on March 28, 2011, 05:36:52 pm
Quote
i will not release the full source, no matter how you argue it, so stop trying to convince me there's 'no reason not to release the full source'
You

How would you react to such a guy's program?

Your reasons examined...

i'd rather not reveal the password encryption method...
Security through obscurity is no security at all.
i didn't finish the quote but i don't want to release it so i can reuse it...i'm not using security through obscurity

the encryption is just a rijndael cipher, i don't want to release how i encrypted it, not the encryption, so that people can't recreate the password and use it to decrypt the encrypted data
Fail. So this reason doesn't make sense.

would rather it not be released so I can reuse it
As author, you are the copyright holder and can use it any way you want
And your only remaining reason doesn't make sense.

Assuming the app is proprietary because it's malicious is currently the only option available to us.

Now you hopefully understand why your program hasn't been accepted by the community.
Title: Re: Rcon Utility
Post by: Undeference on March 28, 2011, 07:44:23 pm
This is not the only way to do so (ssh and screen can also do this), but is one way to do so.
That's obviously the most secure method: disable rcon entirely and send commands over an encrypted connection to the server.

Code: [Select]
echo -e '\xff\xff\xff\xffrcon [rconPassword] [cmd]' | nc -uw1 [addr] [port]e.g.,
Code: [Select]
echo -e '\xff\xff\xff\xffrcon blah cp You all suck' | nc -uw1 127.0.0.1 30720As for this "Rcon Utility", I have no idea where/why encryption would be used anyway, since rcon does not use encryption.

i didn't finish the quote but i don't want to release it so i can reuse it...i'm not using security through obscurity
I don't know how/why you're using encryption, but I think you need to look up the meanings of the word security.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 28, 2011, 08:16:51 pm
Quote
i will not release the full source, no matter how you argue it, so stop trying to convince me there's 'no reason not to release the full source'
You
  • dumped a binary on the community
  • did not give us reasons which withstand examination for keeping the code proprietary
  • released code we can't use since it isn't under a free license
  • became completely irrational like the above

How would you react to such a guy's program?

Your reasons examined...

i'd rather not reveal the password encryption method...
Security through obscurity is no security at all.
i didn't finish the quote but i don't want to release it so i can reuse it...i'm not using security through obscurity

the encryption is just a rijndael cipher, i don't want to release how i encrypted it, not the encryption, so that people can't recreate the password and use it to decrypt the encrypted data
Fail. So this reason doesn't make sense.

would rather it not be released so I can reuse it
As author, you are the copyright holder and can use it any way you want
And your only remaining reason doesn't make sense.

Assuming the app is proprietary because it's malicious is currently the only option available to us.

Now you hopefully understand why your program hasn't been accepted by the community.
So, moving away from the topic of full source disclosure, what's the point in this utility, i don't run a server, what would you otherwise use for rcon, how does this app improve on the standard method?
it's designed for server owners to be able to use rcon without having to open trem with it, so it's useless if you don't own a server/don't have rcon on it
Sorry, i think i confused you, i was inquiring what one would use for rcon if they didn't have access to your app, trem itself or ssh and screen were the answers.
also, in case you didn't notice, IT'S FREE
it's not a product, i don't care if no one downloads it, as i said i was releasing it for the benefit of the community, if they don't want to use it, it doesn't matter to me
READ THIS POST BEFORE POSTING AGAIN (and the following message)
Surely rcon passwords are rather sensitive pieces of information, not the kind of thing anyone wants to feed into some random guy's app, and if someone's capable of building their own clean version from your source they're probably also capable of figuring out ssh.
If you don't care that no one uses it, that's fine, i personally would care, if i'd bothered to write the program and felt that it was worth the effort, i'd want to provide source that builds and runs on multiple platforms. Have you considered starting a sourceforge or google code account and turning your trem tools into a real project? I imagine people are quite happy to type their rcon password when it's needed, if you just want to strip out the password saving and hashing code i'm sure people wouldn't mind. If you do choose this route, good luck.

You really must appreciate that you're some guy, posting binaries on mediafire for an app that accepts peoples server addresses and rcon passwords as input, anyone would have to be pretty braindead to take that risk.

ok i'll be even more specific for you
i made it for me and released it here
for the benefit of the community

there's no reason for me to create all of that just so people can feel secure, they can make it themselves if they want to (it really isn't that hard, took maybe 10 minutes to make), i just thought people would be lazy (as they generally are) and want someone to do it for them

and the only reason it's on mediafire is so i can get it from other computers without having to find this topic to download it

you're acting like rconpasswords is like putting a backdoor into your computer, there is nothing you can do with rcon that is permanent or difficult to fix

and read that quote that "makes no sense" again... the encryption is the algorithm used to protect data, how i encrypted it includes password generation and such

and tbh idc what you do with the code

This is not the only way to do so (ssh and screen can also do this), but is one way to do so.
That's obviously the most secure method: disable rcon entirely and send commands over an encrypted connection to the server.

Code: [Select]
echo -e '\xff\xff\xff\xffrcon [rconPassword] [cmd]' | nc -uw1 [addr] [port]e.g.,
Code: [Select]
echo -e '\xff\xff\xff\xffrcon blah cp You all suck' | nc -uw1 127.0.0.1 30720As for this "Rcon Utility", I have no idea where/why encryption would be used anyway, since rcon does not use encryption.

i didn't finish the quote but i don't want to release it so i can reuse it...i'm not using security through obscurity
I don't know how/why you're using encryption, but I think you need to look up the meanings of the word security.
disabling rcon entirely is a lot more secure, yes, but ssh isn't handled by the program (and by everyone's insecurity, wouldn't want it to anyway)

as for encryption, it saves the password on the computer (if you tell it to) and saves the encrypted password
Title: Re: Rcon Utility
Post by: Teapot on March 28, 2011, 08:41:58 pm
and read that quote that "makes no sense" again... the encryption is the algorithm used to protect data, how i encrypted it includes password generation and such

So you're relying on people not knowing how you encrypted the password, which is exactly what security through obscurity is. You were saying...

i'm not using security through obscurity

So, as I said, you're not making sense.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 28, 2011, 08:58:15 pm
and read that quote that "makes no sense" again... the encryption is the algorithm used to protect data, how i encrypted it includes password generation and such

So you're relying on people not knowing how you encrypted the password, which is exactly what security through obscurity is. You were saying...

i'm not using security through obscurity

So, as I said, you're not making sense.

actually no, the "security" would be the rijndael cypher (as i said before)
the password is just what's used to decrypt it, you don't tell people the passwords you make do you?
so you're saying that everyone who has ever made a password uses security through obscurity which undeference claims is no security at all
if passwords are no security then why do they still exist?
by definition, security through obscurity is using secrecy in implementation/design to have security
as the only thing i'm hiding is the password, it is not security through obscurity
Title: This message was encrypted using unspecified means
Post by: Undeference on March 28, 2011, 10:15:46 pm

Or don't
Title: Re: Rcon Utility
Post by: Teapot on March 28, 2011, 10:20:50 pm
Ohhh, you aren't talking about a proprietary algorithm. You mean the secret key?
If you're talking about using a secret key you put in the binary, I believe it can be retrieved.
Title: Re: Rcon Utility
Post by: F50 on March 29, 2011, 04:21:25 am
Ohhh, you aren't talking about a proprietary algorithm. You mean the secret key?
If you're talking about using a secret key you put in the binary, I believe it can be retrieved.

This is why its security through obscurity. Given an untrusted client, who, as you've said yourself, is free to decompile the binary, the "password" can be discovered by mere inspection.

I still don't understand though:
As for this "Rcon Utility", I have no idea where/why encryption would be used anyway, since rcon does not use encryption.

So wtf does the encryption exist in the first place?
Title: Re: Rcon Utility
Post by: kharnov on March 29, 2011, 04:27:00 am
I never dreamed of the day I'd see someone troll a forum with software.
Title: Re: Rcon Utility
Post by: Tremulant on March 29, 2011, 04:31:37 am
So wtf does the encryption exist in the first place?
He's encrypting the saved keys on disk, we've covered this.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 30, 2011, 12:51:28 am
I never dreamed of the day I'd see someone troll a forum with software.
;)

well it didn't start like that but it turned into that (sorta)

continuing on...there's no password hidden in the binary, you can look yourself
and thank you tremulant, you see why i get frustrated >.>
Title: Re: Rcon Utility
Post by: Teapot on March 30, 2011, 01:40:33 am
Where does the program get the secret key from?

(keeping in mind that if it is stored as a variable, it is stored as plain text in the binary)
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 30, 2011, 03:00:31 am
it doesn't store it as a variable either
but why would i tell you how i generate the password...kinda defeats the purpose of the password don't you think?
so yes, it is proprietary
Title: Re: Rcon Utility
Post by: Teapot on March 30, 2011, 05:00:59 am
The method can still be discovered by decompiling.
And your security relies on hiding the details of the secret key generation -- security through obscurity at work.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 30, 2011, 11:23:16 am
no, security through obscurity would be hiding everything about saving the password, hiding the password generator makes it a proprietary algorithm
security through obscurity implies that there's holes in the security that the owner won't acknowledge as a hole and hides it so they feel safe because they think people won't figure it out
proprietary algorithms are algorithms used to generate a result that have been hidden to prevent misuse
Title: Re: Rcon Utility
Post by: Teapot on March 30, 2011, 06:01:18 pm
security through obscurity implies that there's holes in the security that the owner won't acknowledge as a hole and hides it so they feel safe because they think people won't figure it out

Explain to me how this definition does not apply here. :P
You won't acknowledge there's a hole in your software, you're hiding the details because it makes you feel safe and you think people won't figure it out. Perfect match.

I (and others) maintain, this is still security through obscurity.

Quote from: Wikipedia
Security through (or by) obscurity is a pejorative referring to a principle in security engineering, which attempts to use secrecy (of design, implementation, etc.) to provide security.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 31, 2011, 02:42:26 am
the reason why it doesn't apply here is because it's hidden to prevent misuse, not because there's a bug in it
your definition of security through obscurity is too obscure, by your definition, security doesn't exist, and that every type of security is security through obscurity unless it's open source
Title: Re: Rcon Utility
Post by: Tremulant on March 31, 2011, 02:59:31 am
the reason why it doesn't apply here is because it's hidden to prevent misuse, not because there's a bug in it
your definition of security through obscurity is too obscure, by your definition, security doesn't exist, and that every type of security is security through obscurity unless it's open source
Since you need to be able to reverse the encryption in order to send the plain text password to the server i don't suppose you'd be able to hope for anything more than security through obscurity, and that's exactly what you've got, stop trying to pretend otherwise.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 31, 2011, 03:40:38 am
the reason why it doesn't apply here is because it's hidden to prevent misuse, not because there's a bug in it
your definition of security through obscurity is too obscure, by your definition, security doesn't exist, and that every type of security is security through obscurity unless it's open source
Since you need to be able to reverse the encryption in order to send the plain text password to the server i don't suppose you'd be able to hope for anything more than security through obscurity, and that's exactly what you've got, stop trying to pretend otherwise.

i don't think you understand what security through obscurity is, security through obscurity is not releasing the source to prevent security holes


i'm not releasing the source so people can't [Edit]recreate the password without difficulty[/Edit], which as i said earlier, is a proprietary algorithm
they're completely different things; i'm not using security through obscurity
Title: Re: Rcon Utility
Post by: Teapot on March 31, 2011, 03:56:02 am
Your program's design has this flaw regardless of whether or not it is open source.
And you are failing to understand what security through obscurity is, not everyone else.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 31, 2011, 04:01:11 am
and what might that flaw be?
that it has a generated password?
what about other programs with generated passwords?
are they all using security through obscurity too?

what you fail to see is the reasoning behind why i'm hiding it, there's no need for me to repeat myself like i did earlier
Title: Re: Rcon Utility
Post by: Tremulant on March 31, 2011, 04:08:36 am
i'm not releasing the source so people can't crack the password
i'm not using security through obscurity
Title: Re: Rcon Utility
Post by: F50 on March 31, 2011, 04:13:09 am
the reason why it doesn't apply here is because it's hidden to prevent misuse, not because there's a bug in it
your definition of security through obscurity is too obscure, by your definition, security doesn't exist, and that every type of security is security through obscurity unless it's open source
Since you need to be able to reverse the encryption in order to send the plain text password to the server i don't suppose you'd be able to hope for anything more than security through obscurity, and that's exactly what you've got, stop trying to pretend otherwise.

i don't think you understand what security through obscurity is, security through obscurity is not releasing the source to prevent security holes
i'm not releasing the source so people can't crack the password, which as i said earlier, is a proprietary algorithm
they're completely different things; i'm not using security through obscurity

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, such as the exact time the user generated the password, then the password itself could be considered secure (well, to a point, passwords really should be generated by an absolutely safe algorithm, or not generated at all), while the password generation algorithm itself is merely is security by obscurity.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 31, 2011, 02:04:15 pm
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.

Your argument is invalidated because you failed to not only read, but understand.

I will explain the purpose of the encryption again so you understand why it is there

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

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.

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
Title: Re: Rcon Utility
Post by: Teapot on March 31, 2011, 03:32:32 pm
Your "given requirements" are that the data be encrypted and decrypted without user interaction which has a security vulnerability inherent in the design because such requirements rely on data which is all available on the machine (even in an obscured form), unlike passwords.
Title: Re: Rcon Utility
Post by: Tremulant on March 31, 2011, 03:46:33 pm
Your argument is invalidated because you failed to not only read, but understand.

I will explain the purpose of the encryption again so you understand why it is there
Look, f50 is clearly a bit slow, just ignore him, it doesn't stop your system incorporating security through obscurity, your reversible password encryption method is secret, if it weren't secret(and you can't assume it'll stay secret) it'd be really easy to reverse the encryption on saved passwords.
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 31, 2011, 08:07:14 pm
it's not secret at all, i already told u i was using a rijndael cypher

and also it's only used on your computer, the only way someone else could get the encrypted data is by 1 of 3 ways:
1) The owner found and gave it to them
2) They hacked the computer, found and downloaded
3) They got on the computer (with or without permission), found it, and copied it

all three of which the program has no control over, the security here is that no one will give out the password
the encryption only prevents other people from accidentally finding it and realizing what it is

as i said before, the only security is trust
Title: Re: Rcon Utility
Post by: Teapot on March 31, 2011, 08:43:42 pm
the encryption only prevents other people from accidentally finding it and realizing what it is
Lol. You might as well do rot13 on the rcon password given that the above is the only reason you're using encryption. And for either method, the only protection is against people noticing a password like "ThisIsRconForMyServer".
Title: Re: Rcon Utility
Post by: Foe of Eternity on March 31, 2011, 08:55:54 pm
if u knew me you'd know i overdo stuff ^^

i incorporate overcomplicated stuff in simple stuff for practice ;)
Title: Re: Rcon Utility
Post by: F50 on April 01, 2011, 05:14:44 am
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
Quote
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).
Title: Re: Rcon Utility
Post by: Tremulant on April 01, 2011, 11:40:12 am
(and not just published in assembler, tremulant)
Hello?
Title: Re: Rcon Utility
Post by: Foe of Eternity on April 01, 2011, 01:21:30 pm
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
Quote
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).
Look, f50 is clearly a bit slow, just ignore him, it doesn't stop your system incorporating security through obscurity, your reversible password encryption method is secret, if it weren't secret(and you can't assume it'll stay secret) it'd be really easy to reverse the encryption on saved passwords.

let me quote my other post:
it's not secret at all, i already told u i was using a rijndael cypher

and also it's only used on your computer, the only way someone else could get the encrypted data is by 1 of 3 ways:
1) The owner found and gave it to them
2) They hacked the computer, found and downloaded
3) They got on the computer (with or without permission), found it, and copied it

all three of which the program has no control over, the security here is that no one will give out the password
the encryption only prevents other people from accidentally finding it and realizing what it is

as i said before, the only security is trust

SSH is secure because the password is stored on the server
not only is your argument completely invalidated once again, but once again, you failed to understand how the program works

Here's what i said, ONCE AGAIN:
it's not secret at all, i already told u i was using a rijndael cypher

and also it's only used on your computer, the only way someone else could get the encrypted data is by 1 of 3 ways:
1) The owner found and gave it to them
2) They hacked the computer, found and downloaded
3) They got on the computer (with or without permission), found it, and copied it

all three of which the program has no control over, the security here is that no one will give out the password
the encryption only prevents other people from accidentally finding it and realizing what it is

as i said before, the only security is trust

SSH, by the way you're looking at my program, is even less secure than my program.
With ssh, you can recreate the session by capturing the keys and spoofing data as it's sent to the client, and not only that, but you can bruteforce ssh keys, all without permission from the owner.

My program doesn't use the internet at all for it's programs, so the only way anyone can get the password (with any method) is by getting it from the owner's computer

Please read before you post again.
Title: Re: Rcon Utility
Post by: gimhael on April 01, 2011, 03:21:15 pm
ssh keys are asymmetric keys, i.e. they consist of the public and the private subkeys. The subkey on the server is the public subkey, which may be published openly without compromising the security of ssh at all. The private key (which you can consider the "password") is in fact stored on the client side.

Also you cannot get the secret keys by snooping the communication. The keys are never sent over the wire, so capturing them is simply not possible. Of course you can break the encryption by brute force, just like you can break Rijndael or every other cipher in existence, if you have the necessary resources...

as i said before, the only security is trust

Yes, but it is obviously easier to trust a program which I can check and compile myself with a trusted compiler than a random binary blob downloaded from the internet.

In the end this whole discussion leads nowhere. If you don't want to show the source code, that is your descision. And if someone else does or does not trust your program, it is his descision.
Title: Re: Rcon Utility
Post by: F50 on April 01, 2011, 04:00:03 pm
your reversible password encryption method is secret, if it weren't secret it'd be really easy to reverse the encryption on saved passwords.
The main problem being, its in the assembler, the method is not secret.

Please read before you post again.

Believe me, I've read that, but I believed you were more competent than your post seems to suggest. Are you asking me to apologize for having misunderstood? I assume of course that the post you've repeated twice is what you intended for me to read. It seems like you're saying that your encryption method is as good as plain-text, which shares all of the qualities given in that post. Having read the wikipedia article on the AES algorithm I am even more confused, as that seems clearly better than plain-text, provided that the key is not stored anywhere on that machine.

So then, your security is not meant to be security? I'm interested then in why its so important that this remain secret...

AFAIK, AES is not proprietary.
Title: Re: Rcon Utility
Post by: Foe of Eternity on April 01, 2011, 05:05:15 pm
ssh keys are asymmetric keys, i.e. they consist of the public and the private subkeys. The subkey on the server is the public subkey, which may be published openly without compromising the security of ssh at all. The private key (which you can consider the "password") is in fact stored on the client side.

Also you cannot get the secret keys by snooping the communication. The keys are never sent over the wire, so capturing them is simply not possible. Of course you can break the encryption by brute force, just like you can break Rijndael or every other cipher in existence, if you have the necessary resources...

as i said before, the only security is trust

Yes, but it is obviously easier to trust a program which I can check and compile myself with a trusted compiler than a random binary blob downloaded from the internet.

In the end this whole discussion leads nowhere. If you don't want to show the source code, that is your descision. And if someone else does or does not trust your program, it is his descision.

I was using the way he was comparing ssh to my code to show that his argument was invalid, i never said ssh was insecure, in fact it's very secure.  Also note the spoofing part, it is possible to hack ssh over the packets sent/received, as i said recreate the session using captured keys (public) and a little bit of spoofing (private)

as for the password, i meant that the password can be accessed from the client remotely (not like receiving it, but more like bruteforce)

on the note of source...
do we have to discuss this over again?
you'll find the source is already posted
your reversible password encryption method is secret, if it weren't secret it'd be really easy to reverse the encryption on saved passwords.
The main problem being, its in the assembler, the method is not secret.

Please read before you post again.

Believe me, I've read that, but I believed you were more competent than your post seems to suggest. Are you asking me to apologize for having misunderstood? I assume of course that the post you've repeated twice is what you intended for me to read. It seems like you're saying that your encryption method is as good as plain-text, which shares all of the qualities given in that post. Having read the wikipedia article on the AES algorithm I am even more confused, as that seems clearly better than plain-text, provided that the key is not stored anywhere on that machine.

So then, your security is not meant to be security? I'm interested then in why its so important that this remain secret...

AFAIK, AES is not proprietary.

when did i ask for an apology?
i'm saying you weren't competent enough to read

once again with the not reading: i never said the rijndael cypher was the security, and the cypher is only for me (and to add a little privacy)
i even quoted what i said the security was and you STILL can't figure it out?

and on the note of AES not being proprietary, when did i say it was? i said the algorithm i use to generate the password is proprietary
SERIOUSLY LERN2READ
Title: Re: Rcon Utility
Post by: Tremulant on April 01, 2011, 08:08:17 pm
your reversible password encryption method is secret, if it weren't secret it'd be really easy to reverse the encryption on saved passwords.
The main problem being, its in the assembler, the method is not secret.
It's secret, relatively speaking. Have you actually reverse engineered the thing at this point?

So, in short, Foe of eternity is relying on the fact that the source for his encryption isn't available for security and f50 is easily confused and a sometimes louder than he is bright. We're all a bunch of bloody idiots and this topic is going nowhere, lock?
Title: Re: Rcon Utility
Post by: F50 on April 02, 2011, 05:27:56 am
I'll admit it is relatively secret, but, as foe of eternity has pointed out, so is one's own machine. It is not secret in the cryptographical sense, as far as I understand it.

Quote
on the note of source...
do we have to discuss this over again?
you'll find the source is already posted
The source is not posted, it does not compile. Anyways its official, none of us can hear each other speak.  ::)

Quote
once again with the not reading: i never said the rijndael cypher was the security, and the cypher is only for me (and to add a little privacy)
i even quoted what i said the security was and you STILL can't figure it out?
What is security but privacy of communication and storage of data? The thing that I still cannot figure out is how this adds any privacy beyond the systems protecting your own machine. If someone is skilled enough to handle that task, I would expect that person to be skilled enough to not be particularly challenged by this. However, it seems so close to a potentially working system, a system capable enough that it would not need to be obscured by a binary. But nevermind, there is no true communication here.

Quote
and on the note of AES not being proprietary, when did i say it was? i said the algorithm i use to generate the password is proprietary

Alas, it seems we are incapable of communicating the most basic ideas between each other. A bunch of bloody idiots we are indeed. I did not say that you said that AES was proprietary (ok, that sounds scarily circular). What I meant to say is that the means of generating the password, lets call it the "key" to distinguish from the rcon password, is...rather completely useless, when it seems that one could implement proper key generation . Also, if you re-read this thread (admittedly, a terrible exercise), there are at least three meanings we have put to the word "password"...
Title: Re: Rcon Utility
Post by: Foe of Eternity on April 03, 2011, 02:35:59 am
on the note of the source code, you have enough information to recreate the source even if it's not fully posted

and i agree with tremulant this should probably be locked
Title: Re: Rcon Utility
Post by: vcxzet on April 04, 2011, 12:30:20 am
I love closed source utilities for open source applications.
Title: Re: Rcon Utility
Post by: Foe of Eternity on April 18, 2011, 09:36:41 pm
fail troll is fail.