Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

[ Create a new account ]

Open Source Quake Causes Cheating?

Posted by CmdrTaco on Sun Dec 26, 1999 01:04 PM
from the gotta-hate-that dept.
Stargazer writes "Well, looks like people are having problems with Quake's release under the GPL. It's not a conflict with the license, but rather, mean-spirited people are now creating clients which give them an unfair advantage, to say the least. John Carmack ponders this problem in his .plan file, and offers, unfortunately, a closed-source solution. "
This discussion has been archived. No new comments can be posted.
Quake GPL Release Causing Cheating | Log In/Create an Account | Top | 474 comments (Spill at 50!) | Index Only | Search Discussion
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1) | 2 | 3 | 4 | 5
  • What about Quake 3? by MrHat (Score:1) Sunday December 26 1999, @08:10AM
  • Sadness by ZuG (Score:2) Sunday December 26 1999, @08:11AM
  • Inevitible? by uninerd (Score:1) Sunday December 26 1999, @08:11AM
  • woohooo by Anonymous Coward (Score:1) Sunday December 26 1999, @08:12AM
  • This is a problem with OpenSource in general by cronio (Score:2) Sunday December 26 1999, @08:13AM
  • Sad by NightHwk (Score:1) Sunday December 26 1999, @08:14AM
  • this is a big deal by RodStewart (Score:2) Sunday December 26 1999, @08:14AM
  • This is just sad... by Anonymous Coward (Score:1) Sunday December 26 1999, @08:15AM
  • Always Happens (Score:3)

    by Accipiter (8228) on Sunday December 26 1999, @08:15AM (#1444013)
    There's always those select few assholes that have to ruin a Good Thing for everyone. That's not to say this problem with the Quake Open Sourcing wasn't expected....it was. The problem is that it's affecting more people then originally conceived.

    ID Software does a Good Thing, and releases the source code to Quake. Then, we have this group of people that change the code to cheat in Quake, making the general public think the Open Source community generally does things like this. Now ID has to play "damage control" and fix the problem, and the community also has to repair the damage done by the cheaters.

    Instead of looking for ways to cheat in the game, how about really giving the source a good look and maybe LEARN a couple of things. God knows ID programmers know what they're doing, and that code is bound to have a gem or two in there nobody thought of.

    -- Give him Head? Be a Beacon?

  • Re:What about Quake 3? by RodStewart (Score:1) Sunday December 26 1999, @08:15AM
  • by Mongoose (8480) on Sunday December 26 1999, @08:17AM (#1444015) Homepage
    I am currently making a client cide interface that will work for all 4 versions of quake. I'm using my own network code on the client and server side of the games. How do you plan to use security by obsurity to block that?

    You _can't_ - face it their a *legitamate uses for client side bots. I'm very interested in keeping them alive. Proxy cheat bots are only a small percentage of client side bots - also I've never seen a client side bot that really gave an advandage to the cheater.

    John I was very disaapointed when my favorite programmer brought up legal action threats to stop client side bots. John we want to learn more about AI! Your games model real world phyics, so well and have so many variants... please don't do this!

    - Mongoose ( from *old planetquake quakeC bot days )
  • Re:Sadness by Qeyser (Score:2) Sunday December 26 1999, @08:19AM
  • Re:Sadness by cronio (Score:1) Sunday December 26 1999, @08:20AM
  • Why... by punkass (Score:1) Sunday December 26 1999, @08:21AM
  • It's the only way (Score:3)

    by CentrX (50629) on Sunday December 26 1999, @08:21AM (#1444019)
    I was actually thinking about this some time ago and I concluded that the only way to have no one be able to cheat is with a closed-source system of checking. A good system would make it possible for the server to add 'known good clients' i.e: clients that they know don't cheat.
    Contrary to what some others are saying, this would not stifle open-source gaming as the only closed-source part would be the executable that checks to make sure there's no cheating. If only this were closed-source, the rest could be made open-source. I believe that this method would actually increase the proliferation of open-source games.

    Chris Hagar
  • by poopie (35416) on Sunday December 26 1999, @08:23AM (#1444020) Journal
    I really don't think this is such a big deal... It's a game, for pete's sake! When people start earning salaries for their quake performance, then maybe we need to worry about this.

    It's been my experience that cheating in these games really isn't much fun (unless your really stuck and about to give up on the whole game), and I don't think that others would want to play with cheaters unless they were cheating too, which would make the game fair again, I suppose.

    With the source, it's pretty trivial to undo just about any protection and spoof any values the program expects to find, so why bother?

    I fear that by putting in encryption and protection schemes, we'll be hindering potential development of new variations and play modes of quake and quake derivative games. If altered clients could be used to introduce a handicap factor into games, it might encourage gameplay between experienced and less experienced players.

    Why not add a HANDIcAP FACTOR to the quake game, and have that be shown for each player when joining a new game? It's probably easier to deal with cheating by making it a defined feature than trying to protect against it ever happening.
  • An opportunity, perhaps? by Brian Knotts (Score:2) Sunday December 26 1999, @08:23AM
  • So this is the benefit of Open Source eh? by Dj (Score:1) Sunday December 26 1999, @08:24AM
  • Re:just have client version report more data by Ånubis (Score:1) Sunday December 26 1999, @08:28AM
  • What about Cryptographic solutions by NateTG (Score:2) Sunday December 26 1999, @08:28AM
  • This is NOT an Open Source problem by AmirS (Score:1) Sunday December 26 1999, @08:29AM
  • glibc2.1 build by fsck (Score:1) Sunday December 26 1999, @08:30AM
  • Re:Cheating is a Good Thing (c) by Anonymous Coward (Score:1) Sunday December 26 1999, @08:35AM
  • They tried to sue you ... by Augusto (Score:1) Sunday December 26 1999, @08:35AM
  • by winterstorm (13189) on Sunday December 26 1999, @08:35AM (#1444030)
    Does anyone remember Netrek? The same problem happened with that game. The solution is to cryptographically bless binaries that don't have cheats, and allow people to configure their servers to reject all "non-blessed" clients.
  • by Python (1141) on Sunday December 26 1999, @08:39AM (#1444032)
    Open Sourcing the Quake code is not what caused the cheating. If that were the case, no security flaw in any closed source product would ever come to light. And yet they do. I'm disappointed in slashdot for perpetuating such a myth. Opening the source does not create the security hole, it just makes it easier to find it and fix it.

    So, this is really yet another example, in a long an sordid history, of why building a security model that depends on the client to be honest in a client/server model is a Bad Idea[TM] (can anyone say rexd?). Closing the source would be nothing more than security through obscurity. I guess its time to open that can of worms again and kick that dead horse around. There were cheats before they opened the source, their were cheats for UnReal and I'm sure their are cheats for other games as well. Anytime you rely on the client exclusively to report valid values you shift trust into an untrusted space. The users machine is not trusted, so why does it suprise anyone that someone would cheat? Why is it suprising that its possible? Its possible whether you open or close the source. This bears repeating, trusting an untrusted system (the client) to report trusted values is not possible! Thats the problem. Not the fact that the source is open, its the fact that the client is so implicitly trusted to report valid values.

    Hopefully the ID folks will realize that if they want to stop cheating. Preventing cheating in the client alone is never going to work. It will of course take some more work on their part, but its been done correctly before and I'm sure they can do it too. If they're smart they'll embrace this and work with the open source community to get it fixed.
    --
    Python

  • "Causes Cheating?" by gnubie (Score:1) Sunday December 26 1999, @08:41AM
  • Re:They tried to sue you ... by Mongoose (Score:1) Sunday December 26 1999, @08:41AM
  • Could encryption be the answer? by dsplat (Score:2) Sunday December 26 1999, @08:41AM
  • No matter how "strong" Carmack's "anti-cheat" device is, it will be circumvented. Some joker will build a workalike to this complex proxy system that "tells the server what it wants to hear."

    A real solution would be to build an actual community. This word is bantered around quite a bit, so allow me to explain further.

    If people were positively identified by the server, they would be accountable to others on their server for their actions. I think that the Slashdot model would work very well in this situation, in fact probably better than it does on Slashdot.

    You could, of course, only allow "known" players to login. You could also allow an "unknown" player to login, but allow any "known" player to, say, kick him out and ban his IP for 20 min.

    This could be implemented as simply as a username and password, and as complexly as, say, you must send your username (player name) and the date and time signed by PGP.

    "Oh, yeah, I know pete-classic. Naw, he doesn't cheat. Watch out when he has the Railgun though!"

    -Pete
  • The Pricetag... by Danbo (Score:1) Sunday December 26 1999, @08:43AM
  • Re:What about Cryptographic solutions by Keeper ofthe Keys (Score:1) Sunday December 26 1999, @08:44AM
  • Maybe a new client/server model is needed here. by Augusto (Score:2) Sunday December 26 1999, @08:46AM
  • by Tsuran (77127) on Sunday December 26 1999, @08:46AM (#1444041)
    Sorry to say it, but this is going to be one of the main reasons that open source is most probably never going to take off as a major commercial model.

    Simply put. If I dedicate my time, my effort, my life to making anything, a game, a SETI@home client, a utility, I'm not going to want people to pervert my hard work. That's what it comes down to, really. Why should I, as a potential product designer, want to release my code if the potential exists for misuse? Suppose that they opened up the source to SETI@home. Then you'd most probably be able to figure out the protocol, and how it sends 'alert' messages. And I guarantee you, someone will start sending fake data to SETI, and it'll totally defeat the purpose of the collaboration.

    Now. If your argument is that in all of the community, there will be no bad apples who will misuse the source, that's naive, I'm sorry. No group can be completely without its bad element, and I would wager that most developers don't want to open themselves up to that element, however small. There's security in a closed-source model, and companies want security. I know I wouldn't want to risk my userbase, my name, and my job security for something like this, and I would imagine that most people who do this for a living would tend to agree.

    Do I think that an open-source model is necessarily always bad? No. It has its place. Is that place in the world of commercial business? I don't believe so, no. Companies make products for money. Cheaters, exploiters, and all of that will always be there, and will always be a danger to any company. By keeping their source private, the chance of this element exploiting their work falls dramatically. It's just a fact of economics.

    Well-written, thoughtful replies are, as always, welcomed. Flames are not.

    --Tsu

  • Re:Sadness by SendBot (Score:1) Sunday December 26 1999, @08:47AM
  • Re:The solution is "blessed" clients by /dev/zero (Score:1) Sunday December 26 1999, @08:48AM
  • Quake Development (Score:3)

    by Blue Lang (13117) on Sunday December 26 1999, @08:48AM (#1444044) Homepage
    is continuing - see quake.sourceforge.net - Also, quakeforge is working closely with the quakeworld people, as well as some people from Loki games, to bring Q1 up to speed.

    They have a development roadmap, and the cheating issue is addressed. They have already managed to merge QW/Q1 into a single client, port it to SDL, etc, etc, etc.. It's rocking along, and quickly.

    To those of you saying "THIS is the problem with OSS.." - shut up and code. It isn't a problem, just a little bump in the road till things settle out. There are several solutions to it, including ones not mentioned by Carmack.

    I am fairly certain that this does not spell Doom (hehe) for OSS id software. Get lives, and get over it, in the face of what's already been accomplished, it's really not that big of a deal.

    --
    Blue
  • Netrek by Signal 11 (Score:2) Sunday December 26 1999, @08:49AM
  • Re:glibc2.1 build by Mongoose (Score:1) Sunday December 26 1999, @08:49AM
  • by jlehrbaum (114650) on Sunday December 26 1999, @08:51AM (#1444047) Homepage
    Like john said in his .plan, there have always been ways to cheat. Transparent maps that are not detected despite server-side mapchecking, proxies that allow (albeit very poorly implemented) auto-aiming, glowskins that let people seen through shadows easily, "spikes" that are built into the player model to let people know you are coming because they go through walls, and even proxies that allow a completely hacked up map.. there are numerous other cheats and hacks that are all possible with the original quake. Many of which are undetectable. The source code release lets people to much more obvious forms of cheating such as floating in the air, or zooming through the level like a cheetah on crack. But cheating has always been around.

    what is really different now? The real problem is
    that a) more people have been exposed to the possibility of cheating, and b) it is far more fun to cheat.
    In my 3 years of playing quake up till now, I haven't used a cheat for more than 2 minutes, and then only to test it out. I believe in keeping the game pure and skilled. But with the release of the sourcecode, coders can play with a game they love. They can add special features, optimize code, and really just mess around. Its fun. It makes cheating a game all to itself, what cool feature can YOU code in? Its not the same type of cheating that plagued competitive and non-competitive gaming in the past. This cheating isn't being used to win at all costs, but to mess around. each successive build of quake becomes 'your' build, full of your customizations and features, not just something you download to get an edge.

    The important question, is where will things go from here? In all reality, the ability to cheat has not suddenly appeared, it has always been here. The knowledge required to cheat has become mainstream, and has "come out of the closet" as it were. Will this rash of cheating continue, or is it merely a phase? Will it kill competitive match-play, or will the same people that cheated in competitions still do so, and everyone else will play by the rules.. Only time will tell
  • Re:So this is the benefit of Open Source eh? by limpdawg (Score:1) Sunday December 26 1999, @08:51AM
  • possible work around... by smash (Score:1) Sunday December 26 1999, @08:52AM
  • No "only way" by Anonymous Coward (Score:1) Sunday December 26 1999, @08:52AM
  • Fundamentally wrong approach by Anonymous Coward (Score:1) Sunday December 26 1999, @08:53AM
  • Re:They tried to sue you ... by Augusto (Score:1) Sunday December 26 1999, @08:54AM
  • Re:So this is the benefit of Open Source eh? by Dj (Score:1) Sunday December 26 1999, @08:56AM
  • No it doesn't (Score:4)

    by color of static (16129) <smasters@@@ieee...org> on Sunday December 26 1999, @08:56AM (#1444055) Homepage Journal
    Closed source doesn't make any code less hackable. All it does is make a protocol not designed against a malicous client effective against those not willing to go through any effort in hacking.

    The real solution for this is to make the protocol in a way so the client can only make requests to the server. Any time the client describes itself to the server, those things that can be described can not be trusted. In this case a safer protocol is to have the client request motion. The server will then provide updated info back to the client. If you want the client to track objects, then you can cryptologically sign them, so theywould be unique to the game session and non repeatable. The crypto could use very small keys to keep the performance managable, and the game exportable. 32 bits would probably be enough.
  • Client/Server gaming by Gleef (Score:2) Sunday December 26 1999, @08:57AM
  • I spoke to soon! go here to join this source fork! by Mongoose (Score:1) Sunday December 26 1999, @08:59AM
  • binary integrity by Emphyrio (Score:1) Sunday December 26 1999, @08:59AM
  • Re:It's the only way by Anonymous Coward (Score:1) Sunday December 26 1999, @09:01AM
  • This isn't a new problem by JamesKPolk (Score:1) Sunday December 26 1999, @09:03AM
  • Re:possible work around... by Augusto (Score:1) Sunday December 26 1999, @09:03AM
  • Ultima? by Kaht (Score:1) Sunday December 26 1999, @09:04AM
  • Re:...[solution] by Zurk (Score:1) Sunday December 26 1999, @09:04AM
  • by Terje Mathisen (128806) on Sunday December 26 1999, @09:06AM (#1444067)
    I discussed this with John Carmack back in May, the real problem is that it is absolutely impossible to make a completely cheatproof system. This is because it will always be possible for a cheater program to load the original program along side itself, and then use this to reply to things like requests for a MD5 checksum of a random area of the executable. Closed source helps only in making it harder to reverse engineer the protocols used, it is no real solution. Terje
  • Re:It's the only way by iCEBaLM (Score:2) Sunday December 26 1999, @09:08AM
  • Authentication by robertchin (Score:2) Sunday December 26 1999, @09:08AM
  • I have spent much of the last year developing systems/protocols for hostile client to trusted server connections. There are ways to do this, but it requires that the base protocol be designed with it in mind. I don't know the quake protocol, but I will try to describe a possible method.

    The client connects to the server with a request for a unique ID. What comes back is a two part ID, one public, one private. The client then makes universe change requests (movement of client in the universe, firing, etc...) with the pub ID, request, and a hash of the above with the priv ID. The server then can verify it's the same person that requested the ID (PKI can be used to send the intial ID back if snooping is a problem). The server sends back universe updates along with the verification. If you want these can be signed with the priv ID.
    If you want to do object tracking then the objects could have seperate signatures so they are unique and verifiable. Ammo could also be tracked with a sub object or something like that.

    Basically any rule that you don't want broken need to handled on the server in this model.

    Encryption could be cut down to a low level to prevent computaional slowness and export problems. Even a mild algorithm would be acceptable so long as the key secure until the end of the game against a single PC.

    If you want to do peer to peer, or move more handling back to the client, then one would have to look into one of the many blind poker algorithms, but it to should be doable.
  • Re:this is a big deal by Microlith (Score:1) Sunday December 26 1999, @09:13AM
  • Re:This is impossible to stop, so please grow up by IMarshal (Score:1) Sunday December 26 1999, @09:13AM
  • Re:...[solution] by sunking (Score:1) Sunday December 26 1999, @09:14AM
  • Damn cheaters by jcs (Score:1) Sunday December 26 1999, @09:14AM
  • Re:Hate to say it, but... by Guy Harris (Score:2) Sunday December 26 1999, @09:14AM
  • Interesting possibilities. Mostly questions. by Greg Merchan (Score:1) Sunday December 26 1999, @09:15AM
  • by chromatic (9471) on Sunday December 26 1999, @09:15AM (#1444078) Homepage

    That's right. We all know that closed source projects like Diablo, Ultima Online, and IIS 4.0 are secure and uncrackable. Thank goodness for software like Windows 98 and Windows 95 which are immune to BackOrifice due to the superior protection of Security through Obscurity.

    Can you *imagine* if someone like Alan Cox or Theo De Raadt had access to the source code? I mean, he might spend upwards of two hours fixing the security holes. That is plainly unacceptable.

    It is a very good thing that reverse engineering and hex editing and asm disassembly are impossible and illegal, not to mention packet sniffing! Otherwise, our panacea of Ivory Tower software development might show some cracks.

    Now if we can just rid the world of Computer Science classes and books, we can all hold hands and dance around. Huzzah!

    --

  • Re:Always Happens by itsme (Score:1) Sunday December 26 1999, @09:16AM
  • Possible solution perhaps by gothic (Score:2) Sunday December 26 1999, @09:17AM
  • Re:It's the only way by Fizgig (Score:1) Sunday December 26 1999, @09:18AM
  • No solution by Hard_Code (Score:2) Sunday December 26 1999, @09:20AM
  • Unfortunately, no by / (Score:2) Sunday December 26 1999, @09:20AM
  • Re:Always Happens by matroid (Score:2) Sunday December 26 1999, @09:21AM
  • Re:Hate to say it, but... by Fnkmaster (Score:1) Sunday December 26 1999, @09:21AM
  • Re:Open Source is not the problem by ARRAY(0x0) (Score:2) Sunday December 26 1999, @09:21AM
  • Re:No it doesn't by sjh (Score:1) Sunday December 26 1999, @09:22AM
  • Re:... by ChazeFroy (Score:1) Sunday December 26 1999, @09:25AM
  • Re:It's the only way by ArsonSmith (Score:1) Sunday December 26 1999, @09:25AM
  • Re:The solution is "blessed" clients by osu-neko (Score:1) Sunday December 26 1999, @09:26AM
  • synchronization solution? by onethirtyseven (Score:2) Sunday December 26 1999, @09:26AM
  • no no no by Siva (Score:1) Sunday December 26 1999, @09:26AM
  • Re:Hate to say it, but... by Augusto (Score:1) Sunday December 26 1999, @09:26AM
  • Re:This is impossible to stop, so please grow up by AtrN (Score:1) Sunday December 26 1999, @09:29AM
  • What's the problem by seaportcasino (Score:1) Sunday December 26 1999, @09:30AM
  • Re:The answer is Community, not Closed-ness by garcia (Score:1) Sunday December 26 1999, @09:31AM
  • by Effugas (2378) on Sunday December 26 1999, @09:32AM (#1444100) Homepage
    No, no, no.

    Most, *not all*, but most client side hacks work because the server is trusting the client to provide data that provides state data regarding a separate client not under the same security/permissions context.

    For example--I shoot a rocket launcher at you, and the server lets me decide whether or not the rocket hits. It doesn't matter whether the system is open or closed source--this is a flaw. Give a dedicated opponent a day with TCPDump and rockets will be teleporting all over the place.

    Any server, whether it is a game server, an IP Telephony Gateway, or a simple web proxy, must be designed to exclude all contexts but those that originate from the client from what content will be accepted from that client.

    This is not an impossible endeavor. Starcraft, for instance, has binary modification software that changes unit commands. Even in a peer to peer two player game, the modifications work perfectly until they ask a unit to execute a command that unit cannot do. Then, the other client detects the cheat and the game is immediately cancelled.

    The immediate response, of course, is that this peer to peer arrangement prevents information hiding. If your client is always verifying that other clients aren't cheating, then you can always watch the incoming datastream to know what's going on. Therein lies the reason why peer to peer isn't a particularly good topology for competitive gaming--there's no server to restrict the visible dataflow to that which the given client should see.

    Interestingly enough, the most inevitable (and least fixable) hack involves changing not the game but the video card drivers. Metabyte, the dementedly gifted hackers that gave gamers the first multi-API stereovision solution(and the single-pixel-resolution-adjustment power for Voodoo 2's), had a single revision of their drivers out for one day that artificially forced transparency on all surfaces. They called it X-Ray--needless to say, it made shooting around corners quite a bit easier. It also got shouted of existence rather quickly ;-)

    Reminiscent of Crypto, ain't it? Where's your trustable end point?

    Yours Truly,

    Dan Kaminsky
    DoxPara Research
    http://www.doxpara.com
  • These guys need to do their homework! by mangu (Score:1) Sunday December 26 1999, @09:35AM
  • Re:Client/Server gaming by Morlenden (Score:1) Sunday December 26 1999, @09:35AM
  • Abstraction Layers by Nite_Hawk (Score:2) Sunday December 26 1999, @09:36AM
  • Re:The solution is "blessed" clients by Admiral Burrito (Score:2) Sunday December 26 1999, @09:36AM
  • Re:I am a bot author - and I am outraged by garcia (Score:2) Sunday December 26 1999, @09:36AM
  • A little more detail on "blessed" clients. by winterstorm (Score:2) Sunday December 26 1999, @09:37AM
  • by / (33804) on Sunday December 26 1999, @09:37AM (#1444107)
    As others have illustrated, it's not the open-source model but rather this particular client-server model that's at fault. Let's see what we can salvage out of the existing model:

    Ideally, the server would check all of the client's requests to see whether they comply with the laws of physics, but that is unfortunately unworkable with today's hardware and bandwidth. It is possible to go half-way on this one, though.

    If the server simply audits the client's behavior, that is, verifies the client's requests at random intervals, fair play can be insured. Remember: all it takes is one bad request for the client to be banned as a cheater. If the auditing is done at random intervals, then the client can't adapt by spacing its valid requests with the correct interval.

    All that's left is for someone to code a server to do this, and then for people to play on only trusted servers. The need for trust can't be eliminated, but it can be lodged solely in the server, where it belongs.
  • Re:No it doesn't by color of static (Score:2) Sunday December 26 1999, @09:38AM
  • Anybody still playing Quake I? Hell yeah! by Turmio (Score:2) Sunday December 26 1999, @09:39AM
  • Re:Hate to say it, but... by sjames (Score:2) Sunday December 26 1999, @09:40AM
  • Re:Open Source is not the problem by RodStewart (Score:2) Sunday December 26 1999, @09:40AM
  • Re:... by Tarnar (Score:1) Sunday December 26 1999, @09:41AM
  • The closed source client is a waste of time by ChrisZ (Score:1) Sunday December 26 1999, @09:42AM
  • Re:No solution by iCEBaLM (Score:2) Sunday December 26 1999, @09:42AM
  • Open-source methodology is strong enough. by winterstorm (Score:2) Sunday December 26 1999, @09:43AM
  • I AGREE by knightx (Score:1) Sunday December 26 1999, @09:44AM
  • Re:opensource by mangu (Score:1) Sunday December 26 1999, @09:44AM
  • nothing left to do but smile smile smile... by garcia (Score:1) Sunday December 26 1999, @09:44AM
  • Re:Open Source is not the problem by Augusto (Score:1) Sunday December 26 1999, @09:47AM
  • blah blah blah by OnlyNou (Score:1) Sunday December 26 1999, @09:49AM
  • Re:It's the only way by iCEBaLM (Score:2) Sunday December 26 1999, @09:50AM
  • Re:Open Source is not the problem by pabs (Score:1) Sunday December 26 1999, @09:51AM
  • Re:Open Source is not the problem by Digital_Fiend (Score:1) Sunday December 26 1999, @09:52AM
  • by datazone (5048) on Sunday December 26 1999, @09:53AM (#1444125) Journal
    I see you have never played diablo on battlenet. At first the cheating wasn't so bad, then it became so disgusting! Trust me, people will cheat, just because they can. And the code to Diablo was not available. so closeing the source or opening it does not always mean you have a cheat free game. Someone, somewhere will find a way to cheat, if they really want to. but that does not mean that you have to stop trying to prevent the cheaters.
  • Released code is always open to exploitation by DragonHawk (Score:2) Sunday December 26 1999, @09:54AM
  • Re:No solution by Hard_Code (Score:2) Sunday December 26 1999, @09:55AM
  • Problem or Opportunity? by aerobee (Score:1) Sunday December 26 1999, @09:56AM
  • Re: Does Anyone Play Quake I by jawad (Score:1) Sunday December 26 1999, @09:57AM
  • Download on demand by Compuser (Score:1) Sunday December 26 1999, @09:58AM
  • Closed? by EEEthan (Score:1) Sunday December 26 1999, @09:59AM
  • Re:just have client version report more data by Hard_Code (Score:2) Sunday December 26 1999, @10:00AM
  • Of course it does... by um... Lucas (Score:1) Sunday December 26 1999, @10:07AM
  • Conspiracy theory: by webslacker (Score:1) Sunday December 26 1999, @10:08AM
  • Re:possible work around... by Yebyen (Score:2) Sunday December 26 1999, @10:10AM
  • by Hard_Code (49548) on Sunday December 26 1999, @10:11AM (#1444138)
    The problem, though, is not invalid behavior. Invalid behavior can be shoved to the server and verified. What is a bigger problem is valid, but highly improbable behavior. For instance, since my client knows everthing about the state of the world, I can program valid, but highly improbably inputs, that allow me to dodge most anything, simply because I /know/ the trajectories of everything. Now is this legal? Of course...it is /possible/ that I could really have the skill to do this...but very improbably.

    As long as the client knows everything about the world, these sort of exploits will be possible. I think the current protocals maintain a state in the client and then sync that state frequently. The client "knows" the state though. The only option is for the client /not/ to know the state of the world, but only the portion it can percieve. But since the permutations of changes of one state to another is smaller than the permutations of all possible states, I think it has been easier to do the "push-state-and-sync" method rather than "redefine-state-every-time".

    Jazilla.org - the Java Mozilla [sourceforge.net]
  • Re:No solution by iCEBaLM (Score:2) Sunday December 26 1999, @10:11AM
  • Yes it does but it's still not the right solution. by Crazy Diamond (Score:1) Sunday December 26 1999, @10:17AM
  • Re:Download on demand by Augusto (Score:1) Sunday December 26 1999, @10:20AM
  • Re:The answer is Community, not Closed-ness by glitch_ (Score:1) Sunday December 26 1999, @10:20AM
  • This is not an OSS hole. by ph43drus (Score:1) Sunday December 26 1999, @10:22AM
  • A big "But..." by kaphka (Score:2) Sunday December 26 1999, @10:23AM
  • Some more depth (Score:5)

    by John Carmack (101025) on Sunday December 26 1999, @10:24AM (#1444146)
    First, the Quake architecture of (reletively) dumb clients conencted to an authoritative server prevents the egregious cheating possible in some games ("I say you are dead now!", "I say I have infinite ammo!").

    For the most part, a cheating client can't make their character do anything that couldn't happen as a result of normal game interaction.

    The cheating clients/proxies focus on two main areas -- giving the player more information than they should have, and performing actions more skillfully.

    The "more information" part can take a number of forms. A reletively harmless one is adding timers for items and powerups. Good players will track a lot of that in their heads, but a simple program can "remind" players of it.

    Media cheating provides more information. Changing all the other player skins to bright white and removing all the shadows from a level give players an advantage not within the spirit of the game. Some would say cranking your screen brightness and gamma way up is one step on that path.

    More advanced clients can make available information that is not normally visible at all. The server sends over all of the entities in the potentially visible set, because the client can move around a fair amount between updates. This means that the client is often aware of the locations of players that are around corners. A proxy can display this information in a "scanner window". The server could be changed to only send over clients actually visible, but that would result in lots of players blinking in and out as you move around or turn rapidly.

    The worst cheats are the aim bots. In addition to providing more information, they override the player's commands to aim and fire with very high accuracy. The player usually "drives" around the level, and the program aims and shoots for them. This is usually extremely devestating and does ruin the game for most people.

    There are many possible countermeasures.

    There are server-side countermeasures that look for sequences of moves that are likely to be bot-generated and not human-generated, but that is an arms race that will end with skilled human players eventually getting identified as subtle bots.

    Media cheats can be protected by various checksums, as we do in Q3 with the sv_pure option. This is only effective if the network protocol is not compromised, because otherwise a proxy can tell the client that it's hacked media are actually ok.

    If the network protocol is not known, then the extra-information cheats generally can't happen unless you can hack the client source.

    Q3 performs various bits of encryption on the network protocol, but that is only relying on security through obscurity, and a sufficiently patient person with a disassembler can eventually backtrack what is happening. If only they would find something more usefull to spend their time on...

    With an open source client, the network communication protocol is right there in the open, so any encryption would be futile.

    Any attempt at having the client verify itself isn't going to work out, because a cheating client can just always tell you what you want to hear. People have mentioned nettreck several times, but I don't see how a completelty open source program can keep someone from just reporting what it is supposed to for a while (perhapse using a "real" copy to generate whatever digests are asked for), then switching to new methods. Anyone care to elaborate?

    I think a reasonable plan is to modify QW so that to play in "competition mode", it would have to be launched by a separate closed-source program that does all sorts of encryption and verification of the environment. If it just verifies the client, it would prevent the trivial modified client scanners and aim bots. It could verify the media data to prevent media information cheating. To prevent proxy information cheating and aim bots, it would have to encrypt the entire data stream, not just the connection process. That might have negative consequences on latency unless the encrypter is somehow able to be in the same address space as the verified client or scheduling can be tweaked enough to force task switches right after sends.

    In the end, it is just a matter of making it more difficult for the cheaters. If all it takes is editing and recompiling a file, lots of people will cheat. This is indeed a disadvantage of open source games. If they have to grovel over huge network dumps and disassemblies to hack a protocol, a smaller number of cheats will be available.

    Even if the programs were completely guaranteed secure (I havem't been convinced that is possible even in theory), an aim bot could be implemented at the device driver level.

    It would be a lot more work, but a program could be implemented that intercepts the video driver, the mouse driver, and the keyboard driver, and does bot calculations completely from that.

    Kind of sucks, doesn't it?

    John Carmack



  • Re:Authentication by sjames (Score:2) Sunday December 26 1999, @10:27AM
  • Re:The answer is Community, not Closed-ness by Jamie Zawinski (Score:2) Sunday December 26 1999, @10:29AM
  • trusting the user by moore (Score:1) Sunday December 26 1999, @10:29AM
  • Re:The answer is Community, not Closed-ness by garcia (Score:1) Sunday December 26 1999, @10:30AM
  • Re:This is just sad... by Relforn (Score:1) Sunday December 26 1999, @10:30AM
  • Re:Sad by idealego (Score:1) Sunday December 26 1999, @10:33AM
  • Re:Open Source is not the problem by MbM (Score:1) Sunday December 26 1999, @10:33AM
  • Implications for more important applictions too by KahunaBurger (Score:1) Sunday December 26 1999, @10:34AM
  • Re:Always Happens by Relforn (Score:1) Sunday December 26 1999, @10:35AM
  • Re:I am a bot author - and I am outraged by Mongoose (Score:1) Sunday December 26 1999, @10:42AM
  • Missing the point - the truth of cheating in Quake by Chris Pimlott (Score:1) Sunday December 26 1999, @10:43AM
  • Haven't all the ways of cheating in Q been around? by idealego (Score:1) Sunday December 26 1999, @10:44AM
  • Remember BSD rsh? xhost? by Alex Belits (Score:2) Sunday December 26 1999, @10:45AM
  • by lorimer (67017) on Sunday December 26 1999, @10:46AM (#1444167)
    http://www.netrek.org

    As several others have pointed out, Netrek solved this problem a LONG time ago. I'm responding where I am so that this post gets, hopefully, seen by everyone who hasn't read yet, so we don't get any more vague, unclueful debate on this.

    The solution is very simple. ID compiles a 'vanilla blessed' server. ID compiles a 'vanilla blessed' client. They create an encrypted binary key for the 'blessed' client, based on the client binary itself. They distribute this key with the vanilla server. They allow server gods to add any additional compiled keys they want - and to turn off or on whether key checking is used.

    Now, every single server will be able to be accessed by the vanilla blessed client, no matter what. It all works out of the box. Turn on key checking, and no hacked binaries or recompiled clients will work on your server. Want to make a mod? Compile your modified client binary and distribute a matching encrypted server key for it. Server gods add your key if they like your client. It's that simple. If you want to run a "chaos" server, turn off key checking. Anyone can come in and do what they want - and THAT is often pretty fun.

    It works great. People have been trying, and failing, to make 'borg' clients for Netrek for quite a long time now. There are some very good borgs that used to play on the Chaos servers. But they don't and CAN'T get into the vanilla servers.
  • We solved this with Netrek years ago... by sheldon (Score:1) Sunday December 26 1999, @10:49AM
  • Re:So this is the benefit of Open Source eh? by Relforn (Score:1) Sunday December 26 1999, @10:49AM
  • Re:MEEPT!!!!! by digigasm (Score:1) Sunday December 26 1999, @10:50AM
  • Re:opensource by benbean (Score:1) Sunday December 26 1999, @10:50AM
  • Re:Offtopic: Anyone heading a pure linux fork of Q by Relforn (Score:1) Sunday December 26 1999, @10:54AM
  • Re:I am a bot author - and I am outraged by garcia (Score:1) Sunday December 26 1999, @10:54AM
  • He already wrote it... by HobophobE (Score:1) Sunday December 26 1999, @10:54AM
  • One little optimization ... by Augusto (Score:1) Sunday December 26 1999, @10:55AM
  • Proxies cheats can also be blocked. by winterstorm (Score:2) Sunday December 26 1999, @10:55AM
  • DMB Stuff by RodStewart (Score:1) Sunday December 26 1999, @10:59AM
  • It's a protocol problem. by Russ Nelson (Score:1) Sunday December 26 1999, @10:59AM
  • It's not cheating by oki900 (Score:1) Sunday December 26 1999, @11:00AM
  • Re:Always Happens by garcia (Score:1) Sunday December 26 1999, @11:01AM
  • Wouldn't encryption be better than auditing? by winterstorm (Score:1) Sunday December 26 1999, @11:02AM
  • Sanctioned Cheating by Fenmere, the Worm (Score:1) Sunday December 26 1999, @11:04AM
  • Re:Hate to say it, but... by Jeff Licquia (Score:1) Sunday December 26 1999, @11:05AM
  • by Augusto (12068) on Sunday December 26 1999, @11:09AM (#1444191) Homepage
    But first , let me point out that your example is a bit off. Player B doesn't need to download all of the players properties from the server , because the scheme is that the server knows and manages everybody's health. Also, the problem with skins, custom sounds, etc. is not related at all to the GPL Quake since you can do that with closed source version already. I think the current scheme is to simply ignore custom sounds/skins/etc and just use the standard ones, so that if you look like Barney you still look like a grunt to me :) [this is how it works in half-life]

    Anyways, I think the general point you were trying to make (and very valid) is that waiting for the server to "approve" an action might take too long, and you're right. Unless we get really fast network connections, the only other way around this would be to use a hybrid approach hwere the server sortof trusts the clients, but then "audits" some players (randomly, or top players) and even if it let's actions go through (for speed) it might still reserve the right to analyse them and kick you out later. Once a cheater has been detected , his/her actions could be undone or simply ignored and the player is kicked out/banned from the server.
  • Deja Vu by bafful (Score:1) Sunday December 26 1999, @11:09AM
  • Re:Always Happens by Accipiter (Score:2) Sunday December 26 1999, @11:11AM
  • Re:synchronization solution? by Risen Devil (Score:1) Sunday December 26 1999, @11:11AM
  • Re:Proxies cheats can also be blocked. by michajoe (Score:1) Sunday December 26 1999, @11:11AM
  • Comparisons to paper/board gaming by Athos (Score:1) Sunday December 26 1999, @11:12AM
  • Re:The answer is Community, not Closed-ness by IntlHarvester (Score:1) Sunday December 26 1999, @11:14AM
  • Here's what to do: by pwagle (Score:1) Sunday December 26 1999, @11:14AM
  • Re:It's not cheating by Master of Kode Fu (Score:1) Sunday December 26 1999, @11:16AM
  • Re:One workable solution by jesser (Score:1) Sunday December 26 1999, @11:18AM
  • Re:MEEPT!!!!! by BOredAtWork (Score:1) Sunday December 26 1999, @11:20AM
  • Re:Some more depth by miracle69 (Score:1) Sunday December 26 1999, @11:20AM
  • Re:slashdot by pest (Score:1) Sunday December 26 1999, @11:20AM
  • Re:...[solution] by Signail11 (Score:1) Sunday December 26 1999, @11:25AM
  • Re:One workable solution by Anonymous Coward (Score:1) Sunday December 26 1999, @11:26AM
  • Cheating != Extra Health, Ammo, Weapons by eh (Score:1) Sunday December 26 1999, @11:28AM
  • Re:It's the only way by VinceJH (Score:1) Sunday December 26 1999, @11:32AM
  • Re:Some more depth by Nite_Hawk (Score:2) Sunday December 26 1999, @11:32AM
  • Re:This is impossible to stop, so please grow up by Skinka (Score:2) Sunday December 26 1999, @11:34AM
  • You wouldn't be able to sign the client. by winterstorm (Score:1) Sunday December 26 1999, @11:36AM
  • Re:One workable solution by interiot (Score:1) Sunday December 26 1999, @11:43AM
  • This is a good point. by winterstorm (Score:1) Sunday December 26 1999, @11:44AM
  • Re:Open Source is not the problem by _Sprocket_ (Score:2) Sunday December 26 1999, @11:48AM
  • Re:synchronization solution? by Nathan Mates (Score:1) Sunday December 26 1999, @11:49AM
  • Re:Some more depth by ahchem (Score:2) Sunday December 26 1999, @11:55AM
  • Re:This is a problem with OpenSource in general by _Sprocket_ (Score:2) Sunday December 26 1999, @12:02PM
  • Re:One little optimization ... by Hard_Code (Score:2) Sunday December 26 1999, @12:04PM
  • If a human knows not to hit it.. by Mr. Klaw (Score:1) Sunday December 26 1999, @12:09PM
  • Re:Some more depth by Augusto (Score:1) Sunday December 26 1999, @12:12PM
  • Re:Open Source is not the problem by RodStewart (Score:1) Sunday December 26 1999, @12:16PM
  • cheating happens with uncheckable values by Heisenbug (Score:1) Sunday December 26 1999, @12:19PM
  • been going on long time by Diamond Slicer (Score:1) Sunday December 26 1999, @12:20PM
  • Suggestions by Uri (Score:1) Sunday December 26 1999, @12:24PM
  • Redownload binary for every game. by ZephyrAlfredo (Score:1) Sunday December 26 1999, @12:24PM
  • Blessed clients, digital signatures, and trust. by winterstorm (Score:1) Sunday December 26 1999, @12:26PM
  • Re:If a human knows not to hit it.. by Nite_Hawk (Score:1) Sunday December 26 1999, @12:30PM
  • Re:You could still make it work ... by kaphka (Score:2) Sunday December 26 1999, @12:31PM
  • A non-problem? by jwriney (Score:1) Sunday December 26 1999, @12:33PM
  • Trends by redhog (Score:1) Sunday December 26 1999, @12:39PM
  • Re:What about Cryptographic solutions -- Update by NateTG (Score:1) Sunday December 26 1999, @12:40PM
  • Re:One little optimization ... by Augusto (Score:1) Sunday December 26 1999, @12:40PM
  • by / (33804) on Sunday December 26 1999, @12:40PM (#1444270)
    That is, Carmack doesn't want to have to maintain the Q1 code. He released the code, and he's nominally interested in whatever happens to it, but to ask him to stick around and bless any modifications that others make is asking too much of him. Maybe you can set up an international standards body to perform that function, but it's an uphill battle.
  • Re:Some more depth by Nite_Hawk (Score:1) Sunday December 26 1999, @12:40PM
  • Re:You could still make it work ... by journey- (Score:1) Sunday December 26 1999, @12:50PM
  • [QuakeForge] Cheating in Quake - will fix by knghtbrd (Score:1) Sunday December 26 1999, @12:52PM
  • an IMO wild idea by Mao (Score:1) Sunday December 26 1999, @01:05PM
  • Re:Sadness by knghtbrd (Score:2) Sunday December 26 1999, @01:12PM
  • Re:the gun (rocket launcher) control issue by Money__ (Score:2) Sunday December 26 1999, @01:13PM
  • Re:The answer is Community, not Closed-ness by pete-classic (Score:1) Sunday December 26 1999, @01:15PM
  • Re:No you do by mangu (Score:1) Sunday December 26 1999, @01:15PM
  • Hello? by Anonymous Coward (Score:1) Sunday December 26 1999, @01:19PM
  • Re:This is a problem with OpenSource in general by knghtbrd (Score:1) Sunday December 26 1999, @01:24PM
  • Re:this is a big deal by knghtbrd (Score:1) Sunday December 26 1999, @01:27PM
  • Re:Some more depth by jallen02 (Score:1) Sunday December 26 1999, @01:37PM
  • How do you prevent... by roystgnr (Score:2) Sunday December 26 1999, @01:43PM
  • Re:Random targets by Nite_Hawk (Score:1) Sunday December 26 1999, @01:43PM
  • by mcc (14761) <amcclure@purdue.edu> on Sunday December 26 1999, @01:46PM (#1444298) Homepage
    > it has completely destroyed quake1 culture. team fortress players, a segment of quake players that never really moved on to q2 or q3, after a bit of wanning of interest have finally got there death blow.

    heh.. bringing up the question.. what if Carmack did it this way on _purpose_..?
    i mean think about it.. now that it's OSS all these Q1 holdouts have had their game ruined. So what? So, they have to upgrade to Q2 or Q3. Meaning Carmack gets more money.

    I don't honestly think this is the reason Carmack went open-source, and i think that the way ID is willing to let go of intellectual property they no longer use is wonderful.. but still, interesting to think about. Excessive paranoia is fun!

    -mcc-baka
    listen to your heartbeat delete beep beep BEEP.
  • Re:No it doesn't by nano (Score:1) Sunday December 26 1999, @01:46PM
  • Unrelated: How I plan on doing it. by tietokone-olmi (Score:1) Sunday December 26 1999, @01:47PM
  • Re:I am a bot author - and I am outraged by Mongoose (Score:1) Sunday December 26 1999, @01:48PM
  • Re:Just move more code to the server by higuita (Score:1) Sunday December 26 1999, @01:59PM
  • Well-Known Solution by MrMister (Score:1) Sunday December 26 1999, @01:59PM
  • Re:I am a bot author - and I am outraged by garcia (Score:1) Sunday December 26 1999, @02:00PM
  • Re:Some more depth by Hobbex (Score:2) Sunday December 26 1999, @02:01PM
  • by WNight (23683) on Sunday December 26 1999, @02:02PM (#1444308) Homepage
    Quake already does this. The server is completely in charge of if you live or die, if you run out of health, you fall over, even if you've found the bytes for health and locked them at 100...

    What you're concerned about is actions... Bots can shoot better, and dodge better (theoretically) than humans. How does the server tell it that perfect spin while holding the lightning on a guy who ran by was Thresh, or a bot?

    Similarly, the client can change the way information is displayed. Perhaps they change the Z sorting for items, so that all players that are drawn are drawn in front of walls, even if they'd normally be behind... Throw in a simple GL effect to indicate the difference between an X-Ray view and a non-X-Ray view and you've got a way to avoid ever being suprised at corners.


    It's impossible to stop cheating in an environment with untrusted clients. Even with black boxes like console systems, it just raises the bar, making it harder to cheat.
  • What is cheating? (Score:3)

    by Jamie Zawinski (775) <jwz@jwz.org> on Sunday December 26 1999, @02:08PM (#1444309) Homepage

    Would targetting computers and nightscopes be cheating if everyone used them? Of course not. It's only cheating when people don't agree on the rules.

    You might think that robot/cyborg players were cheating unless your goal was to see how good you were playing against the AI. Or unless you were competing with other humans to see who could build the best robot.

    So making it impossible for the game to have bots and timers and other add-ons isn't necessarily the best approach, since that eliminates the potential for whole new forms of gameplay among consenting participants.

    That's why this is and will always be a social problem, not a technical problem. And it's one with a simple solution: don't play with jerks.

    It's just like Usenet: it used to be a nice place, but then it got overrun by idiots, and so newer, smaller communities like Slashdot appeared. If you are playing Quake and there are a lot of cheaters and idiots around, chances are your community got too big (and thus lost the elements of it that made it actually be a community) and you need to find or create a more intimate one.

  • nice in theory [Re:Open Source is not the problem] by Logical (Score:1) Sunday December 26 1999, @02:30PM
  • You're forgetting one thing.. by prj (Score:1) Sunday December 26 1999, @02:41PM
  • Re:This isn't a new problem by JamesKPolk (Score:1) Sunday December 26 1999, @02:47PM
  • Software problem or community problem? by xeer0 (Score:1) Sunday December 26 1999, @02:49PM
  • Cheating in QuakeWorld, thoughts about the source by Vario (Score:1) Sunday December 26 1999, @02:51PM
  • by Jamie Zawinski (775) <jwz@jwz.org> on Sunday December 26 1999, @02:58PM (#1444320) Homepage

    For example, using PGP you can sign an email message and others can then verify that the message really came from you. Obviously the same thing could be done for an executable file

    Unfortunately, this isn't true.

    When you receive a signed message/packet/whatever, the recipient can verify that the sender of that packet had access to the private key that corresponds to a particular public key. That doesn't say anything about the integrity of the message, only about the set of secrets known to the sender.

    To oversimplify: you can know who I am, but you can't know that I'm telling you the truth.

    Where do the private keys come from? If they are embedded in the Quake executable, then anyone can extract them and use them to sign anything. If they come from PGP's web of trust, then still all you've done is verify the identity (or pseudonym) of the player -- not of the software that they are using.

    This is all very similar to the general copy-protection problem [counterpane.com] as well as the fundamental impossibility of DVD encryption [counterpane.com].

  • Nothing new about Quake cheating by Juln (Score:1) Sunday December 26 1999, @03:04PM
  • Re:How does that solve bots/vision hacks? by color of static (Score:2) Sunday December 26 1999, @03:15PM
  • Re:Authentication by robertchin (Score:2) Sunday December 26 1999, @03:21PM
  • Sure you can. by winterstorm (Score:1) Sunday December 26 1999, @03:52PM
  • Not a new problem by Felinoid (Score:2) Sunday December 26 1999, @03:56PM
  • Re:This is NOT an Open Source problem by crt (Score:1) Sunday December 26 1999, @04:10PM
  • Here is a link to a listing of legitamate CS bots by Mongoose (Score:1) Sunday December 26 1999, @04:11PM
  • Re:Open Source is not the problem by _Sprocket_ (Score:2) Sunday December 26 1999, @04:12PM
  • Re:opensource by Felinoid (Score:1) Sunday December 26 1999, @04:13PM
  • Certificates == CD Keys by crt (Score:1) Sunday December 26 1999, @04:16PM
  • If you are really interested in the subject then.. by The Optimizer (Score:2) Sunday December 26 1999, @04:18PM
  • One partial solution... by Jeremi (Score:1) Sunday December 26 1999, @04:43PM
  • Re:Open Source is not the problem by Lx (Score:1) Sunday December 26 1999, @04:52PM
  • Re:Suggestions by Jeremi (Score:1) Sunday December 26 1999, @04:59PM
  • Here's an idea: it's not cheating! by Kaz Kylheku (Score:2) Sunday December 26 1999, @05:10PM
  • Re:I am a bot author - and I am outraged by billybob jr (Score:1) Sunday December 26 1999, @05:30PM
  • Question on the Binary HASH key (re: netrek). by Grock (Score:1) Sunday December 26 1999, @05:40PM
  • Perspective... by raytracer (Score:1) Sunday December 26 1999, @05:47PM
  • by Unbeliever (35305) on Sunday December 26 1999, @05:51PM (#1444349)
    How? All it knows is what the client tells it. What would stop a hacked client from giving the signature of a version of the client that's on disk rather than the one that's running?

    Absolutely nothing. We just make it as difficult as we can. Someone with enough determination can (and has) spoof us.

    Let me introduce myself. I am the current netrek client KEYGOD. I am the one who edits and serves the keyring that go to all the servers who wish to validate keys. How does it work? Not by open source. Well, not very open source.

    The people who own the RSA patent have given us permission to use a version of their algorithm for authentication purposes only. That source snippet is not included with any server OR client source tarball. Neither gets it, so the source isn't really "out there" or open-source. Who gets it and how are things blessed? Well, here's where trust comes in.

    The source for the RSA verification is relatively tightly controlled for US export, and patent and copyright reasons. There's a US version and a non-US version. You get the RSA source by becoming an established client developer or Server God. You ask us, who run the metaservers to give you the key to unlock the source tarball and include it in your source compilation.

    For a server, you're done, it will go fetch the keys from the keyring automatically. For the client, the verification source generates a public/private key pair stores it in about 20 different variables in random order and random .o files. Each .o file is randomly linked in to the final binary, and symbols are stripped. No binary CRC checking is done. Multiple binaries can be compiled with the same key, and yes, you read that right, the key IS stored in the client binary. The client maintainer will then offer the client public key to me, and I have a fixed set of criteria for accepting or denying a key.

    We, the server gods, client developers, and I, have to trust each other for this system to work. We have to trust that someone didn't compile a borg using the same key as a non-borg. Hell, we have to trust that someone didn't out and out try to bless a borg outright since it is practically impossible for us to check all the clients. Server Gods have to trust me to not slip in my own or my buddy's borg. The players have to trust the Server God to not put in server side cheats for himself. But there are recourses. Someone can cry foul on rec.games.netrek and we can investigate and yank a key. Server Gods can add their own keys of people they trust, and can reject keys from the keyserver.

    Maybe I'm overemphasizing this, but at some point, people ARE going to try to cheat. There is nothing anyone can do about that. You have to hope that that number is small and trust that people are generally going to Do The Right Thing. Barring that, we try to make it as difficult as possible for the casual cheater to succeed. Heck, the non-casual cheater doesn't even need to hack the binary. They can twiddle with the IP stack. They can even write something under X to send X events to the client, I'm sure you can do the same under Windows.

    Another level of trust is with the client developers. We have always been adding new features and new clients. Every once and a while a feature introduced by a client developer may be deemed borgish. A flame-fest/discussion occurs on rec.games.netrek, and if a feature IS declared borgish, we have to trust that the client developer retracts that feature.

    If you want to see how we discuss this, do a Deja search on rec.games.netrek. Keywords like "New Client" and "borg" will hit most of those discussions.

    Now to find a moderator to moderate this up...

  • Re:Open Source is not the problem by Qui-Gon (Score:1) Sunday December 26 1999, @05:57PM
  • Re:Wouldn't encryption be better than auditing? by Unbeliever (Score:1) Sunday December 26 1999, @06:05PM
  • Re:Open Source is not the problem by Qui-Gon (Score:1) Sunday December 26 1999, @06:08PM
  • Re:Some more depth by Unbeliever (Score:1) Sunday December 26 1999, @06:19PM
  • Re:Some more depth by Kymermosst (Score:1) Sunday December 26 1999, @06:23PM
  • A crypto graphical solution. by Inoshiro (Score:2) Sunday December 26 1999, @06:25PM
  • action and reaction by serialk (Score:1) Sunday December 26 1999, @06:27PM
  • Re:Certificates == CD Keys by IntlHarvester (Score:1) Sunday December 26 1999, @06:32PM
  • Re:The answer is Community, not Closed-ness by Trepidity (Score:2) Sunday December 26 1999, @07:02PM
  • Quake==Pokemon by havardi (Score:1) Sunday December 26 1999, @07:03PM
  • Re:Interesting possibilities. Mostly questions. by UnknownSoldier (Score:1) Sunday December 26 1999, @07:08PM
  • Re:Open Source is not the problem by billybob jr (Score:1) Sunday December 26 1999, @07:10PM
  • Re:possible work around... by billybob jr (Score:1) Sunday December 26 1999, @07:24PM
  • Re:You aint half cocky are ya :) by Unbeliever (Score:1) Sunday December 26 1999, @07:26PM
  • Re:no no no by billybob jr (Score:1) Sunday December 26 1999, @07:29PM
  • Re:This isn't a new problem by billybob jr (Score:1) Sunday December 26 1999, @07:31PM
  • Re:This is impossible to stop, so please grow up by billybob jr (Score:1) Sunday December 26 1999, @07:33PM
  • Re:A comment from the current Netrek keys maintain by Weezul (Score:2) Sunday December 26 1999, @07:38PM
  • Re:Possible solution perhaps by billybob jr (Score:1) Sunday December 26 1999, @07:39PM
  • Re:Excessive Trust In Game Design by billybob jr (Score:1) Sunday December 26 1999, @07:48PM
  • reasons not to open source by CmdData (Score:1) Sunday December 26 1999, @07:50PM
  • Re:Missing the point - the truth of cheating in Qu by billybob jr (Score:1) Sunday December 26 1999, @07:55PM
  • Re:... by dhaber (Score:1) Sunday December 26 1999, @08:00PM
  • Re:A comment from the current Netrek keys maintain by Unbeliever (Score:1) Sunday December 26 1999, @08:22PM
  • I am cocky! by sheldon (Score:1) Sunday December 26 1999, @08:23PM
  • Distributed chess solvers by jab (Score:1) Sunday December 26 1999, @08:24PM
  • Re:Question on the Binary HASH key (re: netrek). by sheldon (Score:1) Sunday December 26 1999, @08:26PM
  • Use Cryptography by DoronRajwan (Score:1) Sunday December 26 1999, @08:41PM
  • Re:Open Source is not the problem by Python (Score:1) Sunday December 26 1999, @08:45PM
  • open source evangelism by vasiln (Score:1) Sunday December 26 1999, @08:49PM
  • Re:Cheating in QuakeWorld, thoughts about the sour by rpenguin (Score:1) Sunday December 26 1999, @08:49PM
  • Re:Athlon KxSec will make this solvable by Python (Score:1) Sunday December 26 1999, @09:02PM
  • Re:Open Source is not the problem by vasiln (Score:1) Sunday December 26 1999, @09:30PM
  • Re:A comment from the current Netrek keys maintain by Score Whore (Score:1) Sunday December 26 1999, @09:31PM
  • Re:Random targets by Nite_Hawk (Score:1) Sunday December 26 1999, @09:59PM
  • Re:Certificates == CD Keys by pete-classic (Score:1) Sunday December 26 1999, @10:08PM
  • Re:If you are really interested in the subject the by Jamie Zawinski (Score:2) Sunday December 26 1999, @10:24PM
  • Re:open source evangelism by Duckie01 (Score:1) Sunday December 26 1999, @11:38PM
  • Or maybe some things just shouldn't be Open Source by tc (Score:1) Monday December 27 1999, @12:18AM
  • Re:I am a bot author - and I am outraged by WNight (Score:2) Monday December 27 1999, @12:29AM
  • Brute Force Solution? by Mortigalli (Score:1) Monday December 27 1999, @12:42AM
  • The facts about what can and can't be done. by WNight (Score:2) Monday December 27 1999, @01:10AM
  • Re:This is impossible to stop, so please grow up by Terje Mathisen (Score:1) Monday December 27 1999, @02:29AM
  • Re:If you are really interested in the subject the by cherub (Score:1) Monday December 27 1999, @03:17AM
  • Client Downloading? by Wiwi Jumbo (Score:1) Monday December 27 1999, @03:41AM
  • Re:Ok, what the heck is a BORG? by glorf (Score:1) Monday December 27 1999, @04:27AM
  • Re:A crypto graphical solution. by MikeBabcock (Score:2) Monday December 27 1999, @04:34AM
  • A good point... by sheldon (Score:1) Monday December 27 1999, @04:48AM
  • ..., unfortunately, a closed source solution. by Object01 (Score:1) Monday December 27 1999, @04:57AM
  • correct by ranton (Score:1) Monday December 27 1999, @05:25AM
  • It *IS* only a game. by mr (Score:1) Monday December 27 1999, @06:50AM
  • Re:...[solution] by TheCarp (Score:2) Monday December 27 1999, @06:54AM
  • Re:John doesn't want to be Linus by powerlord (Score:1) Monday December 27 1999, @06:57AM
  • Re:Open Source is not the problem by Hard_Code (Score:2) Monday December 27 1999, @07:10AM
  • by Hard_Code (49548) on Monday December 27 1999, @07:16AM (#1444429)
    "It's impossible to stop cheating in an environment with untrusted clients."

    I completely agree. This has nothing to do with open source or closed source. It is just simply impossible to stop cheating in an environment with untrusted clients. If you force clients to be trusted somehow (which won't work anyway) by only releasing "blessed" clients, then you have just lost the benefit of open source, and made a humongous pain in the ass for /decent/, non-cheating players.

    All sorts of solutions and fervent discussion is flying around about how to make it secure. It always resolves down to security through obscurity. In the end any "security" system in place will just make it harder on decent players. Because of the simple fact that any system that trusts the client is unsafe, it will never be a absolutely safe game (unless /everything/ but inputs are pushed to the server, at which point the game becomes secure (except for the behavioral cheats), but entirely unplayable). For the game to be completely cheat-proof the whole architecture has to change, and I don't think there is one that could live up to and support the fast and furious online play.

    Jazilla.org - the Java Mozilla [sourceforge.net]
  • Re:Open Source is not the problem by Hard_Code (Score:2) Monday December 27 1999, @07:20AM
  • Re:Open Source is not the problem by FFR (Score:1) Monday December 27 1999, @07:21AM
  • A new client/server model? by Fesh (Score:1) Monday December 27 1999, @07:31AM
  • Re:Open Source is not the problem by morph- (Score:1) Monday December 27 1999, @07:44AM
  • Simple answer to a simple problem by FPhlyer (Score:1) Monday December 27 1999, @07:59AM
  • I haven't seen one issue being addressed by sean.k (Score:1) Monday December 27 1999, @08:07AM
  • Re:If a human knows not to hit it.. by umoto (Score:1) Monday December 27 1999, @08:09AM
  • Re:Open Source is not the problem by Hard_Code (Score:2) Monday December 27 1999, @08:34AM
  • Why ID really let out the source code by 9001 (Score:1) Monday December 27 1999, @08:50AM
  • Re:The facts about what can and can't be done. by Seth Golub (Score:1) Monday December 27 1999, @09:07AM
  • What game are these people playing? by rocketjesus (Score:1) Monday December 27 1999, @09:13AM
  • Re:The facts about what can and can't be done. by WNight (Score:2) Monday December 27 1999, @10:11AM
  • Re:Cheating != Extra Health, Ammo, Weapons by ranton (Score:1) Monday December 27 1999, @10:21AM
  • Re:Some more depth by D_B_COOPER (Score:1) Monday December 27 1999, @11:36AM
  • Re:Authentication by sjames (Score:2) Monday December 27 1999, @12:31PM
  • Re:Some more depth by matso (Score:1) Monday December 27 1999, @12:44PM
  • Re:If you are really interested in the subject the by The Optimizer (Score:1) Monday December 27 1999, @02:04PM
  • Try this on for size... by Red_Chaos1 (Score:1) Monday December 27 1999, @02:26PM
  • Re:this is a big deal by RodStewart (Score:1) Monday December 27 1999, @05:47PM
  • Quake 3 Inspiration by Sludge (Score:1) Monday December 27 1999, @09:38PM
  • Why this is a good thing by LordLobo (Score:1) Tuesday December 28 1999, @02:40AM
  • All this talk of huge scale cheating... by Marlin (Score:1) Tuesday December 28 1999, @03:05AM
  • Re:No "only way" by CentrX (Score:1) Tuesday December 28 1999, @06:38AM
  • Re:its a direct result by gellor (Score:1) Wednesday December 29 1999, @03:53PM
  • Re:the gun (rocket launcher) control issue by gellor (Score:1) Wednesday December 29 1999, @03:58PM
  • Re:AAAAAAAAARRRRRGGG by iCEBaLM (Score:2) Wednesday December 29 1999, @08:32PM
  • Re:AAAAAAAAARRRRRGGG by iCEBaLM (Score:2) Wednesday December 29 1999, @08:35PM
  • 144 replies beneath your current threshold.
(1) | 2 | 3 | 4 | 5