Patent Description:
A technology of updating a basic input output system (BIOS) of an information processing apparatus, such as a personal computer, is known (for example, see <CIT>). In addition, in recent years, with the extension of a function of the BIOS, a storage capacity of a BIOS memory that stores the program of the BIOS is increased, and it is proposed to store a part of the program of the BIOS in a solid state drive (SSD).

In an information processing system in the related art that updates the BIOS, it is difficult to easily incorporate, for example, a service prepared by a user, such as a company, into the BIOS, and there is a demand for a technology of more securely and easily extending the function of the BIOS.

The present invention has been made to solve the above problems, and is to provide an information processing system and a BIOS update method capable of more securely and easily extending function of the BIOS.

In order to solve the above problem, an information processing system according to a first aspect of the present invention includes a server apparatus that encapsulates a program of an extended function of a basic input output system (BIOS) to which a signature of a user is assigned, assigns a signature of a server manager to an encapsulated capsule file, and provides the capsule file to an information processing apparatus, and the information processing apparatus, in which the information processing apparatus includes a BIOS storage unit that stores a program of the BIOS, and a BIOS processing unit that extracts the program of the extended function from the capsule file to store the program of the extended function in the BIOS storage unit in a case in which validity of the capsule file acquired from the server apparatus is confirmed based on the signature of the server manager, permits execution of the program of the extended function in a case in which validity of the program of the extended function is confirmed based on a signature certificate of the user and the signature of the user, and prohibits execution of the program of the extended function in a case in which the validity of the program of the extended function is not confirmed.

In addition, in the information processing system according to the above-described aspect of the present invention, the BIOS storage unit may include a BIOS memory that is a rewritable non-volatile memory, which is not connectable from an operating system (OS) without going through the BIOS, and stores at least a boot program required to start up the OS and management information of the extended function, and a BIOS area that is a partial area of a solid state drive (SSD) and is not connectable from the OS without going through the BIOS, and in a case in which the validity of the capsule file is confirmed, the BIOS processing unit may extract the program of the extended function from the capsule file to store the program of the extended function in the BIOS area.

In addition, in the information processing system according to the above-described aspect of the present invention, in a case in which the management information of the extended function is stored in the BIOS memory and the program of the extended function is not stored in the BIOS area when the BIOS is started up, the BIOS processing unit may reacquire the capsule file corresponding to the program of the extended function from the server apparatus.

In addition, in the information processing system according to the above-described aspect of the present invention, in a case in which the signature certificate of the user is not stored in the BIOS memory, the BIOS processing unit may prohibit execution of the program of the extended function.

In addition, in the information processing system according to the above-described aspect of the present invention, the server apparatus may include an update file storage unit that stores the capsule file to which the signature of the server manager is assigned, and a distribution processing unit that transmits, in response to a distribution request for the capsule file, the capsule file corresponding to the distribution request to the information processing apparatus.

In addition, in the information processing system according to the above-described aspect of the present invention, in a case in which the validity of the capsule file is confirmed when the information processing apparatus is restarted up after storing the capsule file acquired from the server apparatus in an area different from the BIOS area of the SSD, the BIOS processing unit may extract the program of the extended function from the capsule file, and store the program of the extended function in the BIOS area.

In addition, a basic input output system (BIOS) update method according to a second aspect of the present invention of updating a BIOS of an information processing apparatus including a BIOS storage unit that stores a program of the BIOS includes a distribution step of, via a server apparatus, encapsulating a program of an extended function of the BIOS to which a signature of a user is assigned, assigning a signature of a server manager to an encapsulated capsule file, and providing the capsule file to the information processing apparatus, and a BIOS processing step of, via the information processing apparatus, extracting the program of the extended function from the capsule file to store the program of the extended function in the BIOS storage unit in a case in which validity of the capsule file acquired from the server apparatus is confirmed based on the signature of the server manager, permitting execution of the program of the extended function in a case in which validity of the program of the extended function is confirmed based on a signature certificate of the user and the signature of the user, and prohibiting execution of the program of the extended function in a case in which the validity of the program of the extended function is not confirmed.

The above-described aspects of the present invention can more securely and easily extend the function of the BIOS.

Hereinafter, an information processing system and a BIOS update method according to an embodiment of the present invention will be described with reference to the drawings.

<FIG> is a schematic block diagram illustrating an example of a configuration of an information processing system <NUM> according to the present embodiment.

As illustrated in <FIG>, the information processing system <NUM> includes a laptop personal computer (laptop PC) <NUM>, a server apparatus <NUM>, and a user terminal apparatus <NUM>.

It should be noted that, in the present embodiment, the laptop PC <NUM> will be described as an example of the information processing apparatus.

The laptop PC <NUM>, the user terminal apparatus <NUM>, and the server apparatus <NUM> can be connected to each other via a network NW1.

The server apparatus <NUM> is a server apparatus that can be connected from the laptop PC <NUM> and the user terminal apparatus <NUM>, and is a server apparatus managed by a manufacturer, a vender, or a supplier that manufactures, sells, or provides the laptop PC <NUM>. The server apparatus <NUM> provides a BIOS update service, such as updating a program of a BIOS of the laptop PC <NUM> or adding a BIOS application, which is a program of extending a function of the BIOS (hereinafter, referred to as a BIOS app).

It should be noted that, in the present embodiment, a manager of the server apparatus <NUM> is a manufacturer, a vender, or a supplier. In addition, a user is a company, an association, an organization, or the like that uses the laptop PC <NUM>.

In addition, in the present embodiment, the BIOS app (extended function of the BIOS) is a program provided by the user.

The server apparatus <NUM> encapsulates, for example, the program of the BIOS app (extended function of the BIOS) to which a signature of the user is assigned, assigns a signature of a server manager to an encapsulated capsule file, and provides the capsule file to the laptop PC <NUM>. It should be noted that the details of the configuration of the server apparatus <NUM> will be described below.

The user terminal apparatus <NUM> is a terminal apparatus owned by the user (company, association, organization, or the like) who uses and manages the laptop PC <NUM> and is, for example, a personal computer (PC), a tablet terminal apparatus, or the like. The user terminal apparatus <NUM> can be connected to the server apparatus <NUM> via the network NW1, and registers the BIOS app provided by the user with the server apparatus <NUM> via the network NW1. It should be noted that, in a case in which the user terminal apparatus <NUM> registers the BIOS app with the server apparatus <NUM>, the user terminal apparatus <NUM> assigns the signature of the user to the BIOS app, and registers the BIOS app with the server apparatus <NUM>. In addition, the details of the configuration of the user terminal apparatus <NUM> will be described below.

The laptop PC <NUM> (an example of an information processing apparatus) is a PC that is a target of update processing of the BIOS. The laptop PC <NUM> is, for example, an apparatus managed by the user (company, association, organization, or the like), and a person who uses the laptop PC <NUM> is, for example, a person who belongs to the user (company, association, organization, or the like). In addition, the laptop PC <NUM> can be connected to the server apparatus <NUM> via the network NW1, and receives an update program, such as the BIOS app, provided from the server apparatus <NUM> via the network NW1.

Here, a main hardware configuration of the laptop PC <NUM> will be described with reference to <FIG>.

<FIG> is a diagram illustrating an example of the main hardware configuration of the laptop PC <NUM> according to the present embodiment.

As illustrated in <FIG>, the laptop PC <NUM> includes a central processing unit (CPU) <NUM>, a main memory <NUM>, a video subsystem <NUM>, a display unit <NUM>, a chipset <NUM>, a BIOS memory <NUM>, a solid state drive (SSD) <NUM>, an audio system <NUM>, a wireless local area network (WLAN) card <NUM>, a universal serial bus (USB) connector <NUM>, an embedded controller <NUM>, an input unit <NUM>, and a power supply circuit <NUM>.

It should be noted that, in the present embodiment, the CPU <NUM> and the chipset <NUM> correspond to a main control unit <NUM>. In addition, the main control unit <NUM> is an example of a processor (main processor) that executes a program stored in a memory (main memory <NUM>).

The CPU <NUM> executes various arithmetic processing by program control to control the entire laptop PC <NUM>.

The main memory <NUM> is a writable memory used as a read area for an execution program of the CPU <NUM> or as a work area for writing processing data of the execution program. The main memory <NUM> is configured by, for example, a plurality of dynamic random access memory (DRAM) chips. This execution program includes the BIOS, an operating system (OS), various drivers for operating hardware of peripheral devices, various services/utilities, an application program, and the like.

The video subsystem <NUM> is a subsystem for realizing a function related to image display, and includes a video controller. The video controller processes a drawing instruction from the CPU <NUM>, writes the processed drawing information to a video memory, reads the drawing information from the video memory, and outputs the drawing information as drawing data (display data) to the display unit <NUM>.

The display unit <NUM> is, for example, a liquid crystal display, and displays a display screen based on the drawing data (display data) output from the video subsystem <NUM>. In the present embodiment, the display unit <NUM> displays an error message when the BIOS is started up or a boot menu of the BIOS.

The chipset <NUM> includes controllers, such as a USB, an serial AT attachment (ATA), a serial peripheral interface (SPI) bus, a peripheral component interconnect (PCI) bus, a PCI-Express bus, and a low pin count (LPC) bus, and is connected to a plurality of devices. In <FIG>, as an example of the device, the BIOS memory <NUM>, the SSD <NUM>, the audio system <NUM>, the WLAN card <NUM>, and the USB connector <NUM> are connected to the chipset <NUM>.

The BIOS memory <NUM> is configured by, for example, an electrically rewritable non-volatile memory, such as electrically erasable programmable read only memory (EEPROM) or a flash ROM. The BIOS memory <NUM> is, for example, an SPI memory connected to the chipset <NUM> and the embedded controller <NUM> by an SPI bus (SMBus), and stores system firmware and the like for controlling the BIOS, the embedded controller <NUM>, and the like. Details of the information stored in the BIOS memory <NUM> in the present embodiment will be described below.

The SSD <NUM> (an example of a non-volatile storage device) stores the OS, various drivers, various services/utilities, an application program, some programs of the BIOS, and various data. The SSD <NUM> is connected to the chipset <NUM> by, for example, the PCI-Express bus, and is connected to the embedded controller <NUM> by the SPI bus (SMBus). Details of the information stored in the SSD <NUM> in the present embodiment will be described below.

The audio system <NUM> records, reproduces, and outputs sound data.

The WLAN card <NUM> is connected to a network by a wireless LAN to perform data communication. The WLAN card <NUM> is, for example, connected to the server apparatus <NUM> via the network NW1, and performs data communication with the server apparatus <NUM> to download the update program of the BIOS.

The USB connector <NUM> is a connector for connecting peripheral devices by using a USB.

The embedded controller <NUM> (an example of a sub-control unit) is a one-chip microcomputer that monitors and controls various devices (peripheral devices, sensors, or the like) regardless of a system state of the laptop PC <NUM>. Also, the embedded controller <NUM> has a power supply management function of controlling the power supply circuit <NUM>. It should be noted that the embedded controller <NUM> is configured by a CPU, a ROM, a RAM, and the like (not illustrated), and also includes a plurality of channels of A/D input terminals, D/A output terminals, timers, and digital input/output terminals. For example, the BIOS memory <NUM>, the SSD <NUM>, the input unit <NUM>, the power supply circuit <NUM>, and the like are connected to the embedded controller <NUM> via these input and output terminals, and the embedded controller <NUM> controls the operations of the BIOS memory <NUM>, the SSD <NUM>, the input unit <NUM>, the power supply circuit <NUM>, and the like.

The input unit <NUM> is, for example, an input device, such as a keyboard, a pointing device, or a touch pad.

The power supply circuit <NUM> includes, for example, a DC/DC converter, a charge/discharge unit, a battery unit, an AC/DC adapter, and the like, and a direct current voltage supplied from the AC/DC adapter or the battery unit is converted into a plurality of voltages required for operating the laptop PC <NUM>. In addition, the power supply circuit <NUM> supplies power to each unit of the laptop PC <NUM> based on the control from the embedded controller <NUM>.

Hereinafter, a functional configuration of the information processing system <NUM> according to the present embodiment will be described with reference to <FIG> is a functional block diagram illustrating an example of the functional configuration of the information processing system <NUM> according to the present embodiment.

As illustrated in <FIG>, the information processing system <NUM> includes the laptop PC <NUM>, the server apparatus <NUM>, and the user terminal apparatus <NUM>. The laptop PC <NUM>, the server apparatus <NUM>, and the user terminal apparatus <NUM> can be connected to each other via the network NW1.

The user terminal apparatus <NUM> is a terminal apparatus owned by the user, and registers the BIOS app provided to the laptop PC <NUM> with the server apparatus <NUM>. The user terminal apparatus <NUM> includes a network (NW) communication unit <NUM>, an input unit <NUM>, a display unit <NUM>, a terminal storage unit <NUM>, and a terminal control unit <NUM>.

The NW communication unit <NUM> is, for example, a wireless LAN module, a LAN module, or the like, is connected to the network NW1 by network communication, such as a wireless LAN or a wired LAN, and communicates with the server apparatus <NUM>.

The input unit <NUM> is, for example, an input device, such as a touch panel, a keyboard, or a mouse, and receives various information used by the user terminal apparatus <NUM>. The input unit <NUM> receives, for example, various operation information when registering the BIOS app with the server apparatus <NUM>.

The display unit <NUM> is a display device, such as a liquid crystal display, for example, and displays various information used by the user terminal apparatus <NUM>.

The terminal storage unit <NUM> is configured by, for example, a RAM, an HDD, an SSD, or the like, and stores various information used by the user terminal apparatus <NUM>.

The terminal control unit <NUM> is, for example, a processor including a CPU, and collectively controls the user terminal apparatus <NUM>. The terminal control unit <NUM> is connected to the server apparatus <NUM> via the NW communication unit <NUM> in response to an operation by the input unit <NUM>, and executes processing of registering a program of the BIOS app for adding the function of the BIOS prepared in advance with the server apparatus <NUM>. For example, the terminal control unit <NUM> assigns the signature of the user to the program of the BIOS app, and registers the program with the server apparatus <NUM>. Here, the signature of the user is identification information for proving validity of the BIOS app, and it is possible to confirm that the BIOS app is provided by the user by confirming the signature of the user.

The server apparatus <NUM> includes a NW communication unit <NUM>, a server storage unit <NUM>, and a server control unit <NUM>.

The NW communication unit <NUM> is, for example, a wireless LAN module, a LAN module, or the like, is connected to the network NW1 by network communication, such as a wireless LAN or a wired LAN, and communicates with the laptop PC <NUM> or the user terminal apparatus <NUM>.

The server storage unit <NUM> is, for example, a storage device, such as an HDD or an SSD, and stores various information used by the server apparatus <NUM>. The server storage unit <NUM> includes, for example, an update file storage unit <NUM>.

The update file storage unit <NUM> is, for example, a storage unit realized by an HDD or an SSD, and stores an update file of the BIOS, such as the BIOS app. The update file storage unit <NUM> encapsulates, for example, the program of the BIOS app with the signature acquired from the user terminal apparatus <NUM>, and stores the capsule file to which the signature of the server manager is assigned.

The server control unit <NUM> is, for example, a processor including a CPU, and collectively controls the server apparatus <NUM>. The server control unit <NUM> includes a registration processing unit <NUM> and a distribution processing unit <NUM>.

The registration processing unit <NUM> is a functional unit realized by causing the CPU to execute the program stored in the storage unit (not illustrated). The registration processing unit <NUM> acquires the program of the BIOS app with the signature of the user from the user terminal apparatus <NUM> via the NW communication unit <NUM>, encapsulates the acquired program of the BIOS app with the signature by the signature of the server manager, and generates the capsule file to which the signature of the server manager is assigned. The registration processing unit <NUM> registers the generated capsule file by storing the capsule file in the update file storage unit <NUM>.

The distribution processing unit <NUM> is a functional unit realized by causing the CPU to execute the program stored in the storage unit (not illustrated). In response to a distribution request for the capsule file received from the laptop PC <NUM> via the NW communication unit <NUM>, the distribution processing unit <NUM> acquires the corresponding capsule file from the update file storage unit <NUM>. The distribution processing unit <NUM> transmits (distributes) the acquired capsule file to which the signature of the server manager is assigned, to the laptop PC <NUM> via the NW communication unit <NUM>.

The laptop PC <NUM> includes the main control unit <NUM>, the video subsystem <NUM>, the display unit <NUM>, the BIOS memory <NUM>, the SSD <NUM>, the WLAN card <NUM>, the embedded controller <NUM>, and the input unit <NUM>.

The BIOS memory <NUM> is a rewritable non-volatile memory that cannot be connected (cannot be accessed) from the OS without going through the BIOS, and stores at least a boot program required to start up the OS and management information of the BIOS app. It should be noted that the BIOS memory <NUM> can be accessed only from the BIOS and the embedded controller <NUM>. The BIOS memory <NUM> includes a boot program storage unit <NUM>, a certificate storage unit <NUM>, and a management information storage unit <NUM>.

The boot program storage unit <NUM> is a storage unit realized by the BIOS memory <NUM>, and stores a program that mainly executes boot processing (for example, OS startup processing) among the programs of the BIOS.

The certificate storage unit <NUM> is a storage unit realized by the BIOS memory <NUM>, and stores a signature certificate for confirming the validity of the program of the BIOS. The certificate storage unit <NUM> stores, for example, the signature certificate of the user who provides the added BIOS app.

The management information storage unit <NUM> is a storage unit realized by the BIOS memory <NUM>, and for example, stores the management information of the added BIOS app. The management information includes, for example, an application ID (app ID), a description (name), a hash value, and the like of the BIOS app. The management information storage unit <NUM> is, for example, a UEFI variable area (variable area).

The SSD <NUM> includes a BIOS area <NUM> and an EFI system area <NUM>.

The BIOS area <NUM> is a partial area of the SSD <NUM>, and is an area (boot partition) that cannot be connected (cannot be accessed) from the OS without going through the BIOS. The BIOS area <NUM> is an area that is connected to the main control unit <NUM> by the SPI bus (SMBus) via the embedded controller <NUM> and the BIOS memory <NUM>, and cannot be directly accessed from the OS. It should be noted that the BIOS area <NUM> can be accessed only from the BIOS and the embedded controller <NUM>.

In the present embodiment, the BIOS area <NUM> stores the program of the BIOS app to which the signature of the user is assigned.

It should be noted that, in the present embodiment, the BIOS memory <NUM> and the BIOS area <NUM> correspond to the BIOS storage unit <NUM>. The BIOS storage unit <NUM> is a storage unit that stores the program of the BIOS, and is a storage unit that can be accessed only from the BIOS and the embedded controller <NUM> and cannot be directly accessed from the OS.

An extensible firmware interface (EFI) system area <NUM> is a partial area of the SSD <NUM>, and is a system area used by the BIOS and the OS. The EFI system area <NUM> is an area that can be accessed from the main control unit <NUM> by the PCI-Express bus. The EFI system area <NUM> temporarily saves, for example, the capsule file acquired from the server apparatus <NUM>.

The main control unit <NUM> is a functional unit realized by causing the CPU <NUM> and the chipset <NUM> to execute the programs stored in the BIOS memory <NUM> and the SSD <NUM>, and executes various types of processing of the laptop PC <NUM> based on the BIOS or the OS. The main control unit <NUM> includes a BIOS processing unit <NUM>.

The BIOS processing unit <NUM> is a functional unit realized by causing the CPU <NUM> and the chipset <NUM> to execute the programs stored in the BIOS memory <NUM> and the BIOS area <NUM>. The BIOS processing unit <NUM> executes various types of processing based on the BIOS. For example, in a case in which validity of the capsule file acquired from the server apparatus <NUM> is confirmed based on the signature of the server manager, the BIOS processing unit <NUM> extracts the program of the BIOS app from the capsule file to store the program of the BIOS app in the BIOS storage unit <NUM> (for example, the BIOS area <NUM>). In a case in which the validity of the capsule file is confirmed, the BIOS processing unit <NUM> extracts the program of the BIOS app from the capsule file to store the program of the BIOS app in the BIOS area <NUM>.

In addition, the BIOS processing unit <NUM> executes the BIOS app by using secure boot. In a case in which validity of the program of the BIOS app is confirmed based on the signature certificate of the user and the signature of the user, the BIOS processing unit <NUM> permits the execution of the program of the BIOS app to execute the BIOS app. In addition, for example, in a case in which the validity of the program of the BIOS app is not confirmed, such as a case in which the signature certificate of the user who provides the BIOS app is not stored in the certificate storage unit <NUM>, the BIOS processing unit <NUM> prohibits the execution of the program of the BIOS app.

In addition, the BIOS processing unit <NUM> executes processing of starting up the BIOS by using the secure boot. The BIOS processing unit <NUM> executes power on self test (POST) processing and starts up the BIOS by causing the CPU <NUM> and the chipset <NUM> to execute the boot program stored in the boot program storage unit <NUM>.

In addition, in a case in which the management information of the BIOS app is stored in the BIOS memory <NUM> and the program of the BIOS app is not stored in the BIOS area <NUM> when the BIOS processing unit <NUM> starts up the BIOS, the BIOS processing unit <NUM> determines that the SSD <NUM> is replaced. In a case in which the SSD <NUM> is replaced, the BIOS processing unit <NUM> reacquires the capsule file corresponding to the program of the BIOS app from the server apparatus <NUM>.

Hereinafter, an operation of the information processing system <NUM> according to the present embodiment will be described with reference to the drawings.

<FIG> is a diagram illustrating an example of acquisition processing of the BIOS app of the information processing system <NUM> according to the present embodiment. In addition, <FIG> is a diagram illustrating an example of a state in the acquisition processing of the BIOS app of the information processing system according to the present embodiment.

As illustrated in <FIG>, the user terminal apparatus <NUM> first transmits a registration request including the BIOS app and the signature to the server apparatus <NUM> (step S101). The terminal control unit <NUM> of the user terminal apparatus <NUM> is connected to the server apparatus <NUM> via the NW communication unit <NUM> in response to an operation by the input unit <NUM>, and transmits the registration request in which the signature of the user is assigned to the program of the BIOS app prepared in advance, to the server apparatus <NUM> via the NW communication unit <NUM>.

Next, the server apparatus <NUM> generates the capsule file encapsulating the BIOS app and the signature (step S102). In response to the registration request including the BIOS app and the signature received via the NW communication unit <NUM>, the registration processing unit <NUM> of the server apparatus <NUM> encapsulates a BIOS app AP1 to which the signature is assigned, as illustrated in (a) of <FIG>, and generates a capsule file CF1 to which the signature of the server manager is assigned.

Next, the registration processing unit <NUM> stores the capsule file CF1 in the update file storage unit <NUM> (step S103), that is, the registration processing unit <NUM> registers the generated capsule file CF1 in the update file storage unit <NUM>.

Next, the laptop PC <NUM> transmits the distribution request for the BIOS app AP1 to the server apparatus <NUM> (step S104). The BIOS processing unit <NUM> of the laptop PC <NUM> transmits the distribution request for the BIOS app AP1 to the server apparatus <NUM> via the WLAN card <NUM>.

Next, the server apparatus <NUM> transmits the capsule file CF1 to the laptop PC <NUM> in response to the distribution request for the BIOS app AP1 (step S105). The distribution processing unit <NUM> of the server apparatus <NUM> acquires the capsule file CF1 encapsulating the program of the BIOS app AP1 from the update file storage unit <NUM>, and transmits the capsule file CF1 to which the signature of the server manager is assigned, to the laptop PC <NUM> via the NW communication unit <NUM>.

Next, the laptop PC <NUM> stores the capsule file CF1 in the EFI system area <NUM> of the SSD <NUM> (step S106). As illustrated in (b) of <FIG>, the BIOS processing unit <NUM> of the laptop PC <NUM> stores the capsule file CF1 received from the server apparatus <NUM> via the WLAN card <NUM> in the EFI system area <NUM>.

Next, the BIOS processing unit <NUM> executes reboot processing (step S107). The BIOS processing unit <NUM> restarts up the laptop PC <NUM>, and restarts up the BIOS.

Next, the BIOS processing unit <NUM> checks the signature of the capsule file CF1 (signature of the server manager) (step S108). The BIOS processing unit <NUM> reads out the capsule file CF1 from the EFI system area <NUM>, and confirms the validity of the capsule file CF1 by the signature of the server manager.

Next, the BIOS processing unit <NUM> determines whether or not the check is OK (step S109). The BIOS processing unit <NUM> determines whether or not the validity of the capsule file CF1 is confirmed. In a case in which the check is OK (validity of the capsule file CF1 is confirmed) (step S109: YES), the BIOS processing unit <NUM> proceeds with the processing to step S110. In addition, in a case in which the check is not OK (validity of the capsule file CF1 is not confirmed) (step S109: NO), the BIOS processing unit <NUM> skips the processing of step S110.

In step S110, the BIOS processing unit <NUM> stores the BIOS app AP1 in the capsule file CF1 in the BIOS area <NUM> of the SSD <NUM>. The BIOS processing unit <NUM> extracts the BIOS app AP1 to which the signature of the user is assigned from the capsule file CF1 to store the BIOS app AP1 in the BIOS area <NUM> of the SSD <NUM>, as illustrated in (c) of <FIG>. Here, the BIOS area <NUM> is an area that can be accessed only from the BIOS and the embedded controller <NUM>, and the BIOS processing unit <NUM> stores the program of the BIOS app AP1 in the BIOS area <NUM>. In addition, the BIOS processing unit <NUM> stores management information MD1 (for example, app ID, description, hash value, and the like) of the BIOS app AP1 in the management information storage unit <NUM> of the BIOS memory <NUM>.

Hereinafter, processing in a case in which the BIOS app AP1 is executed on the laptop PC <NUM> will be described with reference to <FIG>. <FIG> is a flowchart illustrating an example of secure boot processing of the BIOS app AP1 of the information processing system <NUM> according to the present embodiment. Here, processing of preventing improper execution of the BIOS app AP1 by the secure boot will be described.

As illustrated in <FIG>, in a case in which the BIOS processing unit <NUM> of the laptop PC <NUM> executes the BIOS app, the BIOS processing unit <NUM> first checks the signature of the BIOS app (signature of the user) by using the certificate (signature certificate) of the user (step S201). The BIOS processing unit <NUM> confirms the validity of the BIOS app AP1 stored in the BIOS area <NUM> by using the certificate (signature certificate) of the user stored in the certificate storage unit <NUM>.

Next, the BIOS processing unit <NUM> determines whether or not the validity of the BIOS app AP1 is confirmed (step S202). In a case in which the validity of the BIOS app AP1 is confirmed by the certificate (signature certificate) of the user (step S202: YES), the BIOS processing unit <NUM> proceeds with the processing to step S203. In addition, in a case in which the validity of the BIOS app AP1 is not confirmed by the certificate (signature certificate) of the user (step S202: NO), the BIOS processing unit <NUM> proceeds with the processing to step S204. It should be noted that a case in which the validity of the BIOS app AP1 is not confirmed here includes a case in which the certificate storage unit <NUM> does not store the certificate of the user who provides the BIOS app AP1.

In step S203, the BIOS processing unit <NUM> permits the execution of the BIOS app AP1. As a result, the BIOS app AP1 can be executed, and the BIOS processing unit <NUM> executes, for example, the BIOS app AP1 after the processing of step S203.

In addition, in step S204, the BIOS processing unit <NUM> prohibits the execution of the BIOS app AP1. As a result, it is impossible to execute the BIOS app AP1. The BIOS processing unit <NUM> terminates the processing after the processing of step S203.

<FIG> is a diagram illustrating an example of the execution processing of the BIOS app AP1 in a normal case of the information processing system <NUM> according to the present embodiment.

In the example illustrated in <FIG>, the BIOS app AP1 is stored in the BIOS area <NUM> of the SSD <NUM>, and a certificate CR1 of the user who provides the BIOS app AP1 is stored in the BIOS memory <NUM> (certificate storage unit <NUM>). In this case, since the validity of the BIOS app AP1 can be confirmed by using the certificate CR1 of the user, the BIOS processing unit <NUM> permits the execution of the BIOS app AP1. As a result, the BIOS processing unit <NUM> can normally execute the BIOS app AP1.

In addition, <FIG> is a diagram illustrating an example of execution prohibition processing of the BIOS app AP1 in a case in which the SSD <NUM> of the information processing system <NUM> according to the present embodiment is improperly used.

The example illustrated in <FIG> illustrates, for example, a case in which the above-described SSD <NUM> illustrated in <FIG> is stolen by a third party with malicious intent and attached to a PC owned by the third party.

In this case, the BIOS app AP1 is stored in the BIOS area <NUM> of the SSD <NUM>, and the certificate CR1 of the user who provides the BIOS app AP1 is not stored in the BIOS memory <NUM> (certificate storage unit <NUM>). Therefore, the BIOS processing unit <NUM> cannot confirm the validity of the BIOS app AP1 by using the certificate CR1 of the user, and prohibits the execution of the BIOS app AP1.

In such a case, in a case in which the SSD <NUM> is stolen and used improperly, the BIOS processing unit <NUM> cannot execute the BIOS app AP1.

Hereinafter, restoring processing in a case in which the SSD <NUM> of the laptop PC <NUM> is replaced in the information processing system according to the present embodiment will be described with reference to <FIG> and <FIG>.

<FIG> is a diagram illustrating an example in a case in which the SSD of the laptop PC <NUM> is replaced in the information processing system <NUM> according to the present embodiment. Here, a state immediately after the SSD <NUM> of the laptop PC <NUM> is replaced is illustrated.

In <FIG>, since the laptop PC <NUM> is just after the SSD <NUM> is replaced, the SSD <NUM> is in a state in which the BIOS app AP1 is not stored, but the BIOS memory <NUM> is in a state in which the management information MD1 of the BIOS app AP1 and the certificate CR1 of the user are stored. In a case in which the laptop PC <NUM> is started up in such a state, the startup processing illustrated in <FIG> is executed.

<FIG> is a flowchart illustrating an example of the startup processing of the laptop PC <NUM> in the information processing system <NUM> according to the present embodiment.

As illustrated in <FIG>, in a case in which the power of the laptop PC <NUM> is turned on, the laptop PC <NUM> first executes initialization processing of a device (memory, SSD <NUM>, or the like) (step S301). The BIOS processing unit <NUM> of the laptop PC <NUM> executes the program stored in the boot program storage unit <NUM> of the BIOS memory <NUM> to start the startup processing, and executes initialization of the device mounted on the laptop PC <NUM>.

Next, the BIOS processing unit <NUM> determines whether or not the BIOS app AP1 in the management information is in the BIOS area <NUM> (step S302). The BIOS processing unit <NUM> confirms the BIOS app AP1 stored in the management information storage unit <NUM> of the BIOS memory <NUM>, and determines whether or not the program of the BIOS app AP1 is present in the BIOS area <NUM> of the SSD <NUM>. In a case in which the BIOS app AP1 is present in the BIOS area <NUM> (step S301: YES), the BIOS processing unit <NUM> proceeds with the processing to step S304, and executes the startup processing by the normal BIOS. In addition, in a case in which the BIOS app AP1 is not present in the BIOS area <NUM> (step S301: NO), the BIOS processing unit <NUM> proceeds with the processing to step S303.

In step S303, the BIOS processing unit <NUM> executes reacquisition processing of the BIOS app AP1. Specifically, the BIOS processing unit <NUM> executes the same processing as the processing from step S104 to step S110 illustrated in <FIG>.

In addition, in step S304, the BIOS processing unit <NUM> determines whether or not the secure boot is valid and whether or not a display request for the boot menu is received. In a case in which the secure boot is valid, the BIOS processing unit <NUM> determines whether or not the input unit <NUM> receives, for example, pressing of a "function <NUM>" (F12) key. In a case in which the display request (pressing of the "F12" key) is received (step S304: YES), the BIOS processing unit <NUM> proceeds with the processing to step S305. In addition, in a case in which the display request (pressing of the "F12" key) is not received (step S304: NO), the BIOS processing unit <NUM> terminates the startup processing.

In step S305, the BIOS processing unit <NUM> reads out the BIOS area <NUM> of the SSD <NUM>. The BIOS processing unit <NUM> lists up the BIOS apps AP1 stored in the BIOS area <NUM>.

Next, the BIOS processing unit <NUM> determines whether or not the BIOS app AP1 is in the BIOS area <NUM> (step S306). In a case in which the BIOS app AP1 is present in the BIOS area <NUM> (step S306: YES), the BIOS processing unit <NUM> proceeds with the processing to step S307. In addition, in a case in which the BIOS app AP1 is not present in the BIOS area <NUM> (step S306: NO), the BIOS processing unit <NUM> proceeds with the processing to step S308.

In step S307, the BIOS processing unit <NUM> adds the BIOS app AP1 to the boot menu.

Next, in step S308, the BIOS processing unit <NUM> displays the boot menu on the display unit <NUM>. After the processing of step S308, the BIOS processing unit <NUM> shifts to BIOS setting processing.

As described above, the information processing system <NUM> according to the present embodiment includes the server apparatus <NUM> and the laptop PC <NUM>. The server apparatus <NUM> encapsulates the program of the BIOS app AP1 (extended function of the BIOS) to which the signature of the user (company, organization, or the like) is assigned, assigns the signature of the server manager to the capsule file CF1 obtained by the encapsulation, and provides the capsule file CF1 to the laptop PC <NUM> (information processing apparatus). The laptop PC <NUM> includes the BIOS storage unit <NUM> and the BIOS processing unit <NUM>. The BIOS storage unit <NUM> stores the program of the BIOS. In a case in which validity of the capsule file CF1 acquired from the server apparatus <NUM> is confirmed based on the signature of the server manager, the BIOS processing unit <NUM> extracts the program of the BIOS app AP1 from the capsule file CF1 to store the program of the BIOS app AP1 in the BIOS storage unit <NUM>. In addition, in a case in which validity of the program of the BIOS app AP1 is confirmed based on the signature certificate of the user and the signature of the user, the BIOS processing unit <NUM> permits the execution of the program of the BIOS app AP1. In addition, in a case in which the validity of the program of the BIOS app AP1 is not confirmed, the BIOS processing unit <NUM> prohibits the execution of the program of the BIOS app AP1.

As a result, the information processing system <NUM> according to the present embodiment can, for example, easily incorporate the service (extended function or BIOS app) prepared by the user, such as the company, into the BIOS, and can more securely and easily extend the function of the BIOS.

In addition, for example, in a case in which the user wants to extend the function of his/her own BIOS, in the related art, it is required for the user to prepare his/her own server apparatus and distribute the BIOS app having the extended function. On the other hand, in the information processing system <NUM> according to the present embodiment, the server apparatus <NUM> managed by the manufacturer, the vender, or the supplier can be used as it is, and the user does not need to prepare his/her own server apparatus. Therefore, the information processing system <NUM> according to the present embodiment can easily and simply extend the function of the BIOS by using the server apparatus <NUM>.

In addition, in the present embodiment, the BIOS storage unit <NUM> includes the BIOS memory <NUM> and the BIOS area <NUM>. The BIOS memory <NUM> is a rewritable non-volatile memory that cannot be connected from the OS without going through the BIOS, and stores at least the boot program required to start up the OS and the management information of the BIOS app AP1. The BIOS area <NUM> is the partial area of the SSD <NUM>, and is the area that cannot be connected from the OS without going through the BIOS. In a case in which the validity of the capsule file CF1 is confirmed, the BIOS processing unit <NUM> extracts the program of the BIOS app AP1 from the capsule file CF1 to store the program of the BIOS app AP1 in the BIOS area <NUM>.

As a result, in the information processing system <NUM> according to the present embodiment, for example, as illustrated in <FIG>, in a case in which the SSD <NUM> is stolen by the third party with malicious intent and is attached to the PC owned by the third party, it is not possible to execute the BIOS app AP1 on the PC owned by the third party. Therefore, the information processing system <NUM> according to the present embodiment can more securely and easily extend the function of the BIOS.

In addition, in the present embodiment, in a case in which the management information of the BIOS app AP1 is stored in the BIOS memory <NUM> and the program of the BIOS app AP1 is not stored in the BIOS area <NUM> when the BIOS is started up, the BIOS processing unit <NUM> reacquires the capsule file CF1 corresponding to the program of the BIOS app AP1 from the server apparatus <NUM>.

As a result, in the information processing system <NUM> according to the present embodiment, for example, as illustrated in <FIG>, even in a case in which the SSD <NUM> of the laptop PC <NUM> is replaced, the BIOS app AP1 can be appropriately reacquired, and the laptop PC <NUM> can be appropriately restored.

In addition, in the present embodiment, in a case in which the signature certificate of the user is not stored in the BIOS memory <NUM>, the BIOS processing unit <NUM> prohibits the execution of the program of the BIOS app AP1.

As a result, in the information processing system <NUM> according to the present embodiment, only the valid laptop PC <NUM> that stores the signature certificate of the user can use the BIOS app AP1, and thus it is possible to suppress improper use.

In addition, in the present embodiment, the server apparatus <NUM> includes the update file storage unit <NUM> and the distribution processing unit <NUM>. The update file storage unit <NUM> stores the capsule file CF1 to which the signature of the server manager is assigned. The distribution processing unit <NUM> transmits the capsule file CF1 corresponding to the distribution request to the laptop PC <NUM> in response to the distribution request for the capsule file CF1.

As a result, in the information processing system <NUM> according to the present embodiment, since the extended function (BIOS app AP1) is distributed to the laptop PC <NUM> by using the capsule file CF1, the function can be more securely extended.

In addition, in the present embodiment, in a case in which the validity of the capsule file CF1 is confirmed when the laptop PC <NUM> is restarted up after storing the capsule file CF1 acquired from the server apparatus <NUM> in an area different from the BIOS area <NUM> of the SSD <NUM>, the BIOS processing unit <NUM> extracts the program of the BIOS app AP1 from the capsule file CF1 to store the program of the BIOS app AP1 in the BIOS area <NUM>.

As a result, in the information processing system <NUM> according to the present embodiment, in the laptop PC <NUM>, since the program of the BIOS app AP1 is extracted from the capsule file CF1 and stored in the BIOS area <NUM>, the function can be more securely extended.

The BIOS update method according to the present embodiment is a BIOS update method of updating the BIOS of the laptop PC <NUM> including the BIOS storage unit <NUM> that stores the program of the BIOS, and includes a distribution step and a BIOS processing step. In the distribution step, the server apparatus <NUM> encapsulates the program of the BIOS app AP1 (extended function of the BIOS) to which the signature of the user is assigned, assigns the signature of the server manager to the capsule file CF1 obtained by the encapsulation, and provides the capsule file CF1 to the laptop PC <NUM>. In the BIOS processing step, the laptop PC <NUM> extracts the program of the BIOS app AP1 from the capsule file CF1 to store the program of the BIOS app AP1 in the BIOS storage unit <NUM> in a case in which the validity of the capsule file CF1 acquired from the server apparatus <NUM> is confirmed based on the signature of the server manager, permits the execution of the program of the BIOS app AP1 in a case in which the validity of the program of the BIOS app AP1 is confirmed based on the signature certificate of the user and the signature of the user, and prohibits the execution of the program of the BIOS app AP1 in a case in which the validity of the program of the BIOS app AP1 is not confirmed.

As a result, the BIOS update method according to the present embodiment has the same effect as the information processing system <NUM> described above, and the function of the BIOS can be more securely and easily extended.

It should be noted that the present invention is not limited to each embodiment described above, and the present invention can be modified without departing from the gist of the present invention.

For example, in the embodiment described above, the example in which the information processing apparatus is the laptop PC <NUM> is described, but the present invention is not limited to this, and for example, another information processing apparatus, such as a tablet terminal apparatus or a desktop PC, may be used. In addition, the information processing apparatus is not limited to the configuration including the main control unit <NUM> and the sub-control unit (embedded controller <NUM>), and may have a configuration in which one control unit includes the BIOS processing unit <NUM>.

In addition, in the embodiment described above, for convenience of description, the example in which the laptop PC <NUM> is connected to the information processing system <NUM> is described, but the present invention is not limited to this, and the information processing system <NUM> may include a plurality of laptop PCs <NUM>.

In addition, in the embodiment described above, the embedded controller <NUM> may hold a part of the information stored in the BIOS memory <NUM>. For example, the embedded controller <NUM> may store a part of sensitive information for confirming the validity of the program of the BIOS. In this case, a part of the BIOS can be confirmed by the embedded controller <NUM>, and thus the update can be performed independently of the BIOS memory <NUM>.

In addition, in the embodiment described above, the embedded controller <NUM> may execute a part of the processing executed by the BIOS processing unit <NUM>.

It should be noted that each configuration of the information processing system <NUM> described above has a computer system inside. A processing in each configuration of the information processing system <NUM> described above may be performed by recording a program for realizing the function of each configuration of the information processing system <NUM> described above on a computer-readable recording medium, and reading the program recorded on the recording medium with the computer system to execute the program. Here, "reading the program recorded on the recording medium with the computer system to execute the program" includes installing the program in the computer system. The "computer system" herein includes hardware, such as the OS or peripheral devices.

In addition, the "computer system" may include a plurality of computer apparatuses connected via a network including a communication line, such as the Internet, a WAN, a LAN, or a dedicated line. In addition, the "computer-readable recording medium" is a portable medium, such as a flexible disk, a magneto-optical disk, a ROM, or a CD-ROM, and a storage device, such as a hard disk built into the computer system. As described above, the recording medium that stores the program may be a non-transitory recording medium, such as a CD-ROM.

The recording medium also includes an internal or external recording medium that can be accessed from a distribution server to distribute the program. It should be noted that a configuration may be used in which the program is divided into a plurality of programs, downloaded at different timings, and then combined with each configuration of the information processing system <NUM>, or distribution servers for distributing the respective divided programs may be different. Further, the "computer-readable recording medium" includes a medium that stores the program for a certain period of time, such as a volatile memory (RAM) inside the computer system that serves as a server or a client in a case in which the program is transmitted via the network. The program described above may be a program for realizing some of the functions described above. Further, the program may be a so-called difference file (difference program) in which the functions described above can be realized in combination with the program already recorded in the computer system.

Claim 1:
An information processing system (<NUM>) comprising:
a server apparatus (<NUM>) configured to encapsulate a program of an extended function of a basic input output system, BIOS, to which a signature of a user is assigned, assign a signature of a server manager to an encapsulated capsule file, and provide the capsule file to an information processing apparatus (<NUM>); and
the information processing apparatus,
wherein the information processing apparatus includes
a BIOS storage unit (<NUM>) configured to store a program of the BIOS, and
a BIOS processing unit (<NUM>) configured to extract the program of the extended function from the capsule file to store the program of the extended function in the BIOS storage unit in a case in which validity of the capsule file acquired from the server apparatus is confirmed based on the signature of the server manager, permit execution of the program of the extended function in a case in which validity of the program of the extended function is confirmed based on a signature certificate of the user and the signature of the user, and prohibit execution of the program of the extended function in a case in which the validity of the program of the extended function is not confirmed.