Online gaming has become a multibillion-dollar industry. The security and dependability of such games are critical for both the game providers and honest game players alike. Essential to all such applications is the use of random numbers; for example, random numbers are needed to shuffle cards. For obvious reasons, if the hands can be predicated, players could gain unfair advantages. The nature of this type of applications poses great challenges in increasing their availability while preserving their integrity (Arkin, Hill, Marks, Scjmod, & Walls, 1999; Viega & McGraw, 2002; Young & Yung, 2004). Byzantine fault tolerance (BFT; Castro & Liskov, 2002) is a well-known technique to tolerate various malicious attacks to online systems and it often involves state machine replication (Schneider, 1990). However, state machine replication assumes that all replicas are deterministic, which is not the case for online gaming applications. In this article, we elaborate how we address this dilemma using an online poker application that uses a pseudorandom number generator (PRNG) to shuffle the cards as an illustrating example. We propose two alternative strategies to cope with the intrinsic application nondeterminism. One depends on a Byzantine consensus algorithm and the other depends on a practical threshold signature scheme. Furthermore, we thoroughly discuss the strength and weaknesses of these two schemes.
Toward Secure And Dependable Online Gaming Applications
In this section, we describe two possible strategies for building secure and dependable online gaming applications. One depends on a Byzantine consensus algorithm and the other depends on a practical threshold signature algorithm. These two algorithms are aimed at ensuring that all replicas use the same value to seed their PRNGs, with each replica taking entropy from its respective entropy source.
Key Terms in this Chapter
Dependable System: A dependable system is one that is trustworthy to its users. It requires that the system be highly available (to legitimate users) while ensuring a high degree of service integrity.
Digital Signature: A digital signature aims to serve the same purposes as a real-world signature. A sound digital signature ensures that the sender of the digital signature can be authenticated, the sender cannot later repudiate that she of he has sent the signed message, and a receiver cannot forge a digital signature (without being detected).
Entropy Combination: It is the operation that combines a number of entropy shares into one. The combination is usually achieved by using the XOR operator. Entropy combination is an effective defense against adversaries that substitute a random value with a predictable one. The combined entropy is often of higher quality than each individual share.
Entropy: Entropy is a metric used to evaluate and describe the amount of randomness associated with a random variable.
Entropy Extraction: This is the operation that extracts entropy from a random variable (referred to as the entropy source). Entropy can be extracted using both software- and hardware-based methods.
Threshold Digital Signature: In the ( k , n ) threshold digital signature scheme, a private key is divided into n shares, each owned by a player. A valid threshold digital signature can be produced if k players combine their shares. However, no valid signature can be generated by fewer than k players. Each player uses its private key share to generate a partial signature on a message, and these partial signatures can be combined into a threshold signature on the message. The threshold signature can be verified using the public key corresponding to the divided private key.
Pseudorandom Number Generator (PRNG): A PRNG is a computer algorithm used to produce a sequence of pseudorandom numbers. It must be initialized by a seed number and can be reseeded prior to each run. The numbers produced by a PRNG are not truly random. Given the same seed, a PRNG will generate the same sequence of numbers.