2004 Web and Downloadable Games White Paper
IGDA Online Games SIG
ideal solution is one that maintains the greatest level of accessibility for legitimate game play while
identifying, responding to, and learning about the greatest number of attacks.
The trade off becomes even more acute when discussing networked games. In designing a
secure gaming system for skill based competitions on iWin.com, Flipside's engineering team
deployed three distinct countermeasures: a solid encryption scheme, a protocol for verifying
game clients, and a control response loop.
To secure the network pipe and prevent a man in the middle attack, Flipside integrated a
symmetric encryption component for all client server communication. Utilizing this algorithm
independent component achieved their goals both in terms of accessibility (the speed of
encryption and decryption) and security (symmetric encryption is a well tested method and a
standard of conventional cryptography). This was a seemingly ideal scenario. Unfortunately, the
work was not complete. Because symmetric encryption requires that the sender and receiver
share the same key, the crucial element in the relationship is the secure delivery of that key. To
accomplish this, Flipside designed a proprietary Public Key Infrastructure (PKI) handshake to
deliver a (reasonably) randomly produced, single use symmetric key. The combination of both
technologies provided the best of both worlds: the security of PKI and the efficacy of symmetric
encryption.
However, the team quickly realized that the most secure encryption scheme was worthless if not
combined with a plan to verify and secure the game clients themselves. The ready availability and
ease of use of decompilers led the company to believe that the most secure way to mitigate
attacks on the game clients was to utilize a Zero Knowledge Protocol, or ZKP. By relegating the
client to display layer code only, ZKPs allow a developer to protect the game and scoring logic
within a server side component to be delivered dynamically at run time. While using ZKP served
the security goal well, the latency inevitably introduced by such high network traffic made fluid
game play impossible for all users but those with the fastest connections. In this case, the security
system (ZKP) mitigated certain types of attacks very well, but at the cost of the operation of the
games. The solution was to go with a hybrid approach: allow inclusion of scoring logic into the
clients to streamline game play, and replicate it with a server side component that could verify
scoring behavior versus its own version of the logic. Additionally, Flipside employed a method
referred to as the bouncing pebble theory (unrelated to Oxford's pebble theory). This entailed
taking an outwardly meaningless stream of game data, such as an event related to a pebble
bouncing on the side of the road in a racing game, and verifying it along with the scoring events.
We found that the inclusion of this red herring was often overlooked by reverse engineers.
Finally, the most effective security solution is one that is ongoing, a perpetual work in progress.
Actively identifying and testing different types of attacks and corresponding new countermeasures
will generally provide more security than a sedentary system. At the same time, all new
countermeasures need to meet the same criteria: mitigate risks (hacks) against the asset (your
game) without creating additional holes, and maintaining access for the approved users (players).
No security system is perfect, but one that recognizes its shortcomings and balances the trade
offs outlined above will go a long way in achieving the ultimate goal: the confidence of your
players.
1.
Types of Attacks
From a technology perspective, it is useful to divide attacks on online games into three major categories:
hacking, cheating and griefing. These distinctions serve to allow us to separate traditional computer
security countermeasures from those that are unique to online games.
Unfortunately, the number of specific attacks is virtually limitless. Also unfortunately, many stem from
sloppy development and business practices. Buffer overflows and out of range errors are the product of
poor programming. The traditional software development community has this problem and has not
addressed it for the past thirty plus years and the game development community is no better or worse.
Page 72 of 93
Unlimited Web Hosting
|
|
|
|
TotalRoute.net Business web hosting division of Vision Web Hosting Inc. All rights reserved. |