Patent Description:
Conventionally, a floating license has been used as one of manners of 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 by electronic devices of which the number exceeds the number of licenses.

By the way, there is a need to enable a floating license provided by a server to be used even in an electronic device that does not directly communicate with the server.

The present technology has been made in view of such a situation, and is to improve convenience in a case where a floating license is used in an electronic device that does not directly communicate with an information processing apparatus such as a server or the like providing the floating license.

<CIT> considers an information processing device and program.

<CIT> relates to an information processing apparatus, method, and program.

<CIT> describes generating unique identifiers for mobile devices.

Aspects of the invention are set out in the attached claims.

According to the first to third aspects of the present technology, a floating license can be used in the electronic device that does not directly communicate with the information processing apparatus providing the floating license. Furthermore, according to the first to third aspects of the present technology, it is possible to improve convenience in a case where the floating license is used in the electronic device that does not directly communicate with the information processing apparatus providing the floating license.

Note that an effect described here is not necessarily limited, and may be any effect described in the present disclosure.

Hereinafter, an embodiment for carrying out the present technology will be described. A description will be given 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>, and an electronic device <NUM>.

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

The server <NUM> performs provision and management of a license (floating license) of a function used in the electronic device <NUM>, provision of software for realizing the function of the electronic device <NUM>, and the like.

The PC <NUM> exchanges various data with the server <NUM> by communicating with the server <NUM> via the network <NUM>. For example, the PC <NUM> receives data regarding the license of the function used in the electronic device <NUM> and various data such as software and the like used in the electronic device <NUM>, from the server <NUM>. Furthermore, the PC <NUM> transmits various data such as data and the like regarding the electronic device <NUM> 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 <NUM>.

Note that the removable medium <NUM> will hereinafter be simply referred to as a medium <NUM>.

The electronic device <NUM> is difficult to connect to the network <NUM>, basically does not directly communicate with the server <NUM>, and is used offline. Furthermore, the electronic device <NUM> can use a function corresponding to the installed license by installing the license provided from the server <NUM> via the medium <NUM>. Moreover, the electronic device <NUM> returns the license provided from the server <NUM> to the server <NUM> via the medium <NUM> and the PC <NUM>, if necessary.

Note that a 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 by way of example.

Furthermore, a type of a function that becomes a target of the license provided by the server <NUM> is not particularly limited. For example, the function may not be necessarily a function using software, and may be a function realized only by hardware.

Moreover, the server <NUM> may also provide software for realizing the function that becomes the target of the license. In this case, the license of the function is also a license of the software for realizing the function.

Furthermore, only one client <NUM> has been illustrated in <FIG> for making it easy to understand the drawing and the description, but a plurality of clients <NUM> is actually provided. Moreover, only one server <NUM> has also been illustrated, but a plurality of servers <NUM> may be provided. Furthermore, the number of at least one of the PC <NUM>, the medium <NUM>, or the electronic device <NUM> included in one client <NUM> may be plural.

<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 connected to each other via a bus <NUM>.

The input unit <NUM> includes, for example, input devices such as a switch, a button, a key, a microphone, an imaging element, and the like, 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 the like, and controls processing of each unit of the server <NUM>.

The communication unit <NUM> includes, for example, a communication device and the like, and communicates with the PC <NUM> via the network <NUM>. Note that a communication manner of the communication unit <NUM> is not particularly limited, and may be any one of a wired communication manner or a wireless communication manner. Furthermore, for example, the communication unit <NUM> may correspond to a plurality of communication manners.

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

The RTC <NUM> is a hardware clock that continues to operate by a backup battery (not illustrated) and the like even though a power supply of the server <NUM> is turned off. The RTC <NUM> is managed so that a user cannot change the date and time (a date and a time).

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

Note that, hereinafter, in a case where the respective units of the server <NUM> exchange data and the like with each other via the bus <NUM>, a description of the bus <NUM> will be appropriately omitted. For example, in a case where the control unit <NUM> and the communication unit <NUM> exchange data with each other via the bus <NUM>, it is simply said that the control unit <NUM> and the communication unit <NUM> exchange data with each other.

<FIG> illustrates a configuration example of a function of the control unit <NUM> of the server <NUM>. The control unit <NUM> realizes a function 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> by executing, for example, a control program.

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 a user interface in the PC <NUM> by generating a display control file for displaying various information on a 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> also acquires data to be transmitted to the PC <NUM> from each unit of the server <NUM> or supplies data received from the PC <NUM> to each unit of the server <NUM>.

The storage control unit <NUM> controls the storage unit <NUM> to store data and the like regarding the license of the function used in the electronic device <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 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 storage unit <NUM>, and the drive <NUM> are connected to each other via a bus <NUM>.

The input unit <NUM> includes, for example, input devices such as a switch, a button, a key, a microphone, an imaging element, and the like, 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 hardware and software for executing the function 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 CPU and the like, and controls processing of each unit of the electronic device <NUM>.

The communication unit <NUM> includes, for example, a communication device and the like, and communicates with another electronic device (not illustrated) (for example, a smartphone or the like). Note that a communication manner of the communication unit <NUM> is not particularly limited, and may be any one of a wired communication manner or a wireless communication manner. Furthermore, for example, the communication unit <NUM> may correspond to a plurality of communication manners.

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

The drive <NUM> can attach and detach the medium <NUM>, and drives the connected medium <NUM>.

Note that, hereinafter, in a case where the respective units of the electronic device <NUM> exchange data and the like with each other via the bus <NUM>, a description of the bus <NUM> will be appropriately omitted. For example, in a case where the control unit <NUM> and the communication unit <NUM> exchange data with each other via the bus <NUM>, it is simply said that the control unit <NUM> and the communication unit <NUM> exchange data with each other.

<FIG> illustrates a configuration example of a function of the control unit <NUM> of the electronic device <NUM>. The control unit <NUM> realizes a function including a license management unit <NUM>, a key generation unit <NUM>, a data generation unit <NUM>, a UI control unit <NUM>, a communication control unit <NUM>, and a storage control unit <NUM> by executing, for example, a control program.

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

The key generation unit <NUM> generates a device unique key, which is a unique secret key different for every 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 a 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> or 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>.

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 of the user to display a screen for acquiring the license of the function used in the electronic device <NUM>. 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 a left end of the device information field 301A, an image and a type name of the electronic device <NUM> are displayed laterally side by side.

At a left end of the license information field 301B, a function that becomes a target acquiring a license and a type of the license are shown. In this example, it is shown that a floating license of an imaging function of a <NUM> image is an acquisition target.

At a right end of the license information field 301B, an installation button <NUM> is displayed. When the installation button <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 for prompting the user to download the device information acquisition file, store the device information acquisition file in the medium <NUM>, and insert the medium <NUM> into the camera (electronic device <NUM>) and a download button <NUM> are displayed. When the download button <NUM> is pressed, the PC <NUM> requests the server <NUM> to transmit the device information acquisition file, via the network <NUM>.

In response to this request, the server <NUM> transmits the device information acquisition file to the PC <NUM> via the network <NUM> in step S31 of <FIG> as 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> according to, for example, an operation of the user.

In step S3, the electronic device <NUM> executes a command in the device information acquisition file.

Specifically, the user detaches the medium <NUM> in which the device information acquisition file is stored from the PC <NUM>, and connects the medium <NUM> to the drive <NUM> of the electronic device <NUM>.

The drive <NUM> reads the device information acquisition file stored in the medium <NUM> and supplies the read 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. Therefore, acquisition processing of device information is started.

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

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

In step S5, the key generation unit <NUM> generates the device unique key. A generation method of the device unique key is not particularly limited. The storage control unit <NUM> causes the storage unit <NUM> to store the device unique key.

That is, the electronic device <NUM> generates the device unique key, which is a secret key unique to the electronic device <NUM>, before generating a device information file for the first time after factory shipment. Therefore, it is not necessary to generate the device unique key at the time of the factory shipment and store the device unique key in the electronic device <NUM>, such that a risk of leakage or the like of the device unique key is reduced. Furthermore, for example, by changing firmware of the electronic device <NUM> or the like, it is possible to change a generation method, a generation timing, or the like, of the device unique key, such that flexibility is improved.

Thereafter, the processing proceeds to step S6.

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

In step S6, the data generation unit <NUM> encrypts the device unique key with a server public key. Specifically, the data generation unit <NUM> reads the device unique key and the server public key from the storage unit <NUM>. Note that the server public key is a public key corresponding to a server secret key possessed by the server <NUM>, and is distributed to the electronic device <NUM> in advance. The data generation unit <NUM> encrypts the device unique key using the server public key. Therefore, security of the device unique key is ensured, such that tampering, eavesdropping, and the like, of the device unique key are prevented.

In step S7, the data generation unit <NUM> generates storage data including a device unique identification (ID) and the device unique key. Specifically, the data generation unit <NUM> reads the device unique ID from the storage unit <NUM>. The device unique ID is an ID uniquely allocated to each electronic device <NUM>, and includes, for example, a type name and a serial number of the electronic device <NUM>. The data generation unit <NUM> generates storage data including the device unique ID and the encrypted device unique key.

In step S8, 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.

In step S9, the data generation unit <NUM> generates a device information file including the storage data and the hash value. Therefore, security of the storage data is ensured using the device unique key.

This device information file is used by the server <NUM> to issue a license as a license request file for requesting issuance of the license.

In step S10, 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 the control of the UI control unit <NUM>. In the window <NUM>, a message for notifying the user that the device information file has been written out and an OK button <NUM> are displayed. When the OK button <NUM> is pressed, the window <NUM> is closed.

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

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

In the window <NUM>, a message for prompting the user to upload the device information file acquired from the camera (electronic device <NUM>) 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 read device information file to the server <NUM> via the network <NUM>.

In response to this transmission, the server <NUM> receives the device information file in step S32 of <FIG> as described later.

In step S12, the PC <NUM> determines whether or not to acquire a license communication file.

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

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 device unique ID of the camera (electronic device <NUM>), a message for confirming the execution of the installation of the license in the camera, and an installation button <NUM> are displayed. When the installation button <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 for prompting the user to download the license communication file, store the license communication file in the medium <NUM>, and insert the medium <NUM> into the camera (electronic device <NUM>) and a download button <NUM> are displayed. Then, when the download button <NUM> is pressed, the PC <NUM> determines to acquire the license communication file and requests the server <NUM> to transmit the license communication file via the network <NUM>. Thereafter, the processing proceeds to step S13.

In response to this request, the server <NUM> transmits the license communication file including an installation key and the like in step S40 of <FIG> as described later.

In step S13, the PC <NUM> receives the license communication file from the server <NUM> via the network <NUM>.

In step S14, the PC <NUM> stores the license communication file in the medium <NUM> according to, for example, an operation of the user.

Thereafter, the license acquisition processing ends.

On the other hand, in step S12, the PC <NUM> determines not to acquire the license communication file in a case where the display control file for finally confirming the execution of the installation of the license has not been received or in a case where an instruction on the acquisition of the license communication file has not been given. Thereafter, the processing of steps S13 and S14 is skipped, such that the license acquisition processing ends without acquiring the license communication file.

Next, license issuance processing executed by the server <NUM>, corresponding 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> has received the request for the device information acquisition file from the PC <NUM> in step S1 of <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 the control of the communication control unit <NUM>.

Note that the processing of step S31 can be omitted by omitting the processing of steps S1 to S3 of <FIG> of the electronic device <NUM> as described above.

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

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 to encrypt 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 using the same hash function as that of the electronic device <NUM> and the decrypted device unique key. Then, the license management unit <NUM> determines that the device information file is valid in a case where the calculated hash value coincides with a hash value in the device information file, and the processing proceeds to step S34.

Therefore, tampering or the like of the device unique ID and the device unique key in the storage data is prevented.

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

Specifically, the UI control unit <NUM> generates the display control file for finally confirming the execution of the installation of the license. 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, the license management unit <NUM> determines to transmit the license communication file in a case where the PC <NUM> requests the server to transmit the license communication file in step S12 of <FIG> described above, and the processing proceeds to step S35.

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

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

The installation key includes a function ID, system unique information, and a device unique ID.

The function ID is an ID for identifying a function that becomes a target of a license.

The system unique information is a serial number including alphanumeric characters generated by the server <NUM>, and is different for every installation key.

The device unique ID is a device unique ID of the electronic device <NUM> that becomes a target to which the license is to be provided, and the device unique ID of the electronic device <NUM> included in the device information file is used.

In step S36, the data generation unit <NUM> generates storage data including the installation key.

In step S37, the data generation unit <NUM> calculates a hash value of the storage data using the device unique key. That is, the data generation unit <NUM> calculates a hash value of the storage data using the same hash function as that of the electronic device <NUM> and the device unique key included in the device information file.

In step S38, the data generation unit <NUM> generates a license communication file including the storage data and the hash value. Specifically, the data generation unit <NUM> generates a signature by encrypting the hash value using the server secret key. Then, the data generation unit <NUM> generates a license communication file including the storage data and the signature (encrypted hash value). Therefore, security of the storage data is ensured using the device unique key.

Note that the license communication file is also an installation file used to install the license in the electronic device <NUM>.

In step S39, the server <NUM> stores license information. For example, the storage control unit <NUM> causes the storage unit <NUM> to store license information including, for example, a combination of the current date and time of the RTC <NUM>, the device unique ID, the device unique key, and the installation key.

In step S40, the communication unit <NUM> transmits the license communication 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, the license management unit <NUM> determines not to transmit the license communication file in a case where the PC <NUM> does not request the server to transmit the license communication file in step S12 of <FIG> described above, the processing of steps S35 to S40 is skipped, and the license issuance processing ends. That is, the generation of the installation key and the transmission of the license communication file are not performed.

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

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

For example, when the medium <NUM> in which the license communication file is stored is connected to the drive <NUM> of the electronic device <NUM>, the output unit <NUM> displays a window <NUM> of <FIG> under the control of the UI control unit <NUM>, for example.

In the window <NUM>, a type name of the electronic device <NUM>, a type of function and a license type, and a message for confirming whether or not to enable the function are 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 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 license communication file is valid. Specifically, the license management unit <NUM> reads the license communication file from the medium <NUM> via the drive <NUM>. Furthermore, the license management unit <NUM> reads the device unique key and the server public key from the storage unit <NUM>.

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

Therefore, tampering or the like of the installation key in the storage data is prevented.

In step S62, the license management unit <NUM> determines whether or not the installation key is an installation key that has been installed in the past. The license management unit <NUM> determines that the installation key is not the installation key that has been installed in the past in a case where an installation key coinciding with the installation key included in the license communication file is not stored in the storage unit <NUM>, and the processing proceeds to step S63.

Therefore, it is prevented that the license is installed doubly using the installation key that has been installed in the past.

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

Therefore, it is prevented that the license is installed using an installation key for another electronic device <NUM>.

In step S64, the license management unit <NUM> activates the license. That is, the license management unit <NUM> makes a function whose license is given by the installation key usable.

Note that software realizing the function may be installed in the electronic device <NUM> in advance or may be installed at this time.

In step S65, the electronic device <NUM> stores the license information. For example, the storage control unit <NUM> causes the storage unit <NUM> to store the license information including the installation key.

Thereafter, the license start processing ends.

On the other hand, in a case where it is determined in step S63 that the device unique ID in the installation key does not coincide with that of the own device, the license start processing ends.

This is, for example, a case where it has been attempted to connect the medium <NUM> to a different electronic device <NUM> to install the license, a case where an erroneous license communication file has been received, a case where the installation key has been tampered with, or the like.

Furthermore, in step S62, the license management unit <NUM> determines that the installation key is the installation key that has been installed in the past in a case where the installation key coinciding with the installation key included in the license communication file is stored in the storage unit <NUM>, and the license start processing ends.

This is a case where it has been attempted to install the previously installed license again.

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

This is a case where tampering or the like of the license communication file has been performed.

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 of the user to display a screen for returning a license of a function activated in the electronic device <NUM>. 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 a left end of the device information field 501A, an image and a type name of the electronic device <NUM> are displayed laterally side by side.

At a left end of the license information field 501B, a function that becomes a target returning a license and a type of the license are shown. In this example, it is shown that a floating license of an imaging function of a <NUM> image is a re-issuance target.

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

At a right end of the license detailed information field 501C, a DeActivate button <NUM> is displayed for the electronic device <NUM> in which the license is currently activated. 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 for prompting the user to download the DeActivate request file, store the DeActivate request file in the medium <NUM>, and insert the medium <NUM> into the camera (electronic device <NUM>) and a download button <NUM> are displayed. When the download button <NUM> is pressed, the PC <NUM> requests the server <NUM> to transmit the DeActivate request file, via the network <NUM>.

In response to this request, the server <NUM> transmits the DeActivate request file to the PC <NUM> via the network <NUM> in step S131 of <FIG> as 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> according to, for example, an operation of the user.

In step S103, the electronic device <NUM> executes a command in the DeActivate request file.

Specifically, the user detaches the medium <NUM> in which the DeActivate request file is stored from the PC <NUM>, and connects the medium <NUM> to the drive <NUM> of the electronic device <NUM>.

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

In the window <NUM>, a menu of functions that can be used in the electronic device <NUM> is displayed. In this example, three functions of <NUM>, MPEG-HD, and High Frame Rate are displayed. Among them, with respect to <NUM> and MPEG-HD, it is shown that a license is activated at a current point in time, such that <NUM> and MPEG-HD can be DeActivated. On the other hand, it is shown that High Frame Rate is grayed out, such that a license is deactivated.

Note that, for example, the processing of steps S101 to S103 may be omitted, and the license return processing may be started by displaying the window <NUM> of <FIG> on the electronic device <NUM> by operating the electronic device <NUM> by the user without using the DeActivate request command.

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

For example, the user selects a function of returning a license (a function of deactivating a license) using a cursor <NUM> in the window <NUM> of <FIG>. Then, when the selection of the function of returning the license is confirmed, the license management unit <NUM> makes the function unusable.

In step S105, the data generation unit <NUM> generates storage data including the device unique ID and an installation key of the deactivated license. Specifically, the data generation unit <NUM> reads the device unique ID and the installation key of the deactivated license from the storage unit <NUM>. The data generation unit <NUM> generates storage data including the read device unique ID and installation key.

In step S106, a hash value of the storage data is calculated using the device unique key, similarly to the processing of step S8 of <FIG>.

In step S107, the data generation unit <NUM> generates a license return file including the storage data and the hash value.

In step S108, the data generation unit <NUM> stores the license return file in the medium <NUM> via the drive <NUM>.

In step S109, the PC <NUM> transmits the license return file to the server <NUM>.

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

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

In step S110, the PC <NUM> determines whether or not DeActivate has been completed. The PC <NUM> determines that DeActivate has been completed in a case where a display control file transmitted from the server <NUM> and notifying the user that DeActivate of the license has been completed has been received in step S135 of <FIG> as described later, and the processing proceeds to step S111.

In step S111, the PC <NUM> notifies the user of 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 for notifying the user that DeActivate has been completed and the returned license can be installed in another electronic device <NUM> and an OK button <NUM> are displayed. When the OK button <NUM> is pressed, 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 551A, a license information field 551B, and a license detailed information field 551C, similarly to the window <NUM> of <FIG>, and has display contents substantially similar to those of the window <NUM>. However, the window <NUM> is different from the window <NUM> in that the DeActivate button <NUM> disappears and an installation button <NUM> is displayed at a right end of the license information field 501B.

When the installation button <NUM> is pressed, the license acquisition processing described above with reference to <FIG> is started. Therefore, for example, the returned license can be installed in another electronic device <NUM>.

Thereafter, the license return processing ends.

On the other hand, in step S110, the PC <NUM> determines that DeActivate has not been completed in a case where the display control file notifying the user that DeActivate of the license has been completed has not been received from the server <NUM>, the processing of step S111 is skipped, and the license return processing ends.

Next, license return acceptance processing executed by the server <NUM>, corresponding 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> has received the request for the DeActivate request file from the PC <NUM> in step S101 of <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 the 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 the processing of step S131 can be omitted by omitting the processing of steps S101 to S1033 of <FIG> of the electronic device <NUM> as described above.

In step S132, the server <NUM> receives the license return file. Specifically, the communication control unit <NUM> receives the license return file transmitted from the PC <NUM> in the processing of step S109 of <FIG> described above, via the communication unit <NUM>.

In step S133, the license management unit <NUM> determines whether or not a combination of a device unique ID and an installation key in the license return file coincides with a stored combination. Specifically, the license management unit <NUM> retrieves license information in which a combination of a device unique ID and an installation key coincides with the combination of the device unique ID and the installation key in the license return file, among the license information stored in the storage unit <NUM>. Then, the license management unit <NUM> determines that the combination of the device unique ID and the installation key in the license return file coincides with the stored combination in a case where the license information in which the combination of the device unique ID and the installation key coincides with the combination of the device unique ID and the installation key in the license return file has been detected, and the processing proceeds to step S134.

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

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

Therefore, tampering or the like of the device unique ID and the installation key in the storage data is prevented.

Furthermore, therefore, it is guaranteed that a combination of the device unique key used to calculate the hash value in the license return file and the installation key and the device unique ID in the license return file coincides with that of the device unique key, the installation key, and the device unique ID stored in the storage unit <NUM>.

In step S135, the license management unit <NUM> makes the returned license usable. Specifically, for example, the license management unit <NUM> updates information regarding the returned license when the returned license is deactivated in the electronic device <NUM> returning the license and is usable in another electronic device. For example, the license management unit <NUM> updates the license information detected in the processing of step S133 to license information that has been returned and deactivated, and causes the storage unit <NUM> to store the updated license information. 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 newly issued.

Furthermore, the UI control unit <NUM> also generates a display control file for notifying the user that DeActivate of the license has been completed. 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>. In such a manner, the return of the license is accepted.

Thereafter, the license return acceptance processing ends.

On the other hand, in step S134, the license management unit <NUM> determines that the license return file is not valid in a case where the calculated hash value does not coincide with the hash value in the license return file, the return of the license is not accepted, and the license return processing ends.

Furthermore, in step S133, the license management unit <NUM> determines that the combination of the device unique ID and the installation key in the license return file does not coincide with the stored combination in a case where the license information in which the combination of the device unique ID and the installation key coincides with the combination of the device unique ID and the installation key in the license return file has not been detected, the return of the license is not accepted, and the license return processing ends.

In such a manner, even though the server <NUM> and the electronic device <NUM> do not directly communicate with each other, the floating license provided by the server <NUM> can be shared and used by a plurality of electronic devices <NUM>.

Furthermore, even though the server <NUM> and the electronic device <NUM> do not directly communicate with each other, the license can be installed in the electronic device <NUM> in a safe status to make the function of the electronic device <NUM> usable.

Moreover, even though the server <NUM> and the electronic device <NUM> do not directly communicate with each other, the license can be returned from the electronic device <NUM> to the server <NUM> in a safe status, such that it is possible to make the license usable in another electronic device <NUM>.

Furthermore, the license can be returned by one-way processing of only transmitting the license return file from the electronic device <NUM> to the server <NUM> via the medium <NUM> and the PC <NUM>, such that processing required for returning the license can be reduced. That is, convenience in a case where the floating license is used in the electronic device <NUM> is improved.

Moreover, a different device unique key is generated in each electronic device <NUM>, and security of a communication path between each electronic device <NUM> and the server <NUM> is secured by each different device unique key. Therefore, even though a device unique key of one electronic device <NUM> is hacked, the other electronic devices <NUM> are not affected by such hacking, and the floating license can be safely used in the other electronic devices <NUM>.

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

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

Furthermore, for example, the server <NUM> and the electronic device <NUM> may exchange data with each other via another information processing apparatus (for example, a smartphone, a tablet, or the like) without using the medium <NUM>.

<FIG> and <FIG> illustrate examples of cases where the server <NUM> and the electronic device <NUM> exchange data with each other via a smartphone <NUM>.

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

In this case, since the smartphone <NUM> cannot perform the <NUM> communication and the Wi-Fi communication at the same time, exchange of data is sequentially performed, similarly to a 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 to each other by the Wi-Fi, and the electronic device <NUM> transmits a device information file to the smartphone <NUM>.

Next, the server <NUM> and the smartphone <NUM> are connected to each other by the <NUM> communication, and the smartphone <NUM> transmits the device information file to the server <NUM>. The server <NUM> generates a license communication file using the received device information file and transmits the license communication file to the smartphone <NUM>.

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

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

Next, the server <NUM> and the smartphone <NUM> are connected to each other by the <NUM> communication, and the smartphone <NUM> transmits the license return file to the server <NUM>. Therefore, the license is returned from the electronic device <NUM> to the server <NUM>.

In such a manner, the license provided by the server <NUM> can be installed in the electronic device <NUM> or the license can be returned from the electronic device <NUM> to the server <NUM>, without using the media <NUM> and without performing direct communication between the server <NUM> and the electronic device <NUM>. Furthermore, since security of a communication path between the server <NUM> and the electronic device <NUM> is secured using a device unique key, tampering or the like of data is prevented.

Note that, for example, short-range wireless communication such as Bluetooth (registered trademark), near field communication (NFC), and the like may be used as communication between the electronic device <NUM> and the smartphone <NUM>. Therefore, it becomes possible for the server <NUM> and the electronic device <NUM> to 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, an example in which the return of the license is accepted in a case where the combination of the device unique key used to calculate the hash value in the license return file and the installation key and the device unique ID in the license return file coincides with that of the device unique key, the installation key, and the device unique ID stored in the storage unit <NUM> has been described in the above description.

On the other hand, for example, in a case where a combination of the device unique key used to calculate the hash value in the license return file and the installation key in the license return file coincides with that of the device unique key and the installation key stored in the storage unit <NUM>, the return of the license may be accepted. In this case, for example, the processing of step S133 can be omitted or the device unique ID cannot be included in the license return file.

In this case, for example, in the storage unit <NUM>, a hash value of the storage data in the license return file is calculated using a device unique key combined with an installation key coinciding with the installation key in the license return file. Then, in a case where the calculated hash value coincides with the hash value in the license return file, the return of the license is accepted.

Furthermore, the formats of the installation keys of <FIG> are examples, and can be appropriately changed. For example, some of the data included in the installation key are not stored in the installation key, and may be stored in a file such as the license communication file or the like for transmitting the installation key.

Moreover, for example, in a case where return of the license from the client <NUM> to the server <NUM> is performed, an installation key management ID may be used instead of the installation key having a long data length.

For example, in step S35 of <FIG>, the license management unit <NUM> of the server <NUM> generates the installation key and an installation key management ID corresponding to the installation key. 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 every installation key). It is possible to identify the installation key corresponding to the license of each function by this installation key management ID.

Furthermore, for example, in step S36 of <FIG>, the data generation unit <NUM> of the server <NUM> generates storage data including the installation key and the installation key management ID corresponding to the installation key. A license communication file including this storage data is transmitted from the server <NUM> to the client <NUM>.

Moreover, for example, in step S39 of <FIG>, the storage control unit <NUM> causes the storage unit <NUM> to store license information including a combination of the current date and time of the RTC <NUM>, the device unique ID, the device unique key, the installation key, the installation key management ID.

On the other hand, for example, in step S105 of <FIG>, the data generation unit <NUM> of the client <NUM> generates storage data including installation key information including the installation key management ID corresponding to the installation key of the deactivated license and the device unique ID. A license return file including this storage data is transmitted from the client <NUM> to the server <NUM>.

Then, for example, in step S133 of <FIG>, the license management unit <NUM> of the server <NUM> can determine that the license return file is valid in a case where license information coinciding with a combination of the device unique ID and the installation key management ID in the license return file, in other words, license information coinciding with a combination of the device unique ID and the installation key corresponding to the installation key management ID in the license return file has been detected.

Note that, for example, the installation key itself may be included or both of the installation key and the installation key management ID may be included in the installation key information included in the license return information. The former case is similar to the embodiment described above with reference to <FIG>.

Furthermore, for example, system unique information that is a part of the installation key may be included in the installation key information included in the license return information. The system unique information is an ID different for every installation key, as described above. Therefore, for example, in step S133 of <FIG>, the license management unit <NUM> of the server <NUM> can determine that the license return file is valid in a case where license information coinciding with a combination of the device unique ID and the installation key including the system unique information in the license return file has been detected.

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

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

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

In the computer <NUM>, a CPU <NUM>, a read only memory (ROM) <NUM>, and a random access memory (RAM) <NUM> are connected to each other by 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, or 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, a semiconductor memory, or the like.

In the computer <NUM> configured as described above, the CPU <NUM> performs the series of processing described above by loading, 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 executing the program.

The program executed by the computer <NUM> (CPU <NUM>) can be provided by being recorded on the removable recording medium <NUM> as, for example, a package medium and 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> on the drive <NUM>. Furthermore, the program can be received by the communication unit <NUM> via the wired or wireless transmission medium and be 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 by which processing is performed in time series according to the order described in the present specification or may be a program by which processing is performed in parallel or at a necessary timing such as a timing when a call is made, or the like.

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

Moreover, the embodiment of the present technology is not limited to the embodiment described above, and various modifications can be made without departing from the scope of the present technology.

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

Furthermore, the respective steps described in the abovementioned flowcharts can be executed by one apparatus or can be executed in a shared manner by a plurality of apparatuses.

Claim 1:
An information processing apparatus (<NUM>) comprising:
a storage control unit (<NUM>) configured to control a storage unit (<NUM>) to store a device unique key and a combination of a device unique ID and an installation key, the device unique key being a key unique to an electronic device (<NUM>), and the device unique ID being an ID unique to the electronic device, and the installation key being a key for installing a license to the electronic device;
a license management unit (<NUM>) configured to update information regarding a status of the license in response to:
a determination that storage data, included in license return information, comprising a combination of the device unique ID and installation key information coincides with a combination stored in the storage unit, and
a determination that a hash value of the storage data included in the license return information coincides with a hash value of the storage data calculated by the license management unit using the device unique key;
the license return information being generated by the electronic device;
wherein the installation key information includes at least one of: the installation key and an installation key management ID corresponding to the installation key.