AU2011211454B2 - A storage method for a gaming machine - Google Patents

A storage method for a gaming machine Download PDF

Info

Publication number
AU2011211454B2
AU2011211454B2 AU2011211454A AU2011211454A AU2011211454B2 AU 2011211454 B2 AU2011211454 B2 AU 2011211454B2 AU 2011211454 A AU2011211454 A AU 2011211454A AU 2011211454 A AU2011211454 A AU 2011211454A AU 2011211454 B2 AU2011211454 B2 AU 2011211454B2
Authority
AU
Australia
Prior art keywords
program code
code
gaming machine
partition
category
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
AU2011211454A
Other versions
AU2011211454A1 (en
Inventor
Drazen Lenger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aristocrat Technologies Australia Pty Ltd
Original Assignee
Aristocrat Technologies Australia Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2010238556A external-priority patent/AU2010238556B2/en
Application filed by Aristocrat Technologies Australia Pty Ltd filed Critical Aristocrat Technologies Australia Pty Ltd
Priority to AU2011211454A priority Critical patent/AU2011211454B2/en
Publication of AU2011211454A1 publication Critical patent/AU2011211454A1/en
Application granted granted Critical
Publication of AU2011211454B2 publication Critical patent/AU2011211454B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

Abstract An authentication method for a gaming machine, comprising: starting the gaming machine; performing an initial s authentication of program code comprising at least a first category and a second category during start up of the gaming machine, the first category of program code being program code that is expected to be modified more frequently than the second category of program code, the 10 first and second categories of program code being stored in logically separate storage areas, the initial authentication being performed by authenticating the storage areas in which the first and second categories of program code are stored, the initial authentication is comprising calculating at least one cumulative hash, and verifying the at least one cumulative hash against a digitally signed cumulative hash using a master public key; receiving modifying program code; determining which category the modifying program code belongs to and storing 20 the modifying program code in the storage area corresponding to the category; and authenticating the storage area in which the modifying program code is stored prior to executing the modifying program code. 2775115_1 (GHMatters) P71108.AU.3 15/08/11 04' 00 0O g< w z

Description

AUSTRALIA Patents Act 1990 COMPLETE SPECIFICATION Standard Patent Applicant: Aristocrat Technologies Australia Pty Limited Invention Title: A STORAGE METHOD FOR A GAMING MACHINE The following statement is a full description of this invention, including the best method for performing it known to me/us: -2 Title A STORAGE METHOD FOR A GAMING MACHINE 5 Related Application This application is a divisional application of Australian application no. 2010238556, the disclosure of which is incorporated herein by reference. Most of the 10 disclosure of that application is also included herein, however, reference may be made to the specification of application no. 2010238556 as filed or accepted to gain further understanding of the invention claimed herein. 15 Field The present invention relates to a storage method for a gaming machine, a gaming machine, and a gaming system. 20 Background Gaming machines must meet high standards of security in order to obtain regulatory approval. This 25 presents challenges in an environment where aspects of the gaming machine may be modified dynamically. The present invention addresses one of those challenges. Summary of the Invention 30 In a first aspect the invention provides an electronic gaming machine, comprising: one or more electronic storage mediums arranged into at least two logically separate partitions, including 35 a first logical partition and a second logical partition, wherein the first logical partition is allocated to a first category of program code having a first expected 2775115_2 (GHMatters) P71108.AU.3 15/08/11 - 3 probability of code modification, and the second logical partition is allocated to a second category of program code having a second expected probability of code modification that is less than the first expected 5 probability of code modification; an authenticator configured to execute an initial authentication of all software packages stored on the first and second logical partitions during an initial system boot; 10 a modification controller arranged to receive modified program code from one or more servers, wherein the modification controller is configured to determine whether the modified program code belongs to the first category of program code or the second category of program 15 code, wherein the modification controller is configured to store the modified program code in the second logical partition if the modified program code belongs to the second category; and wherein, in response to storage of the modified 20 program code in either the first or second logical partitions by the modification controller, the authenticator re-authenticates only the entire logical partition of the first and second logical partitions in which the modified program code is stored, including all 25 software packages stored on the logical partition, prior to executing the stored modified program code, wherein the modified program code is executed from the re authenticated logical partition after any authentication of the local partition during the initial system boot and 30 prior to any subsequent system boot. In an embodiment, the authenticator authenticates each logically separate partition at least each time the gaming machine is booted. 35 In an embodiment, the authenticator authenticates each software package at least each time the gaming 2775115_2 (GHMatters) P71108.AU.3 15/08/11 -4 machine is booted. Depending on the embodiment a modification may comprise an addition of program code to the storage area, s replacement of program code to the storage area, or an update to program code to the storage area. In an embodiment, the first category of program code is game code. 10 In an embodiment, there are three categories of program code stored in logically separate storage areas to one another, game code, core code and system code. 15 In an embodiment, there are three logically separate storage areas. In an embodiment, the logically separate storage areas are on the same storage medium. 20 In a second aspect the invention provides a method for use in an electronic gaming machine, the method comprising the steps of: arranging one or more electronic storage mediums 25 into at least two logically separate partitions, including a first logical partition and a second logical partition, wherein the first logical partition is allocated to a first category of program code having a first expected probability of code modification, and the second logical 30 partition is allocated to a second category of program code having a second expected probability of code modification that is less than the first expected probability of code modification; using an authenticator, executing an initial 35 authentication of all software packages stored on the first and second logical partitions during an initial system boot; 2775115_2 (GHMatters) P71108.AU.3 15/08/11 - 5 using a modification controller, receiving modified program code from one or more servers, wherein the modification controller is configured to determine whether the modified program code belongs to the first 5 category of program code or the second category of program code, wherein the modification controller is configured to store the modified program code in the second logical partition if the modified program code belongs to the second category; and io wherein, in response to storage of the modified program code in either the first or second logical partitions by the modification controller, the authenticator re-authenticates only the entire logical partition of the first and second logical partitions in is which the modified program code is stored, including all software packages stored on the logical partition, prior to executing the stored modified program code, wherein the modified program code is executed from the re authenticated logical partition after any authentication 20 of the local partition during the initial system boot and prior to any subsequent system boot. In an embodiment, the method comprises the authenticator authenticating each logically separate 25 partition at least each time the gaming machine is booted. In an embodiment, the method comprises the authenticator authenticating each software package at least each time the gaming machine is booted. 30 Depending on the embodiment, the modifying program code may add to existing program code, replace existing program code and/or update existing program code. 35 27751152 (GHMatters) P71108.AU.3 15/08/11 - 6 Brief Description of the Invention An exemplary embodiment of the invention will now be described in relation to the following drawings in which: 5 Figure 1 is a perspective view of a gaming machine; Figure 2 is a schematic diagram of the main 10 components of the gaming machine that relate to implementation of the security method; and Figure 3 shows a flow chart of the method of the embodiment. 15 Detailed Description Referring to the drawings, there is shown a gaming system incorporating an electronic gaming machine 20 arranged to implement a storage method in which program code is categorized and program code of different categories is stored in logically separate storage areas ("partitions"). 25 2775115_2 (GHMatters) P71108.AU.3 15/08/11 - 7 A gaming machine 10 is illustrated in Figure 1. The gaming machine 10 includes a console 12 having a display 14 on which is displayed representations of a game 5 16 that can be played by a player. A mid-trim 20 of the gaming machine 10 houses a bank of buttons 22 for enabling a player to interact with the gaming machine, in particular during game play. The mid-trim 20 also houses a credit input mechanism 24 which in this example includes 10 a coin input chute 24A and a bill collector 24B. Other credit input mechanisms may also be employed, for example, a card reader for reading a smart card, debit card or credit card. A reading device may also be provided for the purpose of reading a player tracking device, for 15 example as part of a loyalty program. The player tracking device may be in the form of a card, flash drive or any other portable storage medium capable of being read by the reading device. 20 A top box 26 may carry artwork 28, including for example pay tables and details of bonus awards and other information or images relating to the game. Further artwork and/or information may be provided on a front panel 29 of the console 12. A coin tray 30 is mounted 25 beneath the front panel 29 for dispensing cash payouts from the gaming machine 10. The display 14 shown in Figure 1 is in the form of a video display unit, particularly a cathode ray tube 30 screen device. Alternatively, the display 14 may be a liquid crystal display, plasma screen, any other suitable video display unit, or the visible portion of an electromechanical device. The top box 26 may also include a display, for example a video display unit, which may be 35 of the same type as the display 14, or of a different type. 2775115_ 1 (GHManers) P71108.AU3 15/08/11 -8 As illustrated in Figures 2, a gaming system 200 has a electronic gaming machine 220 having a central processing unit (CPU) 240 and a content server 260. Figure 2 illustrates the embodiment in respect of an example of a 5 single electronic gaming machine and a single content server. A person skilled in the art will appreciate that in practice that there will be a plurality of electronic gaming machines each in data communication with a content server and that there may be a number of different 10 configurations of the content server. For example, there may be a plurality of content servers providing the same content or there may be a content servers dedicated to specific content. For example, Figure 2 shows the content server having two separate functions of an update 15 controller 270 and a game request handler 280 which could be handled by separate content servers. Referring to Figure 2, the electronic gaming machine 220 has a storage medium 230 and stores code in 20 three separate partitions 231,232,233. In the embodiment the code is divided into three categories, core code stored in a core code partition 231, which contains commercially available software under general public licence (which may be modified to some extent to suit a 25 gaming environment); system code stored in a system code partition 232 which contains gaming specific device drivers, an audio visual library, an emulator, communication software and market related modules of software; and game code stored as one or more game code 30 packages in a game code partition 233 which provides game logic, mathematics and multimedia resources required for a specific game to be played on the electronic gaming machine. 35 The CPU 240 executes an authentication function 244. Prior to execution of any of the code 231, 232, 233, the authenticator 244 authenticates this code. 2775115_I (GHMatters) P71 08.AU.3 S/08/11 -9 The CPU also executes a data modification controller function 242 which determines whether any of the code in the storage medium 230 is to be modified, 5 controls the updating, removal, replacement or addition to that code and also ensures that if there is any modifying code received that this results in the authenticator 244 authenticating the program code that modified the partition prior to execution of that program code. In the 10 embodiment it is envisaged that code will be modified in two ways. A first form of modification arises because the size of the storage medium inherently impose limits on the 15 amount of software that can be stored thereon. The storage medium may be compact flash, a hard drive or similar. Accordingly, it is envisaged that not all games playable on the gaming machine 220 will be stored on the gaming machine. Therefore, the player interface 250 of 20 the electronic gaming machine 220 includes a game request input mechanism 252 to allow the player to select a game which is not be currently resident in the game code 233 of the gaming machine 220. This game request is sent from the player interface 250 to the data modification 25 controller 242 which will pull the requested game from the content server 260. A game request handler 280 of the content server 260 obtains the game code from a game code database 282 30 and sends it to the gaming machine 220 as a game code package. The data modification controller 242 determines that this game code package is to be written to the game code partition 233, writes the code to the game code partition 233 and advises the authenticator 244 that the 35 game code partition 233 has been modified. The authenticator then authenticates the game code package 233 prior to the CPU executing the game code and allowing the 2775115_1 (GHMatters) P71OSAU.3 15/08/11 - 10 player to play the game specified by the game code. In a variation of the above embodiment, the authenticator authenticates all software packages in a 5 partition if any modification is made to the partition. In an example, this may be done by re-authenticating the entire partition. Accordingly, code such as game code which is 10 expected to be modified more frequently than other code can be stored in a separate partition or partitions to other code. A person skilled in the art will appreciate that the core code or system code would not necessarily need to be kept in separate partitions. However there are 15 some commercial advantages in keeping system specific code separate from general purpose code. In particular, keeping this code separate allows it to be approved by regulators in isolation of approval of the game code and also in isolation of one another. 20 The second form of code modification which is anticipated is where it is determined code contained within the gaming machine and in particular core and system code requires an update or a patch. Thus, the 25 update controller 270 may determine based on a current machine status stored in a database 276 that a particular electronic gaming machine needs an update of components of core and system code 272, 274. The update controller pushes this data to the data modification controller 242 30 which recognises that both the core 231 and system 232 code requires modification. The data modification controller writes the updated program code to the partitions that hold the core and system code and advises (or launches) the authenticator to have it authenticate 35 the modified partition. A person skilled in the art will appreciate that 27751 15_ (GHMatters) P71 108 AU3 15/08/11 - 11 in some embodiments there may be more than the three partitions outlined above. For example, two partitions for game code and one for each of system and core code. 5 The method is shown in more detail in Figure 3. A step 310 the program code is stored in three partitions. Start up occurs at step 320 following which the code of all partitions is authenticated 330. During the start up process, a master public key is made available to the CPU. 10 Manifest files are provided for the core code, the system code and each game code package. For example, there may be a Game A package and a Game B package. Each manifest file contains a list of files contained in the package and a DSA signed cumulative hash of the files, signed with a 15 master private key. The CPU checks that all listed files are present, calculates a HMAC SHA-1 hash of each listed file, calculates a cumulative hash and verifies the cumulative hash against the digitally signed cumulative hash using the master public key. At step 350 modifying 20 code is received. As described above, this may be as a result of an update being determined by a content server or as a result of a player request to a game 340. At step 360 the method involves determining which partition needs to be updated and the code is written to the partition at 25 step 370. The code written to the modified partition will have a manifest file with a cumulative hash and is authenticated 380 using the same technique described above, prior to execution of code from the partition 390. 30 Persons skilled in the art will appreciate that there maybe variations to the authentication technique. For example, while the above embodiment employs SHA-1 hashes and DSA signatures, other cryptographic hashes and encryption techniques may be employed, for example RSA or 35 ECC. These and other variations will be apparent to 2775115_1 (GHMaters) P71 108AU.3 15/08/11 - 12 persons skilled in the art and should be considered as falling within the invention described herein. In the claims which follow and in the preceding 5 description of the invention, except where the context requires otherwise due to express language or necessary implication, the word "comprise" or variations such as "comprises" or "comprising" is used in an inclusive sense, i.e. to specify the presence of the stated features but 10 not to preclude the presence or addition of further features in various embodiments of the invention. It is to be understood that, if any prior art publication is referred to herein, such reference does not 15 constitute an admission that the publication forms a part of the common general knowledge in the art, in any country. 20 2775115_1 (GHMatters)P71108AU.3 15/08/11

Claims (18)

1. An electronic gaming machine, comprising: one or more electronic storage mediums arranged 5 into at least two logically separate partitions, including a first logical partition and a second logical partition, wherein the first logical partition is allocated to a first category of program code having a first expected probability of code modification, and the second logical 10 partition is allocated to a second category of program code having a second expected probability of code modification that is less than the first expected probability of code modification; an authenticator configured to execute an initial is authentication of all software packages stored on the first and second logical partitions during an initial system boot; a modification controller arranged to receive modified program code from one or more servers, wherein 20 the modification controller is configured to determine whether the modified program code belongs to the first category of program code or the second category of program code, wherein the modification controller is configured to store the modified program code in the second logical 25 partition if the modified program code belongs to the second category; and wherein, in response to storage of the modified program code in either the first or second logical partitions by the modification controller, the 30 authenticator re-authenticates only the entire logical partition of the first and second logical partitions in which the modified program code is stored, including all software packages stored on the logical partition, prior to executing the stored modified program code, wherein the 35 modified program code is executed from the re authenticated logical partition after any authentication of the local partition during the initial system boot and 2775115_2 (GHMatters) P71 I08.AU.3 15/08/11 - 14 prior to any subsequent system boot.
2. An electronic gaming machine as claimed in claim 1, wherein the authenticator authenticates each logically s separate partition at least each time the gaming machine is booted.
3. An electronic gaming machine as claimed in claim 1, wherein the authenticator authenticates each software 10 package at least each time the gaming machine is booted.
4. An electronic gaming machine as claimed in claim 1, wherein a modification comprises one or more of an addition of program code to the respective logical 15 partition, replacement of program code to the respective logical partition, or an update to program code to the respective logical partition.
5. An electronic gaming machine as claimed in claim 20 1, wherein the first category of program code is game code.
6. An electronic gaming machine as claimed in claim 1, comprising three categories of program code stored in 25 logically separate partitions, wherein the program code comprises game code, core code and system code.
7. An electronic gaming machine as claimed in claim 1, wherein there are three logically separate partitions. 30
8. An electronic gaming machine as claimed in claim 1, wherein the logically separate partitions are on the same storage medium. 35
9. A method for use in an electronic gaming machine, the method comprising the steps of: arranging one or more electronic storage mediums 27751152 (GHMatters) P71108AU.3 15/08/11 - 15 into at least two logically separate partitions, including a first logical partition and a second logical partition, wherein the first logical partition is allocated to a first category of program code having a first expected 5 probability of code modification, and the second logical partition is allocated to a second category of program code having a second expected probability of code modification that is less than the first expected probability of code modification; io using an authenticator, executing an initial authentication of all software packages stored on the first and second logical partitions during an initial system boot; using a modification controller, receiving 15 modified program code from one or more servers, wherein the modification controller is configured to determine whether the modified program code belongs to the first category of program code or the second category of program code, wherein the modification controller is configured to 20 store the modified program code in the second logical partition if the modified program code belongs to the second category; and wherein, in response to storage of the modified program code in either the first or second logical 25 partitions by the modification controller, the authenticator re-authenticates only the entire logical partition of the first and second logical partitions in which the modified program code is stored, including all software packages stored on the logical partition, prior 30 to executing the stored modified program code, wherein the modified program code is executed from the re authenticated logical partition after any authentication of the local partition during the initial system boot and prior to any subsequent system boot. 35
10. A method as claimed in claim 9, comprising the authenticator authenticating each logically separate 2775115_2 (GHMatters) P71108.AU.3 15/08/11 - 16 partition at least each time the gaming machine is booted.
11. A method as claimed in claim 9, comprising the authenticator authenticating each software package at 5 least each time the gaming machine is booted.
12. A method as claimed in claim 9, wherein a modification comprises one or more of an addition of program code to the respective logical partition, 10 replacement of program code to the respective logical partition, or an update to program code to the respective logical partition.
13. A method as claimed in claim 9, wherein the first 15 category of program code is game code.
14. A method as claimed in claim 9, comprising three categories of program code stored in logically separate partitions, wherein the program code comprises game code, 20 core code and system code.
15. A method as claimed in claim 9, wherein there are three logically separate partitions. 25
16. A method as claimed in claim 9, wherein the logically separate partitions are on the same storage medium.
17. An electronic gaming machine substantially as 30 herein described.
18. A method for use in an electronic gaming machine substantially as herein described. 2775115_2 (GHMatters) P71108.AU.3 15/08/11
AU2011211454A 2007-03-29 2011-08-15 A storage method for a gaming machine Active AU2011211454B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2011211454A AU2011211454B2 (en) 2007-03-29 2011-08-15 A storage method for a gaming machine

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2007901687 2007-03-29
AU2010238556A AU2010238556B2 (en) 2007-03-29 2010-10-29 A storage method for a gaming machine
AU2011211454A AU2011211454B2 (en) 2007-03-29 2011-08-15 A storage method for a gaming machine

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
AU2010238556A Division AU2010238556B2 (en) 2007-03-29 2010-10-29 A storage method for a gaming machine

Publications (2)

Publication Number Publication Date
AU2011211454A1 AU2011211454A1 (en) 2011-09-08
AU2011211454B2 true AU2011211454B2 (en) 2013-12-19

Family

ID=45439833

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2011211454A Active AU2011211454B2 (en) 2007-03-29 2011-08-15 A storage method for a gaming machine

Country Status (1)

Country Link
AU (1) AU2011211454B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001099067A2 (en) * 2000-06-16 2001-12-27 International Game Technology Using a gaming machine as a server
EP1679634A2 (en) * 2002-07-05 2006-07-12 Cyberscan Technology Inc. Secure game download
WO2006091252A2 (en) * 2005-02-24 2006-08-31 Bally Gaming, Inc. System and method for an alterable storage media in a gaming machine
US20070032288A1 (en) * 2000-10-19 2007-02-08 Igt Remote configuration of gaming terminals

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001099067A2 (en) * 2000-06-16 2001-12-27 International Game Technology Using a gaming machine as a server
US20070032288A1 (en) * 2000-10-19 2007-02-08 Igt Remote configuration of gaming terminals
EP1679634A2 (en) * 2002-07-05 2006-07-12 Cyberscan Technology Inc. Secure game download
WO2006091252A2 (en) * 2005-02-24 2006-08-31 Bally Gaming, Inc. System and method for an alterable storage media in a gaming machine

Also Published As

Publication number Publication date
AU2011211454A1 (en) 2011-09-08

Similar Documents

Publication Publication Date Title
US9842464B2 (en) Storage method for a gaming machine
US9063752B2 (en) Security method
US8407147B2 (en) Gaming machine
US20230266855A1 (en) Gaming system and gaming system processor module
US8777738B2 (en) System and method for an extensible boot image for electronic gaming machines
US20130053137A1 (en) Authenticating gaming machine content
AU2011211454B2 (en) A storage method for a gaming machine
AU2009200139B2 (en) A method of processing a user data card, an interface module and a gaming system
US20230350981A1 (en) Creating license dongles in the field
US20120208635A1 (en) Method and gaming device for controlling use of one or more peripheral devices
AU2017200604B2 (en) A gaming machine
US20210091959A1 (en) Segment-based file authentication
AU2012200531B2 (en) A method of processing a user data card, an interface module and a gaming system
AU2011253943A1 (en) A gaming machine
AU2012211355A1 (en) A method and gaming device for controlling use of one or more peripheral devices
AU2012200217A1 (en) A method and system for setting display resolution

Legal Events

Date Code Title Description
FGA Letters patent sealed or granted (standard patent)