Challenge and exchange of response between client and server computing devices
Abstract
[Subject] Injustice may be committed using the basic input/output system by which the client was changed to the service provided by the server like the case in an online game on the network, the changed software, or the software of a pirate edition. A server can detect the state of a client changed in this way, and it enables it to take suitable action. [Solution means] A challenge is published for the state of the client which is communicating with the server to a client, and it judges by producing the response which shows a state to a client. If a server judges whether that state is as expected and differ it as compared with the response from which this response is expected, it will take suitable action which ends communication with this client. As for this challenge, it is desirable by making a client perform a code segment that the code segment which produces a response, and a parameter are included. [Selection figure] Fig. 5
Term
Term ended
Projected expiry passed 7 November 2023, 2.9 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
37 claims: 6 independent, 31 dependent
- 1A method for enabling a server computing device to detect a state on a client computing device, wherein (a) the code segment provided with a machine language instruction from the server computing device to the client computing device. And (b) the step of executing the code segment on the client computing device, the machine language instruction responds based on the state of being automatically accessed on the client computing device. A step with the code segment used by the client computing device to determine, (c) a step of sending the response from the client computing device to the server computing device, and (d) on the server computing device. In the step of comparing the response received from the client computing device with the expected response. (e) When the step of taking a predetermined action on the server computing device and the response received from the client computing device does not match the expected response, or when no response is received. The expected state is a step indicating that it does not exist on the client computing device and (f) a step allowing further interaction with the client computing device, the response received from the client computing device. A method characterized by having a step indicating that the expected state is present on the client computing device if the expected response is met. サーバコンピューティング装置にクライアントコンピューティング装置上の状態を検知できるようにするための方法であって、 (a)前記サーバコンピューティング装置から前記クライアントコンピューティング装置へ、機械語命令を備えた前記コードセグメントを送るステップと、 (b)前記クライアントコンピューティング装置上で前記コードセグメントを実行するステップであって、前記機械語命令は、クライアントコンピューティング装置上で自動的にアクセスされる状態に基づいて、応答を決定するために前記クライアントコンピューティング装置により使われる前記コードセグメントを備えたステップと、 (c)前記応答をクライアントコンピューティング装置からサーバコンピューティング装置へ送るステップと、 (d)サーバコンピューティング装置上において、クライアントコンピューティング装置から受け取った前記応答を期待される応答と比較するステップと、 (e)前記サーバコンピューティング装置上において所定の行動を起すステップであって、前記クライアントコンピューティング装置から受け取った前記応答が期待される応答に適合しない場合、あるいは何らの応答も受け取られない場合、期待される状態はクライアントコンピューティング装置上に存在しないことを示すステップと、 (f)前記クライアントコンピューティング装置とのさらなるやりとりを許可するステップであって、前記クライアントコンピューティング装置から受け取った前記応答が期待される応答に適合する場合、期待される状態はクライアントコンピューティング装置上に存在することを示すステップと を備えたことを特徴とする方法。
- 2The machine language instruction received from the server computing device by the client computing device is characterized in that it implements a one-way hashing algorithm on a designated portion of memory accessible by the client computing device. The method described in. 前記クライアントコンピューティング装置によって前記サーバコンピューティング装置から受け取られた前記機械語命令は、前記クライアントコンピューティング装置によってアクセス可能なメモリの指定部分について一方向ハッシングアルゴリズムを実施することを特徴とする請求項1に記載の方法。
- 15A method for determining the state of a client computing device to be used to participate in electronic game play on a network through a network game game service, (a) providing the network game game service. A step of transmitting a challenge from a server computing device to the client computing device, wherein the challenge includes a step having at least one parameter to be used in calculating a response on the client computing device. , (B) A step of calculating a response on the client computer device using the parameters included in the challenge, wherein the response is related to the state on the client computing device. (C) The step of sending the response from the client computing device to the server computing device, and (d) the step of comparing the response with the expected response on the server computing device. (e) If the response received from the client computing device does not match the expected response to the challenge, or if no response is received, then the client computing device for the server computing device A method characterized by including a step of terminating the connection, which indicates that the expected state on the client computing device in the previous term is not met. ネットワークのゲーム遊戯サービスを通してネットワーク上で電子ゲームの遊びに参加するにあたって使用するためのクライアントコンピューティング装置の状態を決定するための方法であって、 (a)前記ネットワークのゲーム遊戯サービスを提供しているサーバコンピューティング装置から前記クライアントコンピューティング装置へチャレンジを伝送するステップであって、前記チャレンジは、前記クライアントコンピューティング装置上で応答を算出するにあたって使用するための少なくとも1つのパラメータを備えたステップと、 (b)前記チャレンジに含まれた前記パラメータを用い、前記クライアントコンピュータ装置上で応答を算出するステップであって、前記応答が前記クライアントコンピューティング装置上の前記状態に関連しているステップと、 (c)前記応答を前記クライアントコンピューティング装置から前記サーバコンピューティング装置へ送るステップと、 (d)前記サーバコンピューティング装置上において、前記応答を期待される応答と比較するステップと、 (e)前記クライアントコンピューティング装置から受け取った前記応答が、前記チャレンジに対する前記期待される応答に適合しない場合、あるいは何らの応答も受け取られない場合、前記サーバコンピューティング装置に対する前記クライアントコンピューティング装置の接続を終了するステップであって、前期クライアントコンピューティング装置上の期待される状態は満たされていないことを示すステップと を備えていることを特徴とする方法。
- 17A claim characterized in that the software of the electronic game accessed by the client computing device used to participate in the play of the electronic game on the network includes a machine language instruction for calculating the response. The method according to item 15. 前記ネットワーク上で前記電子ゲームの遊びに参加するにあたって使用する前記クライアントコンピューティング装置によってアクセスされる前記電子ゲームのソフトウェアの中に、前記応答を算出する機械語命令が含まれることを特徴とする請求項15に記載の方法。
- 24The challenge further comprises a step of modifying the at least one parameter used by the client computing device to generate the response, the client computing device later again playing an electronic game on the network. Claim 18 characterized in that, when attempting to participate, the at least one parameter contains an initialization code for use by the client computing device in unidirectional hashing the designated portion of the memory. The method described in. 前記チャレンジに含まれ、前記応答を生じるにあたって前記クライアントコンピューティング装置によって使用される前記少なくとも1つのパラメータを変更するステップをさらに備え、前記クライアントコンピューティング装置が後に再び前記ネットワーク上の電子ゲームの遊びに参加しようと試みるときに、前記少なくとも1つのパラメータは前記メモリの前記指定部分を一方向ハッシングするにあたって前記クライアントコンピューティング装置による使用のための初期化コードを含んでいることを特徴とする請求項18に記載の方法。
- 30The server computing device adopted to provide a service to a plurality of client computing devices connected to the server computing device on the network, and the server computing device is a state on the client computing device. With a memory that detects and stores multiple machine language instructions, (b) a network interface for connecting the plurality of client computing devices, and (c) a processor connected to the memory and the network. The code segment is (i) a function of sending a code segment to the client computing device, and the code segment is a function of causing the client computing device to determine a state on the client computing device, and (ii) the client computing device. A function of receiving a response from the client computing device indicating the state on the ing device, and (iii) a function of comparing the response with the expected response of the client computing device. (iv) If the response does not match the expected response, or if the response is not received, perform certain actions, otherwise the service to the client computing device on the network. A server computing device comprising the processor that executes the machine language instruction for performing a plurality of functions including the function of providing the above. ネットワーク上でサーバコンピューティング装置に接続された複数のクライアントコンピューティング装置にサービスを提供するために採用された該サーバコンピューティング装置であって、前記サーバコンピューティング装置はクライアントコンピューティング装置上の状態を検出し、 (a)複数の機械語命令を格納するメモリと、 (b)前記複数のクライアントコンピューティング装置を連結するためのネットワークインターフェイスと、 (c)前記メモリと前記ネットワークに連結されたプロセッサであって、 (i)クライアントコンピューティング装置にコードセグメントを送る機能であって、前記コードセグメントは前記クライアントコンピューティング装置上の状態を前記クライアントコンピューティング装置に決定させる機能と、 (ii)前記クライアントコンピューティング装置上の前記状態を示す前記クライアントコンピューティング装置からの応答を受け取る機能と、 (iii)前記応答を前記クライアントコンピューティング装置の期待される応答と比較する機能と、 (iv)前記応答が前記期待される応答に適合しない場合、あるいは前記応答が受け取られない場合、所定の行動を履行し、その他の場合には、前記ネットワーク上で前記クライアントコンピューティング装置に前記サービスを提供する機能と を含む複数の機能を履行するための前記機械語命令を実行する前記プロセッサと を備えることを特徴とするサーバコンピューティング装置。
Independent claims6
72 paragraphs, as filed
The present invention generally relates to verifying the state in which a server computing device exists on a client computing device. More specifically, the server computing device issues a challenge to the client computing device, and the client computing device thereof. It relates to comparing the response received from with the expected response.
Playing electronic games on the Internet with multiple players has become an increasingly popular pastime. Games designed to run on a personal computer (PC) or a dedicated electronic game system, such as Microsoft Corporation's XBOX® game system, can be played by multiple players in a game session at that location. Although designed to be capable, games played on the Internet offer users the opportunity to compete with a much wider range of players and play at any time. A multiplayer game on a network is typically achieved by allowing each of the multiple client computing devices to connect to the server computing device on the network, which is a combination of multiple different types of server computing devices. Promote game interaction between game players. To simplify the discussion below, the term "client" will be used in place of the client computing device, and the term "server" will be used in place of the server computing device. However, a broader concept will be applied to these entities.
<p> Ideally, only the skills of the players participating in the online game should determine who wins the game. However, online games are notorious for developing creative ways to cheat while playing online games, and player skills in playing games are not always a determinant of who wins the game. It does not become. For example, the game software can be modified (eg, using the game shark program) to give the player more life, more energy, higher protection, and other attributes, and therefore this player can play the game. It has a substantial advantage over players running an unmodified version of the program. Playing with someone else cheating in this way means that the game is no longer won by a skilled player, but instead a player cheating by using a modified game program. It will be very stressful and you won't be able to enjoy it, as you will often be won by. Therefore, it is desirable for the server of the game play site to be able to detect whether the player is using a modified game program, so that the server takes appropriate action and the player connected to the server is modified in this way. Allows you to prevent the program from being used for online game play.</p><p> A dedicated electronic game game system can also be modified to allow cheating while the player is playing an online game. For example, a player can connect a replacement memory module containing a modified BIOS to a game console to replace the original basic input / output system (BIOS), and thus the system with the original BIOS. Allows changes to features and systems that may not be allowed while in operation. This modified BIOS allows copies of unlicensed or pirated games to be used for play, allowing users to bypass zone restrictions on games that can be played on the game console. More importantly, the use of modified chips in the game console may allow other types of cheating while playing the game. Thus, when an electronic gaming system is logged on to a gaming site to play a multiplayer game, and / or while playing this type of game, it detects changes made to the gaming system. It would also be desirable to allow the site's servers to take appropriate action.</p><p> In a more general sense, when a user of a client device attempts to log on or sign in to a service provided on the server, the server challenges the client device for any desired state on the client. It would be even more desirable to be able to impose and allow the server to determine if any characteristic or state of the client is different from what is expected. It will be clear that this procedure is not limited to the gameplay features provided by the server, nor is it limited to gameplay clients. If the response returned by the client is not as expected, the server should be able to take appropriate action automatically. For example, the server could simply end the current session with this client, record the client's identity in the database, and even if the response returned from this client to the server is as expected in future sessions. Even so, it could be possible to prevent this client from using the services provided on the server again.</p>
<p> A major aspect of the present invention is that the user wants to connect to a server that provides the service that the client user wants. In the initial use of the present invention, the server is adopted in a gaming site to provide a service that allows a player to participate in a game play of a plurality of players on the Internet, but the present invention is not limited to this use. It should be understood that. Using the client, the user attempts to log on to the services provided on this server. According to the method of the invention, during the logon process and / or during subsequent game play, the server "challenge" the client in the form of one or more code segments containing one or more parameters. "Send. The challenge will also typically include a machine language instruction that causes the client to follow a particular procedure to determine a response that indicates a state on the client. For example, in the gaming applications of the present invention, the server can also determine if the client is running a modified BIOS, or is using modified software, or a pirated copy of the game. The response determined by the client is thus related to the condition that will be detected on the client. This response is then sent back to the server and compared to the expected response.</p><p> If this response matches the expected response, the server provides the desired service to the client. However, if this response does not match the expected response, or if no response is returned, the server may automatically perform the appropriate predetermined action. For example, the server can simply record this response for future reference, or end the current session, and / or this client or user is served on this server. It is also possible to make it impossible to participate in a service again, for example, to play an online game using a gaming service provided by a server forever.</p><p> On the client, such as part of the memory captured with the BIOS, or part of the memory that stores the code of an application such as a game, by machine language instructions implemented by the client to determine the response. A one-way hashing algorithm can be applied to the specified part of the memory to the client. Alternatively, machine language instructions allow the client to apply a one-way hashing algorithm to some of the non-volatile memory that the client has access to. Since a pirated copy of a game program will usually have only part of the original non-volatile medium in which the program was stored, is an authorized copy of the game software being accessed by the client? To determine if, a machine language instruction can cause the client to apply a one-way hash to a portion of the non-volatile medium containing random data (rather than a game program).</p><p> When the client later attempts to log on to the server again, the specified portion of this memory (or non-volatile medium) can be changed. Use of the client by changing either the parameters used to determine the response and / or the specified part of the memory (or non-volatile medium), and / or the details of the one-way hashing algorithm used to produce the response. It will be very difficult for one to prepare a false response that matches the expected response.</p><p> In order to detect a bitwise pirated copy of the non-volatile memory medium to which the game is distributed, the machine language instructions given to the client are non-volatile memory made unreadable by the client on all authorized copies. It is possible to have an attempt to read a portion of the medium. If this response does not indicate that the attempt to read that part was unsuccessful, then this response does not match the expected response and this client is accessing a pirated copy of the game software. Will become clear.</p><p> Another aspect of the present invention is intended to enable a server or a group of servers used to provide a service to a plurality of clients connected to a server on a network to detect the state of the client. .. This server includes a memory that stores multiple machine language instructions, a network interface for connecting multiple clients, and a processor that is connected to this memory and this network interface. The processor executes machine instructions and performs a number of functions that roughly match the steps of the method described above. Another aspect of the invention is directed to a memory medium in which machine language instructions are stored to perform the steps performed by the server.</p><p> As used throughout this specification and the appended claims, the term "server" is intended to refer to a single server computing device or multiple computing devices. Thus, it will be understood that the term "server" also applies to a group of computing devices working in partnership to provide the services that a client wants. The particular server computing device that sends the challenge and evaluates the response received from the client may not necessarily be the same computing device that actually provides the service. However, the failure to pass the challenge response process gives this client additional access to any of the set of server computing devices (not just the server sending the challenge and / or evaluating the response). It can be rejected. Moreover, as used herein, it will be understood that the term "server" can more generally be applied to network computing devices such as routers and switches. .. A router or switch issues a challenge and forwards packets from that client to other servers behind this router / switch only if the correct (ie, expected) response is returned by the client. It will be.</p>
A preferred embodiment of the present invention will be described below with respect to controlling access to the server by the client. As mentioned above, the client can connect to almost any other form, for example, a conventional personal computer (PC), mobile phone, personal digital assistant (PDA) or server over a wired or wireless network. It can be a computing device. Thus, the term client may be developed in the future to access an existing computing device or system used to connect to a server on a network, or to a server over a network connection. It will be understood to include computing devices.
In an early preferred embodiment of the present invention, the client is a game console, and a server is used in an online game system that facilitates game play by a plurality of players on the Internet. However, one of ordinary skill in the art will appreciate that the present invention can be practiced in many other situations in which a client attempts to access a server. Clients and servers can connect over the Internet or on other types of networks, such as local area networks (LANs), intranets, and wide area networks (WANs).
Servers are now understood to have one or more computing devices dedicated to performing server functions. However, the term "server" is intended to include almost any computing device or system that performs server functions, including computing devices that may be developed in the future to perform server functions. ing. This "server" can even be one client processing a request received from another client to connect in a peer-to-peer session. The client sending the challenge could generate the code segment it sent to the other client on its own, may be given the appropriate challenge and expected response from another server, or act as a server. The peer-to-peer client can also perform the challenge on its own to determine the expected response from the other client.
(Computing Device as an Example) Figure 1 and the discussion that follows provide a concise and general description of a suitable computing environment in which the software implementing the methods of the invention can be implemented. The present invention can be implemented on a single server, but can also be implemented on multiple computing devices that function as servers. Both the client and the server may each contain the functional components shown in Figure 1. While the present invention can clearly be realized on a client consisting of a general purpose PC, in the initial use of the present invention, the client includes a gaming console as described below. Nonetheless, it presents a subsequent discussion of general-purpose PCs regarding the use of PCs for either servers or clients.
Although not required, the invention will be described in general association with computer executable instructions, such as program modules executed by PCs and / or gaming consoles. In general, program modules include data structures, functions, components, objects, routines, application programs such as computer simulations, etc. that perform specific tasks or embody specific abstract data types. Further, one of ordinary skill in the art will recognize that the present invention can be implemented in other computer system configurations, especially in decentralized computing environments where tasks are performed by remote processing devices linked through communication networks. .. In a distributed computing environment, program modules can be installed in both local and / or remote memory storage devices.
Referring to FIG. 1, an example system for use in a server computer includes a general purpose computing device in the form of a conventional PC20. The PC 20 includes a processing unit 21, a system memory 22, and a system bus 23. The system bus connects various system components, including system memory, to the processing unit 21 and includes several types of buses, including a memory bus or memory controller, a peripheral bus, and a local bus using any of the various bus architectures. It may be any of the structures. System memory includes read-only memory (ROM) 24 and random access memory (RAM) 25. The basic I / O system 26 (BIOS), which contains basic routines that help transfer information between elements within the PC 20, as during the boot period, is stored in ROM 24. The PC 20 further includes a hard disk drive 27 for reading and writing from a hard disk (not shown), a magnetic disk drive 28 for reading and writing from a removable magnetic disk 29, and a CD-ROM or CD-ROM. It may include an optical disk drive 30 for reading and writing from the removable optical disk 31, such as other optical media. The hard disk drive 27, the magnetic disk drive 28, and the optical disk drive 30 are connected to the system bus 23 by the hard disk drive interface 32, the magnetic disk drive interface 33, and the optical disk drive interface 34, respectively. These drives and their associated computer-readable media provide non-volatile storage for computer-readable machine language instructions, data structures, program modules, and other data on the PC20. Examples of the environment described herein include a hard disk, a removable magnetic disk 29, and a removable optical disk 31, but those skilled in the art can be accessed by computer.
A large number of program modules can be stored on a hard disk, magnetic disk 29, optical disk 31, ROM 24 or RAM 25, including operating system 35, one or more application programs 36, other program modules 37, and programs. Data 38 is included. The user can input commands and information to the PC 20 through an input device such as a keyboard 40 or a pointing device 42. The pointing device 42 may include a mouse, stylus pen, wireless remote control, or other pointer. Other input devices (not shown) may include joysticks, gamepads, handles, pedals, microphones, satellite antennas, scanners, digital cameras, digital video recorders, or the like. These and other input / output (input / output) devices are often connected to the processing unit 21 through the input / output interface 46 connected to the system bus 23. The term input / output interface is intended to include serial ports, parallel ports, game ports, keyboard ports, and / or interfaces specifically used for the Universal Serial Bus (USB). The monitor 47 and other types of display devices are also connected to the system bus 23 via an appropriate interface, such as the video adapter 48, to display application programs, web pagers, simulated environments, and / or other information. Can be used to display. In addition to monitors, PCs are often connected to other peripheral output devices (not shown), such as speakers (sound cards or other audio interfaces (not shown)) and printers.
As mentioned above, the present invention is implemented in a networked environment, where the PC 20 is logically connected to one or more clients, such as the remote computer 49. The remote computer 49 may be another PC, router, network PC, peer device, satellite, or other common network node that makes up a client. The remote computer 49 is, in one preferred application of the invention, a game console, as described in more detail below. The remote computer 49 may include many or all of the elements mentioned above in relation to the PC 20, may include the elements described below in relation to the gaming console, or may act as a client. It may also include typical elements of other electronic devices that can. To avoid unnecessarily complicating FIG. 1, the remote computer 49 is illustrated with only one external memory storage device 50. The logical connections shown in Figure 1 include a local area network (LAN) 51 and a wide area network (WAN) 52, which may also include the Internet. This type of networking environment is common in offices, enterprise-wide computer networks, intranets, and for computing devices connected to the Internet.
When used in a LAN networking environment, the PC 20 is connected to the LAN 51 through a network interface or adapter 53. When used in a WAN networking environment, the PC20 typically has a modem 54, or other means, such as a cable modem, digital subscriber line (DSL) interface, or integrated services digital network, for the purpose of establishing communication over the WAN52. (ISDN) interface, including. One type of WAN commonly used for communication between remote computing devices is the Internet. The modem 54 may be internal or external and may be connected to the system bus 23 or to the system bus via the I / O interface 46, i.e. through the serial port. In a networked environment, the program modules shown in connection with PC20, or parts thereof, may be stored in remote memory storage. It will be appreciated that the network connections illustrated are exemplary and other means can be used to establish communication links between computers, such as wireless communications and broadband network links.
(Minimum required networked environment) As mentioned above, a major aspect of the invention is that a client user wants to connect to a server that provides the services or data they want on a network such as the Internet. .. As described above, in order to realize the present invention, a network environment including a client and a server is indispensable. FIG. 2A schematically illustrates the base network 280, which includes a server 282a and multiple clients 284a, ... 284h. A network environment can reside between a server and a single client, but most network environments include multiple clients, and often multiple servers as well. The network 280 can represent any of a wide variety of data communication networks and can include not only the public part (eg, the Internet) but also the private part (eg, private LAN and / or WAN). Should be understood. It should also be understood that network 280 can be implemented using any one or more of a wide variety of conventional communication configurations, including both wired and wireless types. Any of a wide variety of communication protocols can be used to communicate data over network 280, including both public and proprietary protocols. Examples of this type of protocol include TCP / IP, IPX / SPX, NetBEUI, and so on.
FIG. 2B schematically illustrates the exemplary server 282b. As mentioned above, the server generally has many of the components of the PC20, which we have detailed above. The server used in accordance with the present invention can be realized as a server computing system 282c, in which a plurality of individual servers that share the task of providing services to connected clients are provided. It should be understood that it is included. As one of ordinary skill in the art would admit, the individual servers in a server computing system may evenly share the work (as in the case of a load-balanced system), or the server computing system is specific. Work may be assigned to a specific server.
A preferred embodiment of the present invention is used with a client that is a networked game console and a server that is an online game server, but the invention can also be beneficially used with other types of clients. I emphasize that again. Figure 2C schematically illustrates a number of different clients that can be used to access the server, including, without limitation, laptop computer 284i, workstation 284j, PC284k, PDA284l, Includes a game console 284m, a web-enabled radiotelephone 284n, and a web-enabled pager 284o. Figure 2C also shows that server 282b or server computing system 282c can be considered a client, which is a use that wants to access services provided by different servers. This is the case when a person is using it.
It should be clearly understood that the present invention can be implemented to control access to the server from a number of different types of clients, although preferred embodiments of the present invention facilitate game play. It is realized in the access control of the game console connected to the network to the server. However, the present invention is not limited to a client that is a game console and a server that facilitates game play. Other types of clients and servers performing different functions are included in the present invention.
(Client as an Example) Figure 3 shows an example electronic gaming system 100, which includes support for a game console 102 and up to four user input devices such as controllers 104a and 104b. Of course, it can be adopted by simply a game console that supports one user input device, or a game console that supports additional user input devices. The game console 102 is equipped with a built-in hard disk drive (not shown in this figure) and is a portable medium drive 106 that supports various forms of portable optical memory media, as represented by the optical storage disk 108. Includes. Examples of suitable portable media include DVD discs and compact disc read-only memory (CD-ROM) discs. In this gaming system, it is preferred that the game program be distributed on DVD discs for use in game consoles, but instead other memory media are used in connection with the present invention, this client or other types of clients. It is also possible that it can be used above.
On the front of the game console 102, there are four ports 110 for connection to supported controllers, although their number and placement may change. A power button 112 and an eject button 114 are also located on the front of the game console 102. The power button 112 controls the application of power to the game console, and the eject button 114 alternately opens and closes the tray (not shown) of the portable media drive 106 to display digital data on the disk. Allows the storage disk 108 to be inserted and removed for use by the game console.
The game console 102 connects to a television or other display monitor or screen (not shown) via an audio / visual (A / V) interface cable 120. The power cable plug 122 propagates power to the game console when connected to a normal AC current source (not shown). The game console 102 includes an Ethernet® data connector 124, on a network (eg, through a peer-to-peer link to another game console, or through a connection to a hub or switch (not shown), or on the Internet. In, for example, transfer or receive data through a connection to an xDSL interface, cable modem, or other broadband interface (not shown). In other types of game consoles, they may be connected by communication using a conventional telephone modem.
Each controller 104a and 104b is connected to the game console 102 via a lead wire (or through a wireless interface). In the implementation shown, these controllers are compatible with a universal serial port (USB) and are connected to the game console 102 via a USB cable 130. The game console 102 may be equipped with any of a wide variety of user devices for interacting with and controlling game software. As shown in FIG. 2, each controller 104a and 104b is equipped with two thumb sticks 132a and 132b, a D-pad 134, a button 136, and two triggers 138. These controllers are merely representative and other gaming inputs and controls may replace or substitute for those shown in FIG. 3 for use with the game console 102. It may be added to these.
The removable functional unit 140 can optionally be plugged into the controller 104 to provide additional features and functionality. For example, a portable memory unit (MU) allows users to store game parameters and port them for play on other game consoles. This is done by plugging this portable MU into a controller connected to another game console. Another removable functional unit is equipped with a voice communication unit that allows the user to verbally communicate with other users at that location and / or over the network. A headset 142 including a boom microphone 144 is connected to this voice communication unit. Each controller may employ more or less removable functional units or modules, but in this described implementation, it is configured to accommodate two removable functional units or modules. Has been done.
The gaming system 100 can play, for example, games, music, and videos. Other functions are realized by using digital data stored on the hard disk drive or read from the optical storage disk 108 in drive 106, or by using digital data obtained from an online source or MU. It is possible that it can be done. For example, the gaming system 100 can perform the following playback. -Game titles stored on CD and DVD discs, hard disk drives or downloaded from online sources-CDs on portable media drive 106, files on hard disk drives (eg WINDOWS MEDIA) Digital music stored in AUDIO® (WMA) format or derived from online streaming sources on the Internet or other networks-Files on DVD discs on portable media drive 106, or on hard disk drives Digital AV data such as movies stored on the Internet (eg in active streaming format) or from online streaming sources on the Internet or other networks
FIG. 4 shows the functional components of the gaming system 100 in more detail. The game console 102 includes a central processing unit (CPU) 200 and a memory controller 202, which includes read-only memory (ROM) 204, random access memory (RAM) 206, hard disk drive 208, and a portable medium. Smooth processor access to drive 106. The CPU 200 is equipped with a primary cache 210 and a secondary cache 212 for temporarily storing data, reducing the number of required memory accesses, thereby improving processing speed and throughput. The CPU 200, memory controller 202, and various storage devices are interconnected via one or more buses, which may be serial and parallel buses, memory buses, peripheral buses, and various bus architectures. Includes a processor or local bus using. For illustration purposes, this type of architecture includes ISA (Industry Standard Architecture) buses and MCA (Micro Channel). It can include Architecture (Architecture) buses, Extended ISA (EISA) buses, VESA (Video Electronics Standards Association) local buses, and PCI (Peripheral Component Interconnect) buses.
As an example of one suitable implementation of a game console, the CPU 200, memory controller 202, ROM 204, and RAM 206 are integrated in a common module 214. In this implementation, ROM 204 consists of flash ROM and is connected to memory controller 202 via PCI bus and ROM bus (neither shown). The RAM 206 is composed of a plurality of double data rate synchronous dynamic RAMs (DDR SDRAMs) and is independently controlled by a memory controller 202 via a separate bus (not shown). The hard disk drive 208 and the portable media drive 106 are connected to the memory controller via the PCI bus and the ATA (Advanced Technology Attachment) bus 216.
The three-dimensional (3D) graphics processing unit (GPU) 220 and video encoder 222 form a video processing pipeline for high-speed and high-resolution graphics processing. Data is conveyed from the graphics processing unit 220 to the video encoder 222 via a digital video bus (not shown). The audio processing unit 224 and the audio encoder / decoder (CODEC) 226 form an audio processing pipeline for hi-fi and stereo audio data processing. Audio data is carried between the audio processing unit 224 and the audio CODEC 226 via a communication link (not shown). These video and audio processing pipelines output data to A / V port 228 for transmission to televisions and other display monitors. In the illustrated implementation, video and audio processing components 220-228 are mounted on module 214.
The USB host controller 230 and network interface 232 are also implemented by module 214. The USB host controller 230 is connected to the CPU 200 and the memory controller 202 via a bus (eg, PCI bus), and functions as a host for the peripheral controllers 104a to 104d. Network interface 232 provides access to networks (eg, the Internet, home networks, etc.) and includes Ethernet® cards, telephone modem interfaces, Bluetooth modules, cable modem interfaces, xDSL interfaces, and the like. It can be one of a wide variety of wired or wireless interface components, including.
The game console 102 has two dual controller support subassembly units 240a and 240b, each subassembly unit supporting two game controllers 104a-104d. The front panel input / output subassembly 242 supports not only the functions of the power button 112 and eject button 114, but also any light emitting diode (LED) or other indicator exposed on the outside of the game console. The subassembly units 240a, 240b, and 242 are connected to the module 214 via one or more cable assembly units 244.
The eight functional units 140a-140h are illustrated so that they can be connected to the four controllers 104a-104d. That is, there are two functional units for each controller. Each functional unit 140 provides an additional memory or function capable of storing the game, game parameters, and other data. When the MU is plugged into the controller, the MU can be accessed by the memory controller 202. The system power supply module 250 powers the components of the gaming system 100. Fan 252 cools the components and circuits within the game console 102.
To implement a preferred embodiment of the invention, a game software application 260 consisting of machine language instructions stored on a DVD or other memory medium (or downloaded over a network) has RAM 206 and / / for execution by the CPU 200. Or it is loaded into caches 210 and 212. Some of the software applications 260 may be loaded into RAM only when needed, or all of the software applications (depending on their size) may be loaded into RAM 206. The software application 260 is described in more detail below.
The gaming system 100 may operate as an independent system by simply connecting the system to a television or other display monitor. In this stand-alone mode, the gaming system 100 allows one or more users to play games, watch movies, and listen to music. However, the connection to the Internet or other networks available through network interface 232 allows the gaming system 100 to be connected to yet another gaming system or to operate as a component of a larger network gaming society. Allows interaction with multiple players online in games played on the Internet or other networks with players using other gaming systems.
This is an increasingly popular activity if the user wants to connect to a server to experience networked gaming play, but the Gaming System 100 is a server (book) through the network connection mentioned above. Try to access (not shown in the figure). As described in more detail below, the server imposes a challenge on each game system that attempts to access the server. Based on the response to the challenge from the client's game system received by the server, the server determines a predetermined and appropriate action.
(Example Gaming Network System) A preferred embodiment of the present invention is Microsoft Corporation's XBOX. Will be realized with the LIVE® online gaming network. FIG. 5 shows a gaming network 300 as an example, which includes multiple gaming systems 100a, ... 100s, each of which is a server based on the online game service 302, hereafter simply referred to as the game server 302. Is logically connected to. It should be understood that each gaming system represents a client. As mentioned above in connection with FIG. 2B, the game server 302 could be a single server, or rather would include multiple servers grouped into a server computing system. The network 300 is similar to the network 280 and can be implemented using any one or more of a wide variety of conventional communication configurations, including both wired and wireless types. Any of a wide variety of communication protocols, including both public and proprietary protocols, can be used to communicate data over network 300. Examples of this type of protocol include TCP / IP, IPX / SPX, NetBEUI, and so on.
In general, the game server 302 connects clients for communication, services and / or hosts online games, services downloadable game-related files, and games to facilitate game play between players. Host competitions, serve streaming game-related A / V files, enable text-based or voice message exchange between participants during gameplay, and more like anything else. , Provide the service to the client connected to the gaming-related service (that is, to the user of each game system 100). However, it should be emphasized that the present invention is not limited to applications that merely have these or other game-related server functions, as many other types of services can be provided by this server.
Note that network 300 includes a game system 100t that is not yet connected to game server 302. In explaining a preferred embodiment of the present invention, the establishment of a network connection between the game system 100t and the game server 302 will be described in more detail below. Figure 5 also shows a widely accepted symbol for "prohibition" superimposed on the game system 100u, with a broken line extending between the game system 100u and the game server 302, the game system 100u and the game server. Indicates that the network connection between 302 has been terminated. As described in more detail below, one predetermined action by the server when the client fails the challenge is the current between the client and the server, especially when the present invention is implemented in a game network environment. Both immediately terminate the network connection and / or reject any subsequent attempt by that particular client to establish a network connection with the server. Thus, in the example of FIG. 5, the game system 100u fails to respond appropriately to the challenge issued by the game server 302, and the logical network connection between the game system 100u and the game server 302 is the game server. Ended by 302. Further, in this example, the game server 302 records an identification mark (eg, serial number) for the game system 100u, and the next time the game system 100u attempts to connect to the game server 302 again, the identification mark is printed. The detection would reject any future attempt by the game system 100u to establish a logical network connection to the game server 302 at a future time.
(Overview of logical process) In FIG. 6, flowchart 320 illustrates the logical steps used in the present invention, imposing a challenge on the client before it becomes accessible to the server. At block 322, the client sends a request to the server. The present invention allows a server to evaluate the state of the client before making the service or data provided by the server accessible to the client. In traditional networks, the server may require you to enter a user name and password, but attempts to determine the state of the client before granting the client access to the services provided by the server. There will not be. However, the present invention allows the server to first determine the state associated with the hardware and / or software configuration for the client. Therefore, the present invention is only useful in these situations where the user of the client wants the services or information provided by the server and attempts to establish a logical connection with or through the server. If this user does not want the services provided by this server and does not attempt to connect to the server at all, this server will not have the opportunity to evaluate the status of the client.
It is conceivable that in most cases block 322 will represent the client's attempt to log on to the server. However, it is understood that block 322 can also represent any subsequent request (after successful logon) by the client to access or continue to access services or information controlled by the server. Should be. In any single session involving a logical network connection between a client and a server, block 322 can be performed immediately after the establishment of this type of logical connection or at any time following the establishment of this type of logical connection. Should be understood. In some situations, the client at the time of the first logon attempt and also at one or more points during the communication session between the client and server, as described in additional detail below. It may be beneficial to impose a challenge on the client.
At block 324, the server sends a challenge to the client. The details of the preferred form of challenge that the server can send to the client are discussed in more detail below, but this challenge simply allows the server to give the client a password and some other things so that it can access the system. It should be understood that it is not a request to provide credential information. This challenge is intended to determine the characteristics or state of the client in order to determine if the state of the client is as expected by the server. It is possible that a number of different challenges are pre-generated, made available to the server, and each trillion battle is associated with a corresponding and expected response. Various challenges can be inspected for the same condition on the client. The server can then select one of a number of pre-generated challenges and send it to the client. For each of these pre-generated challenges, the server will calculate the expected response based on the known characteristics of the expected state on the client. Conditions that can be evaluated by this type of challenge include, for example, the BIOS used by the client, the hardware configuration of the client, and the software used by the client.
At block 326, the client processes the challenge received from the server. As mentioned above, this challenge is not a request for passwords to be entered or any other credentials, and does not require any action by the client user. Preferably, the challenge is in the form of an executable code segment sent from the server to the client. This client executes the code segment received from the server and then sends the response generated by executing the code back to the server for evaluation. In at least one preferred embodiment, the challenge is unidirectional hashing, such as SHA-1 or MD5, for a designated portion of memory on the client or a designated portion of DVD or other non-volatile storage accessible by the client. Contains code to implement the algorithm. This challenge would also preferably include one or more parameters that affect the expected results.
At block 328, the response calculated by the client is sent to the server. At block 330, the server evaluates the response calculated by the client. At this point, based on the response received from the client, the server can perform one of several predetermined actions based on the response received from the client, as shown in block 331. If a client fails to send the expected response to a challenge to the server, or receives no response from that client, the server can respond in a variety of different ways. For example, the server can simply log this event for tracking purposes. Under other circumstances, the server can reject the request from the client and terminate the logical network connection between the client and the server. Another option would be for the server to terminate the logical connection with this client. In addition, the server may "reject" any future attempts by the client device or user to establish a logical network connection with the server.
This is done using an authentication process (authentication, such as a password or smart card) to accurately identify the client or user for the purpose of denying future server connections with this client or user. After identifying the client device and / or user, the challenge and response process described herein can be performed. By performing a challenge response process after this authentication process, the identity of the client device and / or the user can be accurately determined, and the identity of the client (whether it is the client device or the user) can be determined from the server. Permanent blocking can be done accurately by focusing on the authenticated identity.
FIG. 7 shows a modification of the step of FIG. 6, in which steps 330 and 331 are omitted in the flowchart 320a, but steps 332, 334, 336, and 338 are added. The client sends a request to the server, the server sends a challenge to the client, the client processes the challenge, and the client sends a calculated response to the server. In flowchart 320a, the response from the client is analyzed in decision block 332 to determine if the server will accept this response. If the server determines in decision block 332 that the client has returned an incorrect response (which does not match the expected response), the server denies the request from the client in block 336. In this embodiment, it is preferable to terminate the logical network connection between the client and the server at this point. It is possible to change the state that exists on the client (eg, fix it) so that the client can handle subsequent challenges from the server, so that the client then provides a response that matches the expected response. Will do. Alternatively, it may be preferable to suspend the client from any future connections with any server if the client's response does not match the expected response in a single case. Thus, if the server denies a request from a client in block 336, as shown in optional block 338, all future requests from this client device or user's identity will be ignored in block 338. Will be done.
If the response from the client is accepted by the server by referring to the judgment block 332 again, the request from the client is then processed in the block 334. As a further alternative, this challenge process can be repeated at a later point during the current session when the client sends a request to the server. Sending a challenge in response to every request from the client to the server may seem impractical, but again challenge the client making subsequent requests, as indicated by the dotted line connecting blocks 334 and 322. It is possible to send.
Also, at any time, the server can subsequently issue a challenge to the client to determine if the client has changed some state after passing the first challenge. For example, if the checked state is a determination as to whether the client is using the modified software, it may be possible for the client to pass the first challenge but then start using the modified software. unknown. You can detect this type of change in the software being used by issuing one or more subsequent challenges during the session. Flowchart 320a thus illustrates this optional subsequent challenge with a dotted line connecting blocks 334 and 324.
(Preferable process for performing a challenge in a gaming network) Figure 8 shows Flowchart 340, which shows the logical sequence of steps performed by both the client and the server in the gaming network of Figure 5. In the discussion below, it is assumed that the game system 100t is attempting to access the game server 302 (both illustrated in Figure 5). However, it should be understood that the logical processes described below can also be used with gaming systems available in other networks, and that the present invention is not limited to the game system 100 in its use.
With respect to FIG. 8, the logical steps executed by the game console are grouped together in the dotted box 342, while the logical steps executed by the game server are grouped together in the dotted box 344. Several steps must be taken before the game console attempts to log on to the game server. With reference to box 342, the user of the game console must obtain a compatible game, as shown in block 352. This game must support playing on the network. Also, either the game console or the game will have the public key for the purpose of allowing the game console to authenticate the challenge received from the game server as coming from a trusted source. .. All XBOX® game consoles are for digitally signing challenges sent to the game console. It has a public key that corresponds to the private key used by the LIVE® game server. At block 354, the user selects a game available on the network and inserts a game disc (a single-sided, double-layer DVD disc for network-enabled XBOX® games) into the game console. From the game start menu, the user selects the network play option in block 356, which causes the game console to attempt to log on to the game server, as shown in block 358.
Referenced here for the logical steps performed by the server, some logical processes in the present invention prior to issuing a challenge to a logon request from the game console, as indicated by the dotted box 344. Is preferably performed here as well. At block 346, at least one challenge is preferably written based on the expected console characteristics. It is possible to write the challenge in progress, but keep in mind that doing so is likely to degrade the real-time performance of the game server and is undesirable. Preferably, multiple challenges are pre-authored so that the game server can select and publish different challenges at different times.
Several different types of challenges are implemented in this preferred embodiment. The first type of challenge is called a code challenge. A code challenge is an executable code segment that is sent from the game server to the game console. When the game console executes this code segment consisting of multiple machine language instructions, it causes the game console to calculate the response, and the response is returned to the game server for comparison with the expected response. Challenges are written to help the game server determine what the correct or expected response should be. With respect to the game system 100 described above, the characteristics of this type of game system are very clearly defined. Any changes to the configuration of the game system 100, such as the addition of modified chips (ie, "modified chips") used to make changes to the original BIOS, can be immediately detected with appropriate challenges.
Especially with respect to the game console, the challenge can detect if the ROM / kernel image of the game console has changed. This type of modification is made to allow the client to modify the code, and also allows the user to use the modified game software to cheat during gameplay. it can. Assuming you have enough time and resources, almost any challenge can be broken if it is always used without any changes. However, it is detected by utilizing the parameters sent with the challenge and / or the contents of the code segment and / or multiple different challenges where any part of the memory checked by the code segment is modified. It will be extremely difficult to use a modified game console that will never be used. Even if a switch can be used to restore the original BIOS chip into the game console circuit, the game console will no longer be an online play game server due to a single case of forgetting to restore the original chip. Connecting to will result in forever expulsion. By using multiple different challenges and writing new challenges in response to the workarounds available to defeat the old challenges, the game server effectively wants to modify the game console to cheat. You can stay one step ahead of the game console users who think.
Many different code challenges can be pre-authored, and game server administrators can use these in such a way that any organized attempt to address these challenges is likely to be nullified. You can control the gradual release of challenges in pre-written code. Preferably, the particular challenge used from time to time will be randomly selected from the pool of available challenges. Thus, previously used challenges are randomly reused, making it extremely difficult to anticipate the expected response that must be sent to the game server. For example, new challenges can be released each day of the year. Game consoles attempting to access the game server on the day the new challenge is first used are likely to encounter this new challenge, but less frequently, previously issued challenges. May be issued by the game server that day. This kind of time limit, but with the frequency that the release of new and old random challenges makes it extremely difficult to avoid previously encountered challenges or unrecognized challenges issued by the game server. The result is that you will be faced with new and unpredictable challenges.
In addition to writing multiple different code challenges, each code challenge can be issued with multiple different parameters that change how the game console calculates the response. For example, a preferred code challenge would be to do a one-way hash of the contents of the memory that contains the game console's BIOS. As mentioned above, the SHA-1 hashing algorithm or the MD5 hashing algorithm is an example of a one-way hashing algorithm that can be beneficially adopted. Since the game console's BIOS is known, and the game code for each game is also known, when the game console is trying to log on to the game server, the game server will have a specified portion of memory on the game console or of memory. It has the necessary information about what the consequences of applying a one-way hashing algorithm to a designated part of the data section or a designated part of the DVD. If this was the only form of code challenge ever issued by a game server, a determined user would successfully determine this one-way hash algorithm used, and an unmodified game console. It would be possible to figure out what the expected response would be. To break the challenge of this code, the modified game console will be instructed to respond to each trillion battle with a predetermined response.
However, by changing the parameters sent from time to time with the challenge of the code, the game server can significantly increase the difficulty in determining what the expected response should be. For example, if the game console is instructed to perform a hashing algorithm on different parts of memory, the expected response will change. As shown in the challenge issued by the game server, simply changing the range of memory start and end of the game console that will be hashed will dramatically change the expected response. Changing a single bit in the memory portion of the hashed game console would cause a substantial change in the results of the one-way hashing algorithm.
Another parameter that can be used to increase the difficulty of overcoming the challenge of code based on the one-way hash of memory in the game console includes a different seed / initialization vector to get the one-way hash to work first. That is. Thus, to change the expected response, different challenges can include different initialization vectors that are included with some of the hashed memory. You can also change the hashing code in different challenges. For example, the code may require an XOR operation on a portion of memory before it is hashed.
Changes to memory range parameters, seed / initialization parameters, and implemented code are just examples of various parameters that can be adopted in the challenge sent by the game server, as discussed earlier, and the present invention. Please note that it is not intended to be limited with respect to. Obviously, by including the parameters in the code challenges, the game server can achieve the goal of increasing the number of different code challenges sent to the game console.
Other parts of the game console's memory can also be used in code challenges that require the game console to calculate a one-way hash. This hash can be based on the game console's RAM memory, ROM memory, hard drive, or DVD disk memory, or a selected portion of each memory of its kind, or any combination. A game console with unchanged content in memory will return a calculated response that matches the response expected by the game server. This is because the game server knows what should be in the game console's RAM memory, ROM memory, hard drive, or DVD disk memory. This kind of knowledge can be easily established in the context of game consoles, and game software. The incorrect response from the game console was a change to one or more of the game console's RAM memory, ROM memory, hard drive, or DVD disk memory (depending on which memory was hashed according to the challenge). Make it clear. Adopting a one-way hash makes it impossible to change any single bit of expected content undetected.
The part of the game console that can be verified by this kind of code challenge is virtually unlimited. Preferably, you would write a code challenge to specifically check the code segments of the game that are subject to change. You can also check the game code segments to make sure that game shark-type devices aren't being used to change values like "number of lives left" or "effective size of energy bar". .. You can also check the game console's hard drive to detect if the selected file has been modified, such as a video driver change that allows the game console player to see through the wall. A code challenge targeting the game console hardware can determine if the game console hardware has been modified, such as by adding additional or larger hard drives.
Another form of challenge is called a DVD challenge. The DVD Challenge verifies that there is a random area of the original licensed copy of the software medium in which the game was distributed, which is not different from what the game server expects. The goal of this challenge is not so much to detect game console users who have modified the game console to cheat, but rather to detect the presence of pirated software. Pirated software is copied from licensed DVDs onto compact discs, and they contain only the essential parts of the game program that was on the original licensed DVD. Copying DVD data to a CD-ROM is very cheap, and equipment for copying data onto a CD-ROM can be used in many more places. Double-layer DVDs hold significantly more data than CDs (9 gigabytes for about 700 megabytes), but many games aren't big enough to completely fill a DVD. The rest of this kind of DVD is filled with random bytes. The pirated copy of the game DVD created on the CD-ROM does not contain these extra random bytes.
The DVD Challenge requires the game console to calculate a one-way hash of a segment on the DVD, which contains at least a portion of the random bytes contained on the DVD. If the game console uses an unauthorized copy made on a CD-ROM instead of the original DVD, the response calculated by the game console will be incorrect and this challenge will result in the original game on the DVD. The existence of a pirated copy, not an authorized copy, will be detected.
One possible workaround for this challenge would be to store an exact copy of the DVD on the game console's hard disk. However, appropriate code challenges can be used to detect hardware modifications, such as the addition of large hard disks and modified BIOS that will allow online games to be played online. Therefore, it is preferable to combine a DVD challenge to detect pirated software with a code challenge to detect a modified game console.
Note that this mechanism is not useful for detecting pirated DVD discs that copy the entire original DVD image bit by bit. However, the manufacturing equipment currently required to produce a double-layer, single-sided 9GB DVD is so expensive that it makes it impossible for most individuals to make this type of copy. Given that the cost of this type of equipment drops to the point where DVD duplication is easily achieved, another possible DVD challenge is to deliberately flaw game DVDs during the production of licensed game discs. It could be based on inclusion. Original discs of this type could be manufactured with intentional defects in certain non-essential areas of the disc. These flaws will return a memory read error when an attempt is made to read that part of the disk. The challenge could deliberately check for the presence of read errors that would be expected when reading the original licensed medium, and is known to contain defects. If there is no read error in the area, this expected result will not be obtained and the game server will take appropriate action.
When a challenge is taking place, the particular byte area that will be used to do the one-way hash should be part of the parameters received from the game server in that challenge. This code for actually calculating the response (ie, the one-way hashing algorithm) can be stored (or stored in the game console's ROM) instead of being included in the challenge sent by the game server. It could be stored in the game medium, i.e. on the game DVD). This approach presents a problem while reducing the size of each trillion battle issued by the game server. That's because the code to implement the one-way hash algorithm can now be found relatively easily by hackers. Nevertheless, it is still difficult for the game console to send back false expected results in place of the actually calculated results that do not match the expected results by changing the other parameters sent in the challenge. There will be.
DVD challenges can be used in conjunction with code challenges within the same challenge response sequence to detect both changes to the game console and piracy in a single challenge and response sequence. Use DVD Challenge and Code Challenge together to avoid DVD Challenge by hashing data from other media than DVD, such as a bit-by-bit copy of a game program stored on your hard drive. It can detect if any changes have been made to the code that controls the game console that may be. While data from the hard drive can be used to successfully defeat the DVD challenge, the code challenge detects changes to the BIOS that allow the game to be played from software stored on the hard drive instead of the DVD. However, it prevents this modified game console from passing this combined challenge.
The DVD Challenge described above is specifically designed to detect unauthorized copies of software and is clearly applicable to non-gaming environments where detection of software piracy is desired. However, detection of such unlicensed software will not occur until the user of the software wants access to a server that implements the invention. Although the code challenges and DVD challenges mentioned above employ a one-way hashing algorithm, the challenges can also be based on other steps performed by executing the code sent from the server to the client, hashing. Not limited to algorithms. The use of the one-way hash algorithm is merely exemplary and is not limited to the present invention.
Revisiting Flowchart 340, each challenge previously written in block 348 is signed with a private key. The use of this private key is not mandatory, but preferred. In the present invention, the code segment is sent from the server to the client. In general, when any computing device receives executable code from an external source, the user of that computing device will want to be confident that it can trust this external source. Each challenge is signed with a private key that is specially available only to the game server, and each game released for use with the game server (or game console) contains the corresponding public key. So the game console user can be confident that the executable code received from the game server comes from a trusted source. In block 350, parameters for each trillion battle can be assigned to generate additional challenges, and the answer for each trillion battle, and each challenge modified by this type of parameter is clarified.
Referencing block 358 again, the game console is trying to log on to the game server. In response, the game server selects one of the pre-written challenges and a set of parameters in block 360. In block 362, the game server sends the signed challenge to the game console. In block 364, the game console uses the public key contained in the memory on the game console to verify that the signature from the game server is authenticated before performing the challenge sent from the game server to the game console. .. It is preferable that the code for this challenge is not executed unless this signature is authenticated with this public key. However, the fact that this signature check failed is secretly sent back to the server as part of the response. The reason for doing this is that failure to properly authenticate the signature on the challenge code usually means the presence of a modified BIOS (ie, the public key has changed) and is just expected. This is because, like any other response that does not fit the response, this result should be considered an incorrect response. At block 366, the game console executes the code with the parameters contained in the challenge and calculates the response. At block 368, the game console sends the calculated response to the game server.
In the determination block 370, the game server evaluates the response from the game console and determines whether this response matches the expected response. This expected response is identified by a particular challenge selected in block 360. In this way, the server needs to keep track of the specific challenges selected between block 360 and block 370. If no response is received from this client, the server treats the lack of response as if it received an incorrect response from the client. However, due to the possibility that the client was unwillingly disconnected from the server at that very moment, in dubio pro reo benefits the client until it encounters several unresponsive cases. Is preferable. Although not shown in this flowchart, the server can list all consecutive cases of failure to respond to a challenge for a particular client, and if that client fails a given number of responses, the server will give a given. You will take action. At block 374, the game console finishes determining that the game console has provided the expected response, and the game console logs on to the game server so that the game console user can receive the benefits of network game play. become.
An optional logical step is indicated by decision block 376, where the game server decides whether to issue a new challenge to the game console at some point during game play. If you don't decide to issue a new challenge, the logical process is over. If it decides that a new challenge should be issued, this logic loops back to block 360 and the new challenge is sent from the game server to the game console. At this point, it is unlikely that the user will be able to switch from one setting to an alternative setting during gameplay without restarting the system. However, if a workaround is developed to allow the settings to be toggled while the gameplay period is active, this type of workaround is to randomly send challenges during the gameplay session. Will be defeated in and will be able to detect any changes to the game or game console settings. If the game server determines that the game console has returned an incorrect response by referring to the determination block 370 again, the game server then performs a predetermined action in block 372. As soon as this predetermined action is performed, this logical process is over.
In a preferred embodiment, this predetermined action is to immediately disable the logical connection between the game console and the game server. In addition, the game server records the identity of the game console that has been denied access and refuses to accept any future logon attempts from this particular game console. This approach is expected to have a special effect that discourages users from changing their console, which is the original setting or modified alternative that the user will pass the challenge. Even if this change includes a switch that allows you to selectively configure the game console in either of the settings. It is expected that frequent game server users will at some point forget to properly place this type of switch in its original setting position. Any mistake of this kind will result in permanent expulsion of the game console from accessing the game server. However, it should also be understood that other prescribed actions can be performed. For example, a game server simply records an example of a modified game console attempting to access the game server over a period of time to determine the extent of the modified console being used on the network. May be good. The game server could issue one or more warnings to game console users that access by modified consoles is not allowed before permanently expelling this game console from the game server. .. After receiving this type of warning, users of this game console will be able to permanently return the game console to its original settings and then access the game server.
The present invention has been described in the context of preferred embodiments of the present invention and modifications to the invention, but many other modifications to those skilled in the art are within the scope of the appended claims. You will understand what can be done to the present invention within. Therefore, the scope of application of the present invention is not limited by the above description, but instead is determined solely by referring to the appended claims.
<figref num="1">It is a functional block diagram of a general-purpose computing device in the form of a conventional personal computer (PC) for use in an exemplary system in which the present invention is realized.</figref><figref num="2A">It is a schematic diagram of a basic network environment in which a plurality of clients are connected to one server.</figref><figref num="2B">It is a figure which shows how a plurality of servers usually constitute one server computing system.</figref><figref num="2C">It is a figure which shows various clients which can be used together with this invention.</figref><figref num="3">An isometric view of an example client electronic gaming system that includes support for a game console and up to four user input devices.</figref><figref num="4">It is a functional block diagram which shows the functional component of the client gaming system of FIG.</figref><figref num="5">It is a schematic diagram of a gaming network environment example in which a plurality of client game consoles are connected to a game server, and one of the client game consoles is excluded from the connection to the game server.</figref><figref num="6">It is a flowchart which clarifies the whole logical step realized in this invention.</figref><figref num="7">It is a flowchart based on the flowchart of FIG. 6 that clarifies the possible server response to a failed challenge and its use for subsequent challenges of choice.</figref><figref num="8">It is a flowchart which clarifies the preferable logic used for realizing this invention in the game network environment of FIG.</figref>
Code description
20 PC21 Processing unit 22 System memory 23 System bus 24 ROM25 RAM26 Basic I / O system (BIOS) 27 Hard disk drive 28 Magnetic disk drive 29 Detachable magnetic disk 30 Optical disk drive 31 Detachable optical disk 32 Hard disk drive interface 33 Magnetic disk drive interface 34 Disk drive interface 35 Operating system 36 Application program 37 Other program modules 38 Program data 40 Keyboard 42 Pointing device 46 Input / output device interface (eg serial) 47 Monitor 48 Video adapter 49 Remote computer 50 External memory storage 51 Local Area Network (LAN) 52 Wide Area Network (WAN) 53 Network Interface 54 Modem 100 Electronic Gaming System 102 Game Console 104a, 104b Controller 106 Portable Media Drive 108 Optical Storage Disk 110 4 Ports 112 Power Button 114 Eject Button 120 A / V Interface Cable 122 Power Cable Plug 124 Ethernet Data Connector 130 USB Cable 132a, 132b Thumb Stick 134 D Pad 136 Button 138 Trigger 140 Detachable Functional Unit 142 Headset 144 Boom Microphone 100a, 100s Gaming System 100t Game system (not yet connected to server) 100u Gaming System ("prohibited") 280 Basic Network 300 Network 302 Server based on online gaming services
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9875341B2 | Cited by | United States of America | Applicant |
| JP2015154818A | Cited by | Japan | Search report |
| JP2010509999A | Cited by | Japan | Examiner |
| US9685036B2 | Cited by | United States of America | Applicant |
| JP2008524911A | Cited by | Japan | Examiner |
| JP2014239917A | Cited by | Japan | Search report |
| US10092845B2 | Cited by | United States of America | Applicant |
| JP2014239917A | Cited by | Japan | Search report |
| US10525357B2 | Cited by | United States of America | Applicant |
| US10068421B2 | Cited by | United States of America | Applicant |
| JP2009501470A | Cited by | Japan | Search report |
| JP4808731B2 | Cited by | Japan | Search report |
| US8627081B2 | Cited by | United States of America | Applicant |
| US10212146B2 | Cited by | United States of America | Applicant |
| JP2009530979A | Cited by | Japan | Examiner |
| JP5838248B1 | Cited by | Japan | Examiner |
| JP2011502307A | Cited by | Japan | Examiner |
| JP2010509999A | Cited by | Japan | Search report |
| US10293262B2 | Cited by | United States of America | Applicant |
| US10124260B2 | Cited by | United States of America | Applicant |
| JP2018038828A | Cited by | Japan | Search report |
| JP2019057044A | Cited by | Japan | Search report |
| US10810823B2 | Cited by | United States of America | Applicant |
| US8715072B2 | Cited by | United States of America | Applicant |
| US8622837B2 | Cited by | United States of America | Applicant |
| US9636589B2 | Cited by | United States of America | Applicant |
| US8771061B2 | Cited by | United States of America | Applicant |
| US11077376B2 | Cited by | United States of America | Applicant |
| US9717992B2 | Cited by | United States of America | Applicant |
| US9767640B2 | Cited by | United States of America | Applicant |
| US10991196B2 | Cited by | United States of America | Applicant |
| US10810823B2 | Cited by | United States of America | Applicant |
| US11083970B2 | Cited by | United States of America | Applicant |
| US10525357B2 | Cited by | United States of America | Applicant |
| JP2013059078A | Cited by | Japan | Search report |
| JP2014239917A | Cited by | Japan | Search report |
| JP2016066845A | Cited by | Japan | Search report |
| JP2014239917A | Cited by | Japan | Search report |
| US8032502B2 | Cited by | United States of America | Applicant |
| WO2019059148A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10181237B2 | Cited by | United States of America | Applicant |
| US11710365B2 | Cited by | United States of America | Applicant |
| US8626710B2 | Cited by | United States of America | Applicant |
| WO0193586A2 | Cites | World Intellectual Property Organization (WIPO) | Examiner |
| US2002144131A1 | Cites | United States of America | Examiner |
| JP2002503365A | Cites | Japan | Search report |
| JPH11276704A | Cites | Japan | Examiner |
11 members in 5 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 10293228 | United States of America | – | |
| 29322802 | United States of America | A | |
| 29322802 | United States of America | A | |
| 2002293228 | – | – | – |
| US20020293228 | – | – | – |
Members11
| Document | Office | Kind | |
|---|---|---|---|
| EP1418725A2 | European Patent Office (EPO) | A2 | |
| US2004093372A1 | United States of America | A1 | |
| JP2004164640AThis record | Japan | A | |
| EP1418725A3 | European Patent Office (EPO) | A3 | |
| EP1418725B1 | European Patent Office (EPO) | B1 | |
| AT353516T | Austria | T | |
| DE60311625D1 | Germany | D1 | |
| US7287052B2 | United States of America | B2 | |
| DE60311625T2 | Germany | T2 | |
| US2008039209A1 | United States of America | A1 | |
| US7801952B2 | United States of America | B2 |
3 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Decision of refusalA02 | A02 | |
| Notification of reasons for refusalA131 | A131 | |
| Written request for application examinationA621 | A621 |
Numbers
- Publication
- 2004164640
- Publication, DOCDB
- 2004164640
- Publication, EPODOC
- JP2004164640
- Application
- 378854
- Application, DOCDB
- 2003378854
- Application, EPODOC
- JP20030378854
Titles2
- Japanese
- クライアントとサーバコンピューティング装置間のチャレンジと応答のやりとり
- English
- Challenge and response exchanges between client and server computing devices
Classification
- CPC, 1
- H04L63/0823
- IPC, 3
- A63F13 12
- G06F21 22
- H04L29 06