Defining new rules for validation of network devices
Summary by NHIP
Network Device Validation System
The system maintains player history to categorize users into trustworthy or cheating lists based on stored game play data. It sends queries to game devices like consoles or laptops and updates these lists if valid responses arrive within a predetermined time, subsequently adjusting monitoring timing for future game play data.
Claim Score by NHIP
Abstract
A system and method for actively validating a network device is provided. Nodes in a network game community are prompted to engage in interrogation and response to facilitate the identification of nodes operating with hacked, modified and non-typical game configurations. In one embodiment, a query is presented to a user's machine which triggers a response, and where the response indicates whether certain data at the user is valid and wherein invalid data is suggestive of illegal community behavior. Functions are triggered and data is queried to determine whether the state of game environment is operating according to known metrics or constraints.

Term
Term ended
Expired 20 March 2026, 0.5 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
15 claims: 1 independent, 14 dependent
- 1Broadest claimClaim Score 39, average(NHIP)A method for validating devices in a gaming network, the method comprising:maintaining in memory game play history for each of a plurality of game players in the gaming network, wherein each game player is assigned to a list of trustworthy game players or a list of cheating game players based on the stored game play history of the game player;sending one or more queries to one of the game players over a communication network, wherein each query is directed at gathering data regarding a game device associated with the game player;and executing instructions stored in memory, wherein execution of the instructions by a processor: updates the list of trustworthy game players or the list of cheating game players based on whether a valid query response has been received from the game player within the predetermined period of time, and adjusts timing of monitoring by a monitoring module of subsequent game play data from the game player, the adjustment based on whether the game player appears on the list of trustworthy game players or the list of cheating game players.
97 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application is a continuation and claims the priority benefit of U.S. patent application Ser. No. 13/252,150 filed Oct. 3, 2011, now U.S. Pat. No. 8,626,710, which is a continuation and claims the priority benefit of U.S. patent application Ser. No. 12/352,590 filed Jan. 12, 2009, now U.S. Pat. No. 8,032,502, which is a continuation and claims the priority benefit of U.S. patent application Ser. No. 11/386,039 filed Mar. 20, 2006, now U.S. Pat. No. 7,480,656. The disclosures of the aforementioned applications are incorporated herein by reference.
The present application is related to U.S. patent application Ser. No. 11/415,881 filed May 1, 2006, U.S. patent application Ser. No. 11/449,141 filed Jun. 7, 2006, and U.S. patent application Ser. No. 11/725,175 filed Mar. 16, 2007.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates, generally, to network gaming and more particularly to systems and methods for validating game users and devices in a network community of game players.
2. Description of the Related Art
Conventionally, users of electronic games compete with one another by selecting a two-player option associated with a particular electronic game via a single home gaming console. Accordingly, two players can play at the same time or one-at-a-time in order to compete for points or other awards associated with the particular electronic game.
As electronic game consoles have become more popular and network technologies have become more pervasive, more options for head-to-head competition are provided. Some electronic game consoles are equipped with modems or other network connectors for allowing users to communicate over a network through the exchange of data related to the game. By communicating over a network, users can connect to various other users' gaming consoles either directly or via intermediate computing nodes (e.g., a central server or other game consoles in a network) and compete against those various other users while playing a network game.
Disadvantageously, some users manipulate the network game in order to gain unfair advantages while competing with other users playing the same network game. For example, a user may slow or delay the rate at which the user's data is sent to other users so that the various other users do not receive the user's data in time to react appropriately.
Unscrupulous users may employ an external hardware device that manipulates the generation of or access to certain game data whereby a game character may be endowed with special powers or abilities or attributes (e.g., lives, ammunition, and weapons) not genuinely earned during game play. Similarly, a game character may become impervious (e.g., invisible) to attacks by other game players.
Certain software methodologies exist (either alone or in conjunction with the aforementioned hardware devices) wherein code is temporarily or permanently installed and/or modified in a gaming device allowing for similar advantages. Various other means and methods are known and employed by users in order to cheat or gain an unfair advantage during the course of networked ‘community’ game-play.
Cheating decreases user enjoyment of participating in a networked community game environment. For example, a particular user playing a network game without any illicit outside aides (e.g., cheat codes, hacks and so forth) is at a distinct disadvantage versus a user who is making use of such illicit aides. The user who is not cheating may be overpowered, outgunned, or otherwise inferior in some respect to a user who is cheating regardless of the individual skills of those users. If the user who does not cheat is continually defeated by a user who does cheat—and often in quick and decisive fashion—the non-cheating user may lose interest in a particular game, a particular game network, or a particular product or service provider.
This loss of interest adversely affects game developers and network service providers who will sell less game titles or find fewer users utilizing their network game services, respectively. As such, there is an inherent interest for game developers, service providers and honest game users to identify and eliminate cheating in a network or community game environment.
SUMMARY OF THE PRESENTLY CLAIMED INVENTION
The present invention provides a system and method for actively validating network game users with respect to engaging in unfair or illicit game play (i.e., cheating).
According to one embodiment of the present invention, at least one query is sent to one or more users to determine whether unfair, illicit or otherwise disingenuous game play has occurred or is in progress as reflected by certain data residing at the user's gaming device. A response to the at least one query is received whereby it is determined whether the one or more users are valid users (i.e., not cheating). The response to the at least one query is indicative of the nature of game play in progress (i.e., whether the at least one user is engaged in unfair game play activity).
Additional embodiments of the present invention advantageously allow for identification of hacking or modification of game data stores or game console hardware.
Other embodiments of the present invention allow for active validation of network game users through a server query, a peer query, a peer-group query or a combination thereof.
Still further embodiments of the present invention utilize a query that tests user integrity, such as confirming the location of functions in memory, memory hashing, profiling of threads operating on a user game console or combinations thereof.
BRIEF DESCRIPTION OF THE DRAWINGS
<figref idref="DRAWINGS">FIG. 1</figref> illustrates a schematic diagram of an exemplary architecture for validating network users according to some embodiments of the present invention;
<figref idref="DRAWINGS">FIG. 2</figref> illustrates a block diagram of an exemplary electronic entertainment system according to some embodiments of the present invention;
<figref idref="DRAWINGS">FIG. 3</figref> illustrates an exemplary server or sending node according to some embodiments of the present invention;
<figref idref="DRAWINGS">FIG. 4</figref> illustrates a flow diagram of an exemplary process for identifying illegal network game activity according to some embodiments of the present invention; and
<figref idref="DRAWINGS">FIG. 5</figref> illustrates a flow diagram of an exemplary process for actively validating network game users according to some embodiments of the present invention.
DETAILED DESCRIPTION
<figref idref="DRAWINGS">FIG. 1</figref> illustrates a schematic diagram of an exemplary architecture for validating network game users according to some embodiments of the present invention. One or more clients <b>102</b> include one or more network games <b>104</b>. Network game <b>104</b> may be built-in (e.g., pre-loaded) to the client <b>102</b> or be introduced through an optical disk or other data storage medium. Network game <b>104</b> may also be obtained over a network as further discussed herein. The client <b>102</b> is connected to a server <b>108</b> via a communications network <b>106</b>.
The client may comprise <b>102</b> a game console such as a PlayStation® 3, a laptop computing device, a portable game device such as the PlayStation® Portable, a desktop computing device, a cellular telephone, or any other device capable of executing the network game <b>104</b> and connecting to the network <b>106</b>. In some embodiments, the client <b>102</b> is identified by an identification number such as a client ID or an address mechanism such as an IP address. In other embodiments, a user of the client <b>102</b> may ‘sign on’ to a network with a user name and/or password and may be temporarily associated with the client <b>102</b>.
In some embodiments of the present invention, the server <b>108</b> includes the network game <b>104</b> and the clients <b>102</b> access the network game <b>104</b> on the server <b>108</b> via the network <b>106</b>. The network game <b>104</b> on the server <b>108</b> may be the entire game, a portion of the game, data related to the game or simply a node allowing for the pass though, observation and/or collection of data related to the game as the game is played by users in the game community. The network game <b>104</b> may be similarly organized at various clients <b>102</b> (e.g., portions of the game or game data related to the game). Network game <b>104</b> may also be provided through, for example, a third-party content library server. In such an embodiment, the library server may or may not be a participating member of the validation architecture.
It should be understood that the reference to a client <b>102</b> and a server <b>108</b> is merely for the convenience of understanding the present invention. Embodiments of the present invention may be implemented in the context of a peer-to-peer network, a client-server network, or within a peer-group (e.g., a specified group of peers). Therefore, in some instances, a client <b>104</b> may function as a server <b>108</b> and vice versa depending on the timing and the nature of a data exchange. For example, various clients in a peer-to-peer network may each comprise a portion of a network game <b>104</b> or data related to that game and may send and receive the same. As such, any reference to a client <b>104</b> or a server <b>108</b> is meant to be inclusive of operations performed by one or both entities unless specified otherwise by a particular limitation in the claims. In some instances, a device with client/server functionality may be referred to by the generic moniker, ‘network node’ or ‘computing node.’ In that regard, client <b>102</b> and server <b>108</b> may both be considered network or computing nodes.
The network game <b>104</b> comprises any software that may be processed on or by the client <b>102</b> and that allows for communication and data exchanges with the other clients <b>102</b> and server <b>108</b> via the network <b>106</b>. The network <b>106</b> may include, for example, the Internet. Other proprietary or closed networks may be used either exclusively or in conjunction with the Internet. Certain security protocols (e.g., SSL or VPN) or encryption methodologies may be used to ensure the security of data exchanges over network <b>106</b>, especially if the network <b>106</b> is a publicly accessible network such as the Internet.
Users associated with each of the clients <b>102</b> can interact with other users playing the network game <b>104</b>. Accordingly, the users at each of the clients <b>102</b> can compete with one another despite not being physically present with one another or sharing a common gaming device or console.
In one exemplary embodiment, the server <b>108</b> monitors the users playing the network game <b>104</b> via the network <b>106</b>. The clients <b>102</b> can request data from the server <b>108</b>, such as information pertinent to the particular network game <b>104</b> being played, bug patches, and so forth. Any type of communication exchange between the clients <b>102</b> and the server <b>108</b> is within the scope of the various embodiments. Further, in some embodiments of the present invention, more than one server <b>108</b> may be connected to the network <b>106</b> for the purpose of communicating with the clients <b>102</b>. For example, back-up or redundancy servers as well as servers with particular tasks such as storing identification information or preferences related to a particular user as well as servers tasked with certain DRM, advertising, or payment responsibilities.
In other embodiments of the present invention, the clients <b>102</b> monitor the network games <b>104</b> being played by the other clients <b>102</b> (e.g., as individual nodes in a peer-to-peer network or peer-group network). The clients <b>102</b> can communicate data generated during the monitoring process to the server <b>108</b> or the clients <b>102</b> can store and process the data, themselves. For example, in a peer-to-peer network scenario, each of the nodes in the network can monitor other nodes in the network for certain illicit behaviors.
The validation process implemented by the server <b>108</b>, clients <b>102</b>, and/or any one of a variety of nodes in the network detects cheating or unusual activity with respect to the network game <b>104</b>. For example, a game character may accrue more points than allowed or normally allotted, the game character may possess stronger powers than the network game <b>104</b> generally provides, and so forth. Any type of unusual behavior or activity may be detected via the monitoring process discussed herein (e.g., passive validation), as result of random queries (e.g., active validation) or a combination of the two (e.g., hybrid validation).
Referring now to <figref idref="DRAWINGS">FIG. 2</figref>, a block diagram of one embodiment of an exemplary electronic entertainment system <b>200</b>, such as may constitute client <b>102</b> and for playing the network game <b>104</b> in accordance with one embodiment of the invention is shown. The system <b>200</b> may comprise, but is not limited to, a main memory <b>202</b>, a central processing unit (CPU) <b>206</b>, vector processing units VU0 <b>204</b> and VU1 <b>208</b>, a graphics processing unit (GPU) <b>210</b>, all of which may be coupled via a bus <b>236</b> to an input/output processor (IOP) <b>212</b>. The system <b>200</b> may also comprise an IOP memory <b>214</b>, a controller interface <b>216</b>, a memory card <b>218</b>, a Universal Serial Bus (USB) interface <b>220</b>, and an IEEE 1394 interface <b>222</b>. The system <b>200</b> may further include an operating system read-only memory (OS ROM) <b>224</b>, a sound processing unit (SPU) <b>226</b>, an optical disc control unit <b>228</b>, and a hard disc drive (HDD) <b>230</b>, all of which may be connected via a bus <b>238</b> to IOP <b>212</b>.
Some embodiments of the system <b>200</b> may also include a network adaptor <b>240</b>, which may offer an Ethernet connection <b>242</b> and/or telephony connection <b>244</b>. The system <b>200</b> is, in one embodiment, an electronic gaming console; however, the system <b>200</b> (or portions thereof) may also be implemented as a general-purpose computer, a set-top box, a hand-held gaming device, or in a mobile device such as a cellular phone. It should further be noted that various other system architectures may be utilized within the scope of the present invention. For example, the computer architecture and high speed processing model disclosed in U.S. patent publication number 2002-0138637 for a “Computer Architecture and Software Cells for Broadband Networks,” the disclosure of which is incorporated herein by reference.
The CPU <b>206</b>, the VU0 <b>204</b>, the VU1 <b>208</b>, the GPU <b>210</b>, and the IOP <b>212</b> communicate via a system bus <b>236</b>. The CPU <b>206</b> communicates with the main memory <b>202</b> via a dedicated bus <b>234</b>. The VU1 <b>208</b> and the GPU <b>210</b> may also communicate with one another via a dedicated bus <b>232</b>. The CPU <b>206</b> executes programs stored in the OS ROM <b>224</b> and the main memory <b>202</b>. The main memory <b>202</b> may contain pre-stored programs and may also contain programs transferred via the IOP <b>212</b> from a CD-ROM, DVD-ROM, or other optical disc (not shown) using the optical disc control unit <b>228</b>. The IOP <b>212</b> controls data exchanges between the CPU <b>206</b>, the VU0 <b>204</b>, the VU1 <b>208</b>, the GPU <b>210</b> and other devices of the system <b>200</b>, such as the controller interface <b>216</b>, or from other such systems via the network adaptor <b>240</b>.
The GPU <b>210</b> executes drawing instructions from the CPU <b>206</b> and the VU0 <b>204</b> to produce images for display on a display device (not shown). The VU1 <b>208</b> transforms objects from three-dimensional coordinates to two-dimensional coordinates, and sends the two-dimensional coordinates to the GPU <b>210</b>. The SPU <b>226</b> executes instructions and processes data to produce sound signals that are output on an audio device (not shown).
A user of the system <b>200</b> provides instructions via the controller interface <b>216</b> to the CPU <b>206</b>, which may be coupled to a control device comprising a joystick, directional buttons, and/or other control buttons. For example, the user may instruct the CPU <b>206</b> to store certain game information on the memory card <b>218</b>, which may be removable (e.g., a flash memory or other non-volatile memory card), or may instruct a character in a game to perform some specified action. Other devices may be connected to the system <b>200</b> via the USB interface <b>220</b> and the IEEE 1394 interface <b>222</b>, such as an external hardware device allowing for illicit gaming behavior (i.e., cheating).
Some embodiments of the system <b>200</b> may comprise a network adaptor <b>240</b>. The network adaptor <b>240</b> provides the hardware functionality necessary for the system <b>200</b> to connect to a network. The network adaptor <b>240</b> may comprise, for example, a system connector that operates to connect the adaptor <b>240</b> to the system <b>200</b> through an expansion bus connector <b>246</b>. The network adaptor <b>240</b> may also comprise a power connector and data connector to allow for the provisioning of power from the system <b>200</b> to the adaptor <b>240</b> and the exchange of data between the system <b>200</b> and the adaptor <b>240</b>. In some embodiments of the present invention, the network adaptor <b>240</b> may also require the installation of certain software in the system <b>200</b> to allow for identification and connection to a particular IP address and/or dial-up to a particular Internet Service Provider. Software may also provide other functionalities, such as the creation and maintenance of user profiles, in addition to functional interaction between the system <b>200</b> and the network adaptor <b>240</b>.
The network adaptor <b>240</b> may also comprise an Ethernet connection <b>242</b>. Through the Ethernet connection <b>242</b>, a network cable (e.g., a 100 Base-TX or 10-Base T) may be coupled to the network adaptor <b>240</b> for connection to a network. The network cable may, for example, be communicatively coupled to a DSL or cable modem. The network cable may also be communicatively coupled to, for example, a router via a LAN port; the router may then be coupled to a DSL or cable modem through a WAN port. In further embodiments, the Ethernet connection <b>242</b> may allow for a network cable to be connected to a wireless Ethernet bridge. The wireless Ethernet bridge may be communicatively coupled to a wireless router utilizing, for example, an 802.11x protocol. The wireless router may be further communicatively coupled to a cable or DSL modem.
The network adaptor <b>240</b> may also comprise a telephony connection <b>244</b>. Through the telephony connection <b>244</b>, a standard telephone line with, for example, an RJ-11C telephone connector may be connected to the network adaptor <b>240</b> and a telephone wall jack. In this regard, the network adaptor <b>240</b> may further comprise modem functionality such that the system <b>200</b> may communicate data over the public switched telephone network via the telephony connection <b>244</b>.
Other network connection methodologies and system architectures may be implemented, like those disclosed in commonly owned U.S. patent application Ser. No. 10/059,837 for a “System and Method for Distributing Data between a Telephone Network and an Entertainment Network,” the disclosure of which is incorporated herein by reference.
<figref idref="DRAWINGS">FIG. 3</figref> shows an exemplary network node, such as the server <b>104</b> discussed in <figref idref="DRAWINGS">FIG. 1</figref>, according to some embodiments of the present invention. An optional rules generator <b>302</b> creates and/or processes rules associated with the network game <b>104</b>. The rules may include, for example, parameters for a game environment. In some embodiments, the rules include, but are not limited to, appropriate character fatigue, speed, character strength, goals, power, ammunition, temporal variables, score ranges, prerequisites for advancement, frequency, and so forth. A rule may encompass any quantifiable limitation of the game environment or a character in the game environment (e.g., a user starting a game with ten lives when the game defaults to three).
Similarly, rules may encompass any identifiable aspect of the gaming environment or the hardware and/or software related to generating that environment. For example, the overwriting or modification of certain code in main memory <b>202</b>, the presence of certain hardware devices with a particular device signature present in system <b>200</b> via USB Interface <b>220</b> or IEEE 1394 Interface <b>222</b> or the presence of certain data on a memory card <b>218</b> may be subject to a rule (e.g., prohibiting the presence of devices evidencing a particular signature). The receipt of or presence of remnants of certain instruction threads including number, location or specific characteristics in, for example, main memory <b>202</b> or IOP memory <b>214</b> may also be subject to rules validation (e.g., cheating may not immediately be occurring but the presence of prior instruction threads related to cheating indicate cheating did at one point occur). The blocking of the transmission or receipt of particular data via network adaptor <b>240</b> may also constitute the basis for a rule (e.g., prohibitions of particular data transfers indicate cheating).
Rules are inclusive and may be independently generated by the optional rules generator <b>302</b> or otherwise related to data provided to the rules generator <b>302</b> (e.g., by a game developer). Optional rules generator <b>302</b>, in this regard, may observe (e.g., through monitoring module <b>306</b>) certain game parameters and develop a rule based on its observations of a particular network game <b>104</b>. For example, the generator <b>302</b> may observe that gaining access to a particular level always requires meeting certain prerequisites. The generator <b>302</b> may develop a rule reflecting that if a user has achieved access to that particular level and has not met those prerequisites, that user is cheating. Those prerequisites may be observed by the generator <b>302</b> and/or related to information provided to the generator <b>302</b>.
A rules library <b>304</b> is provided for storing the pre-defined or generated rules. Various other data may be stored in the rules library <b>304</b> according to some embodiments of the present invention. For example, statistics about one or more users of the network game <b>104</b> may be stored in the rules library <b>304</b>, or any other storage medium or locale, according to some embodiments of the present invention. Alternative storage of statistics or other information may occur remotely from a network node but is otherwise accessible via the network <b>106</b>. In some embodiments, the rules are directly input into the rules library <b>304</b> or may have been independently or cooperatively developed by the rules generator <b>302</b>.
A monitoring module <b>306</b> may be configured to monitor user activity with the network game <b>104</b> at the client <b>102</b> via data exchanges with the server <b>104</b> via the network <b>106</b>. Any type of monitoring may be implemented by the monitoring module <b>306</b> (e.g., periodic review of data exchanges, constant review of data exchanges, review of data exchanges from particular nodes, etc.). According to one embodiment of the present invention, the monitoring module <b>306</b> utilizes rules in the rules library <b>304</b> and analysis provided by the analysis engine <b>308</b> to passively listen for or detect user activity that deviates from typical user activity associated with the network game <b>104</b>.
For example, the rules may indicate how fast a character associated with the network game <b>104</b> can move. The monitoring module <b>306</b> may observe characters in the network game <b>104</b> moving in excess of that speed and may flag one or more characters that moves faster than the rules indicate is allowed for further investigation or resolution. The monitoring module may (e.g., in hybrid validation architecture) independently activate the query engine <b>310</b> in light of this apparently illicit activity that suggests cheating and cause the query engine <b>310</b> to deliver a query to the apparently offending node to better determine whether the node is in a valid or invalid state. Such activity is referred to a hybrid validation in that validation begins passively (i.e., no active query to the offending node) but upon identification of possible illicit behavior, a query, which is generally indicative of active validation, is delivered to the offending node for a more accurate determination of valid or invalid behavior. The combination of passive (further described herein) and active validation, together, constitutes hybrid validation.
In some embodiments (e.g., in passive validation architecture), the apparently offending node may be summarily removed from the network without further investigation or data pertaining to this apparently illicit activity is logged for future use and/or analysis. Such activity is referred to as passive validation in that no proactive determination of validity is made; the determination occurs as a result of ‘listening’ to behavior at the node.
The monitoring module <b>306</b>, in some embodiments—including both passive and hybrid validation—may forward any flags or unusual activity to the analysis engine <b>308</b>. The analysis engine <b>308</b> may analyze the flagged activity to determine whether the activity is, in fact, illegal with respect to the game environment constraints of the network game <b>104</b>. In other words, the analysis engine <b>308</b> determines whether the user activity, in fact, violates the rules associated with the network game <b>104</b>.
For example, the network game user playing the network game <b>104</b> may play a nearly perfect game, such as achieving higher than usual scores. While, in many cases, this may be indicative of cheating, the user may simply be an above-average player. Data stored at the analysis engine <b>308</b>, the rules library <b>304</b> or in another data storage locale or means (e.g., an ongoing record of particular game player activity and indicating an ongoing increase in quality of play over several sessions) may be utilized to make a determination whether this player is per se cheating or if further investigation via a query from query engine <b>310</b> is appropriate.
Analysis engine <b>308</b> may also determine that while a user of a network game <b>104</b> presently has a particular advantage, this advantage may be one actually granted by the developer of the network game <b>104</b>. For example, the game developer may have implanted an ‘Easter Egg’ or other ‘hidden’ functionality or bonus in the game environment such as temporary invincibility or excess speed. Certain bonus codes may also be recognized by the network game <b>104</b> and allow for game character or game environment enhancements. The analysis engine <b>308</b>, through a query to the rules library <b>304</b>, may determine that this particular behavior—while in any other context of the game would constitute cheating—is, in fact, permitted since the user has uncovered the Easter Egg or otherwise input an authorized code providing for such enhanced ability. The analysis engine <b>308</b> may also determine whether such enhanced functionalities have been disabled with regard to a particular network game environment and whether that activity, in light of that condition having been presently disabled, therein constitutes cheating.
The analysis engine <b>308</b> and/or the monitoring module <b>306</b>, depending upon a particular embodiment, may then instruct the query engine <b>310</b> to send one or more queries to the user's game device (system <b>200</b>) in order to gather data that helps the analysis engine <b>308</b> determine whether the user activity qualifies as cheating. The query engine <b>310</b> may send predetermined queries for the particular network game <b>104</b> or the query engine <b>310</b> may generate specific queries for the network game <b>104</b> based on the user activity that is flagged by the monitoring module <b>306</b>.
For example, if the flagged behavior is one that is usually coupled with a particular cheat device (e.g., an external hardware mechanism), the query engine <b>310</b> may send a query to the client <b>102</b> seeking processor threads related to that device or seek a hash of memory that is traditionally modified by that device.
The query engine <b>310</b> generates and sends queries to the client <b>102</b> on which the network game <b>104</b> is being played or that is otherwise connected to the server <b>108</b> to play the network game <b>104</b>. Based on a the response to the query, analysis engine <b>308</b> determines whether a client <b>102</b> or other network node is presently, has been or is otherwise configured to engage in illegal behavior (i.e., cheating).
Queries generated by the query engine <b>310</b> are, in one exemplary embodiment, asynchronous in that they may be generated and delivered at any time. Other embodiments of the present invention, however, may utilize a particular schedule or time-table for the delivery of queries in order to, for example, optimize consumption of bandwidth. Accordingly, a query may only be generated when bandwidth consumption relative to a particular network game <b>104</b> is at an ebb versus during a high computational, high data exchange point of game play. Similarly, queries may be scheduled subject to the number of nodes present in a network; upon entry of new nodes to the network; or upon any other schedule as may be implemented by an administrator of the validation architecture.
Each node in the gaming community (e.g., client <b>102</b>) is configured to receive the query and respond as set forth by a series of instructional headers in the query packet. Providing incorrect or invalid data in response to the query is construed as illicit behavior (i.e., cheating) and the invalid node may be dismissed from the community, logged, or otherwise dealt with as is determined by the particular construct of the validation architecture in place in a given community or with regard to a particular network game <b>104</b>.
Failure of any particular node to respond to the query may be implicitly construed as an invalid response (i.e., the queried node did not respond because that node does not possess or cannot calculate the proper responsive data). Each query, as a part of the aforementioned instruction packet header, may reflect a time period in which a response must be generated and transmitted to the sending node. In other embodiments, the sending node may simply time the response of the query and unilaterally determine that a lack of response within a particular period of time constitutes an invalid response and therefore invalidate the queried node.
In certain networks, delivery of a response may be delayed or impossible due to a number of factors. For example, in a high traffic network, the proper and valid response may be generated by a queried node but temporarily delayed by the network due to traffic or other data priorities (e.g., the delivery of critical game data). The querying node may be configured to recognize when certain traffic conditions exist in the network and to adjust (via query engine <b>310</b>) the query response time for providing a valid response.
Similar adjustments or allowances may be made in light of the particular network over which a queried node is connected to the querying node (e.g., a DSL line v. a wireless network v. a 56 kbps dial-up modem). A query and response are, at least with regard to a valid node, more readily transmitted and received over a DSL line, which comprises higher bandwidth than, for example, a dial-up modem. Similarly, if certain lightweight protocols are being used (e.g., UDP versus TCP), additional leniency may be allowed in that UDP, for example, offers few error recovery services unlike TCP, which guarantees delivery of data packets. In such a scenario, the query packet may never be received by the queried node and no indication of that failure will be communicated to the querying node. The querying node, via query engine <b>310</b>, may take such possibilities into consideration, in conjunction with analysis engine <b>308</b>, when determining if a response has been timely received and, further, with regard to disposing of an implicitly invalidated node.
In other embodiments of the present invention, if no response is received in response to a query, the query engine <b>310</b> may re-transmit the same query or, in order to prevent an illicit network node from having the benefit of additional processing time to determine the correct response to the query, generate a fresh query to that node. A particular node may be given so many opportunities to provide a valid response before the node is dismissed from the network or otherwise cataloged as having engaged in illicit community behavior.
The query itself is intended to determine whether a node in the community network is valid, that is, is the node running instructions or functioning as is expected (e.g., has the runtime code been modified). Various cheating mechanisms will introduce new code to the system <b>200</b>, usually in main memory <b>202</b> or IOP memory <b>214</b> although code related to illicit activity may also be found on a memory card <b>218</b>. Certain device signatures related to a cheat device connected to the system <b>200</b> may further be identified at USB Interface <b>220</b> or IEEE 1394 Interface 1394 <b>222</b>. The query seeks to determine whether known ‘cheat’ code is present or whether certain native runtime code at, for example, main memory <b>202</b> or IOP memory <b>214</b>, has been modified as the result of a user having executed certain cheat code or the presence of a certain cheat device and its related signature, that cheat code having modified the native runtime code.
The query generated by the query engine <b>310</b>, in one embodiment, may comprise requesting a section of memory from the client <b>102</b>, that is, a start address and size. The client <b>102</b> then answers the query with the appropriate number of bytes of memory commencing at the particular address as requested by the query engine <b>310</b>. Query engine <b>310</b>, in some embodiments, will request a limited number of memory addresses in that the query aims to identify known portions of runtime code that are traditionally subject to modification or hacking with an aim toward cheating in a community network environment.
If the client <b>102</b> fails to respond to the query or provides the incorrect segment of memory as a result of the runtime code having been altered by illicit behavior (i.e., cheating), then the client <b>102</b> may be dismissed from the network or subject to other penalties or action (e.g., logging of an IP address, development of a record reflecting the client <b>102</b> or an associated user having been engaged in illicit behavior, restriction of bandwidth, etc.). A validated node (e.g., client <b>102</b>) will identify a portion of memory that matches the expectations of the querying node (e.g., server <b>104</b>) as reflected by a rule in rules library <b>304</b>.
In another embodiment, the query engine <b>310</b> may generate a query concerning memory in the context of a hash function and at the client <b>102</b> in question. A hash function (H) is a transformation that takes a variable-size input (m) and returns a fixed-size string, which is called the hash value h (i.e., h=H(m)). The hash value concisely represents the larger data sample from which it was computed.
In the context of an embodiment of the present invention, the query generated by query engine <b>310</b> may identify a particular address and portion of memory as in previous embodiments of the present invention but further require the application of a hash function against the relevant data in memory. The response to the query (i.e., the hashed portion of memory) would then be required to match the hash value at the querying node (e.g., server <b>104</b>) as might be reflected in a lookup table in rules library <b>304</b>.
Hashing, as noted above, may be utilized to transform a string of characters associated with the memory requested into a shorter fixed-length value or key representative of the string. Through the use of hashing, efforts of more sophisticated hackers and cheaters are complicated in that it is nearly impossible to re-establish the original data from the hash value. A hash value is unique in the sense that two data sets are highly unlikely to result in the same bit string and any attempt to make changes to the data will negate the value and thus the signature. A hash function H is one-way in that given a hash value h, it is computationally infeasible to find some input x such that H(x)=h.
For example, applying the CRC32 hash algorithm against the data string <Sony> results in the checksum <69D07CFC>; the data string <Sony Computer Entertainment> produces the checksum <EF7F99BA>; and the data string <Sony Computer Entertainment America Inc.> results in the unique checksum <E3DE35CF>.
Examples of well-known hash functions that may be implemented in the present invention are MD2 and MD5 as reflected in Internet RFCs <b>1320</b> and <b>1321</b>, which are incorporated herein by reference as well as the Secure Hash Algorithm (SHA) as is reflected in FIPS PUB <b>180</b>, which is further incorporated herein by reference. CRC32 (cyclic redundancy check) is still a further example of a hash function that may be implemented in an embodiment of the present invention. Other known or later developed hash functions are within the scope of various embodiments of the present invention.
While impossible to re-establish the original data from the hash value, since a query from query engine <b>310</b> may refer to a limited number of memory addresses, it is conceivable that a hacker or cheater could independently generate a look-up table in light of a particular hash algorithm vis-a-vis a particular address and size (sometimes referred to, generally in the context of hacking computer passwords, as a dictionary attack). Thus, when a query is received concerning a particular address and size and hash algorithm, the cheater may provide the appropriate response via their look-up table. In order to overcome this possibility, some embodiments of the present invention may utilize a certain degree of randomization as to the particular memory segments queried.
Further embodiments of the present invention, as a means of overcoming independent look-up tables, may employ salting the hash as a part of the query generated by query engine <b>310</b>. Salt is, in its simplest form, a unique string of some fixed length and is provided as a part of the query in the header instructions of the query packet. The memory segment identified by the query is concatenated with the salt and subsequently hashed. The possibilities of ‘hacking’ a response to the query are diminished almost to the point of impossibility and the time and processing power required to develop an independent look-up table on-the-fly would far exceed the response time limit to the query and the client <b>102</b> would be timed out for failure to respond to the query. A proper response will, like the memory query and memory/hash query, provide a response that matches the hash value at the querying node. Failure of the response to match that hash value will result in the queried node being designated invalid and removed from the community or otherwise addressed as is appropriate in the particular validation architecture.
The query, in some embodiments of the present invention, may further include the detection of threads as they occur through the use of certain cheat devices. A processor thread is generally recognized as the architectural state within a processor representative of a sequence of instructions. Certain devices, when installed, will introduce a series of threads in certain numbers and in certain locales in order to allow for the operation of the device in conjunction with the system <b>200</b>. A query of, for example, main memory <b>202</b> or IOP memory <b>214</b> at client <b>102</b> may be related to detection of a known thread, a known number of threads, or the presence of threads in a certain location as evidence of illicit game activity (i.e., cheating) as identified by rules library <b>304</b>.
In some instances, even after certain devices are removed from the system <b>200</b>, the various threads related to that device will not be entirely purged from the system <b>200</b>, usually main memory <b>202</b> or IOP memory <b>214</b>. A query of client <b>102</b> may relate to the detection of these so-called ‘ghost threads’ and indicate that while a user is not immediately engaged in illicit game behavior the user may have previously engaged in such behavior and/or otherwise have the means to engage in such behavior in the future.
Queries may also pertain to identification of modules and strings of data in the system <b>200</b> as identified in the rules library <b>304</b>. As these modules and strings may ‘move,’ especially in IOP memory <b>214</b>, identification of the particular string or module versus a particular address may prove particularly useful with regard to actively validating a network device. Further, the jump locations in a particular segment of code may be ‘nulled out’ whereby code that has been relocated as a normal part of the IOP operation may be verified.
While any one of the aforementioned embodiments may be utilized in the context of a query, the query engine <b>310</b> may automatically determine or customize the particular query in response to activity detected by monitoring module <b>306</b> as may be the case in of passive validation architecture.
The analysis engine <b>308</b> receives the data in response to the query generated by query engine <b>310</b> and determines whether the status of a client device is invalid and reflects cheating or other illicit behavior. If the client <b>102</b> fails to respond to the query from the query engine <b>310</b>, the client <b>102</b> may be ejected from the network community either temporarily or permanently. In some embodiments of the present invention, the period a client <b>102</b> or a particular user associated with the client <b>102</b> at the time of ejection may increase with the number of ejections.
As previously noted, in some embodiments of the present invention, a window of time is specified for responding to the query. If the client <b>102</b> fails to respond to the query within that window of time, the server <b>108</b> may send another query, eject the user or client <b>102</b> from the network community, or allow the user to continue participating in the network game <b>104</b> and continue to monitor the user's activity at client <b>102</b>.
In some embodiments of the present invention, like those related to passive validation, the analysis engine <b>308</b>—in conjunction with monitoring module <b>306</b>—may decide that the query engine <b>310</b> does not need to send a query. For example, the analysis engine <b>308</b> may determine that while a score associated with the network game <b>104</b> is high, it is not outside the parameters for scores set forth in the rules associated with the network game <b>104</b> as provided in the rules library <b>304</b> and otherwise observed by the monitoring module <b>306</b>.
If the analysis engine <b>308</b> determines that the user is cheating, the offending node may be ejected, allowed to continue playing, and so forth. In some embodiments, the server <b>108</b> or sending node may resolve the violation (i.e., cheating activity) whereby various types of resolution may be employed. In some embodiments of the present invention, the node tasked with resolving the behavior (e.g., server <b>104</b>) may disable a cheating device or offending code presently running on the system <b>200</b> by sending a patch to remove, modify, or add to the offending software.
In some embodiments, the analysis engine <b>308</b> may generate a list of users or client devices <b>102</b> that violate the rules associated with the network game <b>104</b>. In other words, the analysis engine <b>308</b> may generate a cheater ‘rap sheet.’ The cheating users may then be monitored more often by the monitoring module <b>306</b> according to some embodiments or employed as a variable for generating future rules by the optional rules generator <b>302</b>.
In some embodiments, the client <b>102</b> may include certain or all of the components discussed in <figref idref="DRAWINGS">FIG. 3</figref> with regard to server <b>104</b> whereby device becomes more of a generic network node that may encompass server functionality, client functionality, both or neither (e.g., a router, buffer or intermediate point on a network). Accordingly, the client <b>102</b> can detect cheating activity occurring on other clients <b>102</b>, as discussed herein. One node in the network may also generated queries of other nodes in response to an initial request by a server <b>104</b>.
Nodes may also act in peer-groups whereby, for example, ten particular nodes constitute a group. Groups may be defined by the particular needs or nature of a particular network environment. For example, a group may constitute all players of a network game <b>104</b>. A group may constitute all players of a network game <b>104</b> and participating via a particular ISP. A group may also constitute players in a certain ‘game room,’ that is, players that have been invited to participate with one another or otherwise entered a particular gaming environment of particular users. A group may be defined by any parameter that allows for delineation of one user from another (e.g., age, experience, game device being used, time logged on, type of network connection, bandwidth availability, etc.).
Other embodiments may provide for group participation in analysis of the query response. For example, multiple sending nodes may send a query to a particular receiving node. These queries may be identical or each request different information. In some embodiments, a correct response to the various queries may be required by all or a certain percentage of the querying nodes to further ensure the validity of the queried node in the community network.
Furthermore, although various components are discussed in connection with <figref idref="DRAWINGS">FIG. 3</figref>, the server <b>104</b> and/or the client <b>102</b> may include more or fewer components and still fall within the scope of various embodiments of the present invention.
<figref idref="DRAWINGS">FIG. 4</figref> shows a flow diagram of an exemplary process for identifying illegal network game activity according to some embodiments of the present invention. The illegal network game activity may include, as discussed herein, violation of the rules associated with the network game <b>104</b> or any other cheating activity by the network game users.
At optional step <b>402</b> network game play is monitored. Monitoring of game play may, in some embodiments, only be implemented in passive validation architecture. Notwithstanding, the monitoring module <b>306</b> discussed in <figref idref="DRAWINGS">FIG. 3</figref> can monitor user activity associated with the network game <b>104</b>. As discussed herein, any type of monitoring, observation, and so forth may be employed.
At optional step <b>404</b>, a determination whether there is anything unusual about a particular player's actions in the network game <b>104</b>. Step <b>404</b> may, like step <b>402</b>, be most appropriate in passive validation architecture. If no unusual activity is detected, the monitoring module <b>306</b> continues to monitor the network game user's activities in the network game <b>104</b>.
If unusual activity is detected (e.g., in passive or hybrid validation architecture) or as might otherwise be scheduled or in response to a scheduled or randomized and asynchronous implementation of the query engine <b>310</b> (e.g., in active validation architecture), the query engine <b>310</b> sends a query to a client <b>102</b> (e.g., one that might be associated with unusual activity), at step <b>406</b>. Based on the response to the query, the analysis engine <b>308</b> determines whether the unusual activity is illegal at step <b>408</b>. If the node (e.g., client <b>102</b>) is validated, the present query-response interaction comes to an end in the case of active validation architecture. In the case of passive or hybrid validation architecture, monitoring module <b>306</b> continues to monitor activity of node likes client <b>102</b> in the network.
If the node (e.g., client <b>102</b>) is not validated, certain illegal activity may be resolved at step <b>410</b>. As discussed herein, various resolutions may be employed, such as sending software to the node to add to, modify, or remove the offending software, warning the user at the offending node, creating a watch list concerning the offending client/user, and so forth.
At step <b>412</b>, the server <b>108</b> or, in a peer-to-peer or group-peer scenario, the clients <b>102</b>, determine whether to allow the network game user to continue to play in the network. If the network game user is allowed to continue to play, the node remains subject to future queries and/or monitoring in active, passive or hybrid validation architectures as is appropriate. If the network game user is not allowed to continue, the server <b>108</b> or the other clients <b>102</b> can eject the network game user, such as by ceasing data communication with the particular network game user. In some embodiments, the network game user that is not allowed to continue participating in the network game <b>104</b> is notified that the network game user is being ejected. In yet another embodiment, the network game user may be denied future participation in a particular network game or, in extreme cases, may be denied access to the gaming network or community.
Referring now to <figref idref="DRAWINGS">FIG. 5</figref>, a flow diagram of an exemplary process for actively validating network game users is shown as may be used in conjunction with the process of <figref idref="DRAWINGS">FIG. 4</figref>. At step <b>502</b>, a query is sent to the one or more users. The query may be sent to the client <b>102</b> associated with the one or more users based on detected unusual activity, at specified intervals without detection of unusual activity, and so forth. Any method for determining when to send a query may be employed. As discussed herein, the query may be customized according to the network game user, the query may be predetermined, and so forth. The query may also comprise any type of query, such as a query requesting a specific area of the memory associated with the network game <b>104</b> or the network game user's participation in the game, a hash of the memory or specified area of the memory, a hash of the memory and a salt associated with the memory requested, identification of threads, modules, strings of data and so forth.
At step <b>504</b>, an answer to the query is received. As discussed herein, in some embodiments, the one or more users may be ejected if the client <b>102</b> fails to respond to the query either correctly and/or in a timely fashion.
At step <b>506</b>, it is determined whether the one or more users are valid based on the response to the query. As discussed herein, the network game user, may be considered valid if it is determined, by an analysis engine <b>308</b> at the server <b>108</b> or the other clients <b>102</b>, that the network game user is not cheating, is not violating the rules associated with the network game <b>104</b>, and so on. The response to the query may be utilized to further query the network game user where the response is not acceptable, or is otherwise suspicious.
The response may be analyzed by the analysis engine <b>308</b> in order to determine whether the network game user is valid. As discussed herein, the network game user may be warned, ejected from the network game <b>104</b>, monitored, and so forth. As discussed herein, the violation or cheating may be resolved according to some embodiments, such as by sending data to add to, modify, or delete the cheating device, with or without notice to the network game user. Any type of resolution is within the scope of various embodiments of the present invention.
In some embodiments, as discussed herein, a list of cheating network game users may be generated and recorded, or stored. In other embodiments, a list of validated network game users may be generated. In other words, a list of the network game users that are not determined to be cheating may be generated, those users having established trust with the community over a period of time. Accordingly, the network game users that are validated may be monitored less while the network game users that have a history of cheating may be monitored more, according to some embodiments, or as may be determined by optional rules generator <b>302</b>.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. For example, any of the elements associated with the client <b>102</b>, the network game <b>104</b>, and/or the server <b>108</b> may employ any of the desired functionality set forth hereinabove. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments.
The present invention may also be used in the context of validating certain permissions and/or copyright protections that may exist with regard to copyrighted content. Content may be validated through a query to verify whether a particular party or device has the authority to ‘play’ that content.
Further, the present invention may be used in the context of providing updates to various computing devices wherein it is determined that a portion of software (e.g., as may be determined through a query) is out-of-date and in need of updating or overwriting.
The present invention may be further implemented in a common network game <b>104</b> that is operable over a mixed network of end user devices (e.g., clients <b>102</b>). For example, one client device <b>102</b> may be a personal computer; a second client device <b>102</b> may be a home entertainment system such as a PlayStation®2 or PlayStation®3 available from Sony Computer Entertainment Inc. Another client device <b>102</b> may be a portable gaming device such as a PSP™ (also from Sony Computer Entertainment Inc.) whereas a fourth client <b>102</b> may be a home entertainment system of a different manufacture such as an Xbox as manufactured by Microsoft Corporation or a GameCube as manufactured by Nintendo Co., Ltd. The present anti-cheat methodologies described herein are fully intended to be operable amongst a related or non-related group of devices.
Contents5
7 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7
Every citation, both waysCites: the store holds 151 of 152
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2018020000A1 | Cited by | United States of America | Search report |
| US2018020000A1 | Cited by | United States of America | Search report |
| US2014359120A1 | Cited by | United States of America | Pre-grant |
| US10124260B2 | Cited by | United States of America | Applicant |
| US10092845B2 | Cited by | United States of America | Applicant |
| US11077376B2 | Cited by | United States of America | Applicant |
| US9717992B2 | Cited by | United States of America | Applicant |
| US10293262B2 | Cited by | United States of America | Applicant |
| US9636589B2 | Cited by | United States of America | Applicant |
| US9526990B2 | Cited by | United States of America | Applicant |
| US10757099B2 | Cited by | United States of America | Search report |
| US2001044339A1 | Cites | United States of America | Applicant |
| US2002075805A1 | Cites | United States of America | Applicant |
| US2002078464A1 | Cites | United States of America | Applicant |
| US2002085552A1 | Cites | United States of America | Applicant |
| US2002184310A1 | Cites | United States of America | Applicant |
| US2003027639A1 | Cites | United States of America | Applicant |
| US2003070070A1 | Cites | United States of America | Applicant |
| US2003078103A1 | Cites | United States of America | Applicant |
| US2003137110A1 | Cites | United States of America | Applicant |
| US2003176218A1 | Cites | United States of America | Applicant |
| US2003195025A1 | Cites | United States of America | Applicant |
| US2003216962A1 | Cites | United States of America | Applicant |
| US2003226007A1 | Cites | United States of America | Applicant |
| US2003229789A1 | Cites | United States of America | Applicant |
| US2004093372A1 | Cites | United States of America | Applicant |
| US2004127277A1 | Cites | United States of America | Applicant |
| US2004166942A1 | Cites | United States of America | Applicant |
| US2004193919A1 | Cites | United States of America | Applicant |
| US2004242321A1 | Cites | United States of America | Applicant |
| US2004259633A1 | Cites | United States of America | Applicant |
| US2005086288A1 | Cites | United States of America | Applicant |
| US2005086369A1 | Cites | United States of America | Applicant |
| US2005101374A1 | Cites | United States of America | Applicant |
| US2006063590A1 | Cites | United States of America | Applicant |
| US2006089200A1 | Cites | United States of America | Applicant |
| US2006100010A1 | Cites | United States of America | Applicant |
| US2006190281A1 | Cites | United States of America | Applicant |
| US2006221825A1 | Cites | United States of America | Applicant |
| US2007066398A1 | Cites | United States of America | Applicant |
| US2007210929A1 | Cites | United States of America | Applicant |
| US2007218996A1 | Cites | United States of America | Applicant |
| US2007238528A1 | Cites | United States of America | Applicant |
| US2007276521A1 | Cites | United States of America | Applicant |
| US2007294399A1 | Cites | United States of America | Applicant |
| US2008305869A1 | Cites | United States of America | Applicant |
| US2008313346A1 | Cites | United States of America | Applicant |
| US2009113515A1 | Cites | United States of America | Applicant |
| US2010029370A1 | Cites | United States of America | Applicant |
| US2010197405A1 | Cites | United States of America | Applicant |
| US2011269547A1 | Cites | United States of America | Applicant |
| US2012088585A1 | Cites | United States of America | Applicant |
| US2012108327A1 | Cites | United States of America | Applicant |
| US2014100027A1 | Cites | United States of America | Applicant |
| US5638446A | Cites | United States of America | Applicant |
| US5768382A | Cites | United States of America | Applicant |
| US5892900A | Cites | United States of America | Applicant |
| US5910987A | Cites | United States of America | Applicant |
| US5915019A | Cites | United States of America | Applicant |
| US5917912A | Cites | United States of America | Applicant |
| US5949876A | Cites | United States of America | Applicant |
| US5970143A | Cites | United States of America | Applicant |
| US5982891A | Cites | United States of America | Applicant |
| US6021219A | Cites | United States of America | Applicant |
| US6134237A | Cites | United States of America | Applicant |
| US6165072A | Cites | United States of America | Applicant |
| US6237786B1 | Cites | United States of America | Applicant |
| US6253193B1 | Cites | United States of America | Applicant |
| US6363488B1 | Cites | United States of America | Applicant |
| US6389402B1 | Cites | United States of America | Applicant |
| US6405104B1 | Cites | United States of America | Applicant |
| US6427140B1 | Cites | United States of America | Applicant |
| US6640304B2 | Cites | United States of America | Applicant |
| US6658568B1 | Cites | United States of America | Applicant |
| US6779004B1 | Cites | United States of America | Applicant |
| US6829634B1 | Cites | United States of America | Applicant |
| US6850252B1 | Cites | United States of America | Applicant |
| US6850909B1 | Cites | United States of America | Applicant |
| US6865735B1 | Cites | United States of America | Applicant |
| US6948070B1 | Cites | United States of America | Applicant |
| US7043641B1 | Cites | United States of America | Applicant |
| US7051212B2 | Cites | United States of America | Applicant |
| US7069451B1 | Cites | United States of America | Applicant |
| US7076652B2 | Cites | United States of America | Applicant |
| US7168089B2 | Cites | United States of America | Applicant |
| US7169050B1 | Cites | United States of America | Applicant |
| US7288027B2 | Cites | United States of America | Applicant |
| US7367888B1 | Cites | United States of America | Applicant |
| US7392422B2 | Cites | United States of America | Applicant |
| US7480656B2 | Cites | United States of America | Applicant |
| US7515718B2 | Cites | United States of America | Applicant |
| US7517282B1 | Cites | United States of America | Applicant |
| US7543152B2 | Cites | United States of America | Applicant |
| US7584154B1 | Cites | United States of America | Applicant |
| US7610505B2 | Cites | United States of America | Applicant |
| US7695370B2 | Cites | United States of America | Applicant |
| US7720962B2 | Cites | United States of America | Applicant |
| US7753795B2 | Cites | United States of America | Applicant |
| US7780526B2 | Cites | United States of America | Applicant |
| US7801957B2 | Cites | United States of America | Applicant |
33 members in 4 offices
Priority claims26
| Document | Office | Kind | Date |
|---|---|---|---|
| 38603906 | United States of America | A | |
| 38603906 | United States of America | A | |
| 41588106 | United States of America | A | |
| 41588106 | United States of America | A | |
| 44914106 | United States of America | A | |
| 44914106 | United States of America | A | |
| 72517507 | United States of America | A | |
| 72517507 | United States of America | A | |
| 35259009 | United States of America | A | |
| 35259009 | United States of America | A | |
| 201113252150 | United States of America | A | |
| 201113252150 | United States of America | A | |
| 201414149545 | United States of America | A | |
| 11415881 | – | – | – |
| 11449141 | – | – | – |
| 11725175 | – | – | – |
| 11386039 | – | – | – |
| 12352590 | – | – | – |
| 13252150 | – | – | – |
| US20060386039 | – | – | – |
| US20060415881 | – | – | – |
| US20060449141 | – | – | – |
| US20070725175 | – | – | – |
| US20090352590 | – | – | – |
| US201113252150 | – | – | – |
| US201414149545 | – | – | – |
Members33
| Document | Office | Kind | |
|---|---|---|---|
| US2007218996A1 | United States of America | A1 | |
| WO2007109130A2 | World Intellectual Property Organization (WIPO) | A2 | |
| US2007238524A1 | United States of America | A1 | |
| US2007238528A1 | United States of America | A1 | |
| US2007276521A1 | United States of America | A1 | |
| WO2007109130A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1998862A2 | European Patent Office (EPO) | A2 | |
| US7480656B2 | United States of America | B2 | |
| US2009191951A1 | United States of America | A1 | |
| JP2009530979A | Japan | A | |
| US7753795B2 | United States of America | B2 | |
| JP4672797B2 | Japan | B2 | |
| US8032502B2 | United States of America | B2 | |
| EP1998862A4 | European Patent Office (EPO) | A4 | |
| US2011269547A1 | United States of America | A1 | |
| US2012088585A1 | United States of America | A1 | |
| US8622837B2 | United States of America | B2 | |
| US8626710B2 | United States of America | B2 | |
| US2014100027A1 | United States of America | A1 | |
| US8715072B2 | United States of America | B2 | |
| US2014187316A1 | United States of America | A1 | |
| US8771061B2 | United States of America | B2 | |
| US2014309024A1 | United States of America | A1 | |
| US8972364B2This record | United States of America | B2 | |
| US9526990B2 | United States of America | B2 | |
| US9717992B2 | United States of America | B2 | |
| US2017266560A1 | United States of America | A1 | |
| US2018015372A1 | United States of America | A1 | |
| US10124260B2 | United States of America | B2 | |
| US10293262B2 | United States of America | B2 | |
| US2019336866A1 | United States of America | A1 | |
| EP3753611A1 | European Patent Office (EPO) | A1 | |
| US11077376B2 | United States of America | B2 |
72 transactions on the USPTO file
Allowed without a rejection on record.
- Non-final rejections
- 0
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mailing Corrected Notice of AllowabilityMCNOA | MCNOA | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Corrected Notice of AllowabilityCNOA | CNOA | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Response to Reasons for AllowanceREAS | REAS | |
| Response to Reasons for AllowanceREAS | REAS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Supplemental Papers - Oath or DeclarationC600 | C600 | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Application Is Now CompleteCOMP | COMP | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| FITF set to NO - revise initial settingFTFI | FTFI | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Payment of additional filing fee/PreexamFLFEE | FLFEE | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTF | EML_NTF | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 08972364
- Publication, DOCDB
- 8972364
- Publication, EPODOC
- US8972364
- Application
- 14149545
- Application, DOCDB
- 201414149545
- Application, EPODOC
- US201414149545
Titles
- English
- Defining new rules for validation of network devices
Patent term adjustment
- Applicant delay
- −44 days
- Net adjustment
- 0 days
Classification
- CPC, 18
- A63F13/12
- A63F13/327
- A63F13/71
- A63F2300/405
- A63F13/75
- A63F13/02
- A63F2300/535
- A63F13/06
- A63F13/35
- A63F2300/1031
- A63F2300/201
- A63F2300/807
- A63F13/73
- Y10S707/99939
- A63F2300/532
- A63F2300/5586
- A63F2300/401
- A63F2300/50
- IPC, 4
- G06F17 30
- A63F13 20
- A63F13 30
- A63F13 98
- USPC, 4
- 707694000
- 463029000
- 463042000
- 707622000