QuakeForge And QuakeWorld Forever Merge 33
knghtbrd writes: "QuakeForge and QuakeWorld Forever, two of the largest projects based on Id Software's GPL'd Quake source, are teaming up to bring the world what we believe is the best Quake1 engine on the planet. The result for die-hard Quake players? QWF's cryptographic cheat prevention (which stop speed cheaters and auto-aimers cold) combined with QF's support for a zillion different operating systems. Here's a look at what can be expected along with press release. "
GPL (Score:2)
Re:WOW! (Score:1)
Hey, some of us never stopped
Thunderwalker was a cool mod too.
Re:Please: Stop the Bitchslapping (Score:1)
Some details on QWF's encryption.. (Score:3)
http://www.quakesrc.org/security.txt : By Ender
QuakeWorld Forever uses a NetTrek style system of blessed binarys. That is, every official binary released by QuakeWorld Forever has embedded (in the most obscured way possible) a key. This symmetrical cipher is then used to encrypt, using GnuPG, the standard QuakeWorld connection challenge. If the server can decrypt and verify the challenge, the client is considered legit. A key generator is also provided for others to create their own binarys, for private games (eg, Clan or large LAN games). A CRC check of the binary is also employed, as the lightest possible security.
The first versions of the QWF software did use the above method, and for a time it worked. Due to some slackness with debug code and misuse of mallocs, one person DID suceed in extracting the key. However, a majority of cheats simply allowed the true client to connect, then after the initial connect verified the client proceeded to steal it's network connection to transmit altered data.
The current solution we are working towards is attached a integer hash of the packet data to each movement packet. However this is also subject to being faked. So, we employ Hack #1: At every client->server connection, whether a level change or initial connection, the server sends the client a unique random session key. This session key is then used to encrypt every packet, and the hash we transmit is the hash of this one packet. Because the key is per-session it is a fairly weak key for speed reasons, unlike the long challenge-key.
Actually, in truth, it is also possible that the server administrator might want other unverified clients to connect, for various reasons. One of the major disadvantages of the symmetrical cipher we use is that each server must have the same key as the client. Ergo, a new build of the server will require a new build of the client. This is why we intend to move towards a public key system once the merge with QuakeForge is complete. But to solve this problem, our next release will also include other anti-cheat methods designed by other engines. Most cheats current around are a simple case of the client lying to the server. Things such as speed-cheating can easily be fixed by simple sanity checks. The other cause of cheating is bugs, such as the timing bugs. Now, every piece of software has bugs, but any bug should eventually be fixed.
Between our blessed binary system, and simple sanity checking and bugfixes, OpenSource security methods are a viable alternative to closed source, as long as the SERVER is trusted. And we truely hope noone is lame enough to create a hacked server solely for the purpose of allowing themselves to win... Also new technology such as working bot detection methods will become avaliable and also have a place in such software.
Nothing exceeds the bounds of imagination.
(Added note: The reason for the long delay in public key systems can best be described by penpen, one of the people who wrote the majority of the security code:
We decided to use gnupg in our client. This was to save time and to make sure that it's actually as secure as it can be. The problem with this is that gnupg code is not written well for use as a library. This causes many problems. The most noticable are the fact we found it impossible to run things like RSA and ELGAMMAL pke algorithms. The gnupg people are apparently working on the gnupg to actually produce an Encryption library. Maybe once this is done the use of such algorithms will become a reality. Also we didn't use RSA because of the current patent on RSA in the US.)
Yes, I forgot my slashdot password...
== Ender, QuakeWorld Forever developer
Quake Standards Group President.
www.quakesrc.org
Some general answers (Score:5)
All files (exept for the work being done for the merge: it isn't ready yet) can be had from our downloads page [sourceforge.net]. This includes the olde QuakeForge 0.1.1 release (source only), current CVS source snapshots, and Win32 binaries (both VC++ and Borland C++ 5.0 (?), but the latter is offsite). Anon Cvs accass can be had with:v sroot/quake login v sroot/quake co quakeforge
cvs -d:pserver:anonymous@cvs.quake.sourceforge.net:/c
no password
cvs -d:pserver:anonymous@cvs.quake.sourceforge.net:/c
As to cheat protection: Quakeforge currently has a speed cheat protection mechanism [sourceforge.net], and QWF has cryptographic protection (I don't know the link, sorry), that we will be ported to QF during the merge. I'm not sure how QWF implements it (though I believe it involves blessed binaries), but I do know that the exchanging of a secret that becomes part of the checksummed packet (but never transmitted) in a manner similar to APOP was discussed. With just this combination, almost all cheats will be rendered difficult if not impossible.
Some interesting features in that have been implemented in Quakeforge are the ability to separate out the game data directories and your game save directories which also results in being able to run the game from any directory once it's configured correctly, native ALSA 0.5.x sound support (Linux), lot's of GL eye candy, the speed cheat fix and lots and lots of bug fixes to both quakeworld and the original single player game.
Great! Old bugs fixed? (Score:2)
Anyone know if that annoying bug in GLQuake has been fixed, where whenever something happens to your status bar, the numbers quickly flip back and forth between the old value and the new value? Is it just me? That bug pretty much stopped me from playing GLQuake any more. Anyone else know what I'm talking about?
Re:Never impossible (Score:1)
Jules
Re:Never impossible (Score:3)
If a client is ever discovered to be cheating, it's key is revoked. The downside of this is that if one person manages to hack a client to cheat, everybody must get a new binary, otherwise they will not be able to play once the old key is revoked. So, though not bullet proof, hacked binaries are considered in the plan.
WOW! (Score:1)
EXCELLENT NEWS!
(PS: Shameless plug for Ground Control, yes, but it's _THE_ game to come out this summer ... )
cryptographic cheat prevention (Score:1)
Off Topic: I put more than one dot on the above line and I get "ascii art, how attractive, not here" WTF?! and we're bitching about Microsoft asking us to censor people. Please.
What's the fun? (Score:1)
Re:Please: Stop the Bitchslapping (Score:2)
Re:Just wondered (Score:1)
So a beefed up QuakeWorld CTF something would be great! I hadn't looked into neither QuakeForge nor QuakeWorld Forever until I saw this news ...
(I have however discussed how to prevent cheating via cryptography in sci.crypt, but that's beside the point :)
Re:Please: Stop the Bitchslapping (Score:2)
Please: Stop the Bitchslapping (Score:3)
OnTopic: If Quake 1 is now free software / open source, can it just be compiled for Win32, or does not still need the CD? I'd love to play it ( now that I have a machine capible of doing so) but am not much of a hacker - more of a good all around geek, but not a programmer really. How do I get the source, and how do I compile it? I'd like directions for both Win32, and Linux (Slackware 7.0).
Hey Rob, Thanks for that tarball!
Ducking is for WIMPS! (Score:1)
DM3 == perfection.
Ant-cheat tech (Score:2)
Anyone have any technical details of the anti-cheat technology? I dug through the link and couldn't find anything (the link that promised "more details" didn't deliver).
--
Re:Please: Stop the Bitchslapping (Score:2)
Hey Rob, Thanks for that tarball!
Re:Ducking is for WIMPS! (Score:1)
Just wondered (Score:1)
Re:GPL (Score:1)
Last I heard, Carmack had a gentle go at them. I don't know how it resolved in the end. Best to draw a veil, IMO, and concentrate attention on the really cool stuff coming out of quakefore, qwf, QER (here [planetquake.com]) etc.
Jules
Re:Please: Stop the Bitchslapping (Score:1)
Hey Rob, Thanks for that tarball!
Re:Please: Stop the Bitchslapping (Score:2)
Where to get stuff (Score:2)
As for CDs:
No, you don't need a CD. However, you will need the shareware PAK file until openquartz ( on sourceforge [sourceforge.net]) finishes its planned complete replacement. No, there's not much going on on the website, but the mailing list is active.
Jules
Re:Great! Old bugs fixed? (Score:1)
That will fix it. It occurs on newer GL drivers that support triple buffer. GLQuake was only written during double buffering days, it only draw the status bar twice (leaving an old image in the third buffer).
/// Zoid.
Re:Ant-cheat tech (Score:3)
QF will have Tomb Raider and Quake2 data support (Score:1)
- Mongoose
http://www.quakeforge.net
Need to make our own game data (Score:1)
The project is probably a bigger undertaking than QuakeForge itself, and really needs more talented people so it can really take off.
Re:Ducking is for WIMPS! (Score:1)
Transactions? Who said anything about transactions? What was the last time that you saw a scientist, say, doing a presentation, and he/she needed to RENDER something during his/her presentation? "But what about calculating the results of hypothetically an asteroid impact?" you might say. Yes, the processing power you need, but not necessarily the displaying power. Displaying is usually a very slow process compared to calculating, so for real-time 3D games, hardware is based upon the games' requirements.
Re:Ducking is for WIMPS! (Score:2)
Eyecandy isnt important while you're analysing your data.
You plot the graphs later
Re:Trollin for gay rights (Score:1)
Re:Never impossible (Score:2)
Oddly, reading through the description [qwforever.com] of the Encryption it seems that the plan is to use Twofish rather than a public key method. This may just be development lag (that URL points to beta code, I believe). There are good reasons for using assymetric rather than symmetric cryptography; I won't go into them here, however, since they're a little off-topic. Interested parties can mail me if they want to discuss the issues in more depth.
Ray Jones
Re:Ant-cheat tech (Score:1)
taniwha - QF developer (as is theoddone33)