AUTHENTICATION METHOD, AUTHENTICATION PROGRAM MEDIUM, AND INFORMATION PROCESSING APPARATUS
An information processing apparatus includes: a memory configured to store identification information on authentication data in association with location information on a slot, the authentication data being for determining a validity of a first program for initializing an extension card in the slot, and a validity of a second program which is stored in a storage coupled to the extension card and is for initializing an operating system; and a processor coupled to the memory and configured to execute a process including; identifying the authentication data using first identification information stored in the memory in association with location information on a first slot specified as chosen, and determining whether or not the first program, read from a first extension card in the first slot, and the second program, read from a first storage coupled to the first extension card, are valid using the authentication data.
Latest FUJITSU LIMITED Patents:
- COMPUTER-READABLE RECORDING MEDIUM STORING PROGRAM, DATA PROCESSING METHOD, AND DATA PROCESSING APPARATUS
- FORWARD RAMAN PUMPING WITH RESPECT TO DISPERSION SHIFTED FIBERS
- ARTIFICIAL INTELLIGENCE-BASED SUSTAINABLE MATERIAL DESIGN
- MODEL GENERATION METHOD AND INFORMATION PROCESSING APPARATUS
- OPTICAL TRANSMISSION LINE MONITORING DEVICE AND OPTICAL TRANSMISSION LINE MONITORING METHOD
This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2016-026721, filed on Feb. 16, 2016, the entire contents of which are incorporated herein by reference.
FIELDThe embodiment discussed herein is related to a system activation technique.
BACKGROUNDIn the process of activating a sever, a basic input/output system (BIOS) loads an extensible firmware interface (EFI) driver from a peripheral component interconnect (PCI) card, and initializes the PCI card using the thus-loaded EFI driver. In a case where an operating system (OS) is installed in a device (for example, a hard disk drive (HDD) or a digital versatile disc (DVD) drive) coupled to the PCI card, the OS may be activated by executing an OS loader because the OS loader is installed in the device.
As for the OS activation, the unified extensible firmware interface (UEFI) specification defines a technique termed as secure boot. In the secure boot, the validities of the EFI driver and the OS loader are checked using an authentication key stored in a non-volatile random access memory (NVRAM). The authentication key for secure boot is a public key or a hash key. The validities of digital signatures included in the EFI driver and the OS loader are checked using public keys. Otherwise, the validities of the EFI driver itself and the OS loader itself are valid is checked using hash values.
Among authentication keys used for secure boot, there is an authentication key that supports the authentication of the EFI drivers of multiple types of PCI cards and the OS loaders of multiple types of OSs. The use of that authentication key makes it possible to avoid the execution of EFI drivers and OS loaders which have been tampered with. However, if there are an EFI driver and an OS loader whose validities may be confirmed using an authentication key of such a type, the OS of a device, even albeit being a third party's one, may be activated using the EFI driver or the OS loader. Furthermore, a maintenance specialist may mistakenly activate a business OS in a case where the maintenance specialist has to activate an OS specialized for maintenance, such as a maintenance tool.
Related art are disclosed in Japanese Laid-open Patent Publication Nos. 2007-66216 and 2010-108313, and Japanese National Publication of International Patent Application No. 2007-525756. However, no conventional art has paid attention to the above problems.
Even if the EFI driver and the OS loader for the OS activation are authenticated using the authentication key for the security purpose, there is likelihood that the EFI driver and the OS loader are inevitably activated by an unwanted EFI driver and an unwanted OS loader.
An object of an aspect of the disclosure is to provide a technique for disabling a wrong device from activating an OS.
SUMMARYAccording to an aspect of the invention, an information processing apparatus includes: a memory configured to store identification information on authentication data in association with location information on a slot, the authentication data being for determining a validity of a first program for initializing an extension card in the slot, and a validity of a second program which is stored in a storage coupled to the extension card and is for initializing an operating system; and a processor coupled to the memory and configured to execute a process including; identifying the authentication data using first identification information stored in the memory in association with location information on a first slot specified as chosen, and determining whether or not the first program, read from a first extension card in the first slot, and the second program, read from a first storage coupled to the first extension card, are valid using the authentication data.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
A central processing unit (CPU) 13 is coupled to the PCH 11, and executes the program of the BIOS 120, EFI drivers 1e to 3e, an OS loader 170 and the like by reading them into a memory 14. The memory 14 is, for example, a main memory, and is coupled to the CPU 13. A PCI switch 15 is coupled to the CPU 13 relays data between the CPU 13 and PCI cards 1c to 3c. The PCI cards 1c to 3c are extension cards to be inserted in PCI slots. The storage of the PCI card 1c stores the EFI driver 1e; the storage of the PCI card 2c stores the EFI driver 2e; and the storage of the PCI card 3c stores the EFI driver 3e. A HDD 17 is coupled to the PCI card 1c. The HDD 17 stores the OS loader 170. Incidentally, no restriction is imposed on the number of PCI slots or the number of PCI cards. In addition, the DVD drive 16 and the HDD 17 may be external devices.
The administrative controller 10 receives inputs from users, and performs processes depending on the received inputs. The users of the embodiment include an administrator having a complete authority; an operator entitled to operate the server 1; and a maintenance specialist entitled only to check whether or not the hardware works.
The generator 103 performs a process of generating authentication data sets. The choice receiver 104 performs a process of receiving a choice of an authentication data set to be used for the system activation. The power supply controller 105 performs a process of controlling application of power supply to the system. The display processor 106 performs a process of displaying data on a screen on a display device coupled to the server 1.
Next, using
To begin with, the generator 103 of the administrative controller 10 receives an input of login information from a user (step S1 in
Once the user having inputted the login information succeeds in the login, the generator 103 determines whether or not the user is the administrator (step S3). If the user is not the administrator (step S3, No), the process proceeds to a process in step S17 in
On the other hand, if the user having inputted the login information is the administrator (step S3, Yes), the generator 103 outputs data on a screen for generating an authentication data set to the display processor 106. In response to this, the display processor 106 displays the data on the screen for generating the authentication data set on the display device (step S5).
Although the user is allowed to choose all the methods respectively corresponding to boot 1, 2, 3 in the example in
Returning to the descriptions using
The generator 103 identifies the device path for the chosen PCI slot from the device path table (step S9). In a case where the user chooses multiple boot methods, this step is performed for each boot method.
The generator 103 adds an entry including the device path identified in step S9 and a newly-assigned DB number to a device path authentication table (step S11). In the case where the use chooses multiple boot methods, the entry for each boot method is stored in the same device path authentication table. The device path authentication table is stored into a newly-generated authentication data set storage.
The generator 130 identifies the hash vale for the chosen PCI card type and the hash value for the chosen OS type from the hash table storage 102. Thereafter, the generator 130 stores the identified hash values into the DB with the DB number newly assigned in step S11 (step S13). In the case where the user chooses multiple boot methods, the hash values identified for one boot method are stored into one DB which is different from that which stores the hash values identified for the other boot method. The DB is provided to the authentication data set storage storing the device path authentication table. The process proceeds to a process in step S17 in
Using
Proceeding to descriptions using
On the other hand, if the user having inputted the login information is the operator (step S17, Yes), the choice receiver 104 outputs data on a screen for a boot method choice on the display processor 106. In response to this, the display processor 106 displays the data on the screen for the boot method choice (step S19).
Returning to the descriptions using
The power supply controller 105 instructs the display processor 106 to display data on a screen for power supply control. In response to this, the display processor 106 displays the data on the screen for power supply control (step S23).
The power supply controller 105 receives an input of a power-on instruction from the user who has checked the screen for power supply control (step S25). With this, the processes are completed.
The foregoing processes make it possible to restrict users' operations according to the user types, and accordingly to inhibit the activation of the system using wrong activation methods. Furthermore, the foregoing processes make it possible for the users to make a choice from the boot methods prepared in advance, and accordingly to make the users less likely to mistakenly select a wrong activation method than a procedure in which the users have to choose a boot method from the beginning at any time.
Next, using
To begin with, upon receipt of the power-on instruction, the administrative controller 10 outputs a system activation instruction to the BIOS 120 (step S31 in
The BIOS 120 receives the system activation instruction from the administrative controller 10 (step S33).
The BIOS 120 initializes the CPU 13 and the memory 14 (step S35), and initializes PCI registers on the PCI cards 1c to 3c (step S37).
The BIOS 120 outputs an acquisition request for requesting acquisition of an authentication data set to the administrative controller 10 (step S39).
Upon receipt of the acquisition request from the BIOS 120, the choice receiver 104 of the administrative controller 10 reads the authentication data set associated with the boot method chosen in step S21 or the beforehand-determined boot method (for example, a boot method for activating a specialized OS, such as a maintenance tool) from the corresponding one of the authentication data set storages 1d to 3d (step S41).
The choice receiver 104 outputs the authentication data set read in step S41 to the BIOS 120 (step S43).
The authentication processor 121 of the BIOS 120 receives the authentication data set from the administrative controller 10 (step S45).
The authentication processor 121 performs a first authentication process (step S47). The first authentication process will be discussed using
To begin with, the authentication processor 121 determines whether or not the device path of the PCI slot to which a boot disk (the HDD 17 in the example in
If the object device path has not been registered in the device path authentication table included in the authentication data set (step S51, No), the authentication processor 121 returns to the process of the caller.
On the other hand, if the object device path has been registered in the device path authentication table included in the authentication data set (step S51, Yes), the authentication processor 121 identifies the DB number for the object device path from the device path authentication table (step S53).
The authentication processor 121 reads the authentication key (the hash value in the embodiment) from the DB with the DB number identified in step S53 (step S55).
The authentication processor 121 reads the EFI driver from the PCI card inserted in the PCI slot to which the boot disk is coupled, and calculates the hash value according to a predetermined algorithm (step S57).
The authentication processor 121 determined whether or not the EFI driver has been successfully authenticated depending on whether or not the hash value read in step S55 is equal to the hash value calculated in step S57 (step S59).
If the EFI driver has not been successfully authenticated (the EFI driver is not valid) (step S59, No), the authentication processor 121 returns to the process of the caller. If the EFI driver has been successfully authenticated (the EFI driver is valid) (step S59, Yes), the authentication processor 121 loads the EFI driver read from the PCI card into the memory 14, and initializes the PCI card (step S61). Thereafter, the authentication processor 121 returns to the process of the caller.
Returning to the descriptions using
To begin with, the authentication processor 121 determines whether or not the device path of the PCI slot to which the boot disk is coupled (hereinafter referred to as an “object device path”) has been registered in the device path authentication table included in the authentication data set received in step S45 (step S71 in
If the object device path has not been registered in the device path authentication table included in the authentication data set (step S71, No), the authentication processor 121 returns to the process of the caller.
On the other hand, if the object device path has been registered in the device path authentication table included in the authentication data set (step S71, Yes), the authentication processor 121 identifies the DB number for the object device path from the device path authentication table (step S73).
The authentication processor 121 reads the authentication key (the hash value in the embodiment) from the DB with the DB number identified in step S73 (step S75).
The authentication processor 121 reads the OS loader 170 from the boot disk, and calculates the hash value according to a predetermined algorithm (step S77).
The authentication processor 121 determined whether or not the OS loader 170 has been successfully authenticated depending on whether or not the hash value read in step S75 is equal to the hash value calculated in step S77 (step S79).
If the OS loader 170 has not been successfully authenticated (the OS loader 170 is not valid) (step S79, No), the authentication processor 121 returns to the process of the caller. If the OS loader 170 has been successfully authenticated (the OS loader 170 is valid) (step S79, Yes), the authentication processor 121 loads the OS loader 170 read from the boot disk into the memory 14, and executes the OS loader 170 (step S81). Thereby, the authentication processor 121 activates the OS. Thereafter, the authentication processor 121 returns to the process of the caller.
In a case where multiple DBs are included in the selected authentication data set, the authentication processor 121 performs the first authentication process and the second authentication process according to the priority until the authentication processor 121 succeeds in booting.
The foregoing processes make it possible to take into consideration not only whether or not the EFI driver and the OS driver are valid, but also where the slot location is. Accordingly, wrong devices are not allowed to activate the operating system.
The following five problems are assumed to arise in a case where the method of the embodiment is not used; but the use of the method of the embodiment makes it to overcome these problems.
(1) An EFI driver and an OS loader are supposed to be authenticated using the associated authentication keys in the NVRAM when secure boot is enabled. In reality, however, the EFI drivers of all the PCI cards, as well as the OS loaders of the Redhat Linux (Registered Trademark) OS, the SUSE Linux OS and the like may be authenticated using the authentication key in the form of a public key offered by Microsoft (Registered Trademark). As a result, although the EFI drivers and OS loaders having been tampered with are disabled from being executed, there is a problem that if a third party loads an image of an OS which may be activated using the key offered by Microsoft in a DVD or the like, the third party may activate the OS using the thus-loaded DVD or the like. Moreover, there is likelihood that the maintenance specialist mistakenly activates the business OS instead of executing the maintenance tool.
(2) The problems with secure boot raised in (1) would be countered, if the server administrator could create hash values from a specific EFI driver and a specific OS loader, registered the thus-created hash values as the authentication keys to the DB, and thereby made only the specific EFI driver and the specific OS loader executable. In reality, however, the server administrator may select no specific EFI driver or no specific OS loader because the vendor rarely offers the EFI driver and the OS loader.
(3) When secure boot is enabled, whether or not the authentication may be performed is determined using the digital signatures or hash values of the EFI driver and the OS loader. Since information on the location of the PCI card is not used for the determination the problem raised in (2) might be solved. However, the server administrator still may not activate the OS only from the PCI card inserted in the location, which is arbitrary.
(4) There is a server which offers a function of invalidating a DVD or a specific PCI card in a case where the OS is prohibited from being activated from the device. However, if the function is used once, the device will be no longer usable after the OS activation. In addition, there is likelihood that the hardware specification makes it impossible to invalidate the device.
(5) As described above, in a usual server, the EFI driver initializes all the inserted PCI cards. After initializing the PCI cards, the EFI driver adds menus for setting the PCI cards to the BIOS menu. The setting is performed for each PCI card port. For this reason, the setting menus to be added to the BIOS menu are as many as the ports. Since the setting menu is displayed for each card port, a server with many PCI cards inserted therein clutters the setting screen with menus for setting the PCI cards which are displayed on the setting screen albeit unnecessary for the activation. For example, 80 setting menus are registered in the BIOS when 20 network controllers each with four ports are installed in the server.
The foregoing descriptions have been provided for the embodiment. The embodiment is not the only one. For example, there is a case where the functional block configuration of the above-described administrative controller 10 does not coincide with the actual program module configuration.
Furthermore, the configurations of the respective tables discussed above are examples. The tables do not have to have the configurations discussed above. In addition, as for the process flow, the process sequence may be changed if the process results remain unchanged. Moreover, the processes may be performed in parallel.
The employment of the above-described configurations would otherwise request BIOS settings to be prepared respectively in the authentication data set storages 1d to 3d. However, for example, as illustrated in
In addition, in a case where the information specifying a PCI slot is not received from the administrator, the authentication data set may include no device path authentication table.
The embodiment discussed above may be summarized as follows.
An information processing apparatus of a first aspect of the embodiment includes: (A) a data storage configured to store identification information on authentication data in association with location information on a slot, the authentication data being for determining the validity of a first program for initializing an extension card in the slot, and the validity of a second program which is stored in a storage coupled to the extension card and is for initializing an operating system; and (B) an authenticator configured to identify the authentication data using first identification information stored in the data storage in association with the location information on a first slot specified as chosen, and to determine whether or not the first program read from a first extension card in the first slot, and the second program read from a first storage coupled to the first extension card are valid using the authentication data.
The information processing apparatus is capable of taking into consideration not only whether or not the first program and the second program are valid, but also where the location on the slot is. Accordingly, the information processing apparatus is capable of disabling the operating system from being activated from wrong storages.
Furthermore, the above-described authentication data may include: first authentication data for determining the validity of the first program read from the first extension card; and second authentication data for determining the validity of the second program read from the first storage. In addition, (b1) in a case where the authenticator determines that the first program read from the first extension card is valid using the first authentication data, the authenticator may determine the validity of the second program read from the first storage using the second authentication data. Thereby, it is possible to appropriately determine the validities of the first program and the second program.
The information processing apparatus may further include (C) a display processor configured to, upon receipt of input of login information, display data on a first screen for prompting a user to create an activation method, or a second screen for receiving information specifying an activation method, on a display device depending on a user type identified by data included in the login information. Thereby, it is possible to allow the user to create or specify the activation method.
The information processing apparatus may further include (D) a first receiver configured to, upon receipt of information specifying a location of a slot, an extension card type and a type of the operating system from the user having confirmed the data on the first screen, store the identification information on the authentication data into the data storage in association with the location information on the slot specified, the authentication data being for determining the validity of the first program read from the specified extension card, and the validity of the second program for activating the specified operating system.
The information processing apparatus may further include (E) a second receiver configured to receive information specifying a location of the first slot, a type of the extension card inserted in the first slot, and a type of the operating system from the user having confirmed the data on the second screen. Thereby, the information processing apparatus is capable of being activated using the activation method specified by the user.
An authentication method of a second aspect of the embodiment includes processes of: (F) in a data storage configured to store identification information on authentication data in association with location information on a slot, the authentication data being for determining the validity of a first program for initializing an extension card in the slot, and the validity of a second program which is stored in a storage coupled to the extension card and is for initializing an operating system, identifying the authentication data using first identification information stored in the data storage in association with location information on a first slot specified as chosen; and (G) determining whether or not the first program read from a first extension card in the first slot, and the second program read from a first storage coupled to the first extension card are valid using the identified authentication data.
A program for causing a processor to execute the processes of the above method may be created; and the programs are stored in a computer-readable storage medium or storage such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory or a hard disk. Incidentally, results of intermediate processes are temporarily stored in a storage such as the main memory.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment of the present invention has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Claims
1. An information processing apparatus comprising:
- a memory configured to store identification information on authentication data in association with location information on a slot, the authentication data being for determining a validity of a first program for initializing an extension card in the slot, and a validity of a second program which is stored in a storage coupled to the extension card and is for initializing an operating system; and
- a processor coupled to the memory and configured to execute a process comprising;
- identifying the authentication data using first identification information stored in the memory in association with location information on a first slot specified as chosen, and
- determining whether or not the first program, read from a first extension card in the first slot, and the second program, read from a first storage coupled to the first extension card, are valid using the authentication data.
2. The information processing apparatus according to claim 1, wherein
- the authentication data includes;
- first authentication data for determining the validity of the first program read from the first extension card; and
- second authentication data for determining the validity of the second program read from the first storage, and
- in the determining, the first program read from the first extension card is determined valid using the first authentication data, and the second program read from the first storage is determined valid using the second authentication data.
3. The information processing apparatus according to claim 1, the process further comprising
- displaying on a display, upon receipt of input of login information, a first screen for prompting a user to create an activation method or a second screen for receiving information specifying an activation method, depending on a user type identified by data included in the login information.
4. The information processing apparatus according to claim 3, the process further comprising
- upon receiving of information specifying a location of a slot, an extension card type, and a type of the operating system from the user having created the activation method on the first screen, storing the identification information on the authentication data into the memory in association with the location information on the slot specified.
5. The information processing apparatus according to claim 3, the process further comprising
- receiving information specifying a location of the first slot, a type of the extension card inserted in the first slot, and a type of the operating system from the user having confirmed the second screen.
6. An authentication method causing a computer to execute processing comprising:
- identifying, in a memory configured to store identification information on authentication data in association with location information on a slot, the authentication data being for determining the validity of a first program for initializing an extension card in the slot, and the validity of a second program which is stored in a storage coupled to the extension card and is for initializing an operating system, the authentication data using first identification information stored in the memory in association with location information on a first slot specified as chosen; and
- determining whether or not the first program, read from a first extension card in the first slot, and the second program, read from a first storage coupled to the first extension card, are valid using the identified authentication data.
7. A computer-readable and non-transitory storage medium storing an authentication program causing a computer to execute processing comprising:
- identifying, in a memory configured to store identification information on authentication data in association with location information on a slot, the authentication data being for determining the validity of a first program for initializing an extension card in the slot, and the validity of a second program which is stored in a storage coupled to the extension card and is for initializing an operating system, the authentication data using first identification information stored in the memory in association with location information on a first slot specified as chosen; and
- determining whether or not the first program, read from a first extension card in the first slot, and the second program, read from a first storage coupled to the first extension card, are valid using the identified authentication data.
Type: Application
Filed: Dec 20, 2016
Publication Date: Aug 17, 2017
Applicant: FUJITSU LIMITED (Kawasaki-shi)
Inventor: Hisanori IIJIMA (Yokohama)
Application Number: 15/384,845