Method of randomly and dynamically checking configuration integrity of a gaming system
First Claim
1. A method of ensuring the validity of a data set for use in a casino-type gaming system, said method comprising the steps of:
- (a) installing a game data set at a gaming module;
(b) providing an exact copy of at least a portion of the game data set at an oversight module;
(c) randomly and dynamically generating an integrity executable at the oversight module(d) sending the integrity executable to the gaming module;
(e) using the integrity executable, computing a first outcome from the game data set at the gaming module;
(f) after computing the first outcome, sending the first outcome to the oversight module and removing the integrity executable from the gaming module;
(g) using the integrity executable, computing a second outcome from the game data set at the oversight module;
(g) comparing the first and second outcomes to determine whether the first and second outcomes match;
(h) if the first and second outcomes match, indicating that the game data set is authentic; and
(i) if the first and second outcomes do not match, indicating that the game data set is not authentic.
1 Assignment
0 Petitions
Accused Products
Abstract
In a gaming environment, a method of periodically downloading dynamically generated executable modules at random intervals that perform system configuration integrity checks in a secure and verifiable manner is disclosed. The dynamically generated executable modules are created on a server machine and are themselves signed using industry standard PKI techniques, and contain randomly chosen subset from a repertoire of proven hashing and encryption algorithms that are executed on the system to be checked to create a unique signature of the state of that system. The dynamically generated executable module returns the signature to the server machine from which it was downloaded and deletes itself from the system being checked. The next time such an executable module is downloaded, it will contain a different randomly chosen subset of hashing and encryption algorithms. The server that is performing the system configuration integrity check maintains a database of expected system configurations and performs the same subset of hashing and encryption algorithms as contained in the dynamically generated executable module. The result returned by the downloaded executable module is compared to that computed locally, and an error condition is raised if they do not match.
-
Citations
36 Claims
-
1. A method of ensuring the validity of a data set for use in a casino-type gaming system, said method comprising the steps of:
-
(a) installing a game data set at a gaming module; (b) providing an exact copy of at least a portion of the game data set at an oversight module; (c) randomly and dynamically generating an integrity executable at the oversight module (d) sending the integrity executable to the gaming module; (e) using the integrity executable, computing a first outcome from the game data set at the gaming module; (f) after computing the first outcome, sending the first outcome to the oversight module and removing the integrity executable from the gaming module; (g) using the integrity executable, computing a second outcome from the game data set at the oversight module; (g) comparing the first and second outcomes to determine whether the first and second outcomes match; (h) if the first and second outcomes match, indicating that the game data set is authentic; and (i) if the first and second outcomes do not match, indicating that the game data set is not authentic. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of performing a system configuration integrity check, comprising:
-
in a host, maintaining a database of expected system configurations of one or more remote systems; in the host, randomly and dynamically generating an executable module containing an algorithm that is configured to generate a unique signature of the state of a particular remote system; sending the executable module to the particular remote system in the particular remote system, executing the executable module so as to generate a unique signature of the state of the actual system configuration of the particular remote system; returning the unique signature to the host and deleting the executable module from the particular remote system; in the host, generating a unique signature of the state of the expected system configuration associated with the particular remote system maintained on the database using the same algorithm contained in the executable module; and in the host, comparing the unique signature returned from the particular remote system with the unique signature generated locally at the host, and generating an error condition if the unique signatures do not match.
-
-
9. A server side method of checking the integrity of a client device, comprising:
-
randomly and dynamically generating an executable for checking the integrity of a client device, the executable containing one or more algorithms to be performed on at least a portion of a particular system configuration of a particular client device; communicating with a client device; sending the executable to one or more particular client devices having the particular system configuration; looking for a reply from the one or more client devices in response to performing the executable, the reply including the outcome of the executable; if a reply is received, determining whether the client device is a trusted device based on the outcome; if a reply not received within a preset amount of time, indicating that the device is no longer trusted; and sending a trust response to the client, the trust response indicating whether the client is trusted or not trusted. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A client side method of checking the integrity of a client, comprising:
-
providing a system configuration; randomly receiving a dynamic executable from a server; verifying the authenticity of the dynamic executable; temporarily storing the dynamic executable; and running the dynamic executable on at least a portion of the system configuration to obtain an outcome, the outcome being used to determine if the client is a trusted device. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A method for randomly and dynamically generating an executable associated with testing the integrity of a remote client device associated with gaming, said method comprising:
-
randomly generating a request to check a particular remote client device; consulting a system configuration database containing an expected system configuration for the particular remote client device; randomly selecting data to be checked from the expected system configuration of the particular remote client device; consulting an algorithm database containing a plurality of hashing and verification algorithms to be performed on the select data; randomly selecting one or more algorithms to be performed on the select data; and compiling algorithms into an executable.
-
-
24. A gaming system, comprising:
an oversight module configured to randomly monitor the integrity of one or more gaming modules operatively coupled to the oversight module to ensure that the gaming modules have not been compromised, the oversight module randomly performing audits of at least the gaming code stored on the gaming modules, the audits indicating whether the gaming code has been changed or altered from a known configuration. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
Specification