A list of features you'd like in a new chess server

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: Five more ideas

Post by sje »

Dann Corbit wrote:6. Badboy rating.
If someone disconnects in the middle of a game, store the IP address if it is not already stored and increment a counter (storage of the ip address will prevent spoofing someone a bad score). If the player was about to lose, add ten more points to his score.

Eventually, the poor sports will get a huge "badboy" rating and nobody will have to play against them. I guess that this is the biggest complaint about chess servers.
This is like Slashdot's karma rating which is in part based on other members' ratings of a given member's contributions.

I doubt if misbehavior will be a problem for an authors only server. But something like a karma rating will be needed for a server operated with a more open policy.
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: Five more ideas

Post by Zach Wegner »

sje wrote:No system can be totally secure. But it is possible to design a system which, for the vast majority of end users, is too difficult to bypass.
How? Making the client-side system open source is a complete non-starter. Making it closed source (distributed in binary form), which I suppose wouldn't even be possible with an open source server, just makes the cracking take a bit longer. There just isn't any way to have any meaningful security here.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: Five more ideas

Post by sje »

What do you mean by "meaningful"? If 99.9% of the end users are deterred from cheating, is that meaningful?

Also, the server can use timing fraud detection techniques without client assistance and which are impervious to client host chicanery.
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: Five more ideas

Post by Zach Wegner »

sje wrote:What do you mean by "meaningful"? If 99.9% of the end users are deterred from cheating, is that meaningful?
I'd say that's meaningful, if the 99.9% is taken from those that would want to cheat. If the deterrence mechanism is something like "Please don't cheat!!!", while relying on 99.9% of authors to be honest, that's not meaningful of course. Really I'm just wondering how you would do this. I personally can't think of any solution with an open source client and server that couldn't be hacked in less than an hour. And that's quite generous.
Also, the server can use timing fraud detection techniques without client assistance and which are impervious to client host chicanery.
Again, how?
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: Five more ideas

Post by sje »

Zach Wegner wrote:
sje wrote:What do you mean by "meaningful"? If 99.9% of the end users are deterred from cheating, is that meaningful?
I'd say that's meaningful, if the 99.9% is taken from those that would want to cheat. If the deterrence mechanism is something like "Please don't cheat!!!", while relying on 99.9% of authors to be honest, that's not meaningful of course. Really I'm just wondering how you would do this. I personally can't think of any solution with an open source client and server that couldn't be hacked in less than an hour. And that's quite generous.
Also, the server can use timing fraud detection techniques without client assistance and which are impervious to client host chicanery.
Again, how?
I don't want to get off on a tangent about timeseal here, so this will be my last post on timing lag fraud.

A client does not have to be open source, so reverse engineering might not be as simple as you expect. A client may employ more than one fraud detection method and could switch from one to the other (or use none) randomly. It could take a great deal of detective work to undermine all of the methods. Furthermore, if the server policy rewards even a single detected cheating event with a lifetime ban, who would risk the attempt?

The Internet protocols that support ping and traceroute can be used to detect timing fraud. The server can surreptitiously send an occasional ping to the client host and if the ping results repeatedly come back faster than the client response, then that's fraud. If the cheater disables ping replies, then the server can examine the user IP address and try pings on machines on the user's LAN. Also, the route to the user can be traced and pinging can be applied to the user's immediate upstream hosts.

It might even be possible to bounce e-mail to a non-existent user on the client host and derive lag data.

And there are some more methods like surprise challenges with closed software where a user just won't have time to do any reverse engineering.

Finally, the server can set a maximum allowed lag and charge time to any that go over the limit.