Patent Description:
Conventionally, a floating license is used as one of methods for providing a license of a function used in an electronic device from a server (see, for example, Patent Document <NUM>). By using the floating license, the function can be used in more electronic devices than the number of licenses.

Meanwhile, there is a need to enable an electronic device that does not directly communicate with a server to use a floating license provided by the server with a time limit.

The present technology has been made in view of such a situation, and makes it possible to use a time-limited floating license in an electronic device that does not directly communicate with an information processing device such as a server that provides a floating license.

An information processing device according to a first aspect of the present technology includes a license management unit that sets at least one of a first use start date and time or a first use end date and time of a license to be provided to a first electronic device on the basis of a date and time of a hardware clock, and responds to return of the license from the first electronic device and provision of a second electronic device with the license returned from the first electronic device until the date and time of the hardware clock pass a first valid period with reference to the first use start date and time or pass the first use end date and time.

An information processing method according to the first aspect of the present technology includes, by an information processing device, setting at least one of a use start date and time or a use end date and time of a license to be provided to a first electronic device on the basis of a date and time of a hardware clock, and responding to return of the license from the first electronic device and provision of a second electronic device with the license returned from the first electronic device until the date and time of the hardware clock pass a predetermined valid period with reference to the use start date and time or pass the use end date and time.

A program according to the first aspect of the present technology causes a computer to execute processing including setting at least one of a use start date and time or a use end date and time of a license to be provided to a first electronic device on the basis of a date and time of a hardware clock, and responding to return of the license from the first electronic device and provision of a second electronic device with the license returned from the first electronic device until the date and time of the hardware clock pass a predetermined valid period with reference to the use start date and time or pass the use end date and time.

An electronic device according to a second aspect of the present technology includes a first hardware clock, and a license management unit that sets at least one of a first use start date and time or a first use end date and time of a license provided from a first information processing device on the basis of a date and time of the first hardware clock, and makes a function corresponding to the license usable until the date and time of the first hardware clock pass a predetermined valid period with reference to the first use start date and time or pass the one use end date and time.

An information processing method according to the second aspect of the present technology includes, by an electronic device including a hardware clock,
setting at least one of a use start date and time or a use end date and time of a license provided from an information processing device on the basis of a date and time of the hardware clock, and making a function corresponding to the license usable until the date and time of the hardware clock pass a predetermined valid period with reference to the use start date and time or pass the use end date and time.

A program according to the second aspect of the present technology causes a computer of an electronic device including a hardware clock to execute processing including, setting at least one of a use start date and time or a use end date and time of a license provided from an information processing device on the basis of a date and time of the hardware clock, and making a function corresponding to the license usable until the date and time of the hardware clock pass a predetermined valid period with reference to the use start date and time or pass the use end date and time.

An information processing system according to a third aspect of the present technology includes an information processing device, a first electronic device including a first hardware clock, and a second electronic device, in which the information processing device sets at least one of a first use start date and time or a first use end date and time of a license to be provided to the first electronic device on the basis of a date and time of a second hardware clock, and responds to return of the license from the first electronic device and provision of the second electronic device with the license returned from the first electronic device until the date and time of the second hardware clock pass a predetermined valid period with reference to the first use start date and time or pass the first use end date and time, and the first electronic device sets at least one of a second use start date and time or a second use end date and time on the basis of a date and time of the first hardware clock, and makes a function corresponding to the license usable until the date and time of the first hardware clock pass the valid period with reference to the second use start date and time or pass the one use end date and time.

In the first aspect of the present technology, at least one of a first use start date and time or a first use end date and time of a license to be provided to a first electronic device is set on the basis of a date and time of a hardware clock, and return of the license from the first electronic device and provision of a second electronic device with the license returned from the first electronic device are responded until the date and time of the hardware clock pass a first valid period with reference to the first use start date and time or pass the first use end date and time.

In the second aspect of the present technology, at least one of a use start date and time or a use end date and time of a license provided from an information processing device is set on the basis of a date and time of the hardware clock, and a function corresponding to the license is made usable until the date and time of the hardware clock pass a predetermined valid period with reference to the use start date and time or pass the use end date and time.

In the third aspect of the present technology, in the information processing device, at least one of a first use start date and time or a first use end date and time of a license to be provided to the first electronic device is set on the basis of a date and time of a second hardware clock, and return of the license from the first electronic device and provision of the second electronic device with the license returned from the first electronic device are responded until the date and time of the second hardware clock pass a predetermined valid period with reference to the first use start date and time or pass the first use end date and time, and in the first electronic device, at least one of a second use start date and time or a second use end date and time is set on the basis of a date and time of the first hardware clock, and a function corresponding to the license is made usable until the date and time of the first hardware clock pass the valid period with reference to the second use start date and time or pass the one use end date and time.

Hereinafter, a mode for carrying out the present technology will be described. The description will be made in the following order.

First, an embodiment of the present technology will be described with reference to <FIG>.

<FIG> illustrates a configuration example of an information processing system <NUM> to which the present technology is applied.

The information processing system <NUM> includes a server <NUM>, a client <NUM>, and a network <NUM>. The client <NUM> includes a personal computer (PC) <NUM>, a removable medium <NUM>, an electronic device 23a, and an electronic device 23b.

The server <NUM> and the PC <NUM> are connected via a network <NUM> and communicate with each other.

The server <NUM> provides and manages a license (floating license) of a function used in the electronic device 23a and the electronic device 23b, and performs provision of software for achieving the functions of the electronic device 23a and the electronic device 23b, and the like.

The PC <NUM> communicates with the server <NUM> via the network <NUM> to exchange various data with the server <NUM>. For example, the PC <NUM> receives, from the server <NUM>, data related to a license of a function used in the electronic device 23a and the electronic device 23b, and various data such as software used in the electronic device 23a and the electronic device 23b. Furthermore, the PC <NUM> transmits various data such as data related to the electronic device 23a and the electronic device 23b to the server <NUM>.

The removable medium <NUM> includes a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like, and is used to exchange various data between the PC <NUM> and the electronic device 23a and the electronic device 23b. Note that the removable medium <NUM> may be a general-purpose removable medium or a removable medium having a security function.

Note that, hereinafter, the removable medium <NUM> is also simply referred to as a medium <NUM>.

The electronic device 23a and the electronic device 23b are difficult to connect to the network <NUM>, and basically do not directly communicate with the server <NUM> and are used offline. Furthermore, by installing a license provided from the server <NUM> via the medium <NUM>, the electronic device 23a and the electronic device 23b can use the function corresponding to the installed license. Moreover, the electronic device 23a and the electronic device 23b return the license provided from the server <NUM> to the server <NUM> via the medium <NUM> and the PC <NUM> as necessary.

Note that, hereinafter, in a case where it is not necessary to individually distinguish the electronic device 23a and the electronic device 23b, the electronic device 23a and the electronic device 23b are simply referred to as an electronic device <NUM>.

Furthermore, the type of the electronic device <NUM> is not particularly limited. Hereinafter, a case where the electronic device <NUM> is a camera will be mainly described as an example.

Moreover, the type of the function that is the subject of a license provided by the server <NUM> is not particularly limited. For example, the function does not necessarily have to be a function using software, and may be a function achieved only by hardware.

Furthermore, the server <NUM> may also provide software for achieving the function that is the subject of the license. In this case, the license of the function is also a license of the software for achieving the function.

Moreover, although only one client <NUM> is illustrated in <FIG> for clarity of illustration and description, a plurality of clients <NUM> is provided in practice. Moreover, although only one server <NUM> is illustrated, a plurality of servers <NUM> may be provided. Furthermore, one client <NUM> may include a plurality of at least one of the PC <NUM> or the medium <NUM>, or may include two or more electronic devices <NUM>.

<FIG> illustrates a configuration example of the server <NUM>.

The server <NUM> includes an input unit <NUM>, a control unit <NUM>, a communication unit <NUM>, an output unit <NUM>, a real time clock (RTC) <NUM>, and a storage unit <NUM>. The input unit <NUM>, the control unit <NUM>, the communication unit <NUM>, the output unit <NUM>, the RTC <NUM>, and the storage unit <NUM> are mutually connected via a bus <NUM>.

The input unit <NUM> includes, for example, an input device such as a switch, a button, a key, a microphone, or an imaging element, and is used to input various data. The input unit <NUM> supplies the input data to each unit of the server <NUM> via the bus <NUM>.

The control unit <NUM> includes, for example, a processor such as a central processing unit (CPU) and controls processing of each unit of the server <NUM>.

The communication unit <NUM> includes, for example, a communication device or the like, and communicates with another information processing device such as the PC <NUM> via the network <NUM>. Note that a communication method of the communication unit <NUM> is not particularly limited, and may be either a wired or wireless communication method. Furthermore, for example, the communication unit <NUM> may support a plurality of communication methods.

The output unit <NUM> includes, for example, an output device such as a display, a speaker, a lighting device, or a vibrator, and outputs various data by image, sound, light, vibration, or the like.

The RTC <NUM> is a hardware clock that continues to operate with a backup battery (not illustrated) or the like even when the server <NUM> is powered off. The RTC <NUM> is managed so that a user cannot change the date and time (date and time).

The storage unit <NUM> includes at least a nonvolatile storage medium, and stores various data and software necessary for processing of the server <NUM>.

Note that, hereinafter, in a case where each unit of the server <NUM> performs data exchange or the like via the bus <NUM>, the description of the bus <NUM> is appropriately omitted. For example, in a case where the control unit <NUM> and the communication unit <NUM> exchange data via the bus <NUM>, it is simply described that the control unit <NUM> and the communication unit <NUM> exchange data.

<FIG> illustrates a configuration example of functions of the control unit <NUM> of the server <NUM>. For example, the control unit <NUM> executes a control program to achieve functions including a license management unit <NUM>, a data generation unit <NUM>, a user interface (UI) control unit <NUM>, a communication control unit <NUM>, and a storage control unit <NUM>.

The license management unit <NUM> manages a license of a function used in the electronic device <NUM>.

The data generation unit <NUM> generates various data to be transmitted to the PC <NUM>.

The UI control unit <NUM> controls user interfaces in the PC <NUM> and the electronic device <NUM>. For example, the UI control unit <NUM> controls the user interface in the PC <NUM> by generating a display control file for displaying various information on the screen of the PC <NUM> and transmitting the display control file to the PC <NUM>.

The communication control unit <NUM> controls communication processing by the communication unit <NUM>. Furthermore, the communication control unit <NUM> acquires data to be transmitted to the PC <NUM> from each unit of the server <NUM>, and supplies data received from the PC <NUM> to each unit of the server <NUM>.

The storage control unit <NUM> controls storage of data or the like related to the license of the function to be used in the electronic device <NUM> in the storage unit <NUM>.

<FIG> illustrates a configuration example of the electronic device <NUM>.

The electronic device <NUM> includes an input unit <NUM>, a function execution unit <NUM>, a control unit <NUM>, a communication unit <NUM>, an output unit <NUM>, a real time clock (RTC) <NUM>, a storage unit <NUM>, and a drive <NUM>. The input unit <NUM>, the function execution unit <NUM>, the control unit <NUM>, the communication unit <NUM>, the output unit <NUM>, the RTC <NUM>, the storage unit <NUM>, and the drive <NUM> are mutually connected via a bus <NUM>.

The input unit <NUM> includes, for example, an input device such as a switch, a button, a key, a microphone, or an imaging element, and is used to input various data. The input unit <NUM> supplies the input data to each unit of the electronic device <NUM> via the bus <NUM>.

The function execution unit <NUM> includes various types of hardware and software for executing functions of the electronic device <NUM>. For example, in a case where the electronic device <NUM> is a camera, the function execution unit <NUM> includes a lens, an imaging element, and the like.

The control unit <NUM> includes, for example, a processor such as a central processing unit (CPU) and controls processing of each unit of the electronic device <NUM>.

The communication unit <NUM> includes, for example, a communication device or the like, and communicates with another electronic device (for example, a smartphone or the like) that is not illustrated. Note that a communication method of the communication unit <NUM> is not particularly limited, and may be either a wired or wireless communication method. Furthermore, for example, the communication unit <NUM> may support a plurality of communication methods.

The RTC <NUM> is a hardware clock that continues to operate with a backup battery or the like even when the power of the electronic device <NUM> is turned off. The RTC <NUM> is managed so that the user cannot change the date and time (date and time).

The storage unit <NUM> includes at least a nonvolatile storage medium, and stores various data and software necessary for processing of the electronic device <NUM>.

The drive <NUM> is detachable from the medium <NUM>, and drives the connected medium <NUM>.

Note that, hereinafter, in a case where each unit of the electronic device <NUM> performs data exchange or the like via the bus <NUM>, the description of the bus <NUM> is appropriately omitted. For example, in a case where the control unit <NUM> and the communication unit <NUM> exchange data via the bus <NUM>, it is simply described that the control unit <NUM> and the communication unit <NUM> exchange data.

<FIG> illustrates a configuration example of functions of the control unit <NUM> of the electronic device <NUM>. For example, the control unit <NUM> executes a control program to achieve functions including a license management unit <NUM>, a key generation unit <NUM>, a data generation unit <NUM>, a user interface (UI) control unit <NUM>, a communication control unit <NUM>, and a storage control unit <NUM>.

The key generation unit <NUM> generates a device unique key that is a unique secret key different for each electronic device <NUM>.

The data generation unit <NUM> generates various data to be transmitted to the server <NUM> via the medium <NUM> and the PC <NUM>.

The UI control unit <NUM> controls the output unit <NUM> to control the user interface in the electronic device <NUM>.

The communication control unit <NUM> controls communication processing by the communication unit <NUM>. Furthermore, the communication control unit <NUM> acquires data to be transmitted to the outside via the communication unit <NUM> from each unit of the electronic device <NUM>, and supplies data received from the outside via the communication unit <NUM> to each unit of the electronic device <NUM>.

Next, processing of the information processing system <NUM> will be described with reference to <FIG>.

Note that, hereinafter, an example of a case where a license of a certain function is first installed in the electronic device 23a and then the license of the function is transferred to the electronic device 23b will be described.

First, license acquisition processing executed by the client <NUM> will be described with reference to a flowchart of <FIG>.

In step S1, the PC <NUM> requests a device information acquisition file.

For example, the PC <NUM> accesses the server <NUM> via the network <NUM> according to an operation by the user, and displays a screen for acquiring a license of a function to be used in the electronic device 23a. For example, a window <NUM> of <FIG> is displayed on the screen of the PC <NUM>.

The window <NUM> is divided into a device information field 301A and a license information field 301B.

At the left end of the device information field 301A, an image and a model name of the electronic device 23a are displayed side by side.

At the left end of the license information field 301B, the function for which a license is to be acquired and the type of the license are indicated. In this example, it is illustrated that a floating license of a <NUM> image capturing function with a valid period of seven days is to be acquired. Note that floating licenses with two or more types of valid periods may be displayed as acquisition targets, so as to enable selection of a floating license having a desired valid period.

An install button <NUM> is displayed at a right end of the license information field 301B. When the install button <NUM> is pressed, for example, a window <NUM> of <FIG> is displayed on the screen of the PC <NUM>.

The window <NUM> displays a message prompting to download the device information acquisition file, save the device information acquisition file in the medium <NUM>, and insert the medium <NUM> into the device (electronic device 23a), and a download button <NUM>. When the download button <NUM> is pressed, the PC <NUM> requests the server <NUM> for the device information acquisition file via the network <NUM>.

In response to this, the server <NUM> transmits the device information acquisition file to the PC <NUM> via the network <NUM> in step S31 in <FIG> described later.

In step S2, the PC <NUM> receives the device information acquisition file transmitted from the server <NUM>. Furthermore, the PC <NUM> stores the received device information acquisition file in the medium <NUM>, for example, according to an operation by the user.

In step S3, the electronic device 23a executes a command in the device information acquisition file.

Specifically, the user removes the medium <NUM> storing the device information acquisition file from the PC <NUM> and connects the medium <NUM> to the drive <NUM> of the electronic device 23a.

The drive <NUM> reads the device information acquisition file stored in the medium <NUM> and supplies the device information acquisition file to the control unit <NUM>. The control unit <NUM> executes a device information acquisition command included in the device information acquisition file. Thus, acquisition processing of device information is started.

Note that, for example, the processes of steps S1 to S3 may be omitted, and the acquisition processing of the device information may be started by the user operating the electronic device 23a without using the device information acquisition command.

In step S4, the key generation unit <NUM> determines whether or not a device unique key has been generated. In a case where the device unique key is not stored in the storage unit <NUM>, the key generation unit <NUM> determines that the device unique key has not been generated, and the processing proceeds to step S5.

In step S5, the key generation unit <NUM> generates a device unique key. A method of generating the device unique key is not particularly limited. The storage control unit <NUM> stores the device unique key in the storage unit <NUM>.

That is, the electronic device 23a generates the device unique key that is a secret key unique to the electronic device 23a before generating device information file for the first time after shipment from the factory. Thus, it is not necessary to generate the device unique key at the time of factory shipment and store the device unique key in the electronic device 23a, and a risk such as leakage of the device unique key is reduced. Furthermore, for example, by changing firmware of the electronic device 23a or the like, a method of generating the device unique key, a generation timing, or the like can be changed, and flexibility is improved.

Thereafter, the processing proceeds to step S6.

On the other hand, in step S4, in a case where the device unique key is stored in the storage unit <NUM>, the key generation unit <NUM> determines that the device unique key has been generated, the process of step S5 is skipped, and the processing proceeds to step S6.

In step S6, the electronic device 23a generates a device information file.

Specifically, the data generation unit <NUM> reads the device unique key and a server public key from the storage unit <NUM>. Note that the server public key is a public key corresponding to the server secret key held by the server <NUM>, and is distributed to the electronic device 23a in advance. The data generation unit <NUM> encrypts the device unique key using the server public key. Thus, security of the device unique key is ensured, and falsification, eavesdropping, and the like of the device unique key are prevented.

Furthermore, the data generation unit <NUM> reads a firmware version and a device unique ID from the storage unit <NUM>. The firmware version is a version of firmware currently installed in the electronic device 23a. The device unique ID is an ID uniquely assigned to each electronic device <NUM>, and includes, for example, a model name and a serial number of the electronic device 23a. The data generation unit <NUM> generates storage data including a model name, a firmware version, a device unique ID, and an encrypted device unique key of the electronic device 23a.

Moreover, the data generation unit <NUM> calculates a hash value of the storage data using the device unique key. Note that a hash function used to calculate the hash value is not particularly limited.

Then, the data generation unit <NUM> generates the device information file including the storage data and the hash value. Thus, security of the storage data is ensured using the device unique key.

Information included in the device information file is used for license issuance in the server <NUM> as license request information for requesting license issuance.

In step S7, the data generation unit <NUM> stores the device information file in the medium <NUM> via the drive <NUM>.

At this time, for example, the output unit <NUM> displays a window <NUM> of <FIG> under control of the UI control unit <NUM>. In the window <NUM>, a message notifying that the device information file has been written and an OK button <NUM> are displayed. When the OK button <NUM> is pressed, the window <NUM> is closed.

In step S8, the PC <NUM> transmits the device information file to the server <NUM>.

For example, the user removes the medium <NUM> from the electronic device 23a and connects to the PC <NUM>. For example, the PC <NUM> displays a window <NUM> of <FIG> on the screen.

In the window <NUM>, a message prompting to upload the device information file acquired from the device (electronic device 23a) and an upload button <NUM> are displayed. When the upload button <NUM> is pressed, the PC <NUM> reads the device information file from the medium <NUM> and transmits the device information file to the server <NUM> via the network <NUM>.

On the other hand, the server <NUM> receives the device information file in step S32 in <FIG> described later.

In step S9, the PC <NUM> determines whether or not to acquire an installation request file.

In a case where it is determined that the device information file received from the PC <NUM> is valid, the server <NUM> transmits the display control file for final confirmation of implementation of the license installation via the network <NUM> in step S34 in <FIG> described later.

The PC <NUM> displays a window <NUM> of <FIG> on the screen on the basis of the display control file.

In the window <NUM>, a remaining period of the license, a message asking whether or not to issue an installation key for the device (the electronic device 23a), the model name of the electronic device 23a, the serial number of the electronic device 23a, and a YES button <NUM> are displayed. When the YES button <NUM> is pressed, for example, a window <NUM> of <FIG> is displayed on the screen of the PC <NUM>.

Note that the remaining period of the license of the window <NUM> is equal to an initial value (hereinafter referred to as a maximum valid period) of the valid period of the license because use of the license has not been started yet.

In the window <NUM>, a message prompting to download the installation request file, save the installation request file in the medium <NUM>, and insert the medium <NUM> into the device (electronic device 23a), and a download button <NUM> are displayed. Then, when the download button <NUM> is pressed, the PC <NUM> determines to acquire the installation request file, and requests the server <NUM> to transmit the installation request file via the network <NUM>. Thereafter, the processing proceeds to step S10.

In response to this, in step S39 in <FIG> described later, the server <NUM> transmits the installation request file including the installation key and the like and including license communication information which is information used for license installation.

In step S10, the PC <NUM> receives the installation request file from the server <NUM> via the network <NUM>.

In step S11, the PC <NUM> stores the installation request file in the medium <NUM>, for example, according to an operation by the user.

Thereafter, the license acquisition processing ends.

On the other hand, in step S9, in a case where the display control file for final confirmation of implementation of the license installation has not been received, or in a case where acquisition of the installation request file has not been instructed, the PC <NUM> determines not to acquire the installation request file. Thereafter, the processes of steps S10 and S11 are skipped, the installation request file is not acquired, and the license acquisition processing ends.

Next, license issuance processing executed by the server <NUM> in response to the license acquisition processing by the client <NUM> of <FIG> will be described with reference to a flowchart of <FIG>.

Note that this processing is started, for example, when the server <NUM> is requested for the device information acquisition file from the PC <NUM> in step S1 in <FIG> described above.

In step S31, the server <NUM> transmits the device information acquisition file. Specifically, the data generation unit <NUM> generates the device information acquisition file including the device information acquisition command. The communication unit <NUM> transmits the device information acquisition file to the PC <NUM> via the network <NUM> under control of the communication control unit <NUM>.

Note that, as described above, by omitting the processes of steps S1 to S3 in <FIG> of the electronic device 23a, the process of step S31 can be omitted.

In step S32, the server <NUM> receives the device information file. Specifically, the communication control unit <NUM> receives, via the communication unit <NUM>, the device information file transmitted from the PC <NUM> in the process of step S8 in <FIG> described above.

In step S33, the license management unit <NUM> determines whether or not the device information file is valid. Specifically, the license management unit <NUM> reads the server secret key corresponding to the server public key used for encrypting the device unique key included in the device information file from the storage unit <NUM>. The license management unit <NUM> decrypts the device unique key using the read server secret key.

Next, the license management unit <NUM> calculates a hash value of the storage data included in the device information file by using the same hash function as the electronic device 23a and the decrypted device unique key. Then, in a case where the calculated hash value matches the hash value in the device information file, the license management unit <NUM> determines that the device information file is valid, and the processing proceeds to step S34.

Thus, falsification and the like of the device unique ID and the device unique key in the storage data are prevented.

In step S34, the license management unit <NUM> determines whether or not to transmit the installation request file.

Specifically, the UI control unit <NUM> generates a display control file for final confirmation of implementation of the license installation. This display control file includes information indicating the remaining period of the license. Note that the remaining period of the license is equal to the maximum valid period of the license because use of the license has not been started yet. The communication unit <NUM> transmits the display control file to the PC <NUM> via the network <NUM> under the control of the communication control unit <NUM>.

Then, in a case where transmission of the installation request file is requested from the PC <NUM> in step S9 in <FIG> described above, the license management unit <NUM> determines to transmit the installation request file, and the processing proceeds to step S35.

In step S35, the license management unit <NUM> sets a valid period and a use start date and time of the license. Specifically, since use of the license has not been started yet, the license management unit <NUM> sets the valid period of the license as the maximum valid period. Furthermore, the license management unit <NUM> sets the current date and time of the RTC <NUM> as the use start date and time (hereinafter referred to as a server use start date and time) of the license.

Then, the license management unit <NUM> responds to return of the license from the electronic device 23a and provision of the electronic device (for example, the electronic device 23b) with the returned license until the date and time of the RTC <NUM> pass the set valid period with reference to the set server use start date and time.

In step S36, the license management unit <NUM> generates an installation key.

<FIG> illustrates an example of a format of the installation key.

The installation key includes a function ID, an installation key management ID, a device unique ID, a use start date and time, and a valid period.

The function ID is an ID for identifying a function that is the subject of the license and a valid period.

The installation key management ID is an ID having a data length shorter than that of the installation key and unique to the installation key (different for each installation key). This installation key management ID makes it possible to identify the installation key corresponding to the license of each function.

The device unique ID is a device unique ID of the electronic device 23a to which a license is to be provided, and the device unique ID of the electronic device 23a included in the device information file is used.

The server use start date and time set in the process of step S35 is set as the use start date and time.

The valid period set in the process of step S35 is set as the valid period.

In step S37, the server <NUM> stores license management information. The license management unit <NUM> generates the license management information including, for example, the installation key, the device unique ID, the device unique key, the installation key management ID, the server use start date and time, and the valid period. The storage control unit <NUM> stores the license management information in the storage unit <NUM>.

In step S38, the data generation unit <NUM> generates the installation request file.

Specifically, the data generation unit <NUM> generates storage data including the model name and the device unique ID of the electronic device 23a, the function ID of the function that is the subject of the license, the installation key for installing the license, and the installation key management ID corresponding to the installation key.

Next, the data generation unit <NUM> generates a signature of the storage data using the server secret key. Specifically, the data generation unit <NUM> calculates the hash value of the storage data using the same hash function as the electronic device 23a. Then, the data generation unit <NUM> generates a signature by encrypting the hash value using the server secret key.

Next, the data generation unit <NUM> generates an installation request file including the storage data and the signature (encrypted hash value). Thus, security of the storage data is ensured by using the server secret key.

Note that the installation request file is also an installation file used to install the license in the electronic device 23a.

In step S39, the communication unit <NUM> transmits the installation request file to the PC <NUM> under the control of the communication control unit <NUM>.

Thereafter, the license issuance processing ends.

On the other hand, in step S34, in a case where transmission of the installation request file is not requested from the PC <NUM> in step S9 in <FIG> described above, the license management unit <NUM> determines not to transmit the installation request file, the processes of steps S35 to S39 are skipped, and the license issuance processing ends. That is, generation of the installation key and transmission of the installation request file are not performed.

Furthermore, in step S33, in a case where the calculated hash value does not match the hash value in the device information file, the license management unit <NUM> determines that the device information file is not valid, the processes of steps S34 to S39 are skipped, and the license issuance processing ends. That is, generation of the installation key and transmission of the installation request file are not performed.

Next, license start processing executed by the electronic device 23a will be described with reference to a flowchart of <FIG>.

For example, when the medium <NUM> in which the installation request file is stored in the process of step S11 in <FIG> is connected to the drive <NUM> of the electronic device 23a, the output unit <NUM> displays a window <NUM> of <FIG> under the control of the UI control unit <NUM>.

In the window <NUM>, a model name of the electronic device 23a, a function ID, a remaining period of the license, and a message for confirming whether or not to enable the function are displayed. Note that the remaining period of the license is equal to the maximum valid period of the license because use of the license has not been started yet. Furthermore, a YES button <NUM> and a NO button <NUM> are displayed in the window <NUM>. Then, in a case where the YES button <NUM> is pressed, the license start processing is started. On the other hand, in a case where the NO button <NUM> is pressed, the license start processing is not started.

In step S61, the license management unit <NUM> determines whether or not the installation request file is valid. Specifically, the license management unit <NUM> reads the installation request file from the medium <NUM> via the drive <NUM>. Furthermore, the license management unit <NUM> reads the server public key from the storage unit <NUM>.

The license management unit <NUM> decrypts the signature included in the installation request file using the server public key. Thus, the hash value of the storage data included in the installation request file is obtained. Furthermore, the license management unit <NUM> calculates a hash value of the storage data of the installation request file using the same hash function as that of the server <NUM>. Then, in a case where the calculated hash value matches the hash value in the installation request file, the license management unit <NUM> determines that the installation request file is valid, and the processing proceeds to step S62.

Thus, falsification and the like of the installation key in the storage data are prevented.

In step S62, the license management unit <NUM> determines whether or not the device unique ID in the installation key matches that of the own device. In a case where the device unique ID in the installation key matches the device unique ID of the electronic device 23a stored in the storage unit <NUM>, the license management unit <NUM> determines that the device unique ID in the installation key matches the device unique ID of the own device, and the processing proceeds to step S63.

Thus, the license is prevented from being installed using an installation key for another electronic device 23a.

In step S63, the license management unit <NUM> determines whether or not it is an installation key of installation performed in the past. In a case where installation information including an installation key management ID that matches the installation key management ID included in the installation request file is not stored in the storage unit <NUM>, the license management unit <NUM> determines that the installation key is not an installation key of installation performed in the past, and the processing proceeds to step S64.

Thus, the license is prevented from being doubly installed by using the installation key of installation performed in the past.

In step S64, the license management unit <NUM> validates the license during the valid period. Specifically, the license management unit <NUM> sets the current date and time of the RTC <NUM> as the use start date and time (hereinafter, the client use start date and time) of the license.

Note that the client use start date and time does not necessarily match the server use start date and time set in the server <NUM>. Specifically, a time lag (hereinafter referred to as an installation necessary time) occurs from when the server <NUM> sets the valid period (maximum valid period) in the process of step S35 in <FIG> to when the electronic device 23b validates the license in a process of step S264. Therefore, even if the RTC <NUM> of the server <NUM> and the RTC <NUM> of the electronic device 23a match, there is a difference between the server use start date and time and the client use start date and time by the installation necessary time.

Then, the license management unit <NUM> makes the function licensed by the installation key usable until the valid period indicated in the installation key passes on the basis of the client use start date and time.

Therefore, for example, regardless of the installation necessary time, the function corresponding to the license can be used in the electronic device 23a during the maximum valid period.

Note that software for achieving the function may be installed in the electronic device 23a in advance or may be installed at this time.

In step S65, the electronic device 23a stores the license information. For example, the license management unit <NUM> generates the license information including the installation key, the installation key management ID, the client use start date and time, and the valid period. The storage control unit <NUM> stores the license information in the storage unit <NUM>.

In step S66, the electronic device 23a enables confirmation of the remaining period of the license. For example, in a case where an operation for confirming the remaining period of the license is performed via the input unit <NUM>, the license management unit <NUM> calculates the remaining period of the license on the basis of the license information. For example, the remaining period of the license is calculated by following Equation (<NUM>).

Remaining period of license in electronic device 23a <MAT>.

Then, the output unit <NUM> displays the remaining period of the license under the control of the UI control unit <NUM>.

Thereafter, the license start processing ends.

On the other hand, in step S63, in a case where the installation information including the installation key management ID that matches the installation key management ID included in the installation request file is stored in the storage unit <NUM>, the license management unit <NUM> determines that the installation key is an installation key of installation performed in the past, and the license start processing ends.

This is assumed to be a case where an attempt is made to install a previously installed license again.

Furthermore, in a case where it is determined in step S62 that the device unique ID in the installation key does not match that of the own device, the license start processing ends.

This is assumed to be, for example, a case where the medium <NUM> is connected to a different electronic device <NUM> and an attempt is made to install the license, a case where an incorrect installation request file is received, a case where the installation key is falsified, or the like.

Moreover, in step S61, in a case where the calculated hash value does not match the hash value in the installation request file, the license management unit <NUM> determines that the installation request file is not valid, and the license start processing ends.

This is assumed to be a case where the installation request file is falsified or the like.

Next, license return processing executed by the client <NUM> will be described with reference to a flowchart of <FIG>.

In step S101, the PC <NUM> requests a DeActivate request file.

For example, the PC <NUM> accesses the server <NUM> via the network <NUM> according to an operation by the user, and displays a screen for returning a license of a function enabled in the electronic device 23a. For example, a window <NUM> of <FIG> is displayed on the screen of the PC <NUM>.

The window <NUM> is divided into a device information field 501A, a license information field 501B, and a license detailed information field 501C.

At the left end of the device information field 501A, an image and a model name of the electronic device <NUM> are displayed side by side.

At the left end of the license information field 501B, the function for which a license is to be returned and the type of the license are indicated. In this example, it is indicated that the floating license of the <NUM> image capturing function with a valid period of seven days is to be returned.

At the left end of the license detailed information field 501C, the device unique ID of the electronic device <NUM> that can use the function corresponding to the license to be returned among the electronic devices <NUM> owned by the user is displayed.

At the right end of the license detailed information field 501C, a DeActivate button <NUM> is displayed for the electronic device 23a whose license is currently validated. When the DeActivate <NUM> is pressed, for example, a window <NUM> of <FIG> is displayed on the screen of the PC <NUM>.

In the window <NUM>, a message prompting to download the DeActivate request file, save the DeActivate request file in the medium <NUM>, and insert the medium <NUM> into the transfer source device (electronic device 23a), and a download button <NUM> are displayed. When the download button <NUM> is pressed, the PC <NUM> requests the server <NUM> for the DeActivate request file via the network <NUM>.

In response to this, the server <NUM> transmits the DeActivate request file to the PC <NUM> via the network <NUM> in step S131 in <FIG> described later.

In step S102, the PC <NUM> receives the DeActivate request file transmitted from the server <NUM>. Furthermore, the PC <NUM> stores the received DeActivate request file in the medium <NUM>, for example, according to an operation by the user.

In step S103, the electronic device 23a executes a command in the DeActivate request file.

Specifically, the user removes the medium <NUM> storing the DeActivate request file from the PC <NUM> and connects the medium <NUM> to the drive <NUM> of the electronic device 23a.

The drive <NUM> reads the DeActivate request file stored in the medium <NUM> and supplies the DeActivate request file to the control unit <NUM>. The control unit <NUM> executes a DeActivate request command included in the DeActivate request file. Thus, the output unit <NUM> displays a window <NUM> of <FIG> or a window <NUM> of <FIG>, for example, under the control of the UI control unit <NUM>.

In the window <NUM>, the current date and time of the device (electronic device 23a), the model name of the electronic device 23a, the function ID, the valid period of the license, a message indicating that the license is currently valid, and an invalidation button <NUM> are displayed.

Note that the current date and time of the device is displayed on the basis of the current date and time of the RTC <NUM> of the electronic device 23a.

On the other hand, the valid period is displayed on the basis of the server use start date and time and the valid period included in the installation key of the license to be returned. Specifically, a period from the server use start date and time to a date and time obtained by adding the valid period to the server use start date and time is displayed as the valid period. That is, this valid period is based on the RTC <NUM> of the server <NUM>.

Therefore, in a case where the date and time of the RTC <NUM> of the server <NUM> does not match the date and time of the RTC <NUM> of the electronic device 23a, as described in this example, there may be cases where the current date and time of the device displayed in the window <NUM> are not included in the valid period of the license.

In the window <NUM>, the current date and time of the device (electronic device 23a), the remaining period of the license, the model name of the electronic device 23a, the function ID, the valid period of the license, and an invalidation button <NUM> are displayed.

Note that the current date and time of the device is displayed on the basis of the current date and time of the RTC <NUM> of the electronic device 23a. As the remaining period of the license, the period calculated by Equation (<NUM>) described above on the basis of the RTC <NUM> of the electronic device 23a is displayed.

On the other hand, the valid period is displayed on the basis of the server use start date and time and the valid period included in the installation key of the license to be returned. Specifically, a date and time obtained by adding the valid period to the server use start date and time is displayed as the valid period. That is, this valid period is based on the RTC <NUM> of the server <NUM>.

Therefore, in a case where the date and time of the RTC <NUM> of the server <NUM> does not match the date and time of the RTC <NUM> of the electronic device 23a, as described in this example, there may be a case where the relationship between the current date and time of the device and the remaining period of the license and the valid period displayed in the window <NUM> does not match.

Note that, for example, the processes of steps S101 to S103 may be omitted, the user may operate the electronic device 23a without using the DeActivate request command to thereby display the window <NUM> of <FIG> or the window <NUM> of <FIG> on the electronic device 23a, and start the license return processing.

In step S104, the license management unit <NUM> invalidates the license.

For example, the user presses the invalidation button <NUM> of the window <NUM> of <FIG> or the invalidation button <NUM> of the window <NUM> of <FIG>. Then, when the invalidation of the license is determined, the license management unit <NUM> makes the function unusable.

In step S105, the data generation unit <NUM> generates the device information file.

Specifically, the data generation unit <NUM> encrypts the device unique key with the server public key, similarly to the process of step S6 in <FIG>.

Furthermore, the data generation unit <NUM> reads the firmware version, the device unique ID, and the installation key management ID of the license to be returned from the storage unit <NUM>. The data generation unit <NUM> generates storage data including the model name of the electronic device 23a, the firmware version, the device unique ID, the encrypted device unique key, the installation key management ID, and the information indicating that the license (corresponding to the installation key management ID) is to be returned.

Moreover, the data generation unit <NUM> calculates a hash value of the storage data using the device unique key, and generates the device information file including the storage data and the hash value, similarly to the process of step S6 in <FIG>.

Information included in the device information file is used for returning the license in the server <NUM> as license return information for returning the license.

In step S106, the device information file is stored in the medium <NUM> similarly to the process of step S7 in <FIG>.

In step S107, the PC <NUM> transmits the device information file to the server <NUM>.

A message prompting to upload the device information file acquired from the device (electronic device 23a) and an upload button <NUM> are displayed in the window <NUM>. When the upload button <NUM> is pressed, the PC <NUM> reads the device information file from the medium <NUM> and transmits the device information file to the server <NUM> via the network <NUM>.

In step S108, the PC <NUM> determines whether or not the DeActivate has been completed. In a case where the device information acquisition file transmitted from the server <NUM> has been received in step S138 in <FIG> described later, the PC <NUM> determines that the DeActivate has been completed, and the processing proceeds to step S109.

In step S109, the PC <NUM> notifies the return completion of the license. For example, the PC <NUM> displays a window <NUM> of <FIG> on the screen.

In the window <NUM>, a message notifying that the DeActivate has been completed, the remaining period of the license, a message prompting for saving the device information acquisition file in the medium <NUM> and inserting the medium <NUM> into the transfer destination device (electronic device 23b), and an OK button <NUM> are displayed. When the OK button <NUM> is pressed, the window <NUM> is closed.

Note that the remaining period of the license displayed in the window <NUM> is calculated on the basis of the current date and time of the RTC <NUM> of the server <NUM> as described later. Therefore, as described later, a difference occurs between the remaining period displayed in the window <NUM> of <FIG> and the remaining period displayed in the window <NUM>.

Thereafter, the license return processing ends.

On the other hand, in step S108, in a case where the device information acquisition file has not been received from the server <NUM>, the PC <NUM> determines that the DeActivate has not been completed, the process of step S109 is skipped, and the license return processing ends.

Next, license return response processing executed by the server <NUM> in response to the license return processing by the client <NUM> of <FIG> will be described with reference to a flowchart of <FIG>.

Note that this processing is started, for example, when the server <NUM> is requested for the DeActivate request file from the PC <NUM> in step S101 in <FIG> described above.

In step S131, the server <NUM> transmits the DeActivate request file. Specifically, the data generation unit <NUM> generates the DeActivate request file including a DeActivate request file command. The communication unit <NUM> transmits the DeActivate request file to the PC <NUM> via the network <NUM> under the control of the communication control unit <NUM>.

Note that, by omitting the processes of steps S101 to S103 in <FIG> of the electronic device 23a as described above, the process of step S131 can be omitted.

In step S132, the server <NUM> receives the device information file. Specifically, the communication control unit <NUM> receives, via the communication unit <NUM>, the device information file transmitted from the PC <NUM> in the process of step S107 in <FIG> described above.

In step S133, the license management unit <NUM> determines whether or not return of a license is requested. In a case where the received device information file includes information indicating that the license is to be returned, the license management unit <NUM> determines that the license is requested to be returned, and the processing proceeds to step S134.

In step S134, the license management unit <NUM> determines whether or not a combination of the device unique ID and the installation key management ID in the device information file matches a stored combination. Specifically, the license management unit <NUM> searches the license management information stored in the storage unit <NUM> for the license management information in which the combination of the device unique ID and the installation key management ID matches the combination in the device information file. Then, in a case where the corresponding license management information is detected, the license management unit <NUM> determines that the combination of the device unique ID and the installation key management ID in the device information file matches the stored combination, and the processing proceeds to step S135.

In step S135, the license management unit <NUM> determines whether or not the device information file is valid. Specifically, the license management unit <NUM> reads the device unique key included in the license management information detected in the process of step S134 from the storage unit <NUM>.

The license management unit <NUM> calculates a hash value of the storage data included in the device information file by using the same hash function as the electronic device 23a and the read device unique key. Then, in a case where the calculated hash value matches the hash value in the device information file, the license management unit <NUM> determines that the device information file is valid, and the processing proceeds to step S136.

Thus, falsification and the like of the device unique ID and the installation key management ID in the storage data are prevented.

Furthermore, it is thus guaranteed that the combination of the device unique key used to calculate the hash value in the device information file, and (the installation key corresponding to) the installation key management ID and the device unique ID in the device information file matches the combination of the device unique key, (the installation key corresponding to) the installation key management ID, and the device unique ID stored in the storage unit <NUM>.

In step S136, the license management unit <NUM> determines whether or not the valid period of the license remains. Specifically, the license management unit <NUM> calculates the remaining period of the license by following Equation (<NUM>) on the basis of the valid period and the server use start date and time in the license management information detected in the process of step S134.

Remaining period of license in server <NUM> <MAT>.

In a case where the calculated remaining period is greater than zero, the license management unit <NUM> determines that the valid period of the license remains, and the processing proceeds to step S137.

In step S137, the license management unit <NUM> makes the returned license usable. For example, the license management unit <NUM> updates the license management information detected in the process of step S134 by adding information indicating that return and invalidation have been done, and stores the updated license management information in the storage unit <NUM>. Furthermore, for example, the license management unit <NUM> causes the storage unit <NUM> to store information indicating that the installation key of the returned license can be issued again.

In step S138, the server <NUM> transmits the device information acquisition file. Specifically, the data generation unit <NUM> generates the device information acquisition file including the information indicating the remaining period of the license calculated in the process of step S136 and the device information acquisition command. This remaining period is displayed in the window <NUM> of <FIG> described above. The communication unit <NUM> transmits the device information acquisition file to the PC <NUM> via the network <NUM> under control of the communication control unit <NUM>.

Thereafter, the license return response processing ends.

Here, the remaining period of the license displayed in the window <NUM> of <FIG> described above is calculated by Equation (<NUM>) described above. That is, this remaining period is calculated on the basis of the date and time of the RTC <NUM> of the electronic device 23a with reference to the date and time when the license is validated in the electronic device 23a (client use start date and time).

On the other hand, the remaining period of the license displayed in the window <NUM> of <FIG> is calculated by Equation (<NUM>). That is, this remaining period is calculated on the basis of the date and time of the RTC <NUM> of the server <NUM> with reference to the date and time when the valid period of the license is set in the server <NUM> (server use start date and time).

Therefore, a time difference occurs between the two remaining periods. Specifically, the remaining period displayed in the window <NUM> is shorter as compared to the remaining period displayed in the window <NUM> by the time obtained by adding a necessary time from when the window <NUM> is displayed to when the window <NUM> is displayed to a necessary installation time.

Note that the necessary time from when the window <NUM> is displayed to when the window <NUM> is displayed is substantially equal to a necessary time from when the license in the electronic device 23a is invalidated to when the device information file for returning the license to the server <NUM> is transmitted (hereinafter referred to as a license return necessary time). Therefore, for example, in a case where the installation necessary time is one hour and the license return necessary time is one hour, the time difference between the both remaining periods is approximately two hours.

On the other hand, in step S136, in a case where the calculated remaining period of the license is zero or less, the license management unit <NUM> determines that the valid period of the license does not remain, the processes of steps S137 and S138 are skipped, and the license return response processing ends. That is, although the license is returned, since the valid period has already passed, the license is invalidated as it is.

Furthermore, in step S135, in a case where the calculated hash value does not match the hash value in the device information file, the license management unit <NUM> determines that the device information file is not valid, the license is invalidated without accepting the return of the license, and the license return response processing ends.

Moreover, in step S134, in a case where the corresponding license management information cannot be detected, the license management unit <NUM> determines that the combination of the device unique ID and the installation key in the device information file does not match the stored combination, the license is invalidated without accepting the return of the license, and the license return response processing ends.

Furthermore, in step S133, in a case where the received device information file does not include the information indicating that the license is to be returned, the license management unit <NUM> determines that the return of the license is not requested, the processes of steps S134 to S138 are skipped, and the license return response processing ends.

Next, license reacquisition processing executed by the client <NUM> will be described with reference to a flowchart of <FIG>.

In step S201, the electronic device 23b executes a command in the device information acquisition file.

Specifically, the user removes the medium <NUM> storing the device information acquisition file acquired in the process of step S109 in <FIG> from the PC <NUM>, and connects the medium <NUM> to the drive <NUM> of the electronic device 23b.

Note that, for example, the process of step S201 may be omitted, and the acquisition processing of the device information may be started by the user operating the electronic device 23b without using the device information acquisition command.

In step S202, similarly to the process of step S4 in <FIG>, it is determined whether or not the device unique key has been generated. In a case where it is determined that the device unique key has not been generated, the processing proceeds to step S203.

In step S203, the device unique key is generated similarly to the process of step S5 in <FIG>.

Thereafter, the processing proceeds to step S204.

On the other hand, in a case where it is determined in step S202 that the device unique key has been generated, the process of step S203 is skipped, and the processing proceeds to step S204.

In step S204, the device information file is generated similarly to the process of step S6 in <FIG>.

In step S205, the device information file is stored in the medium <NUM> similarly to the process of step S7 in <FIG>.

In step S206, the device information file is transmitted to the server <NUM> similarly to the process of step S8 in <FIG>.

On the other hand, the server <NUM> receives the device information file in step S231 in <FIG> described later.

In step S207, the PC <NUM> determines whether or not to acquire the installation request file.

In a case where it is determined that the device information file received from the PC <NUM> is valid, the server <NUM> transmits the display control file for final confirmation of implementation of the license installation via the network <NUM> in step S234 in <FIG> described later.

In the window <NUM>, the remaining period of the license, a message asking whether or not to transfer the license for the device (the electronic device 23b), a model name of the electronic device 23b, a serial number of the electronic device 23b, and a YES button <NUM> are displayed. When the YES button <NUM> is pressed, for example, a window <NUM> of <FIG> is displayed on the screen of the PC <NUM>.

Note that, as described later, the remaining period calculated on the basis of the RTC <NUM> in the server <NUM> is displayed as the remaining period of the license of the window <NUM>.

In the window <NUM>, a message prompting to download the installation request file, save the installation request file in the medium <NUM>, and insert the medium <NUM> into the transfer destination device (electronic device 23b), and a download button <NUM> are displayed. Then, when the download button <NUM> is pressed, the PC <NUM> determines to acquire the installation request file, and requests the server <NUM> to transmit the installation request file via the network <NUM>. Thereafter, the processing proceeds to step S208.

In response to this, the server <NUM> transmits the installation request file including the installation key and the like in step S239 in <FIG> described later.

In step S208, the installation request file is received similarly to the process of step S10 in <FIG>.

In step S209, the installation request file is stored in the medium <NUM> similarly to the process of step S11 in <FIG>.

Thereafter, the license reacquisition processing ends.

On the other hand, in step S207, in a case where the display control file for final confirmation of implementation of the license installation has not been received, or in a case where acquisition of the installation request file has not been instructed, the PC <NUM> determines not to acquire the installation request file. Thereafter, the processes of steps S208 and S209 are skipped, the installation request file is not acquired, and the license reacquisition processing ends.

Next, license reissuance processing executed by the server <NUM> in response to the license reacquisition processing by the client <NUM> of <FIG> will be described with reference to a flowchart of <FIG>.

In step S231, similarly to the process of step S32 in <FIG>, the communication control unit <NUM> of the server <NUM> receives, via the communication unit <NUM>, the device information file transmitted from the PC <NUM> in the process of step S206 in <FIG> described above.

In step S232, similarly to the process of step S33 in <FIG>, it is determined whether or not the device information file is valid. In a case where it is determined that the device information file is valid, the processing proceeds to step S233.

In step S233, the license management unit <NUM> determines whether or not the valid period of the license remains. Specifically, the license management unit <NUM> reads, from the storage unit <NUM>, the license management information immediately before the license is returned, that is, the license management information stored when the installation key is generated for the electronic device 23a. Then, the license management unit <NUM> calculates the remaining period of the license by above-described Equation (<NUM>) on the basis of the valid period and the server use start date and time in the read license management information. In a case where the calculated remaining period is greater than zero, the license management unit <NUM> determines that the valid period of the license remains, and the processing proceeds to step S234.

In step S234, the license management unit <NUM> determines whether or not to transmit the installation request file.

Specifically, the UI control unit <NUM> generates the display control file for final confirmation of implementation of the license installation. This display control file includes information indicating the remaining period of the license calculated in the process of step S233. This remaining period is displayed in the window <NUM> of <FIG> described above.

Here, a time difference occurs between the remaining period displayed in the window <NUM> and the remaining period displayed in the window <NUM> by a necessary time from when the window <NUM> of <FIG> is displayed to when the window <NUM> of <FIG> is displayed. This time difference is substantially equal to the necessary time from when the license is returned to when the returned license is acquired again.

The communication unit <NUM> transmits the display control file to the PC <NUM> via the network <NUM> under the control of the communication control unit <NUM>.

Then, in a case where transmission of the installation request file is requested from the PC <NUM> in step S207 in <FIG> described above, the license management unit <NUM> determines to transmit the installation request file, and the processing proceeds to step S235.

In step S235, the license management unit <NUM> sets the valid period and the use start date and time of the license. Specifically, the license management unit <NUM> calculates the remaining period of the license by above-described Equation (<NUM>), and sets the calculated remaining period as a new valid period of the license. Furthermore, the license management unit <NUM> sets the current date and time of the RTC <NUM> as a new use start date and time (server use start date and time) of the license.

Here, the date and time of the RTC <NUM> in Equation (<NUM>) are equal to the new server use start date and time, and the server use start date and time in Equation (<NUM>) are equal to the server use start date and time before the update when it is provided to the electronic device 23a. Therefore, the new valid period of the license is equal to the remaining period of the valid period of the license with reference to the new server use start date and time.

Then, the license management unit <NUM> responds to return of the license from the electronic device 23b and provision of the electronic device (for example, the electronic device 23a) with the returned license until the date and time of the RTC <NUM> pass the new valid period with reference to the new server use start date and time.

Note that the remaining period of the license calculated in the process of step S234 may be set as it is as a new valid period.

In step S236, the license management unit <NUM> generates an installation key. That is, the license management unit <NUM> generates the installation key in the format of <FIG> described above.

Note that the installation key has the same function ID as that of the installation key for the electronic device 23a generated in the process of step S36 in <FIG>, and has an installation key management ID, a device unique ID, a use start date and time, and a valid period different from those thereof.

Specifically, a new installation key management ID is generated and set in the installation key.

As the device unique ID, the device unique ID of the electronic device 23b is set, the device unique ID of the electronic device 23b being included in the device information file.

As the use start date and time, the server use start date and time set in the process of step S235 is set.

As the valid period, the valid period set in the process of step S235 is set.

In step S237, the license management information is generated and stored similarly to the process of step S37 in <FIG>.

In step S238, the installation request file is generated similarly to the process of step S38 in <FIG>.

In step S239, the installation request file is transmitted similarly to the process of step S39 in <FIG>.

Thereafter, the license reissuance processing ends.

On the other hand, in a case where it is determined in step S234 not to transmit the installation request file, the processes of steps S235 to S239 are skipped, and the license reissuance processing ends. That is, generation of the installation key and transmission of the installation request file are not performed.

Furthermore, in step S233, in a case where the calculated remaining period of the license is zero or less, the license management unit <NUM> determines that the valid period of the license does not remain, the processes of steps S234 and S239 are skipped, and the license reissuance processing ends. That is, since the valid period of the license has already passed, generation of the installation key and transmission of the installation request file are not performed.

Moreover, in a case where it is determined in step S232 that the device information file is not valid, the processes of steps S233 to S239 are skipped, and the license reissuance processing ends. That is, generation of the installation key and transmission of the installation request file are not performed.

Next, license transfer processing executed by the electronic device 23b will be described with reference to a flowchart of <FIG>.

For example, when the medium <NUM> in which the installation request file is stored in the process of step S209 in <FIG> is connected to the drive <NUM> of the electronic device 23b, the output unit <NUM> displays a window <NUM> of <FIG> under the control of the UI control unit <NUM>.

In the window <NUM>, the model name of the electronic device 23b, the function ID, the remaining period of the license, and a message for confirming whether or not to enable the function are displayed. Note that in the remaining period of the license, the valid period of the license set in the installation key is displayed. Furthermore, a YES button <NUM> and a NO button <NUM> are displayed in the window <NUM>. Then, in a case where the YES button <NUM> is pressed, the license transfer processing is started. On the other hand, in a case where the NO button <NUM> is pressed, the license transfer processing is not started.

In step S261, it is determined whether or not the installation request file is valid, similarly to the process of step S61 in <FIG>. In a case where it is determined that the installation request file is valid, the processing proceeds to step S262.

In step S262, it is determined whether or not the device unique ID in the installation key matches that of the own device, similarly to the process of step S62 in <FIG>. In a case where it is determined that the device unique ID in the installation key matches that of the own device, the processing proceeds to step S263.

In step S263, it is determined whether or not the installation key is an installation key of installation performed in the past, similarly to the process of step S63 in <FIG>. In a case where it is determined that the installation key is not the installation key of installation performed in the past, the processing proceeds to step S264.

In step S264, the license management unit <NUM> validates the license during the valid period. Specifically, the license management unit <NUM> sets the current date and time of the RTC <NUM> as the use start date and time (client use start date and time) of the license. Then, the license management unit <NUM> makes the function licensed by the installation key usable until the valid period indicated in the installation key passes on the basis of the client use start date and time.

Therefore, for example, regardless of the time passed from when the server <NUM> sets the valid period (remaining period) of the license in the process of step S235 in <FIG> to when the electronic device 23b validates the license in the process of step S264, the function corresponding to the license can be used in the electronic device 23b during the valid period set in the process of step S235.

In step S265, the license information is stored similarly to the process of step S65 in <FIG>.

In step S266, confirmation of the remaining period of the license is enabled similarly to the process of step S66 in <FIG>.

Thereafter, the license transfer processing ends.

On the other hand, in a case where it is determined in step S261 that the installation request file is not valid, in a case where it is determined in step S262 that the device unique ID in the installation key does not match that of the own device, or in a case where it is determined in step S263 that it is the installation key of installation performed in the past, the license is not validated and the license transfer processing ends.

As described above, even if the server <NUM> and the electronic device <NUM> do not directly communicate with each other, the time-limited floating license provided by the server <NUM> can be shared and used by the plurality of electronic devices <NUM> during the valid period.

Furthermore, even if the server <NUM> and the electronic device <NUM> do not directly communicate with each other, it is possible to install a license in the electronic device <NUM> in a safe state, and make the function of the electronic device <NUM> usable.

Moreover, even if the server <NUM> and the electronic device <NUM> do not directly communicate with each other, it is possible to return the license from the electronic device <NUM> to the server <NUM> in a safe state, and make the license usable in another electronic device <NUM>.

Furthermore, it is possible to return the license by one-way processing of only transmitting the device information file from the electronic device <NUM> to the server <NUM> via the medium <NUM> and the PC <NUM>, and it is possible to reduce processing necessary for returning the license. Furthermore, even if the RTC <NUM> of the server <NUM> and the RTC <NUM> of the electronic device <NUM> are not combined, the time-limited floating license provided by the server <NUM> can be reliably shared and used by the plurality of electronic devices <NUM> during the valid period. That is, convenience in a case where the electronic device <NUM> uses the time-limited floating license is improved.

Moreover, different device unique keys are generated in electronic devices <NUM>, and security of each communication path between the electronic devices <NUM> and the server <NUM> is ensured by the device unique keys different from each other. Therefore, even if the device unique key of one electronic device <NUM> is hacked, the floating license can be safely used in other electronic devices <NUM> without affecting the other electronic devices <NUM>.

Hereinafter, modification examples of the above-described embodiment of the present technology will be described.

In the above description, an example is given in which the electronic device 23a and the electronic device 23b share the same PC <NUM>, but PCs <NUM> different from each other may be used. Furthermore, the electronic device 23a may use different PCs <NUM> between when the license is acquired from the server <NUM> and when the license is returned.

Moreover, for example, instead of the PC <NUM>, another information processing device (for example, a smartphone, a tablet, or the like) that can communicate with the server <NUM> and can read and write the medium <NUM> may be used.

Furthermore, for example, the server <NUM> and the electronic device <NUM> may exchange data not via the medium <NUM> but via another information processing device (for example, a smartphone, a tablet, or the like).

<FIG> and <FIG> illustrate an example of a case where the server <NUM> and the electronic device <NUM> exchange data via a smartphone <NUM>.

For example, the server <NUM> and the smartphone <NUM> perform communication (hereinafter, referred to as <NUM> communication) based on a fourth generation (<NUM>) mobile communication standard. The electronic device <NUM> and the smartphone <NUM> communicate with each other via Wi-Fi.

In this case, since the smartphone <NUM> cannot simultaneously perform the <NUM> communication and the Wi-Fi communication, exchange of data is performed in order similarly to the case of using the medium <NUM> described above.

Specifically, for example, as illustrated in <FIG>, first, the electronic device <NUM> and the smartphone <NUM> are connected by Wi-Fi, and the electronic device <NUM> transmits the device information file to the smartphone <NUM>.

Next, the server <NUM> and the smartphone <NUM> are connected by the <NUM> communication, and the smartphone <NUM> transmits the device information file to the server <NUM>. The server <NUM> generates the installation request file using the received device information file and transmits the installation request file to the smartphone <NUM>.

Next, the electronic device <NUM> and the smartphone <NUM> are reconnected by Wi-Fi, and the smartphone <NUM> transmits the installation request file to the electronic device <NUM>. Then, the electronic device <NUM> installs the license using the installation request file.

Furthermore, for example, as illustrated in <FIG>, first, the electronic device <NUM> and the smartphone <NUM> are connected by Wi-Fi, and the electronic device <NUM> transmits the device information file to the smartphone <NUM>.

Next, the server <NUM> and the smartphone <NUM> are connected by the <NUM> communication, and the smartphone <NUM> transmits the device information file to the server <NUM>. Thus, the license is returned from the electronic device <NUM> to the server <NUM>.

In this manner, it is possible to install the license provided by the server <NUM> in the electronic device <NUM> or return the license from the electronic device <NUM> to the server <NUM> without via the medium <NUM> and without direct communication between the server <NUM> and the electronic device <NUM>. Furthermore, since security of the communication path between the server <NUM> and the electronic device <NUM> is ensured by using the device unique key, falsification and the like of data are prevented.

Note that, for example, short-range wireless communication such as Bluetooth (registered trademark) or near field communication (NFC) may be used for communication between the electronic device <NUM> and the smartphone <NUM>. Thus, the server <NUM> and the electronic device <NUM> can directly communicate with each other via the smartphone <NUM>. However, in this case, the electronic device <NUM> needs to support the short-range wireless communication.

Moreover, in the above description, an example has been described in which, in a case where the combination of the device unique key used to calculate the hash value in the device information file, and (the installation key corresponding to) the installation key management ID and the device unique ID in the device information file matches the combination of the device unique key, (the installation key corresponding to) the installation key management ID, and the device unique ID stored in the storage unit <NUM>, the return of the license is accepted and validated.

On the other hand, for example, in a case where the combination of the device unique key used to calculate the hash value in the device information file and (the installation key corresponding to) the installation key management ID in the device information file matches the combination of the device unique key and (the installation key corresponding to) the installation key management ID stored in the storage unit <NUM>, the return of the license may be accepted and validated.

In this case, for example, inclusion of the device unique ID in the device information file can be inhibited. Furthermore, for example, in the server <NUM>, the hash value of the storage data in the device information file is calculated using the installation key management ID that matches the installation key management ID in the device information file and the device unique key combined in the storage unit <NUM>. Then, in a case where the calculated hash value matches the hash value in the device information file, the return of the license is accepted.

Furthermore, for example, the license management unit <NUM> of the server <NUM> may set a use end date and time (hereinafter referred to as a server use end date and time) instead of the server use start date and time or in addition to the server use start date and time. For example, the license management unit <NUM> sets the license use end date and time by adding the valid period of the license to the current date and time of the RTC <NUM> of the server <NUM> in step S35 in <FIG>, or by adding the remaining period of the license to the current date and time of the RTC <NUM> of the server <NUM> in step S235 in <FIG>.

In this case, for example, until the date and time of the RTC <NUM> pass the server use end date and time, the license management unit <NUM> may respond to return of the license from the electronic device <NUM> that has provided the license and provision of the license returned from the electronic device <NUM> to another electronic device <NUM>. Furthermore, for example, the license management unit <NUM> may set a period from the current date and time of the RTC <NUM> to the server use end date and time as the remaining period of the license.

Moreover, for example, the license management unit <NUM> of the electronic device <NUM> may set a use end date and time (hereinafter referred to as a client use end date and time) on the basis of the current date and time of the RTC <NUM> and the valid period of the license instead of the client use start date and time or in addition to the client use start date and time. In this case, for example, the license management unit <NUM> may manage the valid period of the license on the basis of the client use end date and time.

Furthermore, the format of the installation key in <FIG> is an example, and can be changed as appropriate.

For example, the installation key may include the server use end date and time instead of the server use start date and time or in addition to the server use start date and time. In this case, for example, the UI control unit <NUM> of the electronic device 23a may display the valid period of the license in the server <NUM> on the basis of the server use end date and time on the screen or the like of <FIG>.

Furthermore, for example, some of the data included in the installation key may be stored not in the installation key, but in a file such as the installation request file for transmitting the installation key.

Moreover, in the above description, an example has been described in which the device information file transmitted from the client <NUM> to the server <NUM> when the license is returned includes the installation key management ID as the installation key information related to the installation key. On the other hand, for example, the installation key or both the installation key and the installation key management ID may be included in the device information file as the installation key information.

Furthermore, in the above description, an example has been described in which information is transmitted and received mainly in a file format between the server <NUM> and the client <NUM>, but any other format can be used as the format of information to be transmitted and received.

Moreover, the server <NUM> does not necessarily need to include the RTC <NUM>. For example, the communication unit <NUM> of the server <NUM> may receive information indicating the date and time of the RTC included in another server via the network <NUM>, and the license management unit <NUM> and the like may use the received date and time of the RTC.

The series of processes described above can be executed by hardware or can be executed by software. In a case where the series of processes is executed by software, a program constituting the software is installed in a computer. Here, the computer includes a computer incorporated in dedicated hardware, a general-purpose personal computer for example that can execute various functions by installing various programs, and the like.

<FIG> is a block diagram illustrating a configuration example of hardware of a computer that executes the above-described series of processes by a program.

In a computer <NUM>, a central processing unit (CPU) <NUM>, a read only memory (ROM) <NUM>, and a random access memory (RAM) <NUM> are interconnected via a bus <NUM>.

An input-output interface <NUM> is further connected to the bus <NUM>. An input unit <NUM>, an output unit <NUM>, a recording unit <NUM>, a communication unit <NUM>, and a drive <NUM> are connected to the input-output interface <NUM>.

The input unit <NUM> includes an input switch, a button, a microphone, an imaging element, and the like. The output unit <NUM> includes a display, a speaker, and the like. The recording unit <NUM> includes a hard disk, a nonvolatile memory, and the like. The communication unit <NUM> includes a network interface and the like. The drive <NUM> drives a removable recording medium <NUM> such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.

In the computer <NUM> configured as described above, the CPU <NUM> loads, for example, a program recorded in the recording unit <NUM> into the RAM <NUM> via the input-output interface <NUM> and the bus <NUM> and executes the program, so as to perform the above-described series of processes.

The program executed by the computer <NUM> (CPU <NUM>) can be provided by being recorded on, for example, a removable recording medium <NUM> as a package medium or the like. Furthermore, the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.

In the computer <NUM>, the program can be installed in the recording unit <NUM> via the input-output interface <NUM> by mounting the removable recording medium <NUM> to the drive <NUM>. Furthermore, the program can be received by the communication unit <NUM> via a wired or wireless transmission medium and installed in the recording unit <NUM>. In addition, the program can be installed in the ROM <NUM> or the recording unit <NUM> in advance.

Note that the program executed by the computer may be a program for processing in time series in the order described in the present description, or a program for processing in parallel or at a necessary timing such as when a call is made.

Furthermore, in the present description, a system means a set of a plurality of components (devices, modules (parts), and the like), and it does not matter whether or not all components are in the same housing. Therefore, both of a plurality of devices housed in separate housings and connected via a network and a single device in which a plurality of modules is housed in one housing are systems.

Moreover, the embodiments of the present technology are not limited to the above-described embodiments, and various modifications are possible without departing from the gist of the present technology.

For example, the present technology can employ a configuration of cloud computing in which one function is shared by a plurality of devices via a network and processed jointly.

Furthermore, each step described in the above-described flowcharts can be executed by one device, or can be executed in a shared manner by a plurality of devices.

Moreover, in a case where a plurality of processes is included in one step, the plurality of processes included in the one step can be executed in a shared manner by a plurality of devices in addition to being executed by one device.

Claim 1:
An information processing device comprising
a license management unit that sets at least one of a first use start date and time or a first use end date and time of a license to be provided to a first electronic device on a basis of a date and time of a hardware clock, and responds to return of the license from the first electronic device and provision of a second electronic device with the license returned from the first electronic device until the date and time of the hardware clock pass a first valid period with reference to the first use start date and time or pass the first use end date and time;
wherein in a case where the license returned from the first electronic device is provided to the second electronic device, the license management unit sets at least one of a second use start date and time or a second use end date and time on a basis of the date and time of the hardware clock, and sets a remaining period of the first valid period with reference to the second use start date and time or a period until the second use end date and time as a second valid period of the license; further comprising
a data generation unit that generates first license communication information including a first installation key for installation of the license in the first electronic device and the first valid period, and second license communication information including a second installation key for installation of the license in the second electronic device and the second valid period;
wherein the license management unit validates or invalidates the return of the license from the first electronic device on a basis of a combination of installation key information included in license return information that is information generated by the first electronic device and a device unique key that corresponds to the license return information and is unique to the first electronic device;
and wherein the license return information stores a hash value of data in the license return information, and
the license management unit calculates a hash value of data in the license return information by using the device unique key, and validates the return of the license from the first electronic device in a case where the calculated hash value matches the hash value in the license return information and the installation key information in the license return information corresponds to the first installation key.
.