System for randomly and dynamically checking configuration integrity of a gaming system
Abstract
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 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. 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.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A host server comprising:
one or more processors; memory storing (a) an algorithm database that includes a plurality of different security algorithms, and (b) an expected software profile for each of a plurality of computing devices; and a network interface configured to communicate with the plurality of computing devices; wherein the one or more processors are configured to perform an integrity check of at least one of the computing devices by:
(a) selecting at least a portion of the stored expected software profile of the at least one computing device;
(b) selecting one or more of the security algorithms from the algorithm database;
(c) generating a security code based on (i) the selected portion of the stored expected software profile of the at least one computing device, and (ii) the one or more selected security algorithms;
(d) transmitting the generated security code to the at least one computing device via the network interface, the generated security code configured to (i) run on the at least one computing device and (ii) return one or more first results to the host server;
(e) receiving the one or more first results of the generated code from the at least one computing device;
(f) running the generated security code on the stored expected software profile of the at least one computing device, the generated security code configured to return one or more second results;
(g) comparing the one or more first results to the one or more second results; and
(h) indicating the at least one computing device as (i) uncompromised or (ii) compromised based on the comparison.
2 . The host server of claim 1 , wherein each stored expected software profile is a portion of the software expected to be stored on one of the plurality of computing devices; and
wherein the one or more processors are configured to perform the integrity check of the at least one computing device by: indicating the at least one computing device as uncompromised when the one or more first results match the one or more second results.
3 . The host server of claim 1 , wherein the one or more processors are configured to perform the integrity check of the at least one computing device by:
counting a time upon transmitting the generated security code to the at least one computing device via the network interface; comparing the counted time to a predetermined time; and indicating the at least one computing device as compromised when (i) the counted time exceeds the predetermined time, and (ii) the one or more first results have not been received at the host server.
4 . The host server of claim 1 , wherein the generated security code is configured to automatically self-delete from the at least one computing device after returning the one or more first results to the host server.
5 . The host server of claim 1 , wherein the one or more processors are configured to:
associate a first counted time with a first computing device of the plurality of computing devices; associate a second counted time with a second computing device of the plurality of computing devices; compare the first counted time with a minimum time limit and a maximum time limit; compare the second counted time with the minimum time limit and the maximum time limit; perform the integrity check of the first computing device when the first counted time is between the minimum time limit and the maximum time limit; and perform the integrity check of the second computing device when the second counted time is between the minimum time limit and the maximum time limit.
6 . The host server of claim 1 , wherein the one or more processors are configured to perform the integrity check of the least one computing device by:
selecting the one or more security algorithms from the algorithm database based on the selected portion of the stored expected software profile of the at least one computing device.
7 . The host server of claim 1 , wherein the generated security code includes:
a plurality of pairings, each pairing including: a selector that identifies some code of the selected portion of the stored expected software profile of the at least one computing device; and an actor that performs an action on the identified code.
8 . The host server of claim 7 , wherein the plurality of pairings include: (a) a first pairing with a first selector and a first actor, and (b) a second pairing with a second selector and a second actor;
wherein the first actor performs a first hash action and the second actor performs a second hash action; and wherein the generated security code is configured to (i) run the first pairing before the second pairing and (ii) combine the first hash produced by the first actor with the second hash produced by the second actor.
9 . The host server of claim 7 , wherein some of the actors of the plurality of pairings perform a list action and some of the actors of the plurality of pairings perform a hash action.
10 . The host server of claim 9 , wherein the generated security code is configured to:
build a list table including a result of each list action; combine the result of each hash action into a single value; append the single value to the built list table; and return the appended single value and the built list table to the host server as the one or more first results.
11 . A networked system including the host server of claim 1 and the plurality of computing devices, wherein each of the plurality of computing devices includes memory storing first data and second data; and
wherein each of the plurality of computing devices are configured to: enable read access of the generated security code to the first data and block read access of the generated security code to the second data.
12 . A method of operating a host server including: one or more processors; memory storing (a) an algorithm database that includes a plurality of different security algorithms and (b) an expected software profile for each of a plurality of computing devices; and a network interface for communicating with the plurality of computing devices;
the method comprising, via the one or more processors, performing an integrity check of at least one of the computing devices by:
(a) selecting at least a portion of the stored expected software profile of the at least one computing device;
(b) selecting one or more of the security algorithms from the algorithm database;
(c) generating a security code based on (i) the selected portion of the stored expected software profile of the at least one computing device, and (ii) the one or more selected security algorithms;
(d) transmitting the generated security code to the at least one computing device via the network interface, the generated security code configured to (i) run on the at least one computing device and (ii) return one or more first results to the host server;
(e) receiving the one or more first results of the generated code from the at least one computing device;
(f) running the generated security code on the stored expected software profile of the at least one computing device, the generated security code configured to return one or more second results;
(g) comparing the one or more first results to the one or more second results; and
(h) indicating the at least one computing device as (i) uncompromised or (ii) compromised based on the comparison.
13 . The method of claim 12 , wherein each stored expected software profile is a portion of the software expected to be stored on one of the plurality of computing devices, and the method includes:
counting a time upon transmitting the generated security code to the at least one computing device via the network interface; comparing the counted time to a predetermined time; indicating the at least one computing device as compromised when (i) the counted time exceeds the predetermined time, and (ii) the one or more first results have not been received at the host server; indicating the at least one computing device as uncompromised when the one or more first results match the one or more second results.
14 . The method of claim 12 , wherein the generated security code is configured to automatically self-delete from the at least one computing device after returning the one or more first results to the host server.
15 . The method of claim 12 , including:
associating a first counted time with a first computing device of the plurality of computing devices; associating a second counted time with a second computing device of the plurality of computing devices; comparing the first counted time with a minimum time limit and a maximum time limit; comparing the second counted time with the minimum time limit and the maximum time limit; performing the integrity check of the first computing device when the first counted time is between the minimum time limit and the maximum time limit; and performing the integrity check of the second computing device when the second counted time is between the minimum time limit and the maximum time limit.
16 . The method of claim 12 , including:
selecting the one or more security algorithms from the algorithm database based on the selected portion of the stored expected software profile of the at least one computing device.
17 . The method of claim 12 , wherein the generated security code includes:
a plurality of pairings, each pairing including: a selector that identifies some code of the selected portion of the stored expected software profile of the at least one computing device; and an actor that performs an action on the identified code.
18 . The method of claim 17 , wherein the plurality of pairings include: (a) a first pairing with a first selector and a first actor, and (b) a second pairing with a second selector and a second actor;
wherein the first actor performs a first hash action and the second actor performs a second hash action; and wherein the generated security code is configured to (i) run the first pairing before the second pairing and (ii) combine the first hash produced by the first actor with the second hash produced by the second actor.
19 . The method of claim 17 , wherein some of the actors of the plurality of pairings perform a list action and some of the actors of the plurality of pairings perform a hash action.
20 . The method of claim 19 , wherein the generated security code is configured to:
build a list table including a result of each list action; combine the result of each hash action into a single value; append the single value to the built list table; and return the appended single value and the built list table to the host server as the one or more first results.Join the waitlist — get patent alerts
Track US2016300439A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.