Quote:
Originally Posted by l3j
Your phony server would have to have access to the GWLP server's database to affect authorization in any way. Also, if you tricked the client into being authorized client-side, you still would be rejected by the server when trying to play.
|
Let's try this again. I run your little utility and launch GW. The utility sniffs incoming packets from the official GW server, right? And it's looking for a couple of bytes that denote my ownership rights, right? Then it gift wraps them and ships them off to the GWLP server, right? Now, let's go back a step. How does your utility know that those packets it's sniffing are really coming from the official GW server?
I'm imagining something like this: I create Server A. Sever A speaks the encryption the the GW client is expecting, shakes hands, accepts any user/password combo, shoots back "you are authorized to play all 4 games," maybe mimics the real login server a bit longer, then discos. Now, I redirect my GW client to Server A in place of the official GW server. So, now, when I run your auth util, then run the GW client, the util sniffs "you are authorized to play all 4 games," gift wraps that, and ships it off to your server, allowing me to play all 4 games for the next 10 hours.
I do not see anything in Ajaala's description to prevent this sort of chicanery.
Quote:
The computer information used for reconnecting is used.
|
That's not terribly forthcoming, but at least it's more than Ajaala explained. I think I've stated my reservations about the effectiveness of using a hardware profile to identify a user before, so let's skip that for now. How do you deal with the legitimate user with variable hardware? If I authenticated desktop, logging in from my laptop (or my desktop after some hardware upgrades) is going to fail, isn't it? Unless, you let me re-authenticate from the laptop. But that would defeat the whole purpose of using a hardware profile to uniquely identify me; if all one has to do is precede gameplay with an auth session, there could be any number of "me's" doing so.
Quote:
No, the first hash is not of only two bytes.
|
Ajaala said "It hashes these two bytes." I took him/her (?) at her word there. Apparently, "plugged into a special pattern" is vague-speak for "we take the two bytes, pad it with garbage, then hash." I'll admit that makes me feel a little better about your method here.
Quote:
The same encryption instruction Guild Wars uses.
|
I'm sorry. I incorrectly assumed this was an effort to keep the end user from learning how to spoof their own auth data. I completely forgot that you also have to protect against third party attacks. In that case, go-go hardcoded encryption. Query: Is there a reason that you
must use GW's encryption scheme for a communication between the auth util and your server? I'd assume you
could use any scheme you wanted between your own program and your own server, so you could use something stronger.
Quote:
When the server receives the authorization data the time stamp is created.
|
OK, so the timestamping is purely serverside to keep track of the 10-hour limit?
Quote:
You can spoof it regardless, a time server can be emulated.
|
Good point.
If you can see this, why don't you see the possibility of an emulated "real" GW server spoofing the input your auth util is sniffing?
Quote:
Neither party (authorization client and server) can be trusted. So there isn't a secure solution to this problem. The authorization client and server can both be cracked. All that can be done is hinder the amount of time cracking the software takes.
|
That is entirely my point. I'm glad you see it that way too. The important question that follows is then: Is this level of insecure-but-annoying enough to satisfy a-net so that they won't shut the project down once it reaches a playable level of functionality and people start trying to play beyond their access rights? This goes back to my original comment on the topic (in the other thread): While I'm excited about the GWLP project, I'm not going to dedicate time to it if it's ultimately doomed; get an official statement that a-net is satisfied with your authentication system and then I'll be willing to help. If GW were my game, I would not be satisfied with your auth system, and I would cite the impossibility of a secure solution as my reason for shutting you down. Fortunately for you, it's not.

Perhaps a-net is less demanding than I. Go press for that official statement and see.
Quote:
Pablo24 found the exploit just over the course of a day. The only relation the exploit has to the GWLP is that he is a staff member. Whether you believe me or not doesn't change the validity of my statements.
|
I was not suggesting in any way that GWLP has anything to do with this exploit. I accept that it's a mere coincidence. My point was that a-net's own auth system is apparently so poor that it would be hypocritical of them to ask much more from yours. It was a compliment about the comparative quality of your auth system; you should have taken it, said thanks, and run with it