WO2021241109A1 - 情報処理システム、サーバ装置、情報処理装置及び動作制御装置 - Google Patents
情報処理システム、サーバ装置、情報処理装置及び動作制御装置 Download PDFInfo
- Publication number
- WO2021241109A1 WO2021241109A1 PCT/JP2021/016708 JP2021016708W WO2021241109A1 WO 2021241109 A1 WO2021241109 A1 WO 2021241109A1 JP 2021016708 W JP2021016708 W JP 2021016708W WO 2021241109 A1 WO2021241109 A1 WO 2021241109A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information processing
- information
- version
- signature
- control device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Definitions
- This disclosure relates to an information processing device.
- Patent Document 1 discloses a technique related to a user terminal.
- the present disclosure has been made in view of the above points, and an object thereof is to provide a technique capable of improving the safety of the information processing apparatus.
- One aspect of the information processing system includes an information processing device having a predetermined function and a server device that communicates with the information processing device through a communication network, and the information processing device has an operation control device that controls the predetermined function. Then, the motion control device stores the identification information of the motion control device, the information processing device transmits the identification information stored by the motion control device to the server device, and the information processing device is the first.
- the server device has a first storage unit that stores one software, a first version information indicating a version of the first software, and a first signature corresponding to both the first version information and the identification information. Has a second storage unit that stores the second software and the second version information indicating the version of the second software, and the server device receives the second version information and the information processing device.
- a second signature corresponding to both of the identification information is generated, in the information processing apparatus, the motion control device verifies the first signature in the first storage unit, and the motion control device performs the first signature.
- the information processing apparatus executes the first process of transmitting the first version information to the server apparatus, and when the server apparatus receives the first version information, the first version information is executed.
- the operation control device When the 1st version information is compared with the 2nd version information and it is determined that the version indicated by the 1st version information is older than the version indicated by the 2nd version information, the 2nd software, the 2nd version information and When the predetermined data including the second signature is transmitted to the information processing apparatus and the information processing apparatus receives the predetermined data, in the information processing apparatus, the operation control device is included in the predetermined data. When the operation control device determines that the second signature is correct after verifying the two signatures, the information processing apparatus determines that the second software, the second version information, and the second signature included in the predetermined data. Then, a second process of updating the first software, the first version information, and the first signature in the first storage unit is executed, and the server device receives the first version information.
- the predetermined function is stopped or restricted, the information processing device repeatedly executes the first process, and the server device transmits the predetermined data and then the information processing. From the device When it is determined that the received version indicated by the first version information does not match the version indicated by the second version information, the predetermined function is stopped or restricted by the operation control device.
- one aspect of the information processing system includes an information processing device having a predetermined function and a server device that communicates with the information processing device through a communication network, and the information processing device is an operation control device that controls the predetermined function.
- the motion control device stores the identification information of the motion control device
- the information processing device transmits the identification information stored by the motion control device to the server device
- the information processing device It has a first storage unit that stores the first software, the first version information indicating the version of the first software, and the first signature corresponding to both the first version information and the identification information.
- the server device has a second storage unit that stores the second software and the second version information indicating the version of the second software, and the server device receives the second version information and the information processing device.
- the second signature corresponding to both of the identification information is generated, and the server device transmits the predetermined data including the second software, the second version information, and the second signature to the information processing device, and the second signature is transmitted.
- the operation control device verifies the first signature in the first storage unit, verifies the second signature included in the predetermined data received by the information processing apparatus, and uses the first version information and the predetermined data.
- the second version information is compared with the included second version information, the operation control device determines that each of the first and second signatures is correct, and the version indicated by the first version information is indicated by the second version information.
- the information processing apparatus uses the second software, the second version information, and the second signature included in the predetermined data to indicate the first software in the first storage unit, the first software.
- the update process for updating the first version information and the first signature is performed.
- server device provided in the above information processing system.
- one aspect of the information processing device is the information processing device provided in the above information processing system.
- one aspect of the motion control device is the motion control device provided in the above information processing system.
- the safety of the information processing device can be improved.
- FIG. 1 is a diagram showing an example of the configuration of the information processing system 1.
- the information processing system 1 includes a server device 2 and a plurality of information processing devices 3 connected to the server device 2 through a communication network 4.
- Each information processing device 3 can communicate with the server device 2 through the communication network 4.
- the communication network 4 includes at least one of a wireless network and a wired network.
- the communication network 4 includes, for example, a network of a mobile phone system including a base station, a wireless LAN (Local Area Network), the Internet, and the like.
- a wireless LAN Local Area Network
- the server device 2 is a kind of computer device, and is called, for example, a cloud server.
- the server device 2 can control each information processing device 3.
- Each information processing device 3 has, for example, a sensor, and the information detected by the sensor can be transmitted to the server device 2.
- the information processing device 3 is an IoT (Internet of Things) terminal used in, for example, a house, an office, a factory, or outdoors.
- An information processing system including an IoT terminal may be referred to as an IoT system.
- the server device 2 can perform various processes based on the information received from the information processing device 3. For example, the server device 2 may analyze the information received from the information processing device 3 and control the information processing device 3 or another information processing device 3 based on the analysis result. It is possible. Further, the server device 2 may display the analysis result. Further, the server device 2 may collect information transmitted by a plurality of information processing devices 3 and display the collected information.
- the information processing system 1 may include a plurality of server devices 2. Further, the server device 2 may be capable of communicating with a device other than the information processing device 3.
- FIG. 2 is a diagram showing an example of the configuration of the server device 2.
- the server device 2 includes, for example, a control unit 20, a storage unit 21, a communication unit 22 connected to the communication network 4, and a display unit 23.
- the control unit 20, the storage unit 21, the communication unit 22, and the display unit 23 are electrically connected to each other by, for example, a bus 25.
- the display unit 23 is, for example, a liquid crystal display or an organic EL display.
- the display unit 23 can display various information such as characters, symbols, and figures by being controlled by the control unit 20.
- the storage unit 21 includes a non-temporary recording medium such as a ROM (Read Only Memory) and a RAM (Random Access Memory) that can be read by a computer.
- the storage unit 21 stores a program (in other words, software) for controlling the server device 2.
- the storage unit 21 can be said to be a storage circuit.
- the control unit 20 can comprehensively manage the operation of the server device 2 by controlling other components of the server device 2.
- the control unit 20 can be said to be a control circuit.
- the control unit 20 includes, for example, a CPU (Central Processing Unit).
- Various functions of the control unit 20 are realized by the CPU included in the control unit 20 executing a program in the storage unit 21.
- the communication unit 22 is connected to the communication network 4 by wire or wirelessly.
- the communication unit 22 can be said to be a communication circuit.
- the communication unit 22 can communicate with a device such as an information processing device 3 connected to the communication network 4 through the communication network 4.
- the communication unit 22 can input the information received from the communication network 4 to the control unit 20. Further, the communication unit 22 can output the information received from the control unit 20 to the communication network 4.
- control unit 20 may include a plurality of CPUs. Further, the control unit 20 may include at least one DSP (Digital Signal Processor). Further, all the functions of the control unit 20 or some functions of the control unit 20 may be realized by a hardware circuit that does not require software to realize the functions.
- DSP Digital Signal Processor
- the storage unit 21 may include a non-temporary recording medium other than the ROM and RAM, which can be read by a computer.
- the storage unit 21 may include, for example, a small hard disk drive, an SSD (Solid State Drive), or the like.
- the server device 2 may have a configuration other than the control unit 20, the storage unit 21, the communication unit 22, and the display unit 23.
- the server device 2 may include an input device (also referred to as an input unit) for a user to input information to the server device 2, such as a touch panel. Further, the server device 2 does not have to include the display unit 23.
- FIG. 3 is a diagram showing an example of the configuration of the information processing apparatus 3.
- the main function of the information processing apparatus 3 is, for example, to detect information with a sensor and perform predetermined processing on the detected information.
- the main function of the information processing apparatus 3 is not limited to this, and may be other functions.
- the information processing device 3 is arranged in a place where physical hacking is difficult to occur, for example.
- the physical hacking is, for example, a method of disassembling and modifying the information processing apparatus 3 or directly observing the signal line in the information processing apparatus 3 to hack.
- a place where physical hacking is difficult to occur for example, a place where only a specific person can enter and exit, such as a house, an office, and a school, can be considered.
- the information processing device 3 controls the main device 30 that executes the main function of the information processing device 3 and the main device 30 to control the safety of the information processing device 3.
- the operation control device 40 to be improved and the reset switch 50 operated by the user are provided.
- the main device 30 includes, for example, a package 300 made of resin or the like and an integrated circuit housed in the package 300.
- the integrated circuit included in the main device 30 may be formed on a plurality of dies or may be formed on one die.
- the die is also called a wafer chip.
- the operation control device 40 includes, for example, a package 400 made of resin or the like and an integrated circuit housed in the package 400.
- the integrated circuit included in the operation control device 40 may be formed on a plurality of dies or may be formed on one die.
- the main device 30 and the operation control device 40 are mounted on the same board 60, for example.
- the main device 30 and the operation control device 40 are electrically connected to each other by wiring provided on the substrate 60.
- the main device 30 and the motion control device 40 can exchange information with each other by communicating with each other.
- the main device 30 and the operation control device 40 can communicate with each other based on, for example, SPI (Serial Peripheral Interface) or I2C (Inter-Integrated Circuit).
- SPI Serial Peripheral Interface
- I2C Inter-Integrated Circuit
- the communication method between the main device 30 and the operation control device 40 is not limited to this. Further, in this example, although the main device 30 and the operation control device 40 communicate with each other by wire, they may communicate with each other wirelessly.
- the main device 30 has a sensor and transmits information detected by the sensor to the server device 2 through the communication network 4. Further, the main device 30 operates based on the clock signal output by the operation control device 40. As will be described later, the operation control device 40 can stop the operation of the main device 30 by not supplying the clock signal to the main device 30. It can be said that the operation control device 40 can control the functions of the main device 30.
- the reset switch 50 is provided on the information processing apparatus 3 so as to be exposed from the case of the information processing apparatus 3 so that the user can operate the reset switch 50.
- the reset switch 50 When the reset switch 50 is operated by the user (for example, when pressed), the reset switch 50 outputs an operation signal SS indicating that the operation has been performed to the operation control device 40.
- the operation control device 40 can assert a reset signal input to various circuits included in the operation control device 40 based on an operation signal SS or the like from the reset switch 50. As a result, the operation of the operation control device 40 is initialized. Further, the operation control device 40 can assert a reset signal input to the main device 30. As a result, the operation of the main device 30 is initialized.
- FIG. 4 is a diagram showing an example of the configuration of the main device 30.
- the main device 30 includes, for example, a control unit 310, a processing circuit 320, a sensor device 330 including at least one sensor, a first communication unit 340, and a second communication unit 350. It includes non-volatile memories 360 and 370 and volatile memories 380. These components included in the main device 30 are housed in the package 300.
- the control unit 310, the processing circuit 320, the sensor device 330, the first communication unit 340, the second communication unit 350, the non-volatile memory 360, the non-volatile memory 370, and the volatile memory 380 are electrically connected to each other by, for example, a bus 390. Has been done.
- the integrated circuit including the control unit 310 and the like included in the main device 30 constitutes a main circuit that realizes the main functions of the information processing device 3.
- the non-volatile memory 360 is, for example, a ROM in which the stored data cannot be rewritten.
- the non-volatile memory 360 may be a mask ROM or an OTPROM (OneTimeProgrammableROM).
- the non-volatile memory 360 stores, for example, a boot program 361 executed when the main device 30 is started.
- the non-volatile memory 370 (also referred to as memory 370) is, for example, a ROM capable of rewriting the data to be stored.
- the non-volatile memory 370 is, for example, a flash memory (also referred to as a flash ROM).
- the storage capacity of the non-volatile memory 370 is larger than the storage capacity of the non-volatile memory 360, for example.
- the non-volatile memory 370 may be other than the flash memory.
- FIG. 5 is a diagram showing an example of data stored in the memory 370.
- the memory 370 stores, for example, an OS (Operating System) 371 which is a kind of software and a signature 372 corresponding to the OS 371 in association with each other.
- the signature 372 is also referred to as an electronic signature or a digital signature.
- Signature 372 is generated from OS 371.
- the signature 372 is a hash value generated from the OS 371 encrypted with a private key.
- the information processing apparatus 3 can detect whether or not the OS 371 has been tampered with by verifying the signature 372.
- the memory 370 stores at least one software 373 other than the OS 371.
- the software 373 is, for example, application software executed on the OS 371.
- the memory 370 stores the software 373 and the corresponding signature 374 in association with each other.
- a plurality of signatures 374 corresponding to the plurality of software 373s are stored in the memory 370.
- the signature 374 is generated from the corresponding software 373.
- the signature 374 is a hash value generated from the corresponding software 373 encrypted with a private key.
- the information processing apparatus 3 can detect whether or not the software 373 has been tampered with by verifying the signature 374.
- the memory 370 stores version information 376 indicating the version of the software 373. Further, the memory 370 stores identification information for identifying the operation control device 40. This identification information is also called a unique ID (identifier), and is information unique to the operation control device 40 of each information processing device 3.
- the identification information of the operation control device 40 is stored not only in the memory 370 but also in the operation control device 40.
- the identification information stored in the memory 370 is referred to as identification information 432
- the identification information stored in the operation control device 40 is referred to as identification information 431.
- the memory 370 stores the signature 377 corresponding to both the version information 376 and the identification information 432.
- the signature 377 is generated from the version information 376 and the identification information 432.
- the signature 377 is a hash value generated from the version information 376 and the identification information 432 encrypted with a private key.
- the signature 377 may be a hash value generated from data in which version information 376 and identification information 432 are simply concatenated and encrypted with a private key.
- the signature 377 may be a hash value generated from the data obtained by calculating the exclusive OR of the version information 376 and the identification information 432 encrypted with the private key.
- the memory 370 stores a plurality of software 373s
- a plurality of version information 376s indicating versions of the plurality of software 373s are stored in the memory 370.
- the signature 377 corresponding to both the version information 376 and the identification information 432 is stored in the memory 370.
- the information processing apparatus 3 can detect whether or not at least one of the version information 376 and the identification information 432 has been tampered with.
- Volatile memory 380 is also called work memory.
- the volatile memory 380 includes, for example, at least one of SRAM (Static RAM) and DRAM (Dynamic RAM).
- SRAM Static RAM
- DRAM Dynamic RAM
- Each of the non-volatile memory 360, the non-volatile memory 370, and the volatile memory 380 can be said to be a non-temporary recording medium that can be read by a computer. Further, each of the non-volatile memory 360, the non-volatile memory 370, and the volatile memory 380 can be said to be a storage unit or a recording circuit.
- the control unit 310 can comprehensively manage the operation of the main device 30 by controlling other components of the main device 30.
- the control unit 310 can be said to be a control circuit.
- the control unit 310 includes, for example, a CPU.
- Various functions of the control unit 310 are realized by the CPU included in the control unit 310 executing a program (in other words, software) in the non-volatile memories 360 and 370.
- the control unit 310 When executing the program (in other words, software) in the non-volatile memory 370, the control unit 310 first copies the program in the non-volatile memory 370 to the volatile memory 380 which is a work memory. Then, the control unit 310 executes the copied program in the volatile memory 380.
- the control unit 310 is formed on the same die as the die on which the non-volatile memory 360 is formed, for example.
- the control unit 310 and the non-volatile memory 360 are formed on the same wafer chip, for example.
- the control unit 310 and the non-volatile memory 360 may be formed on the same die as the die on which the non-volatile memory 370 is formed, or may be formed on another die. Further, the control unit 310 and the non-volatile memory 360 may be formed on the same die as the die on which the volatile memory 380 is formed, or may be formed on another die.
- the sensor device 330 includes, for example, at least one of a temperature sensor, an acceleration sensor, a geomagnetic sensor, a gyro sensor, a pressure sensor, and an image sensor.
- the sensor included in the sensor device 330 is not limited to this, and the sensor device 330 may include other sensors.
- the information detected by the sensor device 330 (for example, temperature and acceleration) is stored in the memory 370.
- the information detected by the sensor device 330 may be referred to as "sensor information”.
- the first communication unit 340 can communicate with the operation control device 40 based on, for example, SPI or I2C.
- the first communication unit 340 can be said to be a communication circuit.
- the first communication unit 340 can input the information received from the operation control device 40 to the control unit 310. Further, the first communication unit 340 can output the information received from the control unit 310 to the operation control device 40.
- the second communication unit 350 is connected to the communication network 4 by wire or wirelessly.
- the second communication unit 350 can be said to be a communication circuit.
- the second communication unit 350 can communicate with a device such as a server device 2 connected to the communication network 4 through the communication network 4.
- the second communication unit 350 can input the information received from the communication network 4 to the control unit 310. Further, the second communication unit 350 can output the information received from the control unit 310 to the communication network 4.
- the processing circuit 320 can perform predetermined processing on the sensor information in the memory 370 by being controlled by the control unit 310.
- the processing circuit 320 reads sensor information from the memory 370, and performs processing processing including, for example, filter processing, on the read sensor information.
- the processing circuit 320 stores the processed sensor information in the memory 370 as the processed sensor information.
- the main function of the information processing device 3 is to detect information in the sensor device 330 and process the detected information in the processing circuit 320.
- the processing circuit 320 is realized by, for example, a hardware circuit that does not require software to realize its function. The processing executed by the processing circuit 320 is not limited to this.
- the main device 30 includes a clock input port 301 and a reset input port 302 to which the clock signal CLKm and the reset signal RS output from the operation control device 40 are input, respectively.
- each of the clock input port 301 and the reset input port 302 is a metal terminal provided in the package 300. Therefore, in this example, the clock input port 301 and the reset input port 302 can be said to be the clock input terminal 301 and the reset input terminal 302.
- the main device 30 operates based on the clock signal CLKm input to the clock input port 301. Further, when the reset signal RS input to the reset input port 302 is asserted, the main device 30 initializes its operation and restarts.
- the configuration of the main device 30 is not limited to the examples of FIGS. 3 to 5.
- a plurality of circuits included in the main device 30 may be divided and stored in a plurality of packages.
- the control unit 310 may include a plurality of CPUs.
- the control unit 310 may include at least one DSP.
- all the functions of the control unit 310 or some functions of the control unit 310 may be realized by a hardware circuit that does not require software to realize the functions.
- the main device 30 may include a non-temporary recording medium other than the ROM and RAM, which can be read by a computer.
- the main device 30 may include, for example, a small hard disk drive, SSD, or the like.
- the main device 30 may separately include a non-volatile memory for storing the OS 371 and the signature 372, and a non-volatile memory for storing the software 373, the signature 374, the version information 376, the identification information 432 and the signature 377. Further, the main device 30 does not have to include the non-volatile memory 360. In this case, the non-volatile memory 370 may store the boot program 361.
- the control unit 310 When the main device 30 having the above configuration is started (including restarting), the control unit 310 first executes the boot program 361 in the non-volatile memory 360. In the boot program 361, an instruction for verifying the signature 372 corresponding to the OS 371, an instruction for executing the OS 371, and the like are described. The control unit 310 executing the boot program 361 copies the OS 371 and the signature 372 in the non-volatile memory 370 to the volatile memory 380. Then, the control unit 310 verifies the signature 372 in the volatile memory 380. If the signature 372 is correct, the control unit 310 executes the OS 371 in the volatile memory 380. On the other hand, if the signature 372 is not correct, the control unit 310 stops the operation. As a result, the operation of the main device 30 is stopped.
- control unit 310 When the control unit 310 starts the execution of the OS 371, the control unit 310 executes the software 373 on the running OS 371. The control unit 310 verifies the signature 374 corresponding to the software 373, and if the signature 374 is correct, executes the software 373. On the other hand, the control unit 310 does not execute the software 373 unless the signature 374 is correct.
- the non-volatile memory 360 for storing the boot program 361 and the control unit 310 for executing the boot program 361 are formed on the same wafer chip.
- the signature 372 is attached to the OS 371 executed based on the execution of the boot program 361. As a result, the possibility that the OS 371 is hacked is reduced, and the safety of the OS 371 is ensured.
- the main device 30 executes the main functions of the information processing device 3. Further, since the main device 30 can communicate with the server device 2, it also executes a function of communicating with the server device 2.
- the function of the information processing device 3 communicating with the server device 2 may be referred to as a "server communication function". It can be said that the main device 30 includes a circuit that realizes the main functions of the information processing device 3 and the server communication function.
- FIG. 6 is a diagram showing an example of the configuration of the operation control device 40.
- the operation control device 40 includes, for example, a control unit 410, a timer 420, a storage unit 430, an operation permission register 450, an operation control unit 460, a communication unit 470, and a clock generation unit. It includes a 480 and a reset signal generation unit 490. These components included in the motion control device 40 are housed in the package 400.
- the control unit 410, the timer 420, the storage unit 430, the operation permission register 450, and the communication unit 470 are electrically connected to each other by, for example, a bus 550.
- the clock generation unit 480 generates a clock signal CLK that is a reference for the operation of the information processing device 3.
- the clock generation unit 480 can be said to be a clock generation circuit.
- the clock signal CLK is supplied to an internal circuit including the control unit 410, the communication unit 470, and the like included in the operation control device 40.
- the operation control device 40 operates based on the clock signal CLK.
- the clock generation unit 480 may include a crystal oscillator or an oscillator that does not use a crystal. As an oscillator that does not use a crystal, for example, there is an oscillator that uses a MEMS (Micro Electro Mechanical Systems).
- the reset signal generation unit 490 asserts the reset signal RS for a certain period of time when the operation signal SS is input from the reset switch 50.
- the reset signal generation unit 490 can also be said to be a reset signal generation circuit. Further, the reset signal generation unit 490 asserts the reset signal RS for a certain period of time when the power of the information processing apparatus 3 is switched from off to on.
- the reset signal RS is input to an internal circuit included in the operation control device 40, including the control unit 410 and the communication unit 470. As a result, when the reset switch 50 is operated, the operation of the operation control device 40 is initialized and the operation control device 40 is restarted.
- the reset signal RS generated by the reset signal generation unit 490 is also input to the reset input port 302 of the main device 30.
- the storage unit 430 includes a non-temporary recording medium such as a ROM and a RAM that can be read by a computer.
- the storage unit 430 stores a program for controlling the operation control device 40.
- the storage unit 430 stores identification information 431 for identifying the operation control device 40.
- the identification information 431 is, in principle, the same as the identification information 432 in the memory 370 of the main device 30. However, the identification information 431 may differ from the identification information 432 due to hacking of the information processing system 1. This point will be described later.
- the control unit 410 can comprehensively manage the operation of the operation control device 40 by controlling other components of the operation control device 40. It can be said that the control unit 410 is a control circuit.
- the control unit 410 includes, for example, a CPU. Various functions of the control unit 410 are realized by the CPU included in the control unit 410 executing a program in the storage unit 430.
- control unit 410 can encrypt the information transmitted from the information processing device 3 to the server device 2. Further, the control unit 410 can decrypt the encrypted information received by the information processing device 3 from the server device 2.
- the storage unit 430 stores the key required for encryption and decryption. The control unit 410 encrypts the information transmitted from the information processing device 3 to the server device 2 by using the key in the storage unit 430. Further, the control unit 410 decodes the encrypted information received by the information processing device 3 from the server device 2 by using the key in the storage unit 430.
- the timer 420 is a circuit capable of measuring a predetermined time set by the control unit 410.
- the communication unit 470 can communicate with the main device 30 based on, for example, SPI or I2C.
- the communication unit 470 can be said to be a communication circuit.
- the communication unit 470 can input the information received from the main device 30 to the control unit 410. Further, the communication unit 470 can output the information received from the control unit 410 to the main device 30.
- the operation permission register 450 can store the operation permission information 500 received by the information processing device 3 from the server device 2. It can be said that the operation permission register 450 is a kind of storage unit. In other words, the operation permission register 450 can be said to be a kind of storage circuit.
- the operation permission information 500 is information indicating operation permission of a predetermined function of the information processing apparatus 3.
- the information processing apparatus 3 operates a predetermined function according to the operation permission information.
- the predetermined function may be referred to as a "permitted function".
- the permitted functions include, for example, the main functions of the information processing device 3 and the server communication function.
- the main device 30 receives the operation permission information 500 from the server device 2, and transmits the received operation permission information 500 to the operation control device 40.
- the operation control device 40 receives the operation permission information 500 from the main device 30 in the communication unit 470.
- the control unit 410 stores the operation permission information 500 received by the communication unit 470 in the operation permission register 450.
- the operation control unit 460 can control the function to be permitted based on the operation permission information 500 in the operation permission register 450.
- the motion control unit 460 can be said to be a motion control circuit.
- the operation control unit 460 controls the function to be permitted by controlling the operation of the main device 30 based on the operation permission information 500.
- the operation control unit 460 can control whether or not to operate the main device 30 by controlling the supply of the clock signal to the main device 30, for example.
- the operation control unit 460 includes, for example, a countdown timer 461 and a clock gate 462.
- the countdown timer 461 is a circuit capable of measuring a predetermined time.
- the clock gate 462 is a circuit capable of outputting the input clock signal CLK as a clock signal CLKm to the clock input port 301 of the main unit 30 only while the countdown timer 461 is measuring a predetermined time. ..
- a clock signal CLK is input to the countdown timer 461 and the clock gate 462.
- the operation permission information 500 includes, for example, period information indicating an operable period during which the permission target function can operate.
- the period information indicates the operable period during which the main device 30 that executes the permitted function can be operated.
- the operable period indicated by the period information is set to, for example, several hours to several tens of hours.
- the operable period indicated by the period information is not limited to this.
- the operable period simply means the operable period indicated by the period information (in other words, the operable period indicated by the operation permission information 500).
- T1 is several hours to several tens of hours.
- the period information included in the operation permission information 500 is represented by, for example, the number of input clocks that the main device 30 can operate based on the clock signal CLK. That is, the operable period T1 is represented by the number of input clocks of the clock signal CLK.
- the clock means the rising edge (in other words, the rising edge) or the falling edge (in other words, the falling edge) of the clock signal CLK.
- the input clock means an input rising edge (in other words, a rising edge) or an input falling edge (in other words, a falling edge) for the clock signal CLK. Therefore, the number of input clocks means the number of input rising edges (in other words, the number of rising edges) or the number of input falling edges (in other words, the number of falling edges) for the clock signal CLK.
- the number of input clocks that the main device 30 can operate based on the clock signal CLK may be referred to as "the number of operable clocks”. Further, the number of operable clocks may be represented by N.
- the countdown timer 461 starts the counting operation when the count value is set. As a result, the countdown timer 461 counts down only one count value each time the clock signal CLK rises or falls. In other words, the countdown timer 461 counts down only one count value each time a clock is input. Then, the countdown timer 461 stops the counting operation when the count value becomes zero. As a result, the countdown timer 461 can count the input clock by the number of operable clocks N. In other words, the countdown timer 461 can measure the operable period indicated by the operation permission information 500.
- the countdown timer 461 inputs an enable signal ENS for controlling the operation of the clock gate 462 to the enable input port EN of the clock gate 462.
- the countdown timer 461 sets the enable signal ENS to the Low level when the count operation is not performed, and sets the enable signal ENS to the High level when the count operation is performed.
- the clock gate 462 outputs the clock signal CLK input to the clock input port CLKin as the clock signal CLKm only when the enable signal ENS input to the enable input port EN is at the High level.
- the clock signal CLKm output from the clock gate 462 is input to the clock input port 301 of the main device 30.
- the main device 30 can operate for the operable period indicated by the operation permission information 500.
- the main device 30 can execute the permitted function while the clock signal CLKm is input.
- the main device 30 can detect information by the sensor device 330 while the clock signal CLKm is input, and can process the detected information by the processing circuit 320. Further, the main device 30 can execute the server communication function while the clock signal CLKm is input.
- the information processing device 3 operates the permission target function according to the period information included in the operation permission information 500 transmitted from the server device 2. Therefore, it can be said that the server device 2 can control the permission target function of the information processing device 3 by transmitting the operation permission information 500 to the information processing device 3.
- the operation mode of the control unit 410 of the operation control device 40 includes, for example, a normal mode and a secure mode for enhancing the safety of the operation control device 40.
- the operation mode of the control unit 410 is basically set to the normal mode.
- the operation mode of the control unit 410 is exceptionally set to the secure mode when it is desired to enhance the safety of the operation control device 40.
- the control unit 410 can access the storage unit 430 only when the operation mode is set to the secure mode, for example. That is, when the control unit 410 accesses the storage unit 430, the operation mode is set to the secure mode. Therefore, the control unit 410 can execute the program in the storage unit 430 only when the operation mode is set to the secure mode. Further, the control unit 410 can encrypt the information and decrypt the encrypted information by using the key in the storage unit 430 only when the operation mode is set to the secure mode. .. Further, the control unit 410 can read the identification information 431 in the storage unit 430 only when the operation mode is set to the secure mode. Such a storage unit 430 is also called a secure memory.
- the control unit 410 when the reset of the operation control device 40 is released and the operation control device 40 is activated, that is, when the reset signal RS is negated and the operation control device 40 is activated, the control unit 410 first sets the operation mode to the secure mode. Set to. Then, the control unit 410 executes the program in the storage unit 430 to perform the initial setting of the operation control device 40. After that, the control unit 410 sets the operation mode to the normal mode. After that, the control unit 410 sets the operation mode to the secure mode only when necessary.
- control unit 410 can write information to the operation permission register 450 only when the operation mode is set to the secure mode. That is, when the control unit 410 writes information to the operation permission register 450, the operation mode is set to the secure mode. Further, the control unit 410 can set the predetermined period measured by the timer 420 to the timer 420 only when the operation mode is set to the secure mode.
- the communication unit 470 communicates with the main device 30, the operation mode is set to the normal mode. When the communication unit 470 communicates with the main device 30, the operation mode may be set to the secure mode.
- the operation mode of the control unit 410 includes the normal mode and the secure mode, even if the operation control device 40 operating in the normal mode is hacked, the operation control device 40 operating in the secure mode Can be protected. Therefore, it is possible to reduce the possibility that important information in the storage unit 430 and the operation permission register 450 is rewritten. Further, it is possible to reduce the possibility that important information in the storage unit 430 is leaked to the outside. As a result, the safety of the motion control device 40 can be improved.
- the configuration of the motion control device 40 is not limited to the examples of FIGS. 3 and 6.
- a plurality of circuits included in the operation control device 40 may be divided and stored in a plurality of packages.
- the control unit 410 may include a plurality of CPUs.
- the control unit 410 may include at least one DSP.
- all the functions of the control unit 410 or some functions of the control unit 410 may be realized by a hardware circuit that does not require software to realize the functions.
- the storage unit 430 may include a non-temporary recording medium other than the ROM and RAM, which can be read by a computer.
- the storage unit 430 may include, for example, a small hard disk drive, SSD, or the like.
- the information in the storage unit 430 may be encrypted.
- the operation control device 40 does not have to include the reset signal generation unit 490.
- the reset signal generation unit 490 may be housed in a package different from the operation control device 40 and the main device 30, and mounted on the substrate 60, for example.
- the server device 2 transmits the operation permission information to the information processing device 3 according to the satisfaction of a predetermined condition regarding the information processing device 3.
- This predetermined condition may be referred to as an "operation permission condition”.
- an operation permission condition for example, successful mutual authentication between the server device 2 and the information processing device 3 can be considered.
- the server device 2 determines that the mutual authentication with the information processing device 3 is successful, the server device 2 transmits the operation permission information to the information processing device 3 on the condition that the mutual authentication is successful.
- FIG. 7 is a flowchart showing an example of the operation of the information processing system 1 when the information processing apparatus 3 is started.
- mutual authentication is performed between the information processing device 3 and the server device 2 when the information processing device 3 is started.
- a public key cryptosystem is used.
- the initial value M (> 0) is set for the operation permission register 450 of the operation control device 40.
- the initial value M is set to a value that allows the main device 30 to operate for several seconds, for example.
- the initial value M is set to a value such that the clock signal CLKm is input to the main device 30 for several seconds.
- the countdown timer 461 sets the initial value M as the count value and performs the count operation. As a result, if the value of the operation permission register 450 is not rewritten, the same number of clocks as the initial value M is input to the main device 30.
- the clock signal CLKm is supplied to the main device 30 for several seconds. Therefore, the main device 30 can operate after the reset of the information processing device 3 is released.
- the period during which the main device 30 can operate according to the initial value M may be referred to as an "initial operable period".
- the information processing apparatus 3 performs mutual authentication with the server apparatus 2 during the initial operable period.
- T0 is about several seconds, and T0 ⁇ T1. That is, the initial operable period T0 is shorter than the operable period T1 indicated by the operation permission information 500.
- T0 ⁇ T1 may be satisfied.
- step s1 When the information processing device 3 is activated, mutual authentication is performed between the information processing device 3 and the server device 2 in step s1, as shown in FIG. After that, in step s2, when the control unit 20 of the server device 2 determines that the mutual authentication is successful, in step s3, the operation permission information is generated and the generated operation permission information is encrypted. The control unit 20 encrypts the operation permission information by using the key in the storage unit 21. Next, in step s4, the control unit 20 causes the communication unit 22 to transmit the encrypted operation permission information (also referred to as encrypted operation permission information) to the information processing device 3. If the server device 2 fails in mutual authentication, the server device 2 does not transmit the operation permission information.
- the encrypted operation permission information also referred to as encrypted operation permission information
- step s5 the control unit 310 of the main device 30 causes the first communication unit 340 to transmit the encryption operation permission information received by the second communication unit 350.
- the encrypted operation permission information is input to the operation control device 40.
- the control unit 410 decodes the encrypted operation permission information received by the communication unit 470.
- the control unit 20 decodes the encryption operation permission information using the key in the storage unit 430. As a result, the operation permission information in plain text can be obtained.
- step s6 the control unit 410 writes the plaintext operation permission information to the operation permission register 450.
- the count value of the countdown timer 461 is set to the number of operable clocks N indicated by the operation permission information in the operation permission register 450.
- the main device 30 can operate for the operable period (for example, several hours to several tens of hours) indicated by the operation permission information in the operation permission register 450.
- the process consisting of the above steps s1 to s6 is executed during the initial operable period of the information processing apparatus 3. Therefore, if the mutual authentication is successful and step s6 is executed, the main device 30 can continue to operate even after step s6. After the operation permission information is written to the operation permission register 450, the information processing apparatus 3 executes the permission target function.
- the operation permission information is not set in the operation permission register 450, so that the supply of the clock signal CLK to the main device 30 is stopped after the initial operation enable period elapses. As a result, the operation of the main device 30 is stopped. If the mutual authentication fails, the information processing apparatus 3 does not execute the permission target function.
- server device 2 may transmit the operation permission information to the information processing device 3 without encryption.
- FIG. 8 is a flowchart showing an example of the operation of the information processing apparatus when the main function is executed.
- the information processing apparatus 3 acquires sensor information.
- the control unit 310 of the main device 30 operates the sensor device 330 to cause the sensor device 330 to detect information.
- the control unit 310 stores the sensor information detected by the sensor device 330 in the memory 370. As a result, sensor information is acquired.
- step s12 the information processing apparatus 3 performs a predetermined process on the acquired sensor information.
- the control unit 310 operates the processing circuit 320.
- the processing circuit 320 acquires sensor information from the memory 370 and performs predetermined processing on the acquired sensor information. Then, the processing circuit 320 stores the processed sensor information in the memory 370 as the processed sensor information.
- step s13 the information processing apparatus 3 encrypts the processed sensor information.
- the control unit 310 reads the processed sensor information from the memory 370 and inputs it to the first communication unit 340.
- the first communication unit 340 transmits the input processed sensor information to the operation control device 40.
- the control unit 410 encrypts the processed sensor information received by the communication unit 470 using the key in the storage unit 430.
- the encrypted processed sensor information may be referred to as "encrypted processed sensor information”.
- step s14 the information processing device 3 transmits the encrypted sensor information obtained in step s13 to the server device 2.
- the main device 30 receives the encrypted sensor information from the operation control device 40, and transmits the received encrypted sensor information to the server device 2.
- the information processing apparatus 3 repeatedly executes the process consisting of the above steps s11 to s14 during the operable period, that is, when the clock signal CLK is supplied to the main apparatus 30.
- the acquisition and transmission of sensor information shown in FIG. 8 may be referred to as "information acquisition / transmission processing”.
- the control unit 20 decodes the received encrypted sensor information using the key in the storage unit 21. As a result, the processed sensor information in plain text can be obtained. Then, the control unit 20 stores the processed sensor information in plain text in the storage unit 21. After that, the control unit 20 performs processing using the processed sensor information in the storage unit 21. For example, the control unit 20 analyzes the processed sensor information and displays the analysis result on the display unit 23, or graphs the processed sensor information from the plurality of information processing devices 3 and displays it on the display unit 23. do.
- the information processing device 3 may transmit the processed sensor information to the server device 2 without encryption.
- the information processing device 3 performs a process for receiving the operation permission information from the server device 2 with the server device 2 during the operable period indicated by the operation permission information received from the server device 2. conduct.
- the process may be referred to as "operation permission process”. It can be said that the information processing device 3 performs a process for the server device 2 to transmit the operation permission information again with the server device 2 during the operable period indicated by the operation permission information received from the server device 2. It can be said that the operation permission process is a process in which the information processing device 3 requests the server device 2 to permit the operation of the function to be permitted.
- the server device 2 transmits the operation permission information to the information processing device 3 according to the establishment of the operation permission condition according to the operation permission process.
- the information processing apparatus 3 can receive new operation permission information by the time the operable period elapses. Therefore, the information processing device 3 can operate the main device 30 for a long period of time. That is, the information processing apparatus 3 can execute the permission target function for a long period of time.
- the operation permission process for example, a process in which the information processing device 3 transmits a request signal for requesting the transmission of the operation permission information to the server device 2 can be considered. Further, as the operation permission condition according to the operation permission process, for example, the reception of the request signal transmitted by the information processing device 3 by the server device 2 can be considered. In this example, the information processing apparatus 3 transmits a request signal during the operable period. Then, the server device 2 transmits the operation permission information to the information processing device 3 in response to the reception of the request signal.
- the server device 2 Since the server device 2 transmits the operation permission information when the mutual authentication is successful, it can be said that the mutual authentication performed by the information processing device 3 with the server device 2 is an operation permission process.
- the operation permission condition for the server device 2 to first transmit the operation permission information after the reset of the information processing device 3 is released is that mutual authentication is successful in the above example.
- the operation permission condition for the server device 2 to transmit the operation permission information from the second time onward after the reset of the information processing device 3 is released is that the server device 2 receives the request signal.
- the operation permission condition for the first transmission of the operation permission information of the server device 2 and the operation permission condition for the second and subsequent transmissions of the operation permission information of the server device 2 are different from each other. There is.
- FIG. 9 is a diagram showing how the information processing device 3 transmits a request signal.
- the information processing apparatus 3 repeatedly transmits the request signal RQ at the transmission interval T2 when the main apparatus 30 is operating.
- the transmission interval T2 is set to be equal to or less than the operable period T1. In other words, the execution interval of the operation permission process is set to the operable period T1 or less.
- the transmission interval T2 is set to, for example, one hour.
- the transmission interval T2 does not have to be constant.
- FIG. 10 is a flowchart showing an example of the operation of the server device 2 and the information processing device 3.
- the information processing apparatus 3 transmits a request signal within the operable period T1.
- the information processing apparatus 3 transmits, for example, an encrypted request signal.
- the control unit 410 of the operation control device 40 generates a request signal, and the generated request signal is encrypted with the key in the storage unit 430.
- the control unit 410 causes the communication unit 470 to transmit the encrypted request signal.
- the request signal is input to the main device 30.
- the main device 30 transmits the request signal received by the first communication unit 340 to the server device 2.
- the server device 2 executes step s22 when it receives the request signal, that is, when the operation permission condition is satisfied.
- the control unit 20 decodes the encrypted request signal received by the communication unit 22 with the key in the storage unit 21. Then, in step s22, the control unit 20 generates encryption operation permission information in the same manner as in step s3 described above. After that, in step s23, the server device 2 transmits the encryption operation permission information to the information processing device 3.
- the information processing apparatus 3 decodes the received encryption operation permission information in step s24 in the same manner as in step s5 described above. Then, in the same manner as in step s6, the information processing apparatus 3 sets the plaintext operation permission information in the operation permission register 450 of the operation control device 40 in step s25. As a result, the operation permission information is set again in the operation permission register 450, and a new operable period T1 is set. That is, the operable period T1 is updated.
- the information processing apparatus 3 transmits the request signal (specifically, the encrypted request signal) to the server apparatus 2 again after the transmission interval T2 from the execution of step s21 (step s26).
- the server device 2 Upon receiving the request signal, the server device 2 generates encryption operation permission information in step s27 in the same manner as in step s3. Then, in step s28, the server device 2 transmits the encryption operation permission information to the information processing device 3.
- the information processing apparatus 3 decodes the received encryption operation permission information in step s29 in the same manner as in step s5. Then, in the same manner as in step s6, the information processing apparatus 3 sets the plaintext operation permission information in the operation permission register 450 of the operation control device 40 in step s30. As a result, the operation permission information is set again in the operation permission register 450, and the operation enable period T1 is further updated.
- the information processing apparatus 3 transmits the request signal to the server apparatus 2 again after the transmission interval T2 from the execution of step s26 (step s31). After that, the information processing device 3 and the server device 2 operate in the same manner. The information processing device 3 may transmit the request signal to the server device 2 without encrypting it.
- the information processing apparatus 3 transmits the request signal to the server apparatus 2 at intervals equal to or less than the operable period T1, so that the information processing apparatus 3 is newly allowed to operate before the operable period T1 elapses. It becomes possible to receive information.
- the information processing apparatus 3 executes the operation permission process at intervals of the operable period T1 or less, so that the information processing apparatus 3 receives new operation permission information before the operable period T1 elapses. It becomes possible to receive. Therefore, the information processing apparatus 3 can update the operable period T1 before the operable period T1 elapses. As a result, the information processing apparatus 3 can continuously operate the main apparatus 30 after the mutual authentication is successful. Therefore, the information processing apparatus 3 can execute the permission target function for a long period of time.
- FIG. 11 is a diagram showing an example of how the operable period T1 is updated. As shown in FIG. 11, in this example, the main device 30 continues by repeating the process in which the operation permission information is set in the operation permission register 450 and the operation permission period T1 is updated within the operable period T1. It becomes possible to operate.
- the transmission interval T2 is set to less than half of the operable period T1, even if the communication between the information processing device 3 and the server device 2 is temporarily not properly performed. It is possible to improve the possibility that the information processing apparatus 3 can update the operable period T1 before the operable period T1 elapses. This point will be described below.
- the operable period T1 set in step s25 of FIG. 10 described above is referred to as an “operable period T1t”.
- the request signal RQs transmitted in steps s26 and s31 are referred to as request signals EQU1 and EQU2, respectively.
- the request signal RQ transmitted by the information processing apparatus 3 after the request signal RQ2 is referred to as a request signal RQ3.
- step s27 to s30 are not executed. Therefore, the information processing apparatus 3 cannot update the operable period in response to the transmission of the request signal EQU1. Further, when the operation permission information transmitted by the server device 2 that has received the request signal EQU1 transmitted by the information processing device 3 does not reach the information processing device 3 due to a temporary deterioration in communication quality or the like, step s29. And s30 are not executed. Therefore, the information processing apparatus 3 cannot update the operable period in response to the transmission of the request signal EQU1.
- the information processing apparatus 3 cannot receive the operation permission information corresponding to the transmitted request signal EQU1, the information processing apparatus 3 cannot update the operable period according to the transmission of the request signal EQU1.
- the transmission interval T2 is set to less than half of the operable period T1
- the information processing apparatus 3 has the operable period T1t for transmitting the request signal EQU1 as shown in FIG. ,
- the next request signal EQU2 can be transmitted. That is, the information processing apparatus 3 can transmit the request signal again in the same period as the operable period in which the request signal is transmitted, even if the operation permission information corresponding to the transmitted request signal cannot be received.
- the information processing apparatus 3 has an improved possibility of receiving the operation permission information in the operable period T1t. That is, it is possible to improve the possibility that the information processing apparatus 3 can update the operable period before the operable period elapses.
- the information processing apparatus 3 may be able to transmit the next request signal EQU3 during the operable period T1t. In this case, the information processing apparatus 3 may be able to receive the operation permission information corresponding to the request signal EQU3 during the operable period T1t. Therefore, even if the information processing apparatus 3 cannot receive the operation permission information corresponding to the request signals EQU1 and EQU2, the possibility that the operation permission information can be received in the operable period T1t is improved. This makes it possible to improve the possibility that the information processing apparatus 3 can update the operable period before the operable period elapses.
- the request signal can be transmitted again in the same period as the operable period.
- the request signal can be transmitted again in the same period as the operable period.
- the operation permission condition for the first transmission of the operation permission information of the server device 2 and the operation permission condition for the second and subsequent transmissions of the operation permission information of the server device 2 are different from each other. , Both may be the same.
- the operation permission condition for the first transmission of the operation permission information of the server device 2 may be that the server device 2 receives the request signal EQU.
- the information processing device 3 transmits the request signal EQU to the server device 2 without executing mutual authentication.
- the server device 2 executes the above-mentioned steps s3 and s4 to transmit the encryption operation permission information to the information processing device 3.
- the information processing apparatus 3 Upon receiving the encrypted operation permission information, the information processing apparatus 3 executes the above-mentioned steps s5 and s6 to write the plaintext operation permission information to the operation permission register 450. As a result, the operable period is set in the information processing apparatus 3 for the first time.
- the operation permission condition for the second and subsequent transmissions of the operation permission information of the server device 2 may be the success of mutual authentication.
- mutual authentication between the server device 2 and the information processing device 3 is performed.
- the server device 2 determines that the mutual authentication is successful, the server device 2 executes the above-mentioned steps s2 and s3 to transmit the encryption operation permission information to the information processing device 3.
- the information processing apparatus 3 executes the above-mentioned steps s24 and s25 to write the plaintext operation permission information to the operation permission register 450. As a result, the operable period is updated.
- the operation permission condition of successful mutual authentication and the operation permission condition of receiving the request signal of the server device 2 may be mixed.
- the operation mode of the control unit 410 includes the normal mode and the secure mode, but the control unit 410 may always operate in the secure mode. In this case, all the above operations described for the control unit 410 are executed in the secure mode.
- the information processing device 3 operates the permission target function according to the operation permission information received from the server device 2. Therefore, when the information processing device 3 is hacked and the operation permission information cannot be received from the server device 2, the information processing device 3 can stop the permission target function. Therefore, it is possible to reduce the possibility that the permitted function of the information processing apparatus 3 is used by a hacker. As a result, the safety of the information processing apparatus 3 is improved.
- the information processing device 3 becomes a communication device different from the server device 2 of the original communication partner, such as a DoS (Denial of Service attack) attack.
- a DoS Delivery of Service attack
- the server device 2 since the server device 2 which is the original communication partner of the information processing device 3 cannot receive the signal from the information processing device 3, the operation permission condition is not satisfied. Therefore, the server device 2 does not transmit the operation permission information.
- the operation of the main device 30 of the information processing device 3 is stopped.
- by stopping the server communication function of the information processing device 3 it is possible to reduce the possibility that the hacked information processing device 3 has an adverse effect on the outside.
- the operation control device 40 in the normal mode capable of communicating with the main device 30 is hacked, and as a result, the operation control device.
- the communication unit 470 of 40 cannot communicate with the main device 30.
- the server device 2 cannot receive the signal necessary for satisfying the operation permission condition (for example, a request signal or a random number used in mutual authentication) from the information processing device 3, the operation permission information Do not send.
- the operation of the main device 30 of the information processing device 3 is stopped, and as a result, the possibility that the permitted function is used by a hacker can be reduced.
- the main device 30, in other words, the circuit that realizes the permitted function of the information processing device 3, and the operation control device 40 are housed in different packages. Therefore, for example, by connecting the operation control device 40 to the existing device that functions as the main device 30 later, the information processing device 3 with high safety can be easily realized.
- the operation control device 40 has stopped the permitted function after the operable period has elapsed, but the permitted function may be restricted.
- the operation control device 40 inputs the clock signal to the clock input port 301 of the main device 30, for example, even after the operable period has elapsed.
- the operation control device 40 divides the frequency of the clock signal input to the clock input port 301 after the lapse of the operable period by a frequency divider or the like, rather than the frequency of the clock signal input to the clock input port 301 during the operable period. To make it smaller.
- the operating speed of the main device 30 is reduced, and the permitted functions are restricted more than within the operable period.
- the reset signal generation unit 490 asserts the reset signal RS.
- the operation of the information processing apparatus 3 is initialized.
- the initial value M is set in the operation permission register 450 as described above, and the main apparatus 30 can operate during the initial operable period.
- the information processing apparatus 3 executes an operation permission process (for example, mutual authentication or transmission of a request signal) with the server apparatus 2 during the initial operable period.
- the operation permission information is set in the operation permission register 450.
- the operable period is set in the information processing apparatus 3, and the main apparatus 30 can continue to operate.
- the reset signal generation unit 490 asserts the reset signal RS when the power of the information processing apparatus 3 is switched from off to on. Therefore, when the information processing apparatus 3 is provided with a power switch, the user operates the power switch to turn off the power of the information processing apparatus 3 and then turn it on again to process information processing. The operation of the main device 30 can be restored to the device 3.
- the information processing apparatus 3 has stopped the permission target function by stopping the supply of the clock signal CLKm to the main device 30, but the permission target function may be stopped by using another method. ..
- the information processing device 3 may stop the permitted function by asserting the reset signal input to the main device 30.
- FIG. 13 is a diagram showing an example of the configuration of the operation control device 40 included in the information processing device 3 in this case.
- the operation control device 40 shown in FIG. 13 generates a reset signal RSm for the main device 30 separately from the reset signal RS. It can be said that the reset signal RS is a reset signal for the operation control device 40.
- the motion control device 40 shown in FIG. 13 does not include a clock gate 462. Further, in the operation control device 40 shown in FIG. 13, the clock signal CLK output by the clock generation unit 480 is directly input to the clock input port 301 of the main device 30.
- the operation control device 40 shown in FIG. 13 is provided with a reset signal generation unit 510 that generates a reset signal RSm.
- a reset signal RSm is input to the reset input port 302 of the main device 30 instead of the reset signal RS.
- the countdown timer 461 and the reset signal generation unit 510 configure an operation control unit 520 that controls whether or not to operate the main device 30.
- the reset signal RS and the enable signal ENS output from the countdown timer 461 are input to the reset signal generation unit 510.
- the reset signal generation unit 510 asserts the reset signal RSm for the main device 30. Therefore, when the reset signal RS is asserted, the reset signal RSm is asserted and the operation of the main device 30 is initialized.
- the reset signal generation unit 510 asserts the reset signal RSm when the enable signal ENS is at the Low level. In other words, the reset signal generation unit 510 asserts the reset signal RSm when the countdown timer 461 does not perform the count operation. On the other hand, the reset signal generation unit 510 does not assert the reset signal RSm when the enable signal ENS is at the High level. In other words, the reset signal generation unit 510 negates the reset signal RSm when the countdown timer 461 is performing the count operation.
- Other operations of the motion control device 40 shown in FIG. 13 are the same as those of the motion control device 40 shown in FIG. 6 above.
- the enable signal ENS is output.
- the reset signal RSm input to the reset input port 302 of the main device 30 is negated by changing from the Low level to the High level.
- the main device 30 can operate during the initial operable period.
- the enable signal ENS maintains the High level and the main device 30 continues the operation.
- the reset signal RSm input to the reset input port 302 is asserted when the operable period currently set in the information processing apparatus 3 has elapsed. As a result, the operation of the main device 30 is stopped.
- FIG. 14 is a diagram showing an example of the configuration of the information processing apparatus 3 in this case. In FIG. 14, the reset switch 50 is not shown.
- the communication unit 470 of the operation control device 40 is connected to the communication network 4.
- the communication unit 470 can communicate with the server device 2 through the communication network 4.
- the main device 30 is connected to the bus 550.
- the main device 30 connected to the bus 550 may be referred to as a "functional block 30".
- the functional block 30 includes, for example, the control unit 310, the processing circuit 320, the sensor device 330, the non-volatile memory 360, the non-volatile memory 370, and the volatile memory 380 described above, and these are connected to the bus 390. There is.
- the functional block 30 does not include the above-mentioned first communication unit 340 and second communication unit 350.
- the control unit 310 is connected to the bus 550 of the operation control device 40, and exchanges information with the control unit 410 through the bus 550.
- the control unit 410 of the operation control device 40 exchanges information with the control unit 310 of the functional block 30 when the operation mode is the normal mode. Further, the control unit 310 of the functional block 30 cannot directly access the timer 420, the storage unit 430, and the operation permission register 450 of the operation control device 40 through the bus 550.
- information processing device 3 having such a configuration, information such as a request signal and processed sensor information transmitted by the information processing device 3 to the server device 2 is transmitted from the communication unit 470 to the server device 2. Further, the operation permission information transmitted by the server device 2 to the information processing device 3 is received by the communication unit 470.
- control unit 410 receives the processed sensor information from the control unit 310 of the functional block 30 through the bus 550 in step s13, and receives the processed sensor information. Encrypt. After that, in step s14, the control unit 310 causes the communication unit 470 to transmit the encrypted sensor information to the server device 2.
- the safety of the information processing apparatus 3 can be improved in the same manner as described above.
- the information processing device 3 is different from the server device 2 of the original communication partner, as in a DoS attack.
- the server device 2 which is the original communication partner of the information processing device 3 cannot receive the signal from the information processing device 3, the operation permission condition is not satisfied.
- the server device 2 does not transmit the operation permission information.
- the operation of the functional block 30 of the information processing apparatus 3 is stopped.
- the information processing apparatus 3 stops the functional block 30 by stopping the supply of the clock signal CLKm to the functional block 30, but as in the example of FIG. 13 described above, the functional block 30 is stopped.
- the functional block 30 may be stopped by generating the reset signal RSm for 30 and asserting the reset signal RSm.
- the server communication function is not included in the permitted function, but the server communication function may be included.
- the server communication function may be included.
- the server communication function can be added to the permitted function. Can be included.
- the server communication function can be included in the permission target function.
- the reset signal generation unit 540 asserts the reset signal RSn input to the communication unit 470.
- the reset signal generation unit 540 asserts the reset signal RSn when the enable signal ENS reaches the Low level. From this, the reset signal RSn input to the communication unit 470 is negated when the countdown timer 461 is counting (high level of the enable signal ENS), and is negated when the countdown timer 461 is not counting (enable signal ENS). Is Low level) asserted.
- the server communication function may be included in the permitted function by providing the switch circuit 530 that controls the connection between the bus 550 and the communication unit 470 based on the enable signal ENS.
- the switch circuit 530 connects the communication unit 470 to the bus 550 when the enable signal ENS is at the High level.
- the information processing device 3 can communicate with the server device 2 by using the communication unit 470. Therefore, the server communication function operates.
- the switch circuit 530 does not connect the communication unit 470 to the bus 550 when the enable signal ENS is at the Low level. In this case, the information processing device 3 cannot communicate with the server device 2 by using the communication unit 470. Therefore, the server communication function is stopped.
- FIG. 17 is a diagram mainly showing an example of the configuration of the operation control device 40 in this case.
- the information processing apparatus 3 includes a battery 70 that generates a power source thereof.
- the operation control device 40 and the main device 30 operate based on the output voltage Vb of the battery 70.
- the operation control device 40 shown in FIG. 17 includes a power supply circuit 610 instead of the reset signal generation unit 510 in the operation control device 40 shown in FIG. 13 described above, and inputs the reset signal RS to the main device 30. be.
- the power supply circuit 610 generates the power supply voltage Vm of the main device 30.
- the power supply circuit 610 can generate and output a power supply voltage Vm based on the output voltage Vb of the battery 70.
- the power supply circuit 610 is, for example, a step-down circuit, which steps down the output voltage Vb of the battery 70 and outputs the voltage.
- the main device 30 is provided with a power input port 303 into which a power supply voltage Vm is input.
- the main device 30 operates based on the power supply voltage Vm input to the power supply input port 303.
- the countdown timer 461 and the power supply circuit 610 constitute an operation control unit 620 that controls the operation of the main device 30.
- the enable signal ENS output from the countdown timer 461 is input to the power supply circuit 610.
- the power supply circuit 610 does not output the power supply voltage Vm when the enable signal ENS is at the Low level. On the other hand, the power supply circuit 610 outputs the power supply voltage Vm when the enable signal ENS is at the High level.
- the enable signal ENS changes from the Low level to the High level, and the main device The power supply voltage Vm is input to the power supply input port 303 of 30.
- the main device 30 can operate during the initial operable period.
- the enable signal ENS maintains the High level and the main device 30 continues the operation.
- the operation permission information 500 in the operation permission register 450 is not updated, the power supply voltage Vm is not input to the power input port 303 after the operable period currently set in the information processing apparatus 3 has elapsed. As a result, the operation of the main device 30 is stopped.
- the operation control device 40 is the main device 30 as in the example of FIG.
- the operation of the main device 30 may be stopped by stopping the power supply to (in other words, the functional block 30).
- FIG. 18 is a diagram mainly showing an example of the configuration of the operation control device 40 in this case.
- the motion control device 40 shown in FIG. 18 includes a power supply circuit 630 in place of the reset signal generation unit 540 in the motion control device 40 shown in FIG.
- the power supply circuit 630 can generate and output the power supply voltage Vn of the communication unit 470 based on the output voltage Vb of the battery 70.
- the power supply circuit 630 is, for example, a step-down circuit, which steps down the output voltage Vb and outputs the voltage.
- the enable signal ENS output from the countdown timer 461 is input to the power supply circuit 630.
- the power supply circuit 630 does not output the power supply voltage Vn when the enable signal ENS is at the Low level.
- the power supply circuit 630 outputs the power supply voltage Vn when the enable signal ENS is at the High level.
- the permitted functions include the main functions of the information processing apparatus 3, but the main functions may not be included.
- the main functions may not be included.
- the information processing device 3 is added to the permitted function. Main functions will not be included.
- the software 373 stored in the information processing device 3 is updated by the communication between the information processing device 3 and the server device 2.
- the server device 2 stores, for example, the update software 213, which is the latest version of the software 373, in the storage unit 21.
- the information processing apparatus 3 receives the update software 213 from the server apparatus 2, and updates the software 373 in the memory 370 with the received update software 213. As a result, the software 373 in the information processing apparatus 3 is updated to the latest version.
- FIG. 19 is a diagram showing an example of information stored in the storage unit 21 of the server device 2.
- the storage unit 21 stores the update software 213, which is the latest version of the software 373 stored in the information processing device 3, and the signature 214 corresponding to the update software 213 in association with each other.
- Signature 214 is generated from the corresponding update software 213.
- the signature 214 is a hash value generated from the corresponding update software 213 encrypted with the private key of the server device 2. By verifying the signature 214, it is possible to detect whether or not the corresponding update software 213 has been tampered with.
- the storage unit 21 stores the update version information 216 indicating the version of the update software 213 (that is, the latest version of the software 373).
- the information processing apparatus 3 stores a plurality of software 373, for each of the plurality of software 373, the update software 213 of the latest version of the software 373, the corresponding signature 214, and the update version information indicating the version thereof. 216 is stored in the storage unit 21.
- the update software 213, signature 214 and update version information 216 are updated as appropriate.
- FIG. 20 and 21 are flowcharts showing an example of software update processing in the information processing apparatus 3.
- FIG. 22 is a flowchart showing an example of the operation of the server device 2 in response to the software update process in the information processing device 3.
- the information processing apparatus 3 stores a plurality of software 373, software update processing is performed for each of the plurality of software 373.
- the process performed by the main device 30 is described in, for example, the OS 371 in the memory 370.
- OS371 is less likely to be hacked.
- the motion control device 40 is less likely to be hacked. Therefore, in this example, the software update process (in other words, the software update function) performed by the information processing apparatus 3 is less likely to be hacked.
- the software 373 to be explained may be referred to as the target software 373.
- the version information 376 indicating the version of the target software 373 may be referred to as the target version information 376.
- the signature 377 corresponding to the target version information 376 may be referred to as a target signature 377.
- the information transmitted by the information processing device 3 to the server device 2 is encrypted by the control unit 410 of the operation control device 40 as described above. Further, it is assumed that the information transmitted by the server device 2 to the information processing device 3 is encrypted by the control unit 20 as described above. Further, it is assumed that the information received by the information processing device 3 from the server device 2 is decoded by the control unit 410 as described above and then used by the information processing device 3. Further, it is assumed that the information received by the server device 2 from the information processing device 3 is decoded by the control unit 20 as described above and then used by the server device 2.
- step s51 the information processing apparatus 3 verifies the target signature 377 stored in the memory 370.
- the control unit 310 of the main device 30 reads the target signature 377, the version information 376, and the identification information 432 from the memory 370.
- the target signature 377, the version information 376, and the identification information 432 read from the memory 370 are input to the operation control device 40.
- the control unit 410 verifies the target signature 377.
- the signature 377 is, for example, a hash value generated from the target version information 376 and the identification information 432 encrypted with the private key of the server device 2.
- step s51 the control unit 410 decodes the target signature 377 with the public key of the server device 2. Further, the control unit 410 generates a hash value from the target version information 376 and the identification information 432 from the main device 30. Then, the control unit 410 compares the value obtained by decoding the target signature 377 with the generated hash value. If the value obtained by decoding the target signature 377 and the generated hash value match, the control unit 410 determines that the target signature 377 is correct. On the other hand, if the value obtained by decoding the target signature 377 and the generated hash value do not match, the control unit 410 determines that the target signature 377 is not correct.
- the public key used for decryption of the target signature 377 is a public key paired with the private key of the server device 2 used in the creation of the target signature 377, and is stored in, for example, the storage unit 430. ..
- step s53 is executed. In other words, if the control unit 410 determines that both the target version information 376 and the identification information 432 have not been tampered with, step s53 is executed. On the other hand, when the control unit 410 determines that the target signature 377 is incorrect (NO in step s52), the target software 373 is not updated and the software update process ends. In other words, when the control unit 410 determines that at least one of the target version information 376 and the identification information 432 has been tampered with, the software update process ends.
- step s53 the information processing device 3 compares the identification information 431 in the storage unit 430 of the operation control device 40 with the identification information 432 in the memory 370 of the main device 30.
- the control unit 410 of the operation control device 40 compares the identification information 432 received by the operation control device 40 from the main device 30 in step s51 with the identification information 431 in the storage unit 430.
- step s55 is executed.
- the control unit 410 determines that the identification information 432 and the identification information 431 do not match (NO in step s54)
- the target software 373 is not updated and the software update process ends.
- step s55 the information processing apparatus 3 transmits the target version information 376 in the memory 370 to the server apparatus 2.
- the control unit 310 reads the target version information 376 from the memory 370. Then, the read target version information 376 is transmitted from the second communication unit 350 or the communication unit 470 to the server device 2.
- step s72 is executed.
- the control unit 20 receives the version (also referred to as the received version) indicated by the target version information 376 received by the communication unit 22, and the updated version information 216 stored in the storage unit 21 corresponding to the target software 373. Compare with the indicated version (also called the updated version). It can be said that the updated version is the latest version of the target software 373.
- the information processing device 3 When the information processing device 3 transmits the target version information 376, the information processing device 3 also transmits the specific information for specifying the target software to the server device 2.
- the server device 2 can specify the target software 373 based on the received specific information.
- step s74 is executed.
- the server device 2 ends the process corresponding to the software update process.
- step s74 the control unit 20 generates an update request command for requesting the information processing apparatus 3 to update the target software 373. Then, the control unit 20 causes the communication unit 22 to transmit the update request command. It can be said that the update request command is update request information.
- step s57 the information processing apparatus 3 transmits the identification information 431 in the storage unit 430 to the server apparatus 2 in response to the received update request command.
- step s57 the control unit 410 of the operation control device 40 reads out the identification information 431 from the storage unit 430. The read identification information 431 is transmitted to the server device 2.
- step s76 the control unit 20 generates a signature corresponding to both the update version information 216 indicating the version of the update software 213 corresponding to the target software 373 and the identification information 431 received by the communication unit 22.
- This signature is sometimes called a server-generated signature.
- the server-generated signature is generated in the same manner as the signature 377 in the information processing apparatus 3. For example, if the signature 377 is a hash value generated from data in which version information 376 and identification information 432 are simply concatenated, the server-generated signature is an updated version. The hash value generated from the data in which the information 216 and the identification information 431 are simply concatenated is encrypted with the private key of the server device 2. Further, if the signature 377 is a server-generated signature if the hash value generated from the data obtained by calculating the exclusive logical sum of the version information 376 and the identification information 432 is encrypted with the private key. Is the hash value generated from the data obtained by calculating the exclusive logical sum of the updated version information 216 and the identification information 431 encrypted with the private key.
- step s77 the control unit 20 causes the communication unit 22 to transmit the update software-related data.
- the update software-related data includes update software 213 corresponding to the target software 373, a signature 214 corresponding thereto, a server-generated signature, and update version information 216 and identification information 431 corresponding thereto.
- the information processing apparatus 3 When the information processing apparatus 3 receives the update software-related data from the server apparatus 2 in step s58 after step s57, the information processing apparatus 3 executes step s59.
- the identification information 431 included in the update software-related data received by the server device 2 may be referred to as reception identification information.
- step s59 the information processing apparatus 3 verifies the signature 214 included in the update software-related data.
- the control unit 410 of the operation control device 40 decodes the signature 214 with the public key in the storage unit 430. Further, the control unit 410 generates a hash value from the update software 213 included in the update software-related data. Then, the control unit 410 compares the value obtained by decoding the signature 214 with the generated hash value. When the value obtained by decoding the signature 214 and the generated hash value match, the control unit 410 determines that the signature 214 is correct. On the other hand, if the value obtained by decoding the signature 214 and the generated hash value do not match, the control unit 410 determines that the signature 214 is incorrect.
- step s61 is executed. In other words, if the control unit 410 determines that the update software 213 has not been tampered with, step s61 is executed. On the other hand, when the control unit 410 determines that the signature 214 is incorrect (NO in step s60), the target software 373 is not updated and the software update process ends. In other words, when the control unit 410 determines that the update software 213 has been tampered with, the software update process ends.
- step s61 the information processing apparatus 3 verifies the server-generated signature included in the update software-related data.
- the control unit 410 of the operation control device 40 decodes the server-generated signature with the public key in the storage unit 430. Further, the control unit 410 generates a hash value from the update version information 216 and the reception identification information included in the update software-related data. Then, the control unit 410 compares the value obtained by decoding the server-generated signature with the generated hash value. When the value obtained by decoding the server-generated signature and the generated hash value match, the control unit 410 determines that the server-generated signature is correct. On the other hand, if the value obtained by decoding the server-generated signature and the generated hash value do not match, the control unit 410 determines that the server-generated signature is incorrect.
- step s63 is executed.
- the control unit 410 determines that the server-generated signature is correct (YES in step s62)
- step s63 is executed.
- the control unit 410 determines that the server-generated signature is incorrect (NO in step s62)
- the target software 373 is not updated and the software update process ends.
- step s63 the information processing device 3 compares the identification information 431 in the storage unit 430 of the operation control device 40 with the reception identification information included in the received update software-related data.
- the control unit 410 of the operation control device 40 compares the identification information 431 in the storage unit 430 with the reception identification information.
- step s65 is executed.
- the control unit 410 determines that the identification information 431 and the reception identification information do not match (NO in step s63)
- the target software 373 is not updated and the software update process ends.
- step s65 the information processing apparatus 3 corresponds to the target software 373 in the memory 370 with the update software 213 included in the received update software-related data, the corresponding signature 214, the update version information 216, and the server-generated signature.
- the update process for updating the signature 374, the target version information 376, and the target signature 377 is performed. This update process is executed, for example, by the control unit 310 of the main device 30.
- the control unit 310 updates the target software 373 by replacing the target software 373 in the memory 370 with the update software 213 included in the update software-related data in the update process. As a result, the target software 373 is updated to the latest version. Further, in the update process, the control unit 310 updates the signature 374 by replacing the signature 374 corresponding to the target software 373 in the memory 370 with the signature 214 included in the update software-related data. Further, in the update process, the control unit 310 updates the target version information 376 by replacing the target version information 376 in the memory 370 with the update version information 216 included in the update software-related data.
- the control unit 310 updates the target signature 377 by replacing the target signature 377 in the memory 370 with the server-generated signature included in the update software-related data.
- the software update process is completed.
- the information processing device 3 stores the signature generated by the server device 2 as the signature 374 corresponding to the software 373. Further, the information processing apparatus 3 stores the signature generated by the server apparatus 2 as the signature 377 corresponding to the version information 376 and the identification information 432 (in other words, the identification information 431).
- the information processing device 3 executes the software update process as described above during the operable period.
- the information processing apparatus 3 may execute the version notification processing from steps s51 to s55 of the software update processing a plurality of times at regular intervals, for example, during the operable period.
- the information processing apparatus 3 may execute the version notification process (steps s51 to s55) when transmitting the request signal to the server apparatus 2, and may transmit the version information 376 to the server apparatus 2 together with the request signal. Further, the information processing device 3 executes the version notification process when performing mutual authentication with the server device 2, and outputs the version information 376 to the server when performing mutual authentication with the server device 2. It may be transmitted to the device 2.
- the software 373 and the update software 213 do not have to be signed.
- the update software related data does not include signature 214.
- steps s59 and s60 are not executed, and step s61 is executed immediately after step s58.
- the software update process is not limited to the above example.
- the execution order of the first process including steps s51 and s52 and the second process including steps s53 and s54 may be interchanged.
- the execution order of the third process consisting of steps s59 and s60, the fourth process consisting of steps s61 and s62, and the fifth process consisting of steps s63 and s64 may be interchanged.
- the fifth process, the third process, and the fourth process may be executed in this order.
- the fourth process, the fifth process, and the third process may be executed in this order.
- step s55 the information processing apparatus 3 may transmit the target version information 376 and the identification information 431 in the storage unit 430 to the server apparatus 2.
- 23 and 24 are flowcharts showing an example of the operation of the information processing device 3 and the server device 2 in this case, respectively.
- step s155 the information processing apparatus 3 transmits the target version information 376 in the memory 370 and the identification information 431 in the storage unit 430 to the server apparatus 2.
- the control unit 310 reads the target version information 376 from the memory 370.
- the control unit 410 reads out the identification information 431 from the storage unit 430. Then, the read target version information 376 and the identification information 431 are transmitted from the information processing device 3 to the server device 2.
- step s72 when the server device 2 receives the target version information 376 and the identification information 431 from the information processing device 3 in step s171, the server device 2 executes the above-mentioned step s72.
- the version comparison in step s72 when the control unit 20 determines that the received version is older than the updated version (YES in step s73), the above-mentioned steps s76 and s77 are sequentially executed.
- the server device 2 ends the process corresponding to the software update process.
- step s155 the above-mentioned step s58 is executed. After that, the information processing apparatus 3 operates in the same manner as described above.
- the operation control device 40 determines that the signature 377 corresponding to the version information 376 and the identification information 432 in the memory 370 of the main device 30 is correct, and the memory 370.
- the version information 376 in the memory 370 is transmitted to the server device 2. This makes it possible to reduce the possibility that version information 376 indicating an erroneous version is transmitted to the server device 2 by hacking. This point will be described in detail below.
- the information processing device 3 to be described may be referred to as a target information processing device 3.
- step s53 and s54 are not executed and YES is determined in step s52, step s55 or step s155 is executed and version information 376 is transmitted to the server device 2.
- the version information 376 and the signature 377 corresponding to the target software 373 stored in the information processing device 3 different from the target information processing device 3 are stolen by the hacker. be.
- the version information 376 and the signature 377 corresponding to the target software 373 in the target information processing apparatus 3 may be replaced with the version information 376 and the signature 377 stolen from another information processing apparatus 3 by a hacker.
- the target information processing device 3 indicates an erroneous version.
- the version information 376 will be stored.
- step s55 or step s155 is executed, and version information 376 indicating a version different from the version of the target software 373 stored in the target information processing device 3, that is, an erroneous version is transmitted to the server device 2.
- the server device 2 operates based on the version information 376 indicating the wrong version.
- the operation control device 40 determines that the signature 377 in the memory 370 of the main device 30 is correct, and the identification information 432 in the memory 370 matches the identification information 431 stored by itself. If so, the version information 376 in the memory 370 is transmitted to the server device 2. Temporarily, the version information 376, the identification information 432 and the signature 377 in the memory 370 of the target information processing apparatus 3 are stolen from the memory 370 of another information processing apparatus 3 by a hacker, and the version information 376, the identification information 432 and the signature 377 are stolen. When replaced with, the identification information 432 in the memory 370 does not match the identification information 431 stored in the operation control device 40.
- step s54 NO is determined, and step s55 or s155 is not executed. Therefore, the possibility that version information 376 indicating an erroneous version is transmitted to the server device 2 is reduced. As a result, the possibility that the server device 2 operates based on the version information 376 indicating the wrong version is reduced.
- the version information 376, the identification information 432, and the signature 377 in the memory 370 of the target information processing apparatus 3 only the version information 376 and the signature 377 are stolen from the memory 370 of another information processing apparatus 3 by a hacker.
- the version information 376 and the signature 377 are replaced.
- the hash value generated from the version information 376 and the identification information 432 in the memory 370 of the target information processing apparatus 3 and the signature 377 in the memory 370 of the target information processing apparatus 3 are decoded and obtained. Does not match the value given. That is, it is determined that the signature 377 is incorrect. Therefore, in step s52, NO is determined, and step s55 or step s155 is not executed. This reduces the possibility that version information 376 indicating an erroneous version will be transmitted to the server device 2.
- the operation control device 40 determines that the server-generated signature from the server device 2 is correct, and determines that the received identification information from the server device 2 matches the identification information 431 stored by itself.
- the information processing apparatus 3 performs an update process for updating the software 373, the version information 376, and the signature 377 in the memory 370 with the update software 213, the update version information 216, and the server-generated signature from the server apparatus 2, respectively. Therefore, in the target information processing apparatus 3, the updated version information 216 and the received identification information from the server apparatus 2 have not been tampered with by the hacker, and the updated version information 216, the received identification information, and the server-generated signature have been tampered with by the hacker.
- the update process can be executed when it is not replaced with that of another information processing apparatus 3. Therefore, the information processing device 3 can execute the update process when the information processing system 1 is not hacked. Therefore, the information processing apparatus 3 can appropriately update the software 373, the version information 376, and the signature 377 in the memory 370. If software 373 is not updated properly, the information processing device 3 may be hacked based on the vulnerability of software 373. By appropriately updating the software 373, the information processing apparatus 3 is less likely to be hacked, and as a result, the safety of the information processing apparatus 3 is improved.
- 25 and 26 are flowcharts showing an example of the operation of the server device 2 in this case.
- step s82 when the control unit 20 of the server device 2 determines in step s81 that the communication unit 22 does not receive the version information 376 from the information processing device 3 for a certain period of time, the control unit 20 executes step s82. For example, when the information processing apparatus 3 executes the version notification process (steps s51 to s55) at regular intervals during the operable period, the value larger than the fixed intervals is set for the fixed period of step s81. NS.
- step s82 the control unit 20 determines that an abnormality has occurred in the information processing device 3. Then, the control unit 20 stores the abnormality determination information indicating that the abnormality has occurred in the information processing apparatus 3 in the storage unit 21.
- step s86 the control unit 20 confirms whether or not the abnormality determination information is stored in the storage unit 21.
- the control unit 20 executes step s87.
- step s87 the control unit 20 generates operation permission information, and causes the communication unit 22 to transmit the generated operation permission information to the information processing apparatus 3.
- the control unit 20 determines that the abnormality determination information is stored in the storage unit 21, the control unit 20 does not generate the operation permission information.
- the server device 2 determines that the version information 376 is not received from the information processing device 3, the server device 2 does not transmit the operation permission information to the information processing device 3 even if the operation permission condition is satisfied.
- the information processing device 3 stops or limits the function to be permitted when the current operation permission period ends. Therefore, in the examples of FIGS. 25 and 26, when the server device 2 determines that the version information 376 is not received from the information processing device 3, the operation control device 40 stops or limits the permitted function.
- the server device 2 may not be able to receive the version information 376 from the information processing device 3. In this case, the server device 2 may not be able to receive the version information 376 for a certain period of time, and the permitted function may be stopped or restricted.
- the server device 2 cannot receive the version information 376 from the information processing device 3 for a certain period of time, and the permitted function may be stopped or restricted.
- the operation control device 40 stops or limits the permitted function, so that the information processing device 3 is hacked.
- the motion control device 40 can stop or limit the permitted function.
- the server device 2 determines that the received version received from the information processing device 3 does not match the updated version after transmitting the update software-related data to the information processing device 3, it is assumed that the operation permission condition is satisfied. However, it is not necessary to transmit the operation permission information to the information processing apparatus 3. As a result, if the server device 2 determines that the received version does not match the updated version after transmitting the update software-related data, the operation control device 40 stops or limits the permitted function.
- the control unit 20 of the server device 2 determines that the received version does not match the updated version as a result of the version comparison in step s72 immediately after the execution of the above-mentioned step s77, it is determined that an abnormality has occurred in the information processing device 3. do. Then, the control unit 20 stores the abnormality determination information in the storage unit 21. On the other hand, the server device 2 executes the process shown in FIG. 26 above. As a result, when the server device 2 determines that the received version received from the information processing device 3 does not match the updated version after transmitting the update software-related data to the information processing device 3, the operation permission condition is satisfied. However, the operation permission information is not transmitted to the information processing apparatus 3. Therefore, the operation control device 40 stops or limits the function to be permitted.
- the control unit 20 may continuously store the abnormality determination information in the storage unit 21 when it is determined that the received version does not match the updated version. That is, when the control unit 20 determines that the received version does not match the updated version in each result of the version comparison of the plurality of consecutive steps s72 performed immediately after the execution of the step s77, the control unit 20 stores the abnormality determination information. You may memorize it in.
- the operation control device 40 stops the permitted function, so that the information processing device 3 When is hacked, the operation control device 40 can stop or limit the function to be permitted.
- step s64 of FIG. 21 the control unit 31 of the main device 30 completes the execution of the target software 373 and then performs the update process of step s65.
- the update process itself in step s65 is difficult to be hacked.
- the main device 30 is hacked and the control unit 31 cannot finish the execution of the target software 373.
- the update process of step s65 may not be executed, and the target software 373, the target version information 376, and the like may not be updated indefinitely.
- the version comparison of step s72 after the execution of step s77 it may be determined that the received version does not match the updated version.
- the operation control device 40 stops or limits the permitted functions. Therefore, for example, When the main device 30 is hacked so that the execution of the target software 373 being executed cannot be completed, the operation control device 40 can stop or limit the function to be permitted. Therefore, when the main device 30 is hacked, it is possible to reduce the possibility that the permitted function is sufficiently used by the hacker. Therefore, in the hacker, the motivation for hacking the information processing device 3 is reduced, and as a result, the safety of the information processing device 3 can be improved.
- FIG. 27 is a diagram showing an example of the configuration of the main device 30 of the information processing device 3 (also referred to as the information processing device 3A) in this case.
- the main device 30 further includes an input unit 385 for receiving input from the user of the information processing device 3A, and a notification unit 386 for notifying the user.
- the control unit 310 can control the input unit 385 and the notification unit 386.
- the input unit 385 includes, for example, at least one operation button.
- the user can input to the main device 30 by operating the operation buttons.
- the operation button may be a hardware button.
- the main device 30 includes a touch panel display, it may be a software button displayed on the touch panel display.
- the input unit 385 may include a microphone. The user can input to the main device 30 by inputting sound to the microphone.
- the input unit 385 may include input means for receiving user input other than the operation button and the microphone.
- the notification unit 386 includes, for example, at least one light emitting unit.
- the light emitting unit can notify the user by emitting light.
- the light emitting unit may be, for example, a light emitting diode or another light emitting means.
- the notification unit 386 may include a speaker.
- the speaker can notify the user by outputting sound.
- the notification unit 386 may include a display unit.
- the display unit can notify the user by displaying the display.
- the display unit may be a liquid crystal display, an organic EL display, or another display means.
- FIG. 28 is a flowchart showing an example of the operation of the information processing apparatus 3A.
- step s61 of FIG. 21 when the control unit 410 of the operation control device 40 determines that the server-generated signature is correct (YES in step s62), step s63 is executed as described above.
- step s91 is executed as a result of the comparison of the identification information in step s63, when the control unit 410 determines that the identification information 431 and the reception identification information match (YES in step s64).
- step s91 the notification unit 386 of the main device 30 notifies the user under the control of the control unit 310.
- the notification unit 386 notifies the user that the update software 213 having a version newer than the version of the software 373 stored in the memory 370 exists by causing the light emitting unit to emit light or the like.
- step s92 the control unit 310 determines whether or not the input unit 385 has received the update instruction of the software 373 from the user. Upon receiving the notification in step s91, the user gives an update instruction of the software 373 to the input unit 385. If YES is determined in step s92, the update process of step s65 is executed. As a result, the target software 373, the target version information 376, and the target signature 377 are updated according to the update instruction of the user.
- the operation control device 40 determines that the server generation signature from the server device 2 is correct, and the operation control device 40 itself stores the reception identification information from the server device 2.
- the update process is executed. Even in this case, in the information processing apparatus 3A, the updated version information 216 and the received identification information from the server apparatus 2 have not been tampered with by the hacker, and the updated version information 216, the received identification information, and the server generation have been generated.
- the update process can be executed when the signature has not been replaced by another information processing apparatus 3 by a hacker. Therefore, the information processing apparatus 3A can execute the update process when the information processing system 1 is not hacked. Therefore, the information processing apparatus 3A can appropriately update the software 373, the version information 376, and the signature 377 in the memory 370.
- the server device 2 communicating with the information processing device 3A does not receive the version information 376 from the information processing device 3A as shown in FIGS. 25 and 26 above, the server device 2 operates even if the operation permission condition is satisfied. It is not necessary to transmit the permission information to the information processing apparatus 3A.
- the server device 2 determines that the received version received from the information processing device 3A does not match the updated version after transmitting the update software-related data to the information processing device 3A, it is assumed that the operation permission condition is satisfied. However, it is not necessary to transmit the operation permission information to the information processing apparatus 3A. For example, when the user does not give an update instruction to the input unit 385 after the above-mentioned step s91, the server device 2 transmits the update software-related data to the information processing device 3A and then receives the update software-related data from the information processing device 3A. It may be determined that the received version does not match the updated version.
- the permission target function is stopped or restricted in the information processing apparatus 3A.
- the information processing apparatus 3A by stopping or limiting the function to be permitted, it is possible to urge a user who does not give an update instruction indefinitely to give an update instruction.
- the software 373 executes the update process in step s65 for a long time. It is possible to reduce the possibility that it will not be updated. As a result, the safety of the information processing apparatus 3A can be improved.
- the main device is stopped or restricted even after the function to be permitted is stopped or restricted.
- 30 can receive an update instruction from the user in the input unit 385 and execute the update process.
- the update process is performed.
- the permitted function may be temporarily stopped or the restriction may be temporarily released during the execution of the process.
- the operation control device 40 stops or limits the permitted function again after the update process is completed.
- the server device 2 executes the update process in response to the user's update instruction after the permitted function is stopped or restricted, and then the received version received from the information processing device 3A is the updated version. If it is determined that the information matches with, the operation permission information may be transmitted to the information processing apparatus 3A. In this case, in the information processing apparatus 3A that has received the operation permission information, the operation control device 40 sets the operation permission information in the operation permission register 450. As a result, the permission target function is stopped or the restriction is released, and the information processing apparatus 3A executes the permission target function as usual during the operation permission period.
- the operation control device 40 determines that the received version matches the updated version.
- the permission target function is stopped or restricted by the suspension or restriction of the permission target function
- the information processing apparatus 3A does not execute the update process, so that the permission target function is stopped or restricted, but when the update process is subsequently executed, The permitted functions are stopped or restricted. Therefore, even if the permission target function is stopped or restricted, the information processing apparatus 3A can execute the permission target function as usual after executing the update process.
- step s101 the information processing apparatus 3 transmits the identification information 431 stored in the operation control apparatus 40 and the update software-related data in step s101.
- the requested data request information may be transmitted to the server device 2.
- step s101 for example, the control unit 310 of the main device 30 generates data request information.
- the data request information generated by the control unit 310 and the identification information 431 are transmitted to the server device 2.
- the server device 2 when the server device 2 receives the identification information 431 and the data request information in step s111, the server device 2 executes the above-mentioned steps s76 and s77. As a result, the server device 2 transmits the update software-related data corresponding to the target software 373 according to the data request information received from the information processing device 3. When the information processing apparatus 3 transmits the data request information and the identification information 431, the information processing apparatus 3 also transmits the specific information for specifying the target software to the server apparatus 2. The server device 2 can specify the target software 373 based on the received specific information.
- the information processing device 3 When the information processing device 3 receives the update software-related data from the server device 2 (step s58 described above), the information processing device 3 executes the step s59 described above, and operates in the same manner thereafter.
- the target software 373, the target version information 376, the identification information 432, and the target signature 377 in the memory 370 are the update software 213, the update version information 216, the reception identification information, and the server-generated signature included in the update software-related data, respectively. Can be rewritten.
- the version information 376, the identification information 432 and the signature 377 in the memory 370 of the target information processing apparatus 3 are stolen from the memory 370 of another information processing apparatus 3 by a hacker, and the version information 376 and the identification information 432 are stolen. And may be replaced by signature 377.
- the identification information 432 in the memory 370 does not match the identification information 431 stored in the operation control device 40, and is determined to be NO in step s54.
- NO is determined in step s54
- the target information processing device 3 transmits the data request information to the server device 2, so that the target information processing device 3 is transmitted from the server device 2 to the server device 2. Update software-related data corresponding to the target software 373 can be received.
- the target information processing apparatus 3 stores the target software 373 in the memory 370, the target version information 376, the identification information 432, and the target signature 377 in the memory 370 based on the received update software-related data.
- the version information 376, the identification information 432, and the signature 377 stolen from the memory 370 of another information processing apparatus 3 can be rewritten with the correct information.
- FIG. 31 is a flowchart showing an example of the operation of the server device 2 in this case.
- step s81 when the server device 2 executes the above-mentioned step s81, the server device 2 transmits the instruction information to the information processing device 3 in the step s83.
- step s83 the control unit 20 generates instruction information, and causes the communication unit 22 to communicate the generated instruction information.
- FIG. 32 is a flowchart showing an example of the operation of the information processing device 3 that has received the instruction information from the server device 2.
- the operation control device 40 stops or limits the permission target machine according to the received instruction information in step s122.
- the server device 2 determines that the version information 376 is not received from the information processing device 3
- the operation control device 40 stops or limits the permitted function. .. Therefore, when the target information processing device 3 is hacked, the operation control device 40 can stop or limit the permitted target function.
- the server device 2 determines that the received version received from the target information processing device 3 does not match the updated version after transmitting the update software-related data to the information processing device 3, the server device 2 outputs the instruction information to the information processing device. It may be transmitted to 3. As a result, if the server device 2 determines that the received version does not match the updated version after transmitting the update software-related data, the operation control device 40 stops or limits the permitted function. Even in this case, when the information processing device 3 is hacked, the operation control device 40 can stop or limit the permitted function.
- the operation control device 40 of the information processing device 3 may include an RTC (real-time clock) 590.
- the RTC590 operates based on a clock signal output by an oscillator such as MEMS included in the clock generation unit 480, for example.
- the RTC590 can output the current time tm.
- the operable period may be represented by a time zone from one time to another, instead of the number of clocks. In this case, the operation control device 40 measures the operable period based on the time tm output from the RTC 590.
- the control unit 410 of the operation control device 40 is the time tm output from the RTC 590. Indicates 10:00 am on May 1, 2020, it is determined that the operable period has started. Then, when the time tm indicates 10:00 am on May 2, 2020, the control unit 410 of the operation control device 40 determines that the operable period has ended.
- the non-volatile memory 370 for storing the software 373 and the like is provided in the main device 30, but may be provided in the operation control device 40 as shown in FIG. 34.
- the non-volatile memory 370 is connected to the bus 550 in the same manner as the control unit 410 and the like, for example.
- the control unit 410 can read data from the non-volatile memory 370 through the bus 550.
- the data read from the non-volatile memory 370 is input to the control unit 310 through the communication unit 470 and the first communication unit 340 of the main unit 30. ..
- the control unit 310 connected to the bus 550 may read data directly from the non-volatile memory 370.
- the non-volatile memory 370 may be mounted on the same chip as at least a part of the other configurations included in the motion control device 40, or may be mounted on a chip different from at least a part of the other configurations included in the motion control device 40. May be done.
- the control unit 410 may prevent the data in the non-volatile memory 370 from being read from the outside after the operable period has elapsed.
- the control unit 410 may prevent the data in the non-volatile memory 370 from being read from the outside by forcibly negating a control signal such as a selection signal input to the non-volatile memory 370, for example.
- the control unit 410 may prevent the data in the non-volatile memory 370 from being read from the outside by forcibly fixing the level of each data line connected to the non-volatile memory 370.
- the operation control device 40 prevents the data in the non-volatile memory 370 from being read from the outside after the operable period has elapsed, so that the control unit 310 of the main device 30 has elapsed after the operable period has elapsed. Operation stops. As a result, after the lapse of the operable period, the operation of the main device 30 is stopped as in the case where the supply of the clock signal to the clock input port 301 is stopped. That is, the function to be set is stopped.
- the information processing apparatus 3 executes the above-mentioned steps s51 to s54. If the information processing apparatus 3 determines YES in step s54, the information processing apparatus 3 executes the above-mentioned step s57. As a result, the identification information 431 stored in the operation control device 40 is transmitted to the server device 2. At this time, specific information for specifying the target software is also transmitted to the server device 2.
- the server device 2 when the server device 2 receives the identification information 431 from the information processing device 3 in step s75, the server device 2 executes the above-mentioned steps s76 and s77.
- the update software-related data including the update software 213 corresponding to the target software 373, the corresponding signature 214, the server-generated signature, and the corresponding update version information 216 and identification information 431 is information from the server device 2. It is transmitted to the processing device 3.
- step s131 the control unit 410 of the operation control device 40 has the update version indicated by the update version information 216 included in the update software-related data received by the information processing device 3, and the target version information 376 in the memory 370 of the main device 30. Compare with the version indicated by (also called the storage version).
- step s131 when the control unit 410 determines that the stored version is older than the updated version (YES in step s132), the control unit 410 executes the above-mentioned step s65. As a result, the target software 373, the target version information 376, and the target signature 377 in the memory 370 are updated. On the other hand, as a result of the version comparison in step s131, when the control unit 410 determines that the stored version is not older than the updated version (NO in step s132), the software update process ends without executing the update process. ..
- the software is updated. It is possible to simplify the processing performed by the server device 2 with respect to the above.
- a third process consisting of steps s59 and s60, a fourth process consisting of steps s61 and s62, a fifth process consisting of steps s63 and s64, and step s131.
- the execution order of the sixth process may be changed.
- the sixth process may be executed immediately after the step s58, or the sixth process may be executed immediately after the third process.
- the software 373 is automatically updated, but the software 373 may be updated according to the instruction of the user.
- the configuration of the main device 30 of the information processing device 3 (also referred to as the information processing device 3B) has, for example, the same configuration as that shown in FIG. 27 above.
- FIG. 38 is a flowchart showing an example of the operation of the information processing apparatus 3B.
- the operation control device 40 determines that the identification information 431 and the received identification information match (YES in step s64)
- the above-mentioned step s131 Is executed.
- the version comparison in step s131 when the control unit 410 determines that the stored version is older than the updated version (YES in step s132), the above-mentioned steps s91 and s92 are executed.
- step s92 determines whether the input unit 385 receives an update instruction from the user. If YES is determined in step s92, that is, when the input unit 385 receives an update instruction from the user, the update process of step s65 is executed. As a result, the target software 373, the target version information 376, and the target signature 377 are updated according to the update instruction of the user.
- the operation control device 40 of the information processing device 3 determines NO in step s52
- the clock signal to the clock input port 301 of the main device 30 is input even during the operable period. You may stop or limit the function to be set by yourself, such as by stopping the supply. Further, when the motion control device 40 determines NO in step s54, the motion control device 40 may stop or limit the function to be set by itself even during the operable period. Further, when the motion control device 40 determines NO in step s60, the motion control device 40 may stop or limit the function to be set by itself even during the operable period.
- the motion control device 40 may stop or limit the function to be set by itself even during the operable period. Further, when the motion control device 40 determines NO in step s64, the motion control device 40 may stop or limit the function to be set by itself even during the operable period.
- the update software-related data generated by the server device 2 includes the identification information 431, but the identification information 431 may not be included.
- the information processing apparatus 3 does not execute steps s63 and s64 shown in FIGS. 21 and 28 described above.
- the information processing apparatus 3 generates a hash value from the update version information 216 included in the update software-related data and the identification information 431 in the storage unit 430 of the operation control device 40. Then, the information processing apparatus 3 compares the value obtained by decoding the server-generated signature with the generated hash value. When the value obtained by decoding the server-generated signature and the generated hash value match, the information processing apparatus 3 determines that the server-generated signature is correct. On the other hand, when the value obtained by decoding the server-generated signature and the generated hash value do not match, the information processing apparatus 3 determines that the server-generated signature is incorrect.
- the information processing apparatus 3 determines that the server-generated signature is correct, the update software 213 from the server apparatus 2, the update version information 216, and the information processing apparatus 3.
- the server-generated signature updates the software 373, the version information 376, and the signature 377 in the memory 370, respectively. Therefore, in the target information processing device 3, the updated version information 216 from the server device 2 has not been tampered with by the hacker, and the updated version information 216 and the server-generated signature are replaced with those of another information processing device 3 by the hacker.
- the update process can be executed when it is not. Therefore, the information processing device 3 can execute the update process when the information processing system 1 is not hacked. Therefore, the information processing apparatus 3 can appropriately update the software 373, the version information 376, and the signature 377 in the memory 370.
- the information processing apparatus 3 does not have to execute steps s53 and s54 shown in FIGS. 20 and 23 described above.
- the memory 370 of the main device 30 does not have to store the identification information 432.
- the information processing apparatus 3 has a hash value from the target version information 376 in the memory 370 and the identification information 431 in the storage unit 430 of the operation control device 40. To generate. Then, the information processing apparatus 3 compares the value obtained by decoding the target signature 377 with the generated hash value. The information processing apparatus 3 determines that the target signature 377 is correct if the value obtained by decoding the target signature 377 and the generated hash value match. On the other hand, the information processing apparatus 3 determines that the target signature 377 is not correct unless the value obtained by decoding the target signature 377 and the generated hash value match.
- the information processing apparatus 3 when the information processing apparatus 3 does not execute steps s53 and s54, the information processing apparatus 3 transmits the version information 376 in the memory 370 to the server apparatus 2 when it is determined that the signature 377 is correct.
- the hash value generated from the version information 376 in the memory 370 of the target information processing device 3 and the identification information 431 in the storage unit 430 of the target information processing device 3, and the target information processing device 3 The signature 377 in the memory 370 of the above does not match the value obtained by decoding. That is, it is determined that the signature 377 is incorrect. As a result, step s55 or step s155 is not executed. Therefore, the possibility that version information 376 indicating an erroneous version is transmitted to the server device 2 is reduced.
- the functions of the elements disclosed herein are general purpose processors, dedicated processors, integrated circuits, ASICs ("": are configured to perform the disclosed elements or programmed to perform the disclosed functions. It may be implemented using an application-specific integrated circuit ”), a conventional circuit configuration and / or a circuit configuration including a combination thereof or a processing circuit configuration.
- a processor is considered as a processing circuit configuration or circuit configuration when it contains transistors and other circuit configurations.
- a circuit configuration, unit or means is hardware that performs the listed functions, or hardware that is programmed to perform such functions.
- the hardware may be any hardware disclosed herein or any other known hardware programmed to perform the listed functions or configured to perform such functions.
- the circuit configuration, means or unit is the combination of hardware and software, the software and / or the processor used to configure the hardware. be.
- Information processing system 2 Server device 3,3A, 3B Information processing device 40 Operation control device 213 Update software 216 Update version information 360 Non-volatile memory 373 Software 376 Version information 377 Signature 385 Input unit 430 Storage unit 431,432 Identification information
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
動作制御装置が、第1記憶部内の第1署名が正しいと判定した場合、情報処理装置が第1バージョン情報を送信する。サーバ装置は、第1バージョン情報が示すバージョンが第2バージョン情報が示すバージョンよりも古いと判定したとき、所定データを送信する。動作制御装置が、所定データに含まれる第2署名が正しいと判定した場合、情報処理装置が、所定データに含まれる第2ソフトウェア、第2バージョン情報及び第2署名で、第1記憶部内の第1ソフトウェア、第1バージョン情報及び第1署名をそれぞれ更新する。
Description
本開示は、情報処理装置に関する。
特許文献1には、ユーザ端末に関する技術が開示されている。
ユーザ端末などの情報処理装置の安全性を向上させることは望ましい。
そこで、本開示は上述の点に鑑みて成されたものであり、情報処理装置の安全性を向上させることが可能な技術を提供することを目的とする。
情報処理システムの一態様は、所定機能を有する情報処理装置と、前記情報処理装置と通信ネットワークを通じて通信するサーバ装置とを備え、前記情報処理装置は、前記所定機能を制御する動作制御装置を有し、前記動作制御装置は、前記動作制御装置の識別情報を記憶し、前記情報処理装置は、前記動作制御装置が記憶する前記識別情報を前記サーバ装置に送信し、前記情報処理装置は、第1ソフトウェアと、前記第1ソフトウェアのバージョンを示す第1バージョン情報と、前記第1バージョン情報及び前記識別情報の両方に対応する第1署名とを記憶する第1記憶部を有し、前記サーバ装置は、第2ソフトウェアと、前記第2ソフトウェアのバージョンを示す第2バージョン情報とを記憶する第2記憶部を有し、前記サーバ装置は、前記第2バージョン情報及び前記情報処理装置から受信した前記識別情報の両方に対応する第2署名を生成し、前記情報処理装置では、前記動作制御装置が、前記第1記憶部内の前記第1署名を検証し、前記動作制御装置が、前記第1署名が正しいと判定した場合、前記情報処理装置が、前記第1バージョン情報を前記サーバ装置に送信するという第1処理が実行され、前記サーバ装置は、前記第1バージョン情報を受信した場合、前記第1バージョン情報と前記第2バージョン情報とを比較し、前記第1バージョン情報が示すバージョンが前記第2バージョン情報が示すバージョンよりも古いと判定したとき、前記第2ソフトウェア、前記第2バージョン情報及び前記第2署名を含む所定データを前記情報処理装置に送信し、前記情報処理装置が前記所定データを受信した場合、前記情報処理装置では、前記動作制御装置が、前記所定データに含まれる前記第2署名を検証し、前記動作制御装置が、前記第2署名が正しいと判定した場合、前記情報処理装置が、前記所定データに含まれる前記第2ソフトウェア、前記第2バージョン情報及び前記第2署名で、前記第1記憶部内の前記第1ソフトウェア、前記第1バージョン情報及び前記第1署名をそれぞれ更新する更新処理を行うという第2処理が実行され、前記サーバ装置が前記第1バージョン情報を受信しないと判定した場合、前記動作制御装置によって前記所定機能が停止あるいは制限され、前記情報処理装置は、前記第1処理を繰り返し実行し、前記サーバ装置が、前記所定データを送信した後に前記情報処理装置から受信した前記第1バージョン情報が示すバージョンが、前記第2バージョン情報が示すバージョンと一致しないと判定した場合、前記動作制御装置によって前記所定機能が停止あるいは制限される。
また、情報処理システムの一態様は、所定機能を有する情報処理装置と、前記情報処理装置と通信ネットワークを通じて通信するサーバ装置とを備え、前記情報処理装置は、前記所定機能を制御する動作制御装置を有し、前記動作制御装置は、前記動作制御装置の識別情報を記憶し、前記情報処理装置は、前記動作制御装置が記憶する前記識別情報を前記サーバ装置に送信し、前記情報処理装置は、第1ソフトウェアと、前記第1ソフトウェアのバージョンを示す第1バージョン情報と、前記第1バージョン情報及び前記識別情報の両方に対応する第1署名とを記憶する第1記憶部を有し、前記サーバ装置は、第2ソフトウェアと、前記第2ソフトウェアのバージョンを示す第2バージョン情報とを記憶する第2記憶部を有し、前記サーバ装置は、前記第2バージョン情報及び前記情報処理装置から受信した前記識別情報の両方に対応する第2署名を生成し、前記サーバ装置は、前記第2ソフトウェア、前記第2バージョン情報及び前記第2署名を含む所定データを前記情報処理装置に送信し、前記動作制御装置は、前記第1記憶部内の前記第1署名を検証し、前記情報処理装置が受信した前記所定データに含まれる前記第2署名を検証し、前記第1バージョン情報と前記所定データに含まれる前記第2バージョン情報とを比較し、前記動作制御装置が、前記第1及び第2署名のそれぞれが正しいと判定し、かつ前記第1バージョン情報が示すバージョンが前記第2バージョン情報が示すバージョンよりも古いと判定した場合、前記情報処理装置は、前記所定データに含まれる前記第2ソフトウェア、前記第2バージョン情報及び前記第2署名で、前記第1記憶部内の前記第1ソフトウェア、前記第1バージョン情報及び前記第1署名をそれぞれ更新する更新処理を行う。
また、サーバ装置の一態様は、上記の情報処理システムが備えるサーバ装置である。
また、情報処理装置の一態様は、上記の情報処理システムが備える情報処理装置である。
また、動作制御装置の一態様は、上記の情報処理システムが備える動作制御装置である。
情報処理装置の安全性を向上することができる。
<システム概要>
図1は情報処理システム1の構成の一例を示す図である。図1に示されるように、情報処理システム1は、サーバ装置2と、当該サーバ装置2と通信ネットワーク4を通じて接続された複数の情報処理装置3とを備えている。各情報処理装置3は、通信ネットワーク4を通じて、サーバ装置2と通信可能である。
図1は情報処理システム1の構成の一例を示す図である。図1に示されるように、情報処理システム1は、サーバ装置2と、当該サーバ装置2と通信ネットワーク4を通じて接続された複数の情報処理装置3とを備えている。各情報処理装置3は、通信ネットワーク4を通じて、サーバ装置2と通信可能である。
通信ネットワーク4には、無線ネットワーク及び有線ネットワークの少なくとも一方が含まれる。本例では、通信ネットワーク4には、例えば、基地局等を含む、携帯電話システムのネットワーク、無線LAN(Local Area Network)及びインターネット等が含まれる。
サーバ装置2は、一種のコンピュータ装置であって、例えばクラウドサーバと呼ばれる。サーバ装置2は、各情報処理装置3を制御することが可能である。
各情報処理装置3は、例えば、センサを有し、当該センサが検出した情報をサーバ装置2に送信することが可能である。情報処理装置3は、例えば、家、オフィス、工場あるいは屋外などで使用されるIoT(Internet of Things)端末である。IoT端末を含む情報処理システムはIoTシステムと呼ばれることがある。
サーバ装置2は、情報処理装置3から受信した情報に基づいて各種処理を行うことが可能である。サーバ装置2は、例えば、情報処理装置3から受信した情報を解析し、その解析結果に基づいて、当該情報処理装置3を制御したり、あるいは他の情報処理装置3を制御したりすることが可能である。またサーバ装置2は、その解析結果を表示してもよい。またサーバ装置2は、複数の情報処理装置3が送信する情報を収集し、収集した情報を表示してもよい。なお情報処理システム1は、複数のサーバ装置2を備えてもよい。またサーバ装置2は、情報処理装置3以外の装置と通信可能であってもよい。
<サーバ装置の構成例>
図2はサーバ装置2の構成の一例を示す図である。図2に示されるように、サーバ装置2は、例えば、制御部20と、記憶部21と、通信ネットワーク4に接続された通信部22と、表示部23とを備える。制御部20、記憶部21、通信部22及び表示部23は、例えば、バス25で互いに電気的に接続されている。
図2はサーバ装置2の構成の一例を示す図である。図2に示されるように、サーバ装置2は、例えば、制御部20と、記憶部21と、通信ネットワーク4に接続された通信部22と、表示部23とを備える。制御部20、記憶部21、通信部22及び表示部23は、例えば、バス25で互いに電気的に接続されている。
表示部23は、例えば、液晶ディスプレイあるいは有機ELディスプレイである。表示部23は、制御部20によって制御されることによって、文字、記号、図形などの各種情報を表示することが可能である。
記憶部21は、ROM(Read Only Memory)及びRAM(Random Access Memory)などの、コンピュータが読み取り可能な非一時的な記録媒体を含む。記憶部21には、サーバ装置2を制御するためのプログラム(言い換えればソフトウェア)が記憶されている。記憶部21は記憶回路とも言える。
制御部20は、サーバ装置2の他の構成要素を制御することによって、サーバ装置2の動作を統括的に管理することが可能である。制御部20は制御回路とも言える。制御部20は、例えば、CPU(Central Processing Unit)を備える。制御部20の各種機能は、当該制御部20が備えるCPUが記憶部21内のプログラムを実行することによって実現される。
通信部22は、有線あるいは無線で通信ネットワーク4に接続されている。通信部22は通信回路とも言える。通信部22は、通信ネットワーク4を通じて、当該通信ネットワーク4に接続された、情報処理装置3等の装置と通信することが可能である。通信部22は、通信ネットワーク4から受け取った情報を制御部20に入力することが可能である。また通信部22は、制御部20から受け取った情報を通信ネットワーク4に出力することが可能である。
なお、サーバ装置2の構成は図2の例には限られない。例えば、制御部20は、複数のCPUを備えてもよい。また制御部20は、少なくとも一つのDSP(Digital Signal Processor)を備えてもよい。また、制御部20の全ての機能あるいは制御部20の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
また記憶部21は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部21は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)などを備えてもよい。
またサーバ装置2は、制御部20、記憶部21、通信部22及び表示部23以外の構成を備えてもよい。サーバ装置2は、例えば、タッチパネル等の、ユーザがサーバ装置2に情報を入力するための入力装置(入力部ともいう)を備えてもよい。また、サーバ装置2は表示部23を備えなくてもよい。
<情報処理装置の構成例>
図3は情報処理装置3の構成の一例を示す図である。本例では、情報処理装置3の主な機能は、例えば、センサで情報を検出し、検出した情報に対して所定の処理を行うことである。情報処理装置3の主な機能は、これに限られず、他の機能であってもよい。
図3は情報処理装置3の構成の一例を示す図である。本例では、情報処理装置3の主な機能は、例えば、センサで情報を検出し、検出した情報に対して所定の処理を行うことである。情報処理装置3の主な機能は、これに限られず、他の機能であってもよい。
情報処理装置3は、例えば、物理的なハッキングが行われにくい場所に配置される。物理的なハッキングとは、例えば、情報処理装置3を分解して改造したり、情報処理装置3内の信号線を直接観測したりしてハッキングする方法である。物理的なハッキングが行われにくい場所としては、例えば、家、オフィス及び学校など、原則特定の人しか出入りできない場所が考えられる。
図3に示されるように、情報処理装置3は、当該情報処理装置3の主な機能を実行する主装置30と、当該主装置30を制御することによって、当該情報処理装置3の安全性を向上させる動作制御装置40と、ユーザが操作するリセットスイッチ50とを備える。
主装置30は、例えば、樹脂等から成るパッケージ300と、当該パッケージ300に収容された集積回路とを備える。主装置30が備える集積回路は、複数のダイに形成されてもよいし、一つのダイに形成されてもよい。ダイは、ウェハチップとも呼ばれる。
動作制御装置40は、例えば、樹脂等から成るパッケージ400と、当該パッケージ400に収納された集積回路とを備える。動作制御装置40が備える集積回路は、複数のダイに形成されてもよいし、一つのダイに形成されてもよい。
主装置30と動作制御装置40とは、例えば同じ基板60に実装されている。主装置30及び動作制御装置40は、基板60に設けられた配線によって互いに電気的に接続されている。
主装置30と動作制御装置40とは、互いに通信することによって、情報のやり取りを互いに行うことができる。主装置30と動作制御装置40とは、例えば、SPI(Serial Peripheral Interface)あるいはI2C(Inter-Integrated Circuit)に基づいて互いに通信することが可能である。なお、主装置30と動作制御装置40との間の通信方式はこれに限られない。また本例では、主装置30と動作制御装置40とは、互いに有線通信を行っているが、互いに無線通信を行ってもよい。
主装置30は、センサを有し、当該センサが検出する情報を通信ネットワーク4を通じてサーバ装置2に送信する。また、主装置30は、動作制御装置40が出力するクロック信号に基づいて動作を行う。動作制御装置40は、後述するように、クロック信号を主装置30に対して供給しないことによって、主装置30の動作を停止することができる。動作制御装置40は、主装置30が有する機能を制御することができるとも言える。
リセットスイッチ50は、ユーザが操作できるように、情報処理装置3のケースから露出するように、当該情報処理装置3に設けられる。リセットスイッチ50は、ユーザによって操作されると(例えば押されると)、操作されたことを示す操作信号SSを動作制御装置40に出力する。動作制御装置40は、リセットスイッチ50からの操作信号SS等に基づいて、当該動作制御装置40が備える各種回路に入力されるリセット信号をアサートすることができる。これにより、動作制御装置40の動作が初期化される。また動作制御装置40は、主装置30に入力されるリセット信号をアサートすることが可能である。これにより、主装置30の動作が初期化される。
<主装置の構成例>
図4は主装置30の構成の一例を示す図である。図4に示されるように、主装置30は、例えば、制御部310と、処理回路320と、少なくとも一つのセンサを備えるセンサ装置330と、第1通信部340と、第2通信部350と、不揮発性メモリ360及び370と、揮発性メモリ380とを備える。主装置30が備えるこれらの構成要素は、パッケージ300に収納されている。制御部310、処理回路320、センサ装置330、第1通信部340、第2通信部350、不揮発性メモリ360、不揮発性メモリ370及び揮発性メモリ380は、例えば、バス390で互いに電気的に接続されている。主装置30が備える、制御部310等を含む集積回路は、情報処理装置3の主な機能を実現する主回路を構成する。
図4は主装置30の構成の一例を示す図である。図4に示されるように、主装置30は、例えば、制御部310と、処理回路320と、少なくとも一つのセンサを備えるセンサ装置330と、第1通信部340と、第2通信部350と、不揮発性メモリ360及び370と、揮発性メモリ380とを備える。主装置30が備えるこれらの構成要素は、パッケージ300に収納されている。制御部310、処理回路320、センサ装置330、第1通信部340、第2通信部350、不揮発性メモリ360、不揮発性メモリ370及び揮発性メモリ380は、例えば、バス390で互いに電気的に接続されている。主装置30が備える、制御部310等を含む集積回路は、情報処理装置3の主な機能を実現する主回路を構成する。
不揮発性メモリ360は、例えば、記憶するデータを書き換えることができないROMである。不揮発性メモリ360は、マスクROMであってもよいし、OTPROM(One Time Programmable ROM)であってもよい。不揮発性メモリ360は、例えば、主装置30の起動時に実行されるブートプログラム361を記憶する。
不揮発性メモリ370(メモリ370ともいう)は、例えば、記憶するデータを書き換えることが可能なROMである。不揮発性メモリ370は、例えばフラッシュメモリ(フラッシュROMともいう)である。不揮発性メモリ370の記憶容量は、例えば、不揮発性メモリ360の記憶容量よりも大きい。不揮発性メモリ370は、フラッシュメモリ以外であってもよい。
図5は、メモリ370が記憶するデータの一例を示す図である。図5に示されるように、メモリ370は、例えば、一種のソフトウェアであるOS(Operating System)371と、OS371に対応する署名372とを互いに対応付けて記憶する。署名372は、電子署名あるいはデジタル署名とも呼ばれる。署名372はOS371から生成される。例えば、署名372は、OS371から生成されたハッシュ値が秘密鍵で暗号化されたものである。情報処理装置3は、署名372を検証することによって、OS371が改ざんされているか否かを検出することができる。
メモリ370は、OS371以外の少なくとも一つのソフトウェア373を記憶する。ソフトウェア373は、例えば、OS371上で実行されるアプリケーションソフトウェアである。メモリ370は、ソフトウェア373と、それに対応する署名374とを互いに対応付けて記憶する。メモリ370が複数のソフトウェア373を記憶する場合には、複数のソフトウェア373にそれぞれ対応する複数の署名374がメモリ370に記憶される。署名374は、それに対応するソフトウェア373から生成される。例えば、署名374は、それに対応するソフトウェア373から生成されたハッシュ値が秘密鍵で暗号化されたものである。情報処理装置3は、署名374を検証することによって、ソフトウェア373が改ざんされているか否かを検出することができる。
メモリ370は、ソフトウェア373のバージョンを示すバージョン情報376を記憶する。また、メモリ370は、動作制御装置40を識別するための識別情報を記憶する。この識別情報は、ユニークID(identifier)とも呼ばれ、各情報処理装置3の動作制御装置40に固有の情報である。
ここで、本例では、動作制御装置40の識別情報が、メモリ370だけではなく、動作制御装置40にも記憶されている。以後、メモリ370に記憶される識別情報を識別情報432と呼び、動作制御装置40に記憶される識別情報を識別情報431と呼ぶ。
メモリ370は、バージョン情報376及び識別情報432の両方に対応する署名377を記憶する。署名377は、バージョン情報376及び識別情報432から生成される。例えば、署名377は、バージョン情報376及び識別情報432から生成されたハッシュ値が秘密鍵で暗号化されたものである。署名377は、バージョン情報376と識別情報432とが単に連結されたデータから生成されたハッシュ値が秘密鍵で暗号化されたものであってもよい。あるいは、署名377は、バージョン情報376と識別情報432との排他的論理和を算出することによって得られたデータから生成されたハッシュ値が秘密鍵で暗号化されたものであってもよい。メモリ370が複数のソフトウェア373を記憶する場合には、複数のソフトウェア373のバージョンをそれぞれ示す複数のバージョン情報376がメモリ370に記憶される。そして、複数のバージョン情報376のそれぞれについて、当該バージョン情報376及び識別情報432の両方に対応する署名377がメモリ370に記憶される。情報処理装置3は、署名377を検証することによって、バージョン情報376及び識別情報432の少なくとも一方が改ざんされているか否かを検出することができる。
揮発性メモリ380は、ワークメモリとも呼ばれる。揮発性メモリ380は、例えば、SRAM(Static RAM)及びDRAM(Dynamic RAM)の少なくとも一方を備える。不揮発性メモリ360、不揮発性メモリ370及び揮発性メモリ380のそれぞれは、コンピュータが読み取り可能な非一時的な記録媒体と言える。また、不揮発性メモリ360、不揮発性メモリ370及び揮発性メモリ380のそれぞれは、記憶部あるいは記録回路とも言える。
制御部310は、主装置30の他の構成要素を制御することによって、主装置30の動作を統括的に管理することが可能である。制御部310は制御回路とも言える。制御部310は、例えばCPUを備えている。制御部310の各種機能は、当該制御部310が備えるCPUが、不揮発性メモリ360及び370内のプログラム(言い換えればソフトウェア)を実行することによって実現される。制御部310は、不揮発性メモリ370内のプログラム(言い換えればソフトウェア)を実行する場合には、まず、不揮発性メモリ370内のプログラムを、ワークメモリである揮発性メモリ380にコピーする。そして、制御部310は、揮発性メモリ380内のコピーされたプログラムを実行する。
制御部310は、例えば、不揮発性メモリ360が形成されたダイと同じダイに形成されている。言い換えれば、制御部310及び不揮発性メモリ360は、例えば、同じウェハチップに形成されている。制御部310及び不揮発性メモリ360は、不揮発性メモリ370が形成されたダイと同じダイに形成されてもよいし、別のダイに形成されてもよい。また、制御部310及び不揮発性メモリ360は、揮発性メモリ380が形成されたダイと同じダイに形成されてもよいし、別のダイに形成されてもよい。
センサ装置330は、例えば、温度センサ、加速度センサ、地磁気センサ、ジャイロセンサ、圧力センサ及びイメージセンサの少なくとも一つを備える。センサ装置330が備えるセンサは、これに限られず、センサ装置330は他のセンサを備えてもよい。センサ装置330で検出された情報(例えば、温度及び加速度など)はメモリ370に記憶される。以後、センサ装置330で検出された情報を「センサ情報」と呼ぶことがある。
第1通信部340は、動作制御装置40と、例えばSPIあるいはI2Cに基づいて通信することが可能である。第1通信部340は通信回路とも言える。第1通信部340は、動作制御装置40から受け取った情報を制御部310に入力することが可能である。また第1通信部340は、制御部310から受け取った情報を動作制御装置40に出力することが可能である。
第2通信部350は、有線あるいは無線で通信ネットワーク4に接続されている。第2通信部350は通信回路とも言える。第2通信部350は、通信ネットワーク4を通じて、当該通信ネットワーク4に接続された、サーバ装置2等の装置と通信することが可能である。第2通信部350は、通信ネットワーク4から受け取った情報を制御部310に入力することが可能である。また第2通信部350は、制御部310から受け取った情報を通信ネットワーク4に出力することが可能である。
処理回路320は、制御部310に制御されることによって、メモリ370内のセンサ情報に対して所定の処理を行うことが可能である。処理回路320は、メモリ370からセンサ情報を読み出して、読み出したセンサ情報に対して、例えば、フィルタ処理等を含む加工処理を行う。処理回路320は、加工処理後のセンサ情報を、処理済みセンサ情報としてメモリ370に記憶する。本例では、情報処理装置3の主な機能は、センサ装置330で情報を検出し、検出した情報を処理回路320で処理することである。処理回路320は、例えば、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されている。なお、処理回路320が実行する処理はこの限りではない。
主装置30は、動作制御装置40から出力されるクロック信号CLKm及びリセット信号RSがそれぞれ入力されるクロック入力口301及びリセット入力口302を備える。本例では、クロック入力口301及びリセット入力口302のそれぞれは、パッケージ300に設けられた金属端子となっている。したがって、本例では、クロック入力口301及びリセット入力口302は、クロック入力端子301及びリセット入力端子302とも言える。主装置30は、クロック入力口301に入力されるクロック信号CLKmに基づいて動作を行う。また主装置30は、リセット入力口302に入力されるリセット信号RSがアサートされると、その動作を初期化して再起動する。
なお、主装置30の構成は図3~5の例に限られない。例えば、主装置30が備える複数の回路が、複数のパッケージに分けられて収納されてもよい。また制御部310は、複数のCPUを備えてもよい。また制御部310は、少なくとも一つのDSPを備えてもよい。また、制御部310の全ての機能あるいは制御部310の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。また主装置30は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。主装置30は、例えば、小型のハードディスクドライブ及びSSDなどを備えてもよい。また、主装置30は、OS371及び署名372を記憶する不揮発性メモリと、ソフトウェア373、署名374、バージョン情報376、識別情報432及び署名377を記憶する不揮発性メモリとを別々に備えてもよい。また、主装置30は、不揮発性メモリ360を備えていなくても良い。この場合、不揮発性メモリ370がブートプログラム361を記憶してもよい。
以上のような構成を有する主装置30が起動する際には(再起動も含む)、まず、制御部310が不揮発性メモリ360内のブートプログラム361を実行する。ブートプログラム361には、OS371に対応する署名372を検証する命令、OS371を実行する命令などが記述されている。ブートプログラム361を実行中の制御部310は、不揮発性メモリ370内のOS371及び署名372を揮発性メモリ380にコピーする。そして、制御部310は、揮発性メモリ380内の署名372を検証する。制御部310は、署名372が正しければ、揮発性メモリ380内のOS371を実行する。一方で、制御部310は、署名372が正しくなければ、動作を停止する。その結果、主装置30の動作が停止する。
制御部310は、OS371の実行を開始すると、実行中のOS371上でソフトウェア373を実行する。制御部310は、ソフトウェア373に対応する署名374を検証し、署名374が正しければソフトウェア373を実行する。一方で、制御部310は、署名374が正しくなければソフトウェア373を実行しない。
このように、本例では、ブートプログラム361を記憶する不揮発性メモリ360と、ブートプログラム361を実行する制御部310とが同一のウェハチップに形成されている。そして、ブートプログラム361の実行に基づいて実行されるOS371には署名372がつけられている。これにより、OS371がハッキングされる可能性が低減し、OS371の安全性が担保されている。
以上のように、本例では、主装置30は、情報処理装置3の主な機能を実行する。また、主装置30は、サーバ装置2と通信することが可能であることから、サーバ装置2と通信する機能も実行する。以後、情報処理装置3がサーバ装置2と通信する機能を「サーバ通信機能」と呼ぶことがある。主装置30は、情報処理装置3が有する主な機能とサーバ通信機能を実現する回路を備えると言える。
<動作制御装置の構成例>
図6は動作制御装置40の構成の一例を示す図である。図6に示されるように、動作制御装置40は、例えば、制御部410と、タイマー420と、記憶部430と、動作許可レジスタ450と、動作制御部460と、通信部470と、クロック生成部480と、リセット信号生成部490とを備える。動作制御装置40が備えるこれらの構成要素は、パッケージ400に収納されている。制御部410、タイマー420、記憶部430、動作許可レジスタ450及び通信部470は、例えば、バス550で互いに電気的に接続されている。
図6は動作制御装置40の構成の一例を示す図である。図6に示されるように、動作制御装置40は、例えば、制御部410と、タイマー420と、記憶部430と、動作許可レジスタ450と、動作制御部460と、通信部470と、クロック生成部480と、リセット信号生成部490とを備える。動作制御装置40が備えるこれらの構成要素は、パッケージ400に収納されている。制御部410、タイマー420、記憶部430、動作許可レジスタ450及び通信部470は、例えば、バス550で互いに電気的に接続されている。
クロック生成部480は、情報処理装置3の動作の基準となるクロック信号CLKを生成する。クロック生成部480はクロック生成回路とも言える。クロック信号CLKは、動作制御装置40が備える、制御部410及び通信部470等を含む内部回路に供給される。動作制御装置40は、クロック信号CLKに基づいて動作する。クロック生成部480は、水晶発振器を備えてもよいし、水晶を利用しない発振器を備えてもよい。水晶を利用しない発振器としては、例えば、MEMS(Micro Electro Mechanical Systems)を利用した発振器がある。
リセット信号生成部490は、リセットスイッチ50から操作信号SSが入力されると、リセット信号RSを一定時間アサートする。リセット信号生成部490はリセット信号生成回路とも言える。また、リセット信号生成部490は、情報処理装置3の電源がオフからオンに切り替われると、リセット信号RSを一定時間アサートする。リセット信号RSは、動作制御装置40が備える、制御部410及び通信部470等を含む内部回路に入力される。これにより、リセットスイッチ50が操作されたとき、動作制御装置40の動作が初期化されて動作制御装置40が再起動する。また、情報処理装置3の電源がオフからオンに切り替わったときに、動作制御装置40の動作が初期化されて動作制御装置40が再起動する。リセット信号生成部490で生成されたリセット信号RSは、主装置30のリセット入力口302にも入力される。
記憶部430は、ROM及びRAMなどの、コンピュータが読み取り可能な非一時的な記録媒体を含む。記憶部430には、動作制御装置40を制御するためのプログラムが記憶されている。また、記憶部430には、動作制御装置40を識別するための識別情報431が記憶されている。識別情報431は、原則、主装置30のメモリ370内の識別情報432と同じである。ただし、情報処理システム1に対するハッキングによって、識別情報431が識別情報432と異なる可能性がある。この点については後述する。
制御部410は、動作制御装置40の他の構成要素を制御することによって、動作制御装置40の動作を統括的に管理することが可能である。制御部410は制御回路であるとも言える。制御部410は、例えばCPUを備えている。制御部410の各種機能は、当該制御部410が備えるCPUが記憶部430内のプログラムを実行することによって実現される。
本例では、制御部410は、情報処理装置3からサーバ装置2に送信される情報を暗号化することができる。また、制御部410は、サーバ装置2から情報処理装置3が受信する、暗号化された情報を復号化することができる。記憶部430には、暗号化及び復号化に必要な鍵が記憶されている。制御部410は、情報処理装置3からサーバ装置2に送信される情報を記憶部430内の鍵を用いて暗号化する。また制御部410は、サーバ装置2から情報処理装置3が受信する、暗号化された情報を、記憶部430内の鍵を用いて復号化する。
タイマー420は、制御部410によって設定された所定時間を計測することが可能な回路である。通信部470は、主装置30と、例えばSPIあるいはI2Cに基づいて通信することが可能である。通信部470は通信回路とも言える。通信部470は、主装置30から受け取った情報を制御部410に入力することが可能である。また通信部470は、制御部410から受け取った情報を主装置30に出力することが可能である。
動作許可レジスタ450は、情報処理装置3がサーバ装置2から受信する動作許可情報500を記憶することが可能である。動作許可レジスタ450は、記憶部の一種であると言える。言い換えれば、動作許可レジスタ450は、記憶回路の一種であると言える。ここで、動作許可情報500は、情報処理装置3の所定機能の動作許可を示す情報である。情報処理装置3は、動作許可情報に応じて、所定機能を動作させる。以後、当該所定機能を「許可対象機能」と呼ぶことがある。
許可対象機能には、例えば、情報処理装置3の主な機能とサーバ通信機能とが含まれる。情報処理装置3では、主装置30がサーバ装置2からの動作許可情報500を受信し、受信した動作許可情報500を動作制御装置40に送信する。動作制御装置40は、通信部470において、主装置30からの動作許可情報500を受信する。制御部410は、通信部470で受信された動作許可情報500を動作許可レジスタ450に記憶する。
動作制御部460は、動作許可レジスタ450内の動作許可情報500に基づいて、許可対象機能を制御することが可能である。動作制御部460は動作制御回路とも言える。本例では、動作制御部460は、動作許可情報500に基づいて主装置30の動作を制御することによって、許可対象機能を制御する。動作制御部460は、例えば、クロック信号の主装置30に対する供給を制御することによって、主装置30を動作させるか否かを制御することが可能である。
動作制御部460は、例えば、カウントダウンタイマー461及びクロックゲート462を備えている。カウントダウンタイマー461は、所定時間を計測することが可能な回路である。クロックゲート462は、カウントダウンタイマー461が所定時間を計測している間だけ、入力されるクロック信号CLKを、クロック信号CLKmとして、主装置30のクロック入力口301に出力することが可能な回路である。カウントダウンタイマー461及びクロックゲート462には、クロック信号CLKが入力される。
ここで、動作許可情報500には、例えば、許可対象機能が動作することが可能な動作可能期間を示す期間情報が含まれる。本例では、期間情報は、許可対象機能を実行する主装置30が動作することが可能な動作可能期間を示すとも言える。期間情報が示す動作可能期間は、例えば、数時間から数十時間に設定される。なお、期間情報が示す動作可能期間はこれに限られない。以後、単に動作可能期間と言えば、期間情報が示す動作可能期間(言い換えれば、動作許可情報500が示す動作可能期間)を意味する。動作可能期間をT1で表すと、T1は数時間から数十時間となる。
動作許可情報500に含まれる期間情報は、例えば、主装置30がクロック信号CLKに基づいて動作することが可能な入力クロック数で表される。つまり、動作可能期間T1は、クロック信号CLKの入力クロック数で表される。
ここで、クロックとは、クロック信号CLKの立ち上がり(言い換えれば立ち上がりエッジ)あるいは立ち下り(言い換えれば立ち下がりエッジ)を意味する。そして、入力クロックとは、クロック信号CLKについての入力される立ち上がり(言い換えれば立ち上がりエッジ)あるいは入力される立ち下がり(言い換えれば立ち下がりエッジ)を意味する。したがって、入力クロック数は、クロック信号CLKについての入力される立ち上がりの数(言い換えれば立ち上がりエッジの数)あるいは入力される立ち下がりの数(言い換えれば立ち下がりエッジの数)を意味する。以後、主装置30がクロック信号CLKに基づいて動作することが可能な入力クロック数を「動作可能クロック数」と呼ぶことがある。また、動作可能クロック数をNで表すことがある。
動作許可レジスタ450に動作許可情報500が書き込まれると、動作許可レジスタ450内の動作許可情報500に含まれる動作可能クロック数Nが、自動的にカウントダウンタイマー461のカウント値に設定される。カウントダウンタイマー461は、カウント値が設定されるとカウント動作を開始する。これにより、カウントダウンタイマー461は、クロック信号CLKが立ち上がるたびにあるいは立ち下がるたびに、カウント値を1つだけカウントダウンする。言い換えれば、カウントダウンタイマー461は、クロックが入力されるたびに、カウント値を1つだけカウントダウンする。そして、カウントダウンタイマー461は、カウント値が零になると、カウント動作を停止する。これにより、カウントダウンタイマー461は、入力されるクロックを、動作可能クロック数N、カウントすることができる。言い換えれば、カウントダウンタイマー461は、動作許可情報500が示す動作可能期間を計測することができる。
カウントダウンタイマー461は、クロックゲート462の動作を制御するためのイネーブル信号ENSを、クロックゲート462のイネーブル入力口ENに入力する。カウントダウンタイマー461は、カウント動作を行っていないときには、イネーブル信号ENSをLowレベルに設定し、カウント動作を行っているときには、イネーブル信号ENSをHighレベルに設定する。クロックゲート462は、イネーブル入力口ENに入力されるイネーブル信号ENSがHighレベルのときだけ、クロック入力口CLKinに入力されるクロック信号CLKをクロック信号CLKmとして出力する。クロックゲート462から出力されるクロック信号CLKmは主装置30のクロック入力口301に入力される。これにより、カウントダウンタイマー461が、動作可能クロック数、入力クロックをカウントすると、クロック信号CLKmのクロックが動作可能クロック数だけ主装置30に入力される。つまり、動作許可情報500が示す動作可能期間だけクロック信号CLKmが主装置30に入力される。よって、主装置30は、動作許可情報500が示す動作可能期間、動作することが可能となる。言い換えれば、主装置30は、クロック信号CLKmが入力されている間、許可対象機能を実行することが可能となる。本例では、主装置30は、クロック信号CLKmが入力されている間、センサ装置330で情報を検出し、検出した情報を処理回路320で処理することが可能となる。また、主装置30は、クロック信号CLKmが入力されている間、サーバ通信機能を実行することが可能である。
このように、情報処理装置3は、サーバ装置2から送信される動作許可情報500に含まれる期間情報に応じて、許可対象機能を動作させる。よって、サーバ装置2は、動作許可情報500を情報処理装置3に送信することによって、情報処理装置3の許可対象機能を制御することができると言える。
動作制御装置40の制御部410の動作モードには、例えば、通常モードと、動作制御装置40の安全性を高めるためのセキュアモードとが含まれる。制御部410の動作モードは、基本的には通常モードに設定される。そして、制御部410の動作モードは、動作制御装置40の安全性を高めたいときに例外的にセキュアモードに設定される。
制御部410は、例えば、動作モードがセキュアモードに設定されている場合にだけ、記憶部430にアクセスすることができる。つまり、制御部410が記憶部430にアクセスする場合には、動作モードはセキュアモードに設定されている。したがって、制御部410は、動作モードがセキュアモードに設定されている場合だけしか、記憶部430内のプログラムを実行することができない。また、制御部410は、動作モードがセキュアモードに設定されている場合だけしか、記憶部430内の鍵を用いて、情報を暗号化したり、暗号化された情報を復号化したりすることはできない。また、制御部410は、動作モードがセキュアモードに設定されている場合だけしか、記憶部430内の識別情報431を読み出すことができない。このような記憶部430は、セキュアメモリとも呼ばれる。
本例では、制御部410は、動作制御装置40のリセットが解除されて動作制御装置40が起動すると、つまり、リセット信号RSがネゲートされて動作制御装置40が起動すると、まず動作モードをセキュアモードに設定する。そして、制御部410は、記憶部430内のプログラムを実行して、動作制御装置40の初期設定を行う。その後、制御部410は、動作モードを通常モードに設定する。以後、制御部410は、必要なときにだけ動作モードをセキュアモードに設定する。
また制御部410は、動作モードがセキュアモードに設定されている場合にだけ、動作許可レジスタ450に情報を書き込むことが可能である。つまり、制御部410が、動作許可レジスタ450に情報を書き込む場合には、動作モードはセキュアモードに設定されている。また制御部410は、動作モードがセキュアモードに設定されている場合にだけ、タイマー420が計測する所定期間を当該タイマー420に設定することができる。通信部470が主装置30と通信する場合には、動作モードは通常モードに設定される。なお、通信部470が主装置30と通信する場合、動作モードがセキュアモードに設定されてもよい。
このように、制御部410の動作モードには、通常モードとセキュアモードが含まれることから、通常モードで動作する動作制御装置40が仮にハッキングされたとしても、セキュアモードで動作する動作制御装置40を保護することができる。よって、記憶部430及び動作許可レジスタ450内の重要な情報が書き換えられる可能性を低減することができる。さらに、記憶部430内の重要な情報が外部に漏れる可能性を低減することができる。その結果、動作制御装置40の安全性を向上することができる。
なお、動作制御装置40の構成は図3及び6の例には限られない。例えば、動作制御装置40が備える複数の回路が、複数のパッケージに分けられて収納されてもよい。また制御部410は、複数のCPUを備えてもよい。また制御部410は、少なくとも一つのDSPを備えてもよい。また、制御部410の全ての機能あるいは制御部410の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。また記憶部430は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部430は、例えば、小型のハードディスクドライブ及びSSDなどを備えてもよい。また記憶部430内の情報が暗号化されていてもよい。また動作制御装置40は、リセット信号生成部490を備えなくてもよい。この場合、リセット信号生成部490は、例えば、動作制御装置40及び主装置30とは異なるパッケージに収納されて、基板60上に実装されてもよい。
<サーバ装置が動作許可情報を送信する際の情報処理システムの動作例>
本例では、サーバ装置2は、情報処理装置3に関する所定の条件の成立に応じて、動作許可情報を情報処理装置3に送信する。この所定の条件を「動作許可条件」と呼ぶことがある。
本例では、サーバ装置2は、情報処理装置3に関する所定の条件の成立に応じて、動作許可情報を情報処理装置3に送信する。この所定の条件を「動作許可条件」と呼ぶことがある。
動作許可条件としては、例えば、サーバ装置2と情報処理装置3との間の相互認証の成功が考えられる。本例では、サーバ装置2は、情報処理装置3との間の相互認証が成功したと判断すると、それを条件として動作許可情報を情報処理装置3に送信する。
図7は、情報処理装置3の起動時の情報処理システム1の動作の一例を示すフローチャートである。本例では、情報処理装置3の起動時に、情報処理装置3とサーバ装置2との間で相互認証が行われる。情報処理装置3とサーバ装置2との間で相互認証では、例えば、公開鍵暗号方式が用いられる。
本例では、情報処理装置3のリセットが解除されて情報処理装置3が起動すると、動作制御装置40の動作許可レジスタ450に対して初期値M(>0)が設定される。初期値Mは、例えば、主装置30が数秒間動作することが可能な値に設定される。言い換えれば、初期値Mは、主装置30にクロック信号CLKmが数秒間入力されるような値に設定される。動作許可レジスタ450に初期値Mが設定されると、カウントダウンタイマー461は、初期値Mをカウント値に設定してカウント動作を行う。これにより、動作許可レジスタ450の値が書き換えられなければ、主装置30には、クロックが初期値Mと同じ数だけ入力される。言い換えれば、主装置30には、数秒間、クロック信号CLKmが供給される。よって、情報処理装置3のリセットが解除された後、主装置30は動作することができる。以後、初期値Mに応じた、主装置30が動作することが可能な期間を「初期動作可能期間」と呼ぶことがある。情報処理装置3は、初期動作可能期間において、サーバ装置2との間で相互認証を行う。初期動作可能期間をT0で表すと、T0は数秒程度となり、T0<T1となる。つまり、初期動作可能期間T0は、動作許可情報500が示す動作可能期間T1よりも短い。なお、T0≧T1であってもよい。
情報処理装置3が起動すると、図7に示されるように、ステップs1において、情報処理装置3とサーバ装置2との間で相互認証が行われる。その後、ステップs2において、サーバ装置2の制御部20は、相互認証に成功したと判断すると、ステップs3において、動作許可情報を生成し、生成した動作許可情報を暗号化する。制御部20は、記憶部21内の鍵を用いて、動作許可情報を暗号化する。次にステップs4において、制御部20は、通信部22に、暗号化した動作許可情報(暗号化動作許可情報ともいう)を情報処理装置3に送信させる。なお、サーバ装置2は、相互認証に失敗した場合には、動作許可情報を送信しない。
情報処理装置3は、暗号化動作許可情報を受信すると、ステップs5において、受信した暗号化動作許可情報を復号化する。ステップs5では、主装置30の制御部310が、第2通信部350で受信された暗号化動作許可情報を第1通信部340に送信させる。これにより、暗号化動作許可情報が動作制御装置40に入力される。動作制御装置40では、制御部410は、通信部470で受信された暗号化動作許可情報を復号化する。具体的には、制御部20は、記憶部430内の鍵を用いて暗号化動作許可情報を復号化する。これにより、平文の動作化許可情報が得られる。
次にステップs6において、制御部410は、平文の動作許可情報を、動作許可レジスタ450に書き込む。これにより、カウントダウンタイマー461のカウント値が、動作許可レジスタ450内の動作許可情報が示す動作可能クロック数Nに設定される。以降、主装置30は、動作許可レジスタ450内の動作許可情報が示す動作可能期間(例えば数時間から数十時間)、動作することが可能となる。
以上のステップs1~s6から成る処理は、情報処理装置3の初期動作可能期間において実行される。したがって、相互認証が成功してステップs6が実行される場合には、主装置30は、ステップs6の後も継続して動作することが可能となる。動作許可情報が動作許可レジスタ450に書き込まれた後においては、情報処理装置3は許可対象機能を実行する。
一方で、相互認証が失敗した場合には、動作許可レジスタ450に動作許可情報が設定されないことから、初期動作可能期間の経過後、主装置30に対するクロック信号CLKの供給が停止する。これにより、主装置30の動作が停止する。相互認証が失敗した場合には、情報処理装置3は許可対象機能を実行しない。
なおサーバ装置2は、情報処理装置3に対して、動作許可情報を暗号化せずに送信してもよい。
<主な機能を実行する場合の情報処理装置の動作例>
図8は、主な機能を実行する場合の情報処理装置の動作の一例を示すフローチャートである。図8に示されるように、ステップs11において、情報処理装置3は、センサ情報を取得する。ステップs11では、主装置30の制御部310が、センサ装置330を動作させて、センサ装置330に情報を検出させる。そして、制御部310は、センサ装置330で検出されたセンサ情報をメモリ370に記憶する。これにより、センサ情報が取得される。
図8は、主な機能を実行する場合の情報処理装置の動作の一例を示すフローチャートである。図8に示されるように、ステップs11において、情報処理装置3は、センサ情報を取得する。ステップs11では、主装置30の制御部310が、センサ装置330を動作させて、センサ装置330に情報を検出させる。そして、制御部310は、センサ装置330で検出されたセンサ情報をメモリ370に記憶する。これにより、センサ情報が取得される。
次にステップs12において、情報処理装置3は、取得したセンサ情報に対して所定の処理を行う。ステップs12では、制御部310は、処理回路320を動作させる。処理回路320は、メモリ370からセンサ情報を取得し、取得したセンサ情報に対して所定の処理を行う。そして、処理回路320は、処理後のセンサ情報を、処理済みセンサ情報としてメモリ370に記憶する。
次にステップs13において、情報処理装置3は、処理済みセンサ情報を暗号化する。ステップs13では、制御部310は、メモリ370から処理済みセンサ情報を読み出して第1通信部340に入力する。第1通信部340は、入力された処理済みセンサ情報を動作制御装置40に送信する。動作制御装置40では、制御部410は、通信部470で受信された処理済みセンサ情報を、記憶部430内の鍵を用いて暗号化する。以後、暗号化された処理済みセンサ情報を「暗号化処理済みセンサ情報」と呼ぶことがある。
次にステップs14において、情報処理装置3は、ステップs13で得られた暗号化処理済みセンサ情報をサーバ装置2に送信する。ステップs14では、主装置30は、動作制御装置40から暗号化処理済みセンサ情報を受け取り、受け取った暗号化処理済みセンサ情報をサーバ装置2に送信する。
以上のステップs11~s14から成る処理を、情報処理装置3は、動作可能期間において、つまり、主装置30にクロック信号CLKが供給されているときに、繰り返し実行する。以後、図8に示される、センサ情報の取得及び送信を「情報取得送信処理」と呼ぶことがある。
サーバ装置2では、通信部22が暗号化処理済みセンサ情報を受信すると、制御部20が、受信された暗号化処理済みセンサ情報を記憶部21内の鍵を用いて復号化する。これにより、平文の処理済みセンサ情報が得られる。そして、制御部20は、平文の処理済みセンサ情報を記憶部21に記憶する。その後、制御部20は、記憶部21内の処理済みセンサ情報を用いた処理を行う。例えば、制御部20は、処理済みセンサ情報を解析し、その解析結果を表示部23に表示させたり、複数の情報処理装置3からの処理済みセンサ情報をグラフ化して表示部23に表示させたりする。
なお情報処理装置3は、サーバ装置2に対して、処理済みセンサ情報を暗号化せずに送信してもよい。
<動作許可情報の繰り返し送信>
上述の説明から理解できるように、情報処理装置3は、サーバ装置2から動作許可情報を受け取った後、当該動作許可情報が示す動作可能期間において、新たに動作許可情報を受信しない場合には、当該動作可能期間の経過後に、許可対象機能を停止することになる。したがって、この場合には、情報処理装置3は、許可対象機能を長い期間実行することが難しくなる。
上述の説明から理解できるように、情報処理装置3は、サーバ装置2から動作許可情報を受け取った後、当該動作許可情報が示す動作可能期間において、新たに動作許可情報を受信しない場合には、当該動作可能期間の経過後に、許可対象機能を停止することになる。したがって、この場合には、情報処理装置3は、許可対象機能を長い期間実行することが難しくなる。
そこで、本例では、情報処理装置3は、サーバ装置2から受信した動作許可情報が示す動作可能期間において、サーバ装置2との間で、動作許可情報をサーバ装置2から受信するための処理を行う。以後、当該処理を「動作許可用処理」と呼ぶことがある。情報処理装置3は、サーバ装置2から受信した動作許可情報が示す動作可能期間において、サーバ装置2との間で、動作許可情報を再度サーバ装置2が送信するための処理を行うとも言える。動作許可用処理は、情報処理装置3がサーバ装置2に対して許可対象機能の動作許可を要求する処理であるとも言える。
サーバ装置2は、動作許可用処理に応じた動作許可条件の成立に応じて、動作許可情報を情報処理装置3に送信する。これにより、情報処理装置3は、動作可能期間が経過するまでに、新たな動作許可情報を受信することが可能となる。よって、情報処理装置3は、長い期間、主装置30を動作させることが可能となる。つまり、情報処理装置3は、長い期間、許可対象機能を実行することが可能となる。
動作許可用処理としては、例えば、動作許可情報の送信を要求するための要求信号を情報処理装置3がサーバ装置2に送信する処理が考えられる。また、動作許可用処理に応じた動作許可条件とは、例えば、情報処理装置3が送信する要求信号についてのサーバ装置2の受信が考えられる。本例では、情報処理装置3は、動作可能期間において、要求信号を送信する。そして、サーバ装置2は、要求信号の受信に応じて、動作許可情報を情報処理装置3に送信する。
なお、相互認証が成功したときには、サーバ装置2は動作許可情報を送信することから、情報処理装置3がサーバ装置2と行う相互認証は、動作許可用処理であると言える。
また、情報処理装置3のリセットが解除した後にサーバ装置2が最初に動作許可情報を送信するための動作許可条件は、上記の例では、相互認証の成功となっている。一方で、情報処理装置3のリセットが解除した後にサーバ装置2が二回目以降に動作許可情報を送信するための動作許可条件は、サーバ装置2が要求信号を受信することとなっている。
このように、本例では、サーバ装置2の動作許可情報の最初の送信についての動作許可条件と、サーバ装置2の動作許可情報の二回目以降の送信についての動作許可条件とは、互いに異なっている。
図9は、情報処理装置3が要求信号を送信する様子を示す図である。本例では、情報処理装置3は、上述の図7のステップs6の後、主装置30が動作しているときには、送信間隔T2で要求信号REQを繰り返し送信する。送信間隔T2は、動作可能期間T1以下に設定される。言い換えれば、動作許可用処理の実行間隔は、動作可能期間T1以下に設定される。送信間隔T2は、例えば1時間に設定される。なお、送信間隔T2は一定でなくてもよい。
図10は、サーバ装置2及び情報処理装置3の動作の一例を示すフローチャートである。図10に示されるように、上述のステップs6の後、ステップs21において、情報処理装置3は、動作可能期間T1内に要求信号を送信する。このとき、情報処理装置3は、例えば、暗号化した要求信号を送信する。ステップs21では、動作制御装置40の制御部410は、要求信号を生成し、生成した要求信号を記憶部430内の鍵で暗号化する。そして、制御部410は、暗号化された要求信号を通信部470に送信させる。これにより、要求信号が主装置30に入力される。主装置30は、第1通信部340で受信された要求信号をサーバ装置2に送信する。
サーバ装置2は、要求信号を受信すると、つまり、動作許可条件が成立すると、ステップs22を実行する。制御部20は、通信部22で受信された、暗号化された要求信号を記憶部21内の鍵で復号化する。そして、制御部20は、ステップs22において、上述のステップs3と同様にして、暗号化動作許可情報を生成する。その後、ステップs23において、サーバ装置2は、暗号化動作許可情報を情報処理装置3に送信する。
情報処理装置3は、上述のステップs5と同様にして、ステップs24において、受信した暗号化動作許可情報を復号化する。そして、情報処理装置3は、ステップs6と同様にして、ステップs25において、平文の動作許可情報を、動作制御装置40の動作許可レジスタ450に設定する。これにより、動作許可レジスタ450に再度動作許可情報が設定され、あらたな動作可能期間T1が設定される。つまり、動作可能期間T1が更新される。
ステップs25の後、情報処理装置3は、ステップs21の実行から送信間隔T2後に、要求信号(詳細には暗号化された要求信号)を再度サーバ装置2に送信する(ステップs26)。サーバ装置2は、要求信号を受信すると、ステップs27において、ステップs3と同様にして、暗号化動作許可情報を生成する。そして、ステップs28において、サーバ装置2は、暗号化動作許可情報を情報処理装置3に送信する。
情報処理装置3は、ステップs5と同様にして、ステップs29において、受信した暗号化動作許可情報を復号化する。そして、情報処理装置3は、ステップs6と同様にして、ステップs30おいて、平文の動作許可情報を、動作制御装置40の動作許可レジスタ450に設定する。これにより、動作許可レジスタ450に再度動作許可情報が設定され、動作可能期間T1がさらに更新される。
ステップs30の後、情報処理装置3は、ステップs26の実行から送信間隔T2後に要求信号を再度サーバ装置2に送信する(ステップs31)。以後、情報処理装置3及びサーバ装置2は同様に動作する。なお情報処理装置3は、要求信号を暗号化せずにサーバ装置2に送信してもよい。
このように、情報処理装置3が、動作可能期間T1以下の間隔で要求信号をサーバ装置2に送信することによって、情報処理装置3は、動作可能期間T1が経過する前に、新たな動作許可情報を受信することが可能となる。言い換えれば、情報処理装置3が、動作可能期間T1以下の間隔で、動作許可用処理を実行することによって、情報処理装置3は、動作可能期間T1が経過する前に、新たな動作許可情報を受信することが可能となる。よって、情報処理装置3は、動作可能期間T1が経過する前に、動作可能期間T1を更新することができる。これにより、情報処理装置3は、相互認証が成功した後、主装置30を継続して動作させることができる。よって、情報処理装置3は、長い期間、許可対象機能を実行することが可能となる。
図11は、動作可能期間T1が更新される様子の一例を示す図である。図11に示されるように、本例では、動作可能期間T1内に動作許可情報が動作許可レジスタ450に設定されて動作可能期間T1が更新される処理が繰り返されることによって、主装置30が継続して動作することが可能となる。
また、送信間隔T2が、動作可能期間T1の半分未満に設定される場合には、情報処理装置3とサーバ装置2との間の通信が一時的に適切に行われなかった場合であっても、情報処理装置3が、動作可能期間T1が経過する前に、動作可能期間T1を更新できる可能性を向上することができる。以下にこの点について説明する。
例えば、上述の図10のステップs25で設定される動作可能期間T1を「動作可能期間T1t」と呼ぶ。また、ステップs26及びs31で送信される要求信号REQを、それぞれ要求信号REQ1及びREQ2と呼ぶ。また、情報処理装置3が、要求信号REQ2の次に送信する要求信号REQを要求信号REQ3と呼ぶ。
情報処理装置3が送信した要求信号REQ1が、通信品質の一時的な悪化等の理由で、サーバ装置2に届かなかった場合、ステップs27~s30が実行されない。したがって、情報処理装置3は、要求信号REQ1の送信に応じた動作可能期間の更新を実行することができない。また、情報処理装置3が送信した要求信号REQ1を受信したサーバ装置2が送信する動作許可情報が、通信品質の一時的な悪化等の理由で、情報処理装置3に届かなかった場合、ステップs29及びs30が実行されない。したがって、情報処理装置3は、要求信号REQ1の送信に応じた動作可能期間の更新を実行することができない。
このように、情報処理装置3は、送信した要求信号REQ1に応じた動作許可情報を受信できない場合には、要求信号REQ1の送信に応じた動作可能期間の更新を実行することができない。このような場合、送信間隔T2が、動作可能期間T1の半分未満に設定される場合には、図12に示されるように、情報処理装置3は、要求信号REQ1を送信する動作可能期間T1tにおいて、次の要求信号REQ2を送信することができる。つまり、情報処理装置3は、送信した要求信号に応じた動作許可情報を受信できない場合であって、当該要求信号を送信した動作可能期間と同じ期間において、再度要求信号を送信することができる。これにより、情報処理装置3は、動作可能期間T1tにおいて、動作許可情報を受信できる可能性が向上する。つまり、情報処理装置3が、動作可能期間が経過する前に、動作可能期間を更新できる可能性を向上することができる。
また、情報処理装置3は、通信品質の一時的な悪化等の理由で、送信した要求信号REQ2に応じた動作許可情報を受信できない場合であっても、送信間隔T2によっては、図12に示されるように、情報処理装置3は、動作可能期間T1tにおいて、次の要求信号REQ3を送信できることがある。この場合には、情報処理装置3は、動作可能期間T1tにおいて、要求信号REQ3に応じた動作許可情報を受信できる可能性がある。よって、情報処理装置3は、要求信号REQ1及びREQ2に応じた動作許可情報を受信できない場合であっても、動作可能期間T1tにおいて、動作許可情報を受信できる可能性が向上する。これにより、情報処理装置3が、動作可能期間が経過する前に、動作可能期間を更新できる可能性を向上することができる。
このように、情報処理装置3が、動作可能期間において送信した要求信号に応じた動作許可情報を受信しないときに、当該動作可能期間と同じ期間において要求信号を再度送信することができるように、要求信号を繰り返し送信することによって、情報処理装置3が、動作可能期間が経過する前に、動作可能期間を更新できる可能性を向上することができる。言い換えれば、情報処理装置3が、動作可能期間において実行した動作許可用処理に応じた動作許可情報を受信しないときに、当該動作可能期間と同じ期間において動作許可用処理を再度実行することができるように、動作許可用処理を繰り返し実行することによって、情報処理装置3が、動作可能期間が経過する前に、動作可能期間を更新できる可能性を向上することができる。
なお上記の例では、サーバ装置2の動作許可情報の最初の送信についての動作許可条件と、サーバ装置2の動作許可情報の二回目以降の送信についての動作許可条件とは、互いに異なっていたが、両者は同じであってもよい。例えば、サーバ装置2の動作許可情報の最初の送信についての動作許可条件は、サーバ装置2が要求信号REQを受信することであってもよい。この場合、情報処理装置3のリセット解除後においては、相互認証が実行されずに、情報処理装置3は要求信号REQをサーバ装置2に送信する。サーバ装置2は、要求信号REQを受信すると、上述のステップs3及びs4を実行して、暗号化動作許可情報を情報処理装置3に送信する。情報処理装置3は、暗号化動作許可情報を受信すると、上述のステップs5及びs6を実行して、平文の動作許可情報を動作許可レジスタ450に書き込む。これにより、情報処理装置3に動作可能期間が初めて設定される。
また、サーバ装置2の動作許可情報の二回目以降の送信についての動作許可条件は、相互認証の成功であってもよい。この場合、上述のステップs6の後、サーバ装置2と情報処理装置3との間の相互認証が行われる。その後、サーバ装置2は、相互認証に成功したと判断すると、上述のステップs2及びs3を実行して、暗号化動作許可情報を情報処理装置3に送信する。情報処理装置3は、暗号化動作許可情報を受信すると、上述のステップs24及びs25を実行して、平文の動作許可情報を動作許可レジスタ450に書き込む。これにより、動作可能期間が更新される。
なお、サーバ装置2の動作許可情報の二回目以降の送信においては、相互認証の成功という動作許可条件と、サーバ装置2の要求信号の受信という動作許可条件とが混在してもよい。
上記の例では、制御部410の動作モードには、通常モード及びセキュアモードが含まれているが、制御部410は常にセキュアモードで動作してもよい。この場合には、制御部410について説明した上記の動作はすべてセキュアモードで実行される。
以上のように、本例では、情報処理装置3は、サーバ装置2から受信する動作許可情報に応じて、許可対象機能を動作させる。したがって、情報処理装置3がハッキングされてサーバ装置2から動作許可情報を受信できない場合には、情報処理装置3は許可対象機能を停止することができる。よって、情報処理装置3の許可対象機能がハッカーによって利用される可能性を低減することができる。その結果、情報処理装置3の安全性が向上する。
例えば、通信ネットワーク4に接続された主装置30がハッキングされた結果、DoS(Denial of Service attack)攻撃のように、情報処理装置3が、本来の通信相手のサーバ装置2とは異なる通信装置と頻繁に通信する場合を考える。この場合、情報処理装置3の本来の通信相手であるサーバ装置2は、情報処理装置3から信号を受信することができないことから、動作許可条件が成立しない。したがって、サーバ装置2は、動作許可情報を送信しない。これにより、情報処理装置3の主装置30の動作が停止する。その結果、情報処理装置3の主な機能及びサーバ通信機能がハッカーによって利用される可能性を低減することができる。さらに、情報処理装置3のサーバ通信機能が停止することによって、ハッキングされた情報処理装置3が外部に悪影響を与える可能性を低減することができる。
他の例として、制御部410の動作モードに、通常モード及びセキュアモードが含まれる場合に、主装置30と通信することが可能な通常モードの動作制御装置40がハッキングされた結果、動作制御装置40の通信部470が主装置30と通信できない場合を考える。この場合、サーバ装置2は、情報処理装置3から、動作許可条件の成立に必要な信号(例えば、要求信号あるいは相互認証で使用される乱数など)を受信することができないことから、動作許可情報を送信しない。これにより、情報処理装置3の主装置30の動作が停止し、その結果、許可対象機能がハッカーによって利用される可能性を低減することができる。
また本例では、主装置30、言い換えれば、情報処理装置3の許可対象機能を実現する回路と、動作制御装置40とは、互いに異なるパッケージに収納されている。したがって、例えば、主装置30として機能する既存の機器に対して、後から動作制御装置40を接続することによって、安全性の高い情報処理装置3を簡単に実現することができる。
上記の例では、動作制御装置40は、動作可能期間の経過後、許可対象機能を停止していたが、許可対象機能を制限してもよい。この場合、動作制御装置40は、例えば、動作可能期間の経過後においても、主装置30のクロック入力口301にクロック信号を入力する。そして、動作制御装置40は、動作可能期間においてクロック入力口301に入力されるクロック信号の周波数よりも、動作可能期間の経過後にクロック入力口301に入力されるクロック信号の周波数を分周器等を用いて小さくする。これにより、動作可能期間の経過後においては、主装置30の動作速度が低減し、許可対象機能が動作可能期間内よりも制限される。
<主装置の動作の復帰方法の一例>
主装置30に対するクロック信号CLKの供給が停止して、主装置30の動作が停止した場合には、ユーザは、例えば、リセットスイッチ50を操作することによって、情報処理装置3に主装置30の動作を復帰させることができる。
主装置30に対するクロック信号CLKの供給が停止して、主装置30の動作が停止した場合には、ユーザは、例えば、リセットスイッチ50を操作することによって、情報処理装置3に主装置30の動作を復帰させることができる。
リセットスイッチ50が操作されると、リセット信号生成部490はリセット信号RSをアサートする。これにより、情報処理装置3の動作が初期化される。情報処理装置3の動作が初期化されると、上述のように、動作許可レジスタ450には初期値Mが設定され、主装置30は、初期動作可能期間、動作することが可能となる。情報処理装置3は、初期動作可能期間において、サーバ装置2との間で動作許可用処理(例えば、相互認証あるいは要求信号の送信)を実行する。動作許可用処理の実行の結果、動作許可条件が成立すると、動作許可レジスタ450に動作許可情報が設定される。これにより、情報処理装置3に動作可能期間が設定され、主装置30は引き続き動作することが可能となる。
なお上述のように、リセット信号生成部490は、情報処理装置3の電源がオフからオンに切り替われると、リセット信号RSをアサートする。したがって、情報処理装置3に電源スイッチが設けられている場合には、ユーザは、当該電源スイッチを操作して、情報処理装置3の電源をいったんオフにした後に再度オンにすることによって、情報処理装置3に主装置30の動作を復帰させることができる。
上記の例では、情報処理装置3は、主装置30に対するクロック信号CLKmの供給を停止することによって許可対象機能を停止していたが、他の方法を用いて許可対象機能を停止してもよい。例えば、情報処理装置3は、主装置30に入力されるリセット信号をアサートすることによって、許可対象機能を停止してもよい。図13は、この場合の情報処理装置3が備える動作制御装置40の構成の一例を示す図である。図13に示される動作制御装置40は、リセット信号RSとは別に、主装置30用のリセット信号RSmを生成する。リセット信号RSは、動作制御装置40用のリセット信号であるとも言える。
図6に示される動作制御装置40と比較して、図13に示される動作制御装置40は、クロックゲート462を備えていない。また、図13に示される動作制御装置40では、クロック生成部480が出力するクロック信号CLKが主装置30のクロック入力口301に直接入力されている。そして、図13に示される動作制御装置40には、リセット信号RSmを生成するリセット信号生成部510が設けられている。主装置30のリセット入力口302には、リセット信号RSではなく、リセット信号RSmが入力される。図13の例では、カウントダウンタイマー461とリセット信号生成部510とで、主装置30を動作させるか否かを制御する動作制御部520が構成される。
リセット信号生成部510には、リセット信号RSと、カウントダウンタイマー461から出力されるイネーブル信号ENSが入力される。リセット信号生成部510は、入力されるリセット信号RSがアサートされると、主装置30用のリセット信号RSmをアサートする。したがって、リセット信号RSがアサートされる場合には、リセット信号RSmがアサートされて、主装置30の動作が初期化される。
またリセット信号生成部510は、イネーブル信号ENSがLowレベルのとき、リセット信号RSmをアサートする。言い換えれば、リセット信号生成部510は、カウントダウンタイマー461がカウント動作を行わないとき、リセット信号RSmをアサートする。一方で、リセット信号生成部510は、イネーブル信号ENSがHighレベルのとき、リセット信号RSmをアサートしない。言い換えれば、リセット信号生成部510は、カウントダウンタイマー461がカウント動作を行っているとき、リセット信号RSmをネゲートする。図13に示される動作制御装置40の他の動作については、上述の図6に示される動作制御装置40と同様である。
このような構成を有する動作制御装置40では、情報処理装置3のリセット解除後に(言い換えれば、情報処理装置3の起動後に)、動作許可レジスタ450に初期値が設定されると、イネーブル信号ENSがLowレベルからHighレベルに変化して、主装置30のリセット入力口302に入力されるリセット信号RSmがネゲートされる。これより、主装置30は初期動作可能期間、動作することが可能となる。そして、初期動作可能期間において、動作許可条件が成立して、動作許可レジスタ450に動作許可情報500が設定されると、イネーブル信号ENSはHighレベルを維持し、主装置30は動作を継続する。その後、動作許可レジスタ450内の動作許可情報500が更新されない場合には、情報処理装置3に現在設定されている動作可能期間が経過すると、リセット入力口302に入力されるリセット信号RSmがアサートされ、その結果、主装置30の動作が停止する。
このように、情報処理装置3が、主装置30に入力されるリセット信号をアサートすることによって許可対象機能を停止する場合であっても、上記と同様に、情報処理装置3の安全性を向上することができる。
主装置30と動作制御装置40とは同一のパッケージに収納されてもよい。また、主装置30と動作制御装置40とが同一のパッケージに収納される場合には、主装置30の第2通信部350の代わりに、動作制御装置40の通信部470が通信ネットワーク4と通信してもよい。図14は、この場合の情報処理装置3の構成の一例を示す図である。図14ではリセットスイッチ50の図示を省略している。
図14の例では、動作制御装置40の通信部470が通信ネットワーク4に接続されている。通信部470は、通信ネットワーク4を通じてサーバ装置2と通信可能である。また、主装置30はバス550に接続されている。以後、バス550に接続された主装置30を「機能ブロック30」と呼ぶことがある。
機能ブロック30には、例えば、上述の制御部310、処理回路320、センサ装置330、不揮発性メモリ360、不揮発性メモリ370及び揮発性メモリ380が含まれており、これらはバス390に接続されている。機能ブロック30には、上述の第1通信部340及び第2通信部350は含まれていない。制御部310は、動作制御装置40のバス550に接続されており、バス550を通じて制御部410と情報のやり取りを行う。動作制御装置40の制御部410は、動作モードが通常モードのとき、機能ブロック30の制御部310と情報のやり取りを行う。また、機能ブロック30の制御部310は、バス550を通じて、動作制御装置40のタイマー420、記憶部430及び動作許可レジスタ450に対して直接アクセスすることができないようになっている。
このような構成を有する情報処理装置3では、当該情報処理装置3がサーバ装置2に送信する要求信号及び処理済みセンサ情報等の情報は、通信部470からサーバ装置2に送信される。また、サーバ装置2が情報処理装置3に送信する動作許可情報は、通信部470で受信される。
また、上述の図8に示される情報取得送信処理においては、制御部410は、ステップs13において、機能ブロック30の制御部310から処理済みセンサ情報をバス550を通じて受け取り、受け取った処理済みセンサ情報を暗号化する。その後、ステップs14において、制御部310は、通信部470に、暗号化処理済みセンサ情報をサーバ装置2に送信させる。
図14に示される例であっても、上記と同様に、情報処理装置3の安全性を向上することができる。例えば、サーバ装置2と通信することが可能な通常モードの動作制御装置40がハッキングされた結果、DoS攻撃のように、情報処理装置3が、本来の通信相手のサーバ装置2とは異なる通信装置と頻繁に通信する場合を考える。この場合、情報処理装置3の本来の通信相手であるサーバ装置2は、情報処理装置3から信号を受信することができないことから、動作許可条件が成立しない。その結果、サーバ装置2は、動作許可情報を送信しない。これにより、情報処理装置3の機能ブロック30の動作が停止する。その結果、情報処理装置3の許可対象機能がハッカーによって利用される可能性を低減することができる。図14の例では、機能ブロック30に対するクロック信号CLKの供給が停止すると、情報処理装置3の主な機能が停止するものの、サーバ通信機能は停止しない。よって、図14の例では、許可対象機能にはサーバ通信機能が含まれない。
なお図14の例では、情報処理装置3は、機能ブロック30に対するクロック信号CLKmの供給を停止することによって、機能ブロック30を停止しているが、上述の図13の例のように、機能ブロック30用のリセット信号RSmを生成し、リセット信号RSmをアサートすることによって、機能ブロック30を停止してもよい。
また図14の例では、許可対象機能に、サーバ通信機能が含まれていないが、サーバ通信機能を含めてもよい。例えば、通信部470に対して、クロック生成部480が生成するクロック信号CLKを直接入力するのではなく、クロックゲート462が出力するクロック信号CLKmを入力することによって、許可対象機能に、サーバ通信機能を含めることができる。
また図15に示されるように、通信部470用のリセット信号RSnを生成するリセット信号生成部540を動作制御装置40に設けることによって、許可対象機能にサーバ通信機能を含めることができる。リセット信号生成部540は、リセット信号RSがアサートされると、通信部470に入力されるリセット信号RSnをアサートする。また、リセット信号生成部540は、イネーブル信号ENSがLowレベルになると、リセット信号RSnをアサートする。これより、通信部470に入力されるリセット信号RSnは、カウントダウンタイマー461がカウント動作しているとき(イネーブル信号ENSがHighレベル)ネゲートされ、カウントダウンタイマー461がカウント動作していないとき(イネーブル信号ENSがLowレベル)アサートされる。
また図16に示されるように、イネーブル信号ENSに基づいてバス550と通信部470の接続を制御するスイッチ回路530を設けることによって、許可対象機能にサーバ通信機能を含めてもよい。図16の例では、スイッチ回路530は、イネーブル信号ENSがHighレベルのとき、通信部470をバス550に接続する。この場合、情報処理装置3は、通信部470を使用して、サーバ装置2と通信することができる。よって、サーバ通信機能が動作する。一方で、スイッチ回路530は、イネーブル信号ENSがLowレベルのとき、通信部470をバス550に接続しない。この場合、情報処理装置3は、通信部470を使用して、サーバ装置2と通信することができない。よって、サーバ通信機能が停止する。
また、情報処理装置3は、主装置30に対する電源供給を停止することによって、主装置30の動作を停止してもよい。図17はこの場合の動作制御装置40の構成の一例を主に示す図である。図17の例では、情報処理装置3は、その電源を生成するバッテリ70を備えている。動作制御装置40及び主装置30は、バッテリ70の出力電圧Vbに基づいて動作する。
図17に示される動作制御装置40は、上述の図13に示される動作制御装置40において、リセット信号生成部510の替わりに電源回路610を備え、リセット信号RSを主装置30に入力するものである。
電源回路610は、主装置30の電源電圧Vmを生成する。電源回路610は、バッテリ70の出力電圧Vbに基づいて電源電圧Vmを生成して出力することが可能である。電源回路610は例えば降圧回路であって、バッテリ70の出力電圧Vbを降圧して出力する。
主装置30には電源電圧Vmが入力される電源入力口303が設けられている。主装置30は、電源入力口303に入力される電源電圧Vmに基づいて動作を行う。図17の例では、カウントダウンタイマー461と電源回路610とで、主装置30の動作を制御する動作制御部620が構成される。
電源回路610には、カウントダウンタイマー461から出力されるイネーブル信号ENSが入力される。電源回路610は、イネーブル信号ENSがLowレベルのとき電源電圧Vmを出力しない。一方で、電源回路610は、イネーブル信号ENSがHighレベルのとき電源電圧Vmを出力する。
このような構成を有する動作制御装置40では、情報処理装置3のリセット解除後に、動作許可レジスタ450に初期値が設定されると、イネーブル信号ENSがLowレベルからHighレベルに変化して、主装置30の電源入力口303に電源電圧Vmが入力される。これより、主装置30は初期動作可能期間、動作することが可能となる。そして、初期動作可能期間において、動作許可条件が成立して、動作許可レジスタ450に動作許可情報500が設定されると、イネーブル信号ENSはHighレベルを維持し、主装置30は動作を継続する。その後、動作許可レジスタ450内の動作許可情報500が更新されない場合には、情報処理装置3に現在設定されている動作可能期間が経過すると、電源入力口303に電源電圧Vmが入力されなくなり、その結果、主装置30の動作が停止する。
なお、図14等に示されるように、主装置30と動作制御装置40とが同一のパッケージ600に収納される場合においても、図17の例と同様に、動作制御装置40は、主装置30(言い換えれば機能ブロック30)に対する電源供給を停止することによって、主装置30の動作を停止してもよい。
また、動作制御装置40は、通信部470に対する電源供給を停止することによって、通信部470の動作を停止してもよい。図18はこの場合の動作制御装置40の構成の一例を主に示す図である。
図18に示される動作制御装置40は、図15に示される動作制御装置40において、リセット信号生成部540の替わりに電源回路630を備えるものである。電源回路630は、バッテリ70の出力電圧Vbに基づいて、通信部470の電源電圧Vnを生成して出力することが可能である。電源回路630は、例えば降圧回路であって、出力電圧Vbを降圧して出力する。電源回路630には、カウントダウンタイマー461から出力されるイネーブル信号ENSが入力される。電源回路630は、イネーブル信号ENSがLowレベルのとき電源電圧Vnを出力しない。一方で、電源回路630は、イネーブル信号ENSがHighレベルのとき電源電圧Vnを出力する。
上記の例では、許可対象機能に、情報処理装置3の主な機能が含まれているが、当該主な機能が含まれなくてもよい。例えば、図15及び16の構成において、クロックゲート462を削除して、クロック生成部480が出力するクロック信号CLKを直接機能ブロック30に入力する場合には、許可対象機能に、情報処理装置3の主な機能が含まれなくなる。
<ソフトウェアの更新の一例>
本例に係る情報処理システム1では、情報処理装置3とサーバ装置2とが通信することによって、情報処理装置3に記憶されるソフトウェア373が更新される。サーバ装置2は、例えば、最新バージョンのソフトウェア373である更新ソフトウェア213を記憶部21に記憶している。情報処理装置3は、サーバ装置2から更新ソフトウェア213を受信し、受信した更新ソフトウェア213でメモリ370内のソフトウェア373を更新する。これにより、情報処理装置3内のソフトウェア373が最新バージョンに更新される。
本例に係る情報処理システム1では、情報処理装置3とサーバ装置2とが通信することによって、情報処理装置3に記憶されるソフトウェア373が更新される。サーバ装置2は、例えば、最新バージョンのソフトウェア373である更新ソフトウェア213を記憶部21に記憶している。情報処理装置3は、サーバ装置2から更新ソフトウェア213を受信し、受信した更新ソフトウェア213でメモリ370内のソフトウェア373を更新する。これにより、情報処理装置3内のソフトウェア373が最新バージョンに更新される。
図19は、サーバ装置2の記憶部21が記憶する情報の一例を示す図である。記憶部21は、情報処理装置3が記憶するソフトウェア373の最新バージョンである更新ソフトウェア213と、それに対応する署名214とを互いに対応付けて記憶している。署名214は、それに対応する更新ソフトウェア213から生成される。例えば、署名214は、それに対応する更新ソフトウェア213から生成されたハッシュ値が、サーバ装置2の秘密鍵で暗号化されたものである。署名214を検証することによって、それに対応する更新ソフトウェア213が改ざんされているか否かを検出することができる。また、記憶部21は、更新ソフトウェア213のバージョン(つまり、ソフトウェア373の最新バージョン)を示す更新バージョン情報216を記憶している。情報処理装置3が複数のソフトウェア373を記憶する場合には、複数のソフトウェア373のそれぞれについて、当該ソフトウェア373の最新バージョンの更新ソフトウェア213と、それに対応する署名214と、そのバージョンを示す更新バージョン情報216とが記憶部21に記憶されている。更新ソフトウェア213、署名214及び更新バージョン情報216は適宜更新される。
図20及び21は、情報処理装置3でのソフトウェア更新処理の一例を示すフローチャートである。図22は、情報処理装置3でのソフトウェア更新処理に応じたサーバ装置2の動作の一例を示すフローチャートである。情報処理装置3が複数のソフトウェア373を記憶する場合には、複数のソフトウェア373のそれぞれについてソフトウェア更新処理が行われる。
本例では、ソフトウェア更新処理のうち、主装置30が行う処理については、例えば、メモリ370内のOS371に記述されている。上述のように、OS371はハッキングされにくくなっている。また、動作制御装置40はハッキングされにくくなっている。したがって、本例では、情報処理装置3が行うソフトウェア更新処理(言い換えれば、ソフトウェア更新機能)はハッキングされにくくなっている。
以後、説明対象のソフトウェア373を対象ソフトウェア373と呼ぶことがある。また、対象ソフトウェア373のバージョンを示すバージョン情報376を対象バージョン情報376と呼ぶことがある。また、対象バージョン情報376に対応する署名377を対象署名377と呼ぶことがある。
また、以下では特に説明しないが、情報処理装置3がサーバ装置2に送信する情報は、上述のように動作制御装置40の制御部410によって暗号化されているものとする。また、サーバ装置2が情報処理装置3に送信する情報は、上述のように制御部20によって暗号化されているものとする。また、情報処理装置3がサーバ装置2から受信した情報は、上述のように制御部410によって復号化された後に情報処理装置3で使用されるものとする。また、サーバ装置2が情報処理装置3から受信した情報は、上述のように制御部20によって復号化された後にサーバ装置2で使用されるものとする。
図20に示されるように、ステップs51において、情報処理装置3は、メモリ370に記憶されている対象署名377を検証する。ステップs51では、主装置30の制御部310が対象署名377、バージョン情報376及び識別情報432をメモリ370から読み出す。メモリ370から読み出された対象署名377、バージョン情報376及び識別情報432は、動作制御装置40に入力される。動作制御装置40では、制御部410が対象署名377を検証する。ここで、署名377は、例えば、対象バージョン情報376及び識別情報432から生成されたハッシュ値がサーバ装置2の秘密鍵で暗号化されたものである。ステップs51において、制御部410は、対象署名377をサーバ装置2の公開鍵で復号化する。また、制御部410は、主装置30からの対象バージョン情報376及び識別情報432からハッシュ値を生成する。そして、制御部410は、対象署名377を復号化して得られた値と、生成したハッシュ値と比較する。制御部410は、対象署名377を復号化して得られた値と、生成したハッシュ値とが一致すれば、対象署名377が正しいと判定する。一方で、制御部410は、対象署名377を復号化して得られた値と、生成したハッシュ値とが一致しなければ、対象署名377が正しくないと判定する。対象署名377の復号化で使用される公開鍵は、対象署名377の作成で使用された、サーバ装置2の秘密鍵と対となる公開鍵であって、例えば記憶部430内に記憶されている。
ステップs51での署名検証の結果、制御部410が対象署名377が正しいと判定すると(ステップs52のYES)、ステップs53が実行される。言い換えれば、制御部410が、対象バージョン情報376及び識別情報432の両方が改ざんされていないと判定すると、ステップs53が実行される。一方で、制御部410が、対象署名377が正しくないと判定すると(ステップs52のNO)、対象ソフトウェア373が更新されずにソフトウェア更新処理が終了する。言い換えれば、制御部410が、対象バージョン情報376及び識別情報432の少なくとも一方が改ざんされていると判定すると、ソフトウェア更新処理が終了する。
ステップs53において、情報処理装置3は、動作制御装置40の記憶部430内の識別情報431と、主装置30のメモリ370内の識別情報432とを比較する。ステップs53では、例えば、動作制御装置40の制御部410が、ステップs51で動作制御装置40が主装置30から受信した識別情報432と、記憶部430内の識別情報431とを比較する。
ステップs53での識別情報の比較の結果、制御部410が識別情報432と識別情報431とが一致すると判定すると(ステップs54のYES)、ステップs55が実行される。一方で、制御部410が、識別情報432と識別情報431とが一致しないと判定すると(ステップs54のNO)、対象ソフトウェア373が更新されずにソフトウェア更新処理が終了する。
ステップs55において、情報処理装置3は、メモリ370内の対象バージョン情報376をサーバ装置2に送信する。ステップs55では、制御部310がメモリ370から対象バージョン情報376を読み出する。そして、読み出された対象バージョン情報376が、第2通信部350あるいは通信部470からサーバ装置2に送信される。
サーバ装置2では、図22に示されるように、ステップs71において、通信部22が対象バージョン情報376を受信すると、ステップs72が実行される。ステップs72では、制御部20が、通信部22が受信した対象バージョン情報376が示すバージョン(受信バージョンともいう)と、記憶部21に記憶されている、対象ソフトウェア373に対応する更新バージョン情報216が示すバージョン(更新バージョンともいう)とを比較する。更新バージョンは、対象ソフトウェア373の最新バージョンであると言える。
なお、情報処理装置3は、対象バージョン情報376を送信する場合には、対象ソフトウェアを特定するための特定情報もサーバ装置2に送信する。サーバ装置2は、受信した特定情報に基づいて対象ソフトウェア373を特定することできる。
ステップs72でのバージョン比較の結果、制御部20が、受信バージョンが更新バージョンより古いと判定すると(ステップs73のYES)、ステップs74が実行される。一方で、制御部20が、受信バージョンが更新バージョンより古くないと判定すると(ステップs73のNO)、サーバ装置2では、ソフトウェア更新処理に応じた処理が終了する。
ステップs74において、制御部20は、対象ソフトウェア373の更新を情報処理装置3に要求する更新要求コマンドを生成する。そして、制御部20は、更新要求コマンドを通信部22に送信させる。更新要求コマンドは更新要求情報であるとも言える。
情報処理装置3は、ステップs55の後、ステップs56においてサーバ装置2から更新要求コマンドを受信すると、ステップs57を実行する。ステップs57において、情報処理装置3は、受信した更新要求コマンドに応じて、記憶部430内の識別情報431をサーバ装置2に送信する。ステップs57では、動作制御装置40の制御部410が記憶部430から識別情報431を読み出す。読み出された識別情報431はサーバ装置2に送信される。
サーバ装置2は、ステップs74の後、ステップs75において識別情報431を情報処理装置3から受信すると、ステップs76を実行する。ステップs76では、制御部20が、対象ソフトウェア373に対応する更新ソフトウェア213のバージョンを示す更新バージョン情報216と、通信部22が受信した識別情報431との両方に対応する署名を生成する。この署名をサーバ生成署名と呼ぶことがある。
サーバ生成署名は、情報処理装置3内の署名377と同様に生成される。例えば、署名377が、バージョン情報376と識別情報432とが単に連結されたデータから生成されたハッシュ値がサーバ装置2の秘密鍵で暗号化されたものである場合、サーバ生成署名は、更新バージョン情報216と識別情報431とが単に連結されたデータから生成されたハッシュ値がサーバ装置2の秘密鍵で暗号化されたものである。また、署名377が、バージョン情報376と識別情報432との排他的論理和を算出することによって得られたデータから生成されたハッシュ値が秘密鍵で暗号化されたものであれば、サーバ生成署名は、更新バージョン情報216と識別情報431との排他的論理和を算出することによって得られたデータから生成されたハッシュ値が秘密鍵で暗号化されたものである。
ステップs76の後、ステップs77において、制御部20は、更新ソフトウェア関連データを通信部22に送信させる。更新ソフトウェア関連データには、対象ソフトウェア373に対応する更新ソフトウェア213と、それに対応する署名214と、サーバ生成署名と、それに対応する更新バージョン情報216及び識別情報431とが含まれる。
情報処理装置3は、ステップs57の後、ステップs58において、サーバ装置2から更新ソフトウェア関連データを受信すると、ステップs59を実行する。以後、サーバ装置2が受信した更新ソフトウェア関連データに含まれる識別情報431を受信識別情報と呼ぶことがある。
ステップs59において、情報処理装置3は、更新ソフトウェア関連データに含まれる署名214の検証を行う。ステップs59では、動作制御装置40の制御部410が記憶部430内の公開鍵で署名214を復号化する。また、制御部410は、更新ソフトウェア関連データに含まれる更新ソフトウェア213からハッシュ値を生成する。そして、制御部410は、署名214を復号化して得られた値と、生成したハッシュ値とを比較する。制御部410は、署名214を復号化して得られた値と、生成したハッシュ値とが一致する場合には、署名214が正しいと判定する。一方で、制御部410は、署名214を復号化して得られた値と、生成したハッシュ値とが一致しない場合には、署名214が正しくないと判定する。
ステップs59での署名検証の結果、制御部410が署名214が正しいと判定すると(ステップs60のYES)、ステップs61が実行される。言い換えれば、制御部410が、更新ソフトウェア213が改ざんされていないと判定すると、ステップs61が実行される。一方で、制御部410が、署名214が正しくないと判定すると(ステップs60のNO)、対象ソフトウェア373が更新されずにソフトウェア更新処理が終了する。言い換えれば、制御部410が、更新ソフトウェア213が改ざんされていると判定すると、ソフトウェア更新処理が終了する。
ステップs61において、情報処理装置3は、更新ソフトウェア関連データに含まれるサーバ生成署名の検証を行う。ステップs61では、動作制御装置40の制御部410が、記憶部430内の公開鍵でサーバ生成署名を復号化する。また、制御部410は、更新ソフトウェア関連データに含まれる更新バージョン情報216及び受信識別情報からハッシュ値を生成する。そして、制御部410は、サーバ生成署名を復号化して得られた値と、生成したハッシュ値とを比較する。制御部410は、サーバ生成署名を復号化して得られた値と、生成したハッシュ値とが一致する場合には、サーバ生成署名が正しいと判定する。一方で、制御部410は、サーバ生成署名を復号化して得られた値と、生成したハッシュ値とが一致しない場合には、サーバ生成署名が正しくないと判定する。
ステップs61での署名検証の結果、制御部410がサーバ生成署名が正しいと判定すると(ステップs62のYES)、ステップs63が実行される。一方で、制御部410が、サーバ生成署名が正しくないと判定すると(ステップs62のNO)、対象ソフトウェア373が更新されずにソフトウェア更新処理が終了する。
ステップs63において、情報処理装置3は、動作制御装置40の記憶部430内の識別情報431と、受信した更新ソフトウェア関連データに含まれる受信識別情報とを比較する。ステップs63では、動作制御装置40の制御部410が、記憶部430内の識別情報431と受信識別情報とを比較する。
ステップs63での識別情報の比較の結果、制御部410が識別情報431と受信識別情報とが一致すると判定すると(ステップs64のYES)、ステップs65が実行される。一方で、制御部410が、識別情報431と受信識別情報とが一致しないと判定すると(ステップs63のNO)、対象ソフトウェア373が更新されずにソフトウェア更新処理が終了する。
ステップs65において、情報処理装置3は、受信した更新ソフトウェア関連データに含まれる更新ソフトウェア213、それに対応する署名214、更新バージョン情報216及びサーバ生成署名で、メモリ370内の対象ソフトウェア373、それに対応する署名374、対象バージョン情報376及び対象署名377をそれぞれ更新する更新処理を行う。この更新処理は、例えば、主装置30の制御部310で実行される。
制御部310は、更新処理において、メモリ370内の対象ソフトウェア373を、更新ソフトウェア関連データに含まれる更新ソフトウェア213に置き換えることによって、対象ソフトウェア373を更新する。これにより、対象ソフトウェア373が最新バージョンに更新される。また、制御部310は、更新処理において、メモリ370内の、対象ソフトウェア373に対応する署名374を、更新ソフトウェア関連データに含まれる署名214に置き換えることによって、当該署名374を更新する。また、制御部310は、更新処理において、メモリ370内の対象バージョン情報376を、更新ソフトウェア関連データに含まれる更新バージョン情報216に置き換えることによって、対象バージョン情報376を更新する。そして、制御部310は、更新処理において、メモリ370内の対象署名377を、更新ソフトウェア関連データに含まれるサーバ生成署名に置き換えることによって、対象署名377を更新する。ステップs65の更新処理が終了すると、ソフトウェア更新処理が終了する。
以上の説明から理解できるように、情報処理装置3には、ソフトウェア373に対応する署名374として、サーバ装置2で生成された署名が記憶される。また、情報処理装置3には、バージョン情報376及び識別情報432(言い換えれば識別情報431)に対応する署名377として、サーバ装置2で生成された署名が記憶される。
情報処理装置3は、以上のようなソフトウェア更新処理を、動作可能期間において実行する。情報処理装置3は、動作可能期間において、ソフトウェア更新処理のステップs51~s55までのバージョン通知処理を、例えば一定間隔ごとに複数回実行してもよい。
なお、情報処理装置3は、要求信号をサーバ装置2に送信する場合にバージョン通知処理(ステップs51~s55)を実行し、要求信号とともにバージョン情報376をサーバ装置2に送信してもよい。また、情報処理装置3は、サーバ装置2との間の相互認証を行っているときにバージョン通知処理を実行し、サーバ装置2との間の相互認証を行っているときにバージョン情報376をサーバ装置2に送信してもよい。
また、ソフトウェア373及び更新ソフトウェア213には署名がつけられていなくてもよい。この場合、更新ソフトウェア関連データには署名214が含まれない。また、ソフトウェア更新処理では、ステップs59及びs60が実行されずに、ステップs58の直後にステップs61が実行される。
また、ソフトウェア更新処理は、上記の例に限られない。例えば、バージョン通知処理において、ステップs51及びs52から成る第1処理と、ステップs53及びs54から成る第2処理の実行順序が入れ替えられてもよい。また、ステップs59及びs60から成る第3処理と、ステップs61及びs62から成る第4処理と、ステップs63及びs64から成る第5処理の実行順序が入れ替えられてもよい。例えば、ステップs58の後に、第5処理、第3処理及び第4処理がこの順で実行されてもよい。また、ステップs58の後に、第4処理、第5処理及び第3処理がこの順で実行されてもよい。
また、ステップs55において、情報処理装置3は、対象バージョン情報376と、記憶部430内の識別情報431とをサーバ装置2に送信してもよい。図23及び24は、この場合の情報処理装置3及びサーバ装置2の動作の一例をそれぞれ示すフローチャートである。図23に示されるように、ステップs54においてYESと判定されると、ステップs155が実行される。ステップs155において、情報処理装置3は、メモリ370内の対象バージョン情報376と、記憶部430内の識別情報431とをサーバ装置2に送信する。ステップs155では、制御部310がメモリ370から対象バージョン情報376を読み出す。また、制御部410が記憶部430から識別情報431を読み出す。そして、読み出された対象バージョン情報376及び識別情報431が情報処理装置3からサーバ装置2に送信される。
図24に示されるように、サーバ装置2は、ステップs171において、情報処理装置3から対象バージョン情報376及び識別情報431を受信すると、上述のステップs72を実行する。ステップs72でのバージョン比較の結果、制御部20が、受信バージョンが更新バージョンより古いと判定すると(ステップs73のYES)、上述のステップs76及びs77が順次実行される。一方で、制御部20が、受信バージョンが更新バージョンより古くないと判定すると(ステップs73のNO)、サーバ装置2では、ソフトウェア更新処理に応じた処理が終了する。
情報処理装置3では、ステップs155の後、上述のステップs58が実行される。その後、情報処理装置3は上記と同様に動作する。
以上のように、本例に係る情報処理装置3では、動作制御装置40が、主装置30のメモリ370内のバージョン情報376及び識別情報432に対応する署名377が正しいと判定し、かつメモリ370内の識別情報432が、自身が記憶する識別情報431と一致すると判定した場合、メモリ370内のバージョン情報376がサーバ装置2に送信される。これにより、ハッキングによって、誤ったバージョンを示すバージョン情報376がサーバ装置2に送信される可能性を低減することができる。以下にこの点について詳細に説明する。以後、説明対象の情報処理装置3を対象情報処理装置3と呼ぶことがある。
ここで、本例とは異なり、メモリ370には識別情報432が記憶されておらず、署名377がバージョン情報376のみに対応する署名であるような仮想例を考える。仮想例でのソフトウェア更新処理では、ステップs53及びs54が実行されずに、ステップs52においてYESと判定されると、ステップs55あるいはステップs155が実行されてバージョン情報376がサーバ装置2に送信される。
仮想例において情報処理システム1がハッキングされた場合、対象情報処理装置3とは別の情報処理装置3が記憶する、対象ソフトウェア373に対応するバージョン情報376及び署名377がハッカーに盗まれる可能性がある。そして、対象情報処理装置3での対象ソフトウェア373に対応するバージョン情報376及び署名377が、ハッカーによって、別の情報処理装置3から盗まれたバージョン情報376及び署名377に置き換えられる可能性がある。このとき、別の情報処理装置3から盗まれたバージョン情報376が示すバージョンが、対象情報処理装置3が現在記憶する対象ソフトウェアのバージョンと異なる場合、対象情報処理装置3は、誤ったバージョンを示すバージョン情報376を記憶することになる。対象情報処理装置3が記憶する署名377は、別の情報処理装置3から盗まれた正規の署名であることから、署名検証では正しいと判定される。つまり、上述のステップs52ではYESと判定される。したがって、ステップs55あるいはステップs155が実行され、対象情報処理装置3が記憶する対象ソフトウェア373のバージョンとは異なるバージョン、つまり誤ったバージョンを示すバージョン情報376がサーバ装置2に送信される。その結果、サーバ装置2は、誤ったバージョンを示すバージョン情報376に基づいて動作することになる。
これに対して、本例では、動作制御装置40が、主装置30のメモリ370内の署名377が正しいと判定し、かつメモリ370内の識別情報432が、自身が記憶する識別情報431と一致すると判定した場合に、メモリ370内のバージョン情報376がサーバ装置2に送信される。仮に、対象情報処理装置3のメモリ370内のバージョン情報376、識別情報432及び署名377が、ハッカーによって、別の情報処理装置3のメモリ370から盗まれたバージョン情報376、識別情報432及び署名377に置き換えられた場合、メモリ370内の識別情報432が、動作制御装置40が記憶する識別情報431と一致しなくなる。そのため、ステップs54ではNOと判定され、ステップs55あるいはs155が実行されない。よって、誤ったバージョンを示すバージョン情報376がサーバ装置2に送信される可能性が低下する。その結果、サーバ装置2が、誤ったバージョンを示すバージョン情報376に基づいて動作する可能性が低減する。
また、対象情報処理装置3のメモリ370内のバージョン情報376、識別情報432及び署名377のうち、バージョン情報376及び署名377だけが、ハッカーによって、別の情報処理装置3のメモリ370から盗まれたバージョン情報376及び署名377に置き換えられた場合を考える。この場合、本例では、対象情報処理装置3のメモリ370内のバージョン情報376及び識別情報432から生成されたハッシュ値と、対象情報処理装置3のメモリ370内の署名377が復号化されて得られた値とが一致しなくなる。つまり、署名377が正しくないと判定される。よって、ステップs52ではNOと判定され、ステップs55あるいはステップs155が実行されない。これにより、誤ったバージョンを示すバージョン情報376がサーバ装置2に送信される可能性が低下する。
また、本例では、動作制御装置40が、サーバ装置2からのサーバ生成署名が正しいと判定し、かつサーバ装置2からの受信識別情報が、自身が記憶する識別情報431と一致すると判定した場合、情報処理装置3は、サーバ装置2からの更新ソフトウェア213、更新バージョン情報216及びサーバ生成署名で、メモリ370内のソフトウェア373、バージョン情報376及び署名377をそれぞれ更新する更新処理を行う。したがって、対象情報処理装置3は、サーバ装置2からの更新バージョン情報216及び受信識別情報のそれぞれがハッカーによって改ざんされておらず、かつ、更新バージョン情報216、受信識別情報及びサーバ生成署名がハッカーによって別の情報処理装置3のものと入れ換えられていないときに更新処理を実行することができる。よって、情報処理装置3は、情報処理システム1がハッキングされていないときに、更新処理を実行することができる。したがって、情報処理装置3は、メモリ370内のソフトウェア373、バージョン情報376及び署名377を適切に更新することができる。ソフトウェア373が適切に更新されない場合には、ソフトウェア373の脆弱性に基づいて情報処理装置3がハッキングされる可能性がある。ソフトウェア373が適切に更新されることによって、情報処理装置3がハッキングされにくくなり、その結果、情報処理装置3の安全性が向上する。
なお、サーバ装置2は、情報処理装置3からバージョン情報376を受信しないと判定した場合、動作許可条件が成立したとしても、動作許可情報を情報処理装置3に送信しなくてもよい。図25及び26は、この場合のサーバ装置2の動作の一例を示すフローチャートである。
図25に示されるように、サーバ装置2の制御部20は、ステップs81において、情報処理装置3からバージョン情報376を通信部22が一定期間受信しないと判定すると、ステップs82を実行する。例えば、情報処理装置3が、動作可能期間において、バージョン通知処理(ステップs51~s55)を一定間隔ごとに実行する場合には、当該一定間隔よりも大きい値に、ステップs81の一定期間は設定される。
ステップs81の後、ステップs82において、制御部20は、情報処理装置3に異常が発生したと判定する。そして、制御部20は、情報処理装置3に異常が発生したと判定したことを示す異常判定情報を記憶部21に記憶する。
一方で、サーバ装置2の制御部20は、図26に示されるように、ステップs85において、情報処理装置3から要求信号をサーバ装置2が受信するなどして、動作許可用処理に応じた動作許可条件が成立したと判定すると、ステップs86を実行する。ステップs86において、制御部20は、記憶部21に異常判定情報が記憶されているか否かを確認する。制御部20は、記憶部21に異常判定情報が記憶されていないと判定すると、ステップs87を実行する。ステップs87において、制御部20は、動作許可情報を生成し、通信部22に、生成した動作許可情報を情報処理装置3に送信させる。一方で、制御部20は、記憶部21に異常判定情報が記憶されていると判定すると、動作許可情報を生成しない。
図25及び26の例では、サーバ装置2は、情報処理装置3からバージョン情報376を受信しないと判定した場合、動作許可条件が成立したとしても、動作許可情報を情報処理装置3に送信しない。サーバ装置2が動作許可情報を情報処理装置3に送信しない場合には、情報処理装置3では、現在の動作許可期間が終了すると、許可対象機能が停止あるいは制限される。このため、図25及び26の例では、サーバ装置2が、情報処理装置3からバージョン情報376を受信しないと判定した場合、動作制御装置40によって許可対象機能が停止あるいは制限される。
例えば、情報処理装置3のサーバ通信機能がハッキングされた場合、サーバ装置2は、情報処理装置3からバージョン情報376を受信できない可能性がある。この場合、サーバ装置2が一定期間バージョン情報376を受信できず、許可対象機能が停止あるいは制限される可能性がある。
また、情報処理装置3のメモリ370内のバージョン情報376がハッキングにより改ざんされた場合には、上述のステップs52でNOと判定される。この場合、サーバ装置2は、一定期間バージョン情報376を情報処理装置3から受信できず、許可対象機能が停止あるいは制限される可能性がある。
本例では、サーバ装置2が、情報処理装置3からバージョン情報376を受信しないと判定した場合、動作制御装置40によって許可対象機能が停止あるいは制限されることから、情報処理装置3がハッキングされた場合に、動作制御装置40は許可対象機能を停止あるいは制限することが可能となる。これにより、ハッカーは、情報処理装置3をハッキングしたとしても、許可対象機能を十分に利用することができる可能性が低くなる。よって、ハッカーにおいては、情報処理装置3をハッキングする動機付けが低下し、その結果、情報処理装置3の安全性を向上することができる。
また、サーバ装置2は、情報処理装置3に対して更新ソフトウェア関連データを送信した後、情報処理装置3から受信した受信バージョンが更新バージョンと一致しないと判定した場合、動作許可条件が成立したとしても、動作許可情報を情報処理装置3に送信しなくてもよい。これにより、サーバ装置2が、更新ソフトウェア関連データを送信した後、受信バージョンが更新バージョンと一致しないと判定した場合、動作制御装置40により許可対象機能が停止あるいは制限されることになる。
例えば、サーバ装置2の制御部20は、上述のステップs77の実行直後のステップs72のバージョン比較の結果、受信バージョンが更新バージョンに一致しないと判定すると、情報処理装置3に異常が発生したと判定する。そして、制御部20は異常判定情報を記憶部21に記憶する。一方で、サーバ装置2は、上述の図26に示される処理を実行する。これにより、サーバ装置2は、情報処理装置3に対して更新ソフトウェア関連データを送信した後、情報処理装置3から受信した受信バージョンが更新バージョンと一致しないと判定した場合、動作許可条件が成立したとしても、動作許可情報を情報処理装置3に送信しなくなる。よって、動作制御装置40によって許可対象機能が停止あるいは制限される。
なお、制御部20は、ステップs77の実行直後に、連続して、受信バージョンが更新バージョンに一致しないと判定したときに、異常判定情報を記憶部21に記憶してもよい。つまり、制御部20は、ステップs77の実行直後に行われる連続した複数回のステップs72のバージョン比較のそれぞれの結果において、受信バージョンが更新バージョンに一致しないと判定すると、異常判定情報を記憶部21に記憶してもよい。
このように、サーバ装置2が、更新ソフトウェア関連データを送信した後、受信バージョンが更新バージョンと一致しないと判定した場合、動作制御装置40により許可対象機能が停止されることによって、情報処理装置3がハッキングされた場合に、動作制御装置40は許可対象機能を停止あるいは制限することが可能となる。
例えば、対象ソフトウェア373の実行中に、上述の図21のステップs64においてYESと判定された場合、主装置30の制御部31は、対象ソフトウェア373の実行を終了した後に、ステップs65の更新処理を実行する場合を考える。上述のように、ソフトウェア更新処理において主装置30が実行する処理は、ハッキングされにくいOS371に記述されていることから、ステップs65の更新処理自体はハッキングされにくい。しかしながら、主装置30がハッキングされて、制御部31が対象ソフトウェア373の実行を終了することができないことは考えられる。この場合、ステップs65の更新処理が実行されずに、対象ソフトウェア373及び対象バージョン情報376等がいつまでも更新されない可能性がある。その結果、ステップs77の実行後のステップs72のバージョン比較では、受信バージョンが更新バージョンと一致しないと判定される可能性がある。
本例では、サーバ装置2が、更新ソフトウェア関連データを送信した後、受信バージョンが更新バージョンと一致しないと判定した場合、動作制御装置40により許可対象機能が停止あるいは制限されることから、例えば、実行中の対象ソフトウェア373の実行が終了できないように主装置30がハッキングされた場合には、動作制御装置40は許可対象機能を停止あるいは制限することができる。よって、主装置30がハッキングされた場合に、ハッカーによって許可対象機能が十分に利用される可能性を低減することができる。よって、ハッカーにおいては、情報処理装置3をハッキングする動機付けが低下し、その結果、情報処理装置3の安全性を向上することができる。
<情報処理システムの他の例>
<第1の他の例>
上記の例では、情報処理システム1は、ソフトウェア373を自動更新しているが、ユーザの指示に応じてソフトウェア373を更新してもよい。図27は、この場合の情報処理装置3(情報処理装置3Aともいう)の主装置30の構成の一例を示す図である。
<第1の他の例>
上記の例では、情報処理システム1は、ソフトウェア373を自動更新しているが、ユーザの指示に応じてソフトウェア373を更新してもよい。図27は、この場合の情報処理装置3(情報処理装置3Aともいう)の主装置30の構成の一例を示す図である。
本例では、図27に示されるように、主装置30は、情報処理装置3Aのユーザからの入力を受け付ける入力部385と、当該ユーザに対する通知を行う通知部386とをさらに備える。制御部310は、入力部385及び通知部386を制御することが可能である。
入力部385は、例えば、少なくとも一つの操作ボタンを備える。ユーザは、操作ボタンを操作することによって、主装置30に対する入力を行うことができる。操作ボタンはハードウェアボタンであってもよい。また、主装置30が、タッチパネルディスプレイを備える場合には、当該タッチパネルディスプレイに表示されるソフトウェアボタンであってもよい。入力部385はマイクを備えてもよい。ユーザはマイクに対して音を入力することによって、主装置30に対する入力を行うことができる。入力部385は、操作ボタン及びマイク以外の、ユーザの入力を受け付ける入力手段を備えてもよい。
通知部386は、例えば、少なくとも一つの発光部を備える。発光部は、発光することによって、ユーザに対する通知を行うことができる。発光部は、例えば、発光ダイオードであってもよいし、他の発光手段であってもよい。また、通知部386は、スピーカを備えてもよい。スピーカは、音を出力することによって、ユーザに対する通知を行うことができる。また、通知部386は、表示部を備えてもよい。表示部は、表示を行うことによって、ユーザに対する通知を行うことができる。表示部は、液晶ディスプレイであってもよいし、有機ELディスプレイであってもよいし、他の表示手段であってもよい。
図28は、情報処理装置3Aの動作の一例を示すフローチャートである。上述の図21のステップs61の署名検証の結果、動作制御装置40の制御部410がサーバ生成署名が正しいと判定すると(ステップs62のYES)、上述のように、ステップs63が実行される。ステップs63での識別情報の比較の結果、制御部410が識別情報431と受信識別情報とが一致すると判定すると(ステップs64のYES)、ステップs91が実行される。
ステップs91において、主装置30の通知部386は、制御部310による制御により、ユーザに対して通知を行う。通知部386は、発光部を発光させるなどによって、メモリ370内に記憶されているソフトウェア373のバージョンよりも新しいバージョンの更新ソフトウェア213が存在することをユーザに通知する。
ステップs91の後、ステップs92において、制御部310は、ユーザからのソフトウェア373の更新指示を入力部385が受け付けたか否かを判定する。ユーザは、ステップs91での通知を受けると、ソフトウェア373の更新指示を入力部385に対して行う。ステップs92においてYESと判定されると、ステップs65の更新処理が実行される。これにより、ユーザの更新指示に応じて、対象ソフトウェア373、対象バージョン情報376及び対象署名377が更新される。
このように、情報処理装置3Aでは、動作制御装置40がサーバ装置2からのサーバ生成署名が正しいと判定し、かつ動作制御装置40が、サーバ装置2からの受信識別情報が、自身が記憶する識別情報431と一致すると判定し、かつ入力部385がユーザから更新指示を受け付けた場合、更新処理が実行される。この場合であっても、情報処理装置3Aは、サーバ装置2からの更新バージョン情報216及び受信識別情報のそれぞれがハッカーによって改ざんされておらず、かつ、更新バージョン情報216、受信識別情報及びサーバ生成署名がハッカーによって別の情報処理装置3のものと入れ換えられていないときに更新処理を実行することができる。よって、情報処理装置3Aは、情報処理システム1がハッキングされていないときに、更新処理を実行することができる。したがって、情報処理装置3Aは、メモリ370内のソフトウェア373、バージョン情報376及び署名377を適切に更新することができる。
なお、情報処理装置3Aと通信するサーバ装置2は、上述の図25及び26のように、情報処理装置3Aからバージョン情報376を受信しないと判定した場合、動作許可条件が成立したとしても、動作許可情報を情報処理装置3Aに送信しなくてもよい。
また、サーバ装置2は、情報処理装置3Aに対して更新ソフトウェア関連データを送信した後、情報処理装置3Aから受信した受信バージョンが更新バージョンと一致しないと判定した場合、動作許可条件が成立したとしても、動作許可情報を情報処理装置3Aに送信しなくてもよい。例えば、上述のステップs91の後、ユーザが入力部385に更新指示を行わない場合、サーバ装置2は、情報処理装置3Aに対して更新ソフトウェア関連データを送信した後、情報処理装置3Aから受信した受信バージョンが更新バージョンと一致しないと判定する可能性がある。この場合には、情報処理装置3Aがハッキングされていなくても、情報処理装置3Aでは、許可対象機能が停止あるいは制限される。情報処理装置3Aにおいて、許可対象機能が停止あるいは制限されることによって、更新指示をいつまでも行わないユーザに対して更新指示を行うように促すことができる。そして、情報処理装置3Aは、許可対象機能が停止あるいは制限された後、入力部385がユーザからの更新指示を受け付けた場合に、ステップs65の更新処理を実行することにより、ソフトウェア373が長時間更新されない可能性を低減することができる。その結果、情報処理装置3Aの安全性を向上することができる。なお、動作可能期間が経過した後であっても、主装置30のクロック入力口301にクロック信号が入力される場合には、許可対象機能が停止あるいは制限された後であっても、主装置30は、入力部385においてユーザからの更新指示を受け付けて更新処理を実行することができる。
また、情報処理装置3Aでは、動作制御装置40は、許可対象機能が停止あるいは制限されているときに、入力部385がユーザからの更新指示を受け付けて更新処理が行われる場合には、当該更新処理の実行中に許可対象機能の停止あるいは制限を一時的に解除してもよい。この場合、動作制御装置40は、更新処理が完了した後、再び、許可対象機能を停止あるいは制限する。これにより、例えば、主装置30に入力されるクロック信号の周波数が小さくされることによって許可対象機能の制限が行われる場合、更新処理の実行中に許可対象機能の制限が一時的に解除されることによって、更新処理の実行中において主装置30の動作速度を元に戻すことができる。よって、更新処理にかかる時間を短縮することができる。
また、サーバ装置2は、情報処理装置3Aにおいて、許可対象機能が停止あるいは制限された後にユーザの更新指示に応じて更新処理が実行され、その後、情報処理装置3Aから受信した受信バージョンが更新バージョンと一致したと判定した場合、情報処理装置3Aに動作許可情報を送信してもよい。この場合、動作許可情報を受信した情報処理装置3Aでは、動作制御装置40が、動作許可情報を動作許可レジスタ450に設定する。これにより、許可対象機能の停止あるいは制限が解除され、情報処理装置3Aは、動作許可期間において許可対象機能を通常通りに実行する。
このように、サーバ装置2が、情報処理装置3Aにおいて許可対象機能が停止あるいは制限された後、情報処理装置3Aから受信した受信バージョンが更新バージョンと一致したと判定した場合、動作制御装置40によって許可対象機能の停止あるいは制限が解除されることによって、情報処理装置3Aでは、更新処理が実行されないことにより許可対象機能が停止あるいは制限されたとしても、その後に更新処理が実行されたときに、許可対象機能の停止あるいは制限が解除される。よって、情報処理装置3Aは、許可対象機能が停止あるいは制限されたとしても、更新処理を実行した後には、許可対象機能を通常通り実行することができる。
<第2の他の例>
情報処理装置3は、上述のステップs54でNOと判定した場合には、図29に示されるように、ステップs101において、動作制御装置40が記憶する識別情報431と、更新ソフトウェア関連データの送信を要求するデータ要求情報とをサーバ装置2に送信してもよい。ステップs101では、例えば、主装置30の制御部310が、データ要求情報を生成する。制御部310で生成されたデータ要求情報と、識別情報431とはサーバ装置2に送信される。
情報処理装置3は、上述のステップs54でNOと判定した場合には、図29に示されるように、ステップs101において、動作制御装置40が記憶する識別情報431と、更新ソフトウェア関連データの送信を要求するデータ要求情報とをサーバ装置2に送信してもよい。ステップs101では、例えば、主装置30の制御部310が、データ要求情報を生成する。制御部310で生成されたデータ要求情報と、識別情報431とはサーバ装置2に送信される。
サーバ装置2は、図30に示されるように、ステップs111において、識別情報431及びデータ要求情報を受信すると、上述のステップs76及びs77を実行する。これにより、サーバ装置2は、情報処理装置3から受信したデータ要求情報に応じて、対象ソフトウェア373に応じた更新ソフトウェア関連データを送信する。なお、情報処理装置3は、データ要求情報及び識別情報431を送信する場合には、対象ソフトウェアを特定するための特定情報もサーバ装置2に送信する。サーバ装置2は、受信した特定情報に基づいて対象ソフトウェア373を特定することができる。
情報処理装置3は、サーバ装置2から更新ソフトウェア関連データを受信すると(上述のステップs58)、上述のステップs59を実行し、以後同様に動作する。これにより、更新ソフトウェア関連データに含まれる更新ソフトウェア213、更新バージョン情報216、受信識別情報及びサーバ生成署名で、メモリ370内の対象ソフトウェア373、対象バージョン情報376、識別情報432及び対象署名377がそれぞれ書き換えられる。
上述のように、対象情報処理装置3のメモリ370内のバージョン情報376、識別情報432及び署名377が、ハッカーによって、別の情報処理装置3のメモリ370から盗まれたバージョン情報376、識別情報432及び署名377に置き換えられる可能性がある。この場合には、メモリ370内の識別情報432が、動作制御装置40が記憶する識別情報431と一致しなくなり、ステップs54ではNOと判定される。図29の例のように、ステップs54でNOと判定された場合に、対象情報処理装置3がデータ要求情報をサーバ装置2に送信することによって、対象情報処理装置3は、サーバ装置2から、対象ソフトウェア373に応じた更新ソフトウェア関連データを受信することができる。そして、対象情報処理装置3は、受信した更新ソフトウェア関連データに基づいて、メモリ370内の対象ソフトウェア373、対象バージョン情報376、識別情報432及び対象署名377を更新することによって、メモリ370内に記憶されている、別の情報処理装置3のメモリ370から盗まれたバージョン情報376、識別情報432及び署名377を正しい情報に書き換えることができる。
<第3の他の例>
サーバ装置2は、情報処理装置3からバージョン情報376を受信しないと判定した場合、許可対象機能の停止あるいは制限を指示する指示情報を情報処理装置3に送信してもよい。図31はこの場合のサーバ装置2の動作の一例を示すフローチャートである。
サーバ装置2は、情報処理装置3からバージョン情報376を受信しないと判定した場合、許可対象機能の停止あるいは制限を指示する指示情報を情報処理装置3に送信してもよい。図31はこの場合のサーバ装置2の動作の一例を示すフローチャートである。
図31に示されるように、サーバ装置2は、上述のステップs81を実行すると、ステップs83において、指示情報を情報処理装置3に送信する。ステップs83では、制御部20は、指示情報を生成し、生成した指示情報を通信部22に通信させる。
図32は、サーバ装置2から指示情報を受信した情報処理装置3の動作の一例を示すフローチャートである。図32に示されるように、ステップs121において情報処理装置3が指示情報を受信すると、ステップs122において、動作制御装置40は、受信された指示情報に応じて許可対象機を停止あるいは制限する。これにより、上述の図25及び26の例と同様に、サーバ装置2が、情報処理装置3からバージョン情報376を受信しないと判定した場合、動作制御装置40によって許可対象機能が停止あるいは制限される。よって、対象情報処理装置3がハッキングされた場合に、動作制御装置40は許可対象機能を停止あるいは制限することが可能となる。
また、サーバ装置2は、情報処理装置3に対して更新ソフトウェア関連データを送信した後、対象情報処理装置3から受信した受信バージョンが更新バージョンと一致しないと判定した場合、指示情報を情報処理装置3に送信してもよい。これにより、サーバ装置2が、更新ソフトウェア関連データを送信した後、受信バージョンが更新バージョンと一致しないと判定した場合、動作制御装置40により許可対象機能が停止あるいは制限されることになる。この場合であっても、情報処理装置3がハッキングされたときに、動作制御装置40は許可対象機能を停止あるいは制限することが可能となる。
<第4の他の例>
情報処理装置3の動作制御装置40は、図33に示されるように、RTC(リアルタイムクロック)590を備えてもよい。RTC590は、例えば、クロック生成部480が有するMEMS等の発振器が出力するクロック信号に基づいて動作を行う。RTC590は、現在の時刻tmを出力することが可能である。動作制御装置40がRTC590を備える場合、動作可能期間は、クロック数ではなく、ある時刻から別のある時刻までの期間という時間帯で表されてもよい。この場合、動作制御装置40は、RTC590から出力される時刻tmに基づいて動作可能期間を計測する。例えば、動作可能期間が、2020年5月1日午前10時から2020年5月2日午前10時までの期間を示す場合、動作制御装置40の制御部410は、RTC590から出力される時刻tmが2020年5月1日午前10時を示す場合、動作可能期間が開始したと判定する。そして、動作制御装置40の制御部410は、時刻tmが2020年5月2日午前10時を示す場合、動作可能期間が終了したと判定する。
情報処理装置3の動作制御装置40は、図33に示されるように、RTC(リアルタイムクロック)590を備えてもよい。RTC590は、例えば、クロック生成部480が有するMEMS等の発振器が出力するクロック信号に基づいて動作を行う。RTC590は、現在の時刻tmを出力することが可能である。動作制御装置40がRTC590を備える場合、動作可能期間は、クロック数ではなく、ある時刻から別のある時刻までの期間という時間帯で表されてもよい。この場合、動作制御装置40は、RTC590から出力される時刻tmに基づいて動作可能期間を計測する。例えば、動作可能期間が、2020年5月1日午前10時から2020年5月2日午前10時までの期間を示す場合、動作制御装置40の制御部410は、RTC590から出力される時刻tmが2020年5月1日午前10時を示す場合、動作可能期間が開始したと判定する。そして、動作制御装置40の制御部410は、時刻tmが2020年5月2日午前10時を示す場合、動作可能期間が終了したと判定する。
<第5の他の例>
上記の例では、ソフトウェア373等を記憶する不揮発性メモリ370は、主装置30に設けられているが、図34に示されるように、動作制御装置40に設けられてもよい。図34の例の場合、不揮発性メモリ370は、例えば、制御部410等と同様にバス550に接続されている。制御部410は、バス550を通じて、不揮発性メモリ370からデータを読み出すことが可能である。情報処理システム1が例えば上述の図6の構成を備える場合、不揮発性メモリ370から読み出されたデータは、通信部470及び主装置30の第1通信部340を通じて、制御部310に入力される。また、情報処理システム1が例えば上述の図15~18の構成を備える場合、バス550に接続された制御部310は、不揮発性メモリ370から直接データを読み出してもよい。不揮発性メモリ370は、動作制御装置40が備える他の構成の少なくとも一部と同じチップに搭載されてもよいし、動作制御装置40が備える他の構成の少なくとも一部とは別のチップに搭載されてもよい。
上記の例では、ソフトウェア373等を記憶する不揮発性メモリ370は、主装置30に設けられているが、図34に示されるように、動作制御装置40に設けられてもよい。図34の例の場合、不揮発性メモリ370は、例えば、制御部410等と同様にバス550に接続されている。制御部410は、バス550を通じて、不揮発性メモリ370からデータを読み出すことが可能である。情報処理システム1が例えば上述の図6の構成を備える場合、不揮発性メモリ370から読み出されたデータは、通信部470及び主装置30の第1通信部340を通じて、制御部310に入力される。また、情報処理システム1が例えば上述の図15~18の構成を備える場合、バス550に接続された制御部310は、不揮発性メモリ370から直接データを読み出してもよい。不揮発性メモリ370は、動作制御装置40が備える他の構成の少なくとも一部と同じチップに搭載されてもよいし、動作制御装置40が備える他の構成の少なくとも一部とは別のチップに搭載されてもよい。
動作制御装置40が不揮発性メモリ370を備える場合、制御部410は、動作可能期間が経過すると、不揮発性メモリ370内のデータを外部から読み出せないようにしてもよい。制御部410は、例えば、不揮発性メモリ370に入力される、選択信号等の制御信号を強制的にネゲートすることによって、不揮発性メモリ370内のデータを外部から読み出せないようにしてもよい。あるいは、制御部410は、不揮発性メモリ370に接続された各データ線のレベルを強制的に固定することによって、不揮発性メモリ370内のデータを外部から読み出せないようにしてもよい。
このように、動作制御装置40が、動作可能期間が経過すると、不揮発性メモリ370内のデータを外部から読み出せないようにすることによって、動作可能期間の経過後、主装置30の制御部310の動作が停止する。これにより、動作可能期間の経過後においては、クロック入力口301に対するクロック信号の供給が停止する場合と同様に主装置30の動作が停止する。つまり、設定対象機能が停止する。
<第6の他の例>
上記の例では、情報処理装置3内のバージョン情報376が示すバージョンと、サーバ装置2内の更新バージョン情報216が示すバージョンとの比較は、サーバ装置2で実行されているが、情報処理装置3で実行されてもよい。図35~37はこの場合の情報処理システム1の動作の一例を示すフローチャートである。図35及び図36は情報処理装置3の動作の一例を示し、図37はサーバ装置2の動作の一例を示す。
上記の例では、情報処理装置3内のバージョン情報376が示すバージョンと、サーバ装置2内の更新バージョン情報216が示すバージョンとの比較は、サーバ装置2で実行されているが、情報処理装置3で実行されてもよい。図35~37はこの場合の情報処理システム1の動作の一例を示すフローチャートである。図35及び図36は情報処理装置3の動作の一例を示し、図37はサーバ装置2の動作の一例を示す。
図35に示されるように、情報処理装置3は、上述のステップs51~s54を実行する。情報処理装置3は、ステップs54においてYESと判定すると、上述のステップs57を実行する。これにより、動作制御装置40が記憶する識別情報431がサーバ装置2に送信される。このとき、対象ソフトウェアを特定するための特定情報もサーバ装置2に送信される。
サーバ装置2は、図37に示されるように、ステップs75において、情報処理装置3から識別情報431を受信すると、上述のステップs76及びs77を実行する。これにより、対象ソフトウェア373に応じた更新ソフトウェア213と、それに対応する署名214と、サーバ生成署名と、それに対応する更新バージョン情報216及び識別情報431とを含む更新ソフトウェア関連データがサーバ装置2から情報処理装置3に送信される。
情報処理装置3は、図35及び36に示されるように、ステップs57の後、ステップs58において、サーバ装置2から更新ソフトウェア関連データを受信すると、上述のステップs59~s64を実行する。情報処理装置3は、ステップ64においてYESと判定すると、ステップs131を実行する。ステップs131において、動作制御装置40の制御部410は、情報処理装置3が受信した更新ソフトウェア関連データに含まれる更新バージョン情報216が示す更新バージョンと、主装置30のメモリ370内の対象バージョン情報376が示すバージョン(記憶バージョンともいう)とを比較する。ステップs131でのバージョン比較の結果、制御部410は、記憶バージョンが更新バージョンよりも古いと判定すると(ステップs132のYES)、上述のステップs65を実行する。これにより、メモリ370内の対象ソフトウェア373、対象バージョン情報376及び対象署名377が更新される。一方で、ステップs131でのバージョン比較の結果、制御部410は、記憶バージョンが更新バージョンよりも古くはないと判定すると(ステップs132のNO)、更新処理が実行されずにソフトウェア更新処理が終了する。
このように、情報処理装置3内のバージョン情報376が示すバージョンと、サーバ装置2内の更新バージョン情報216が示すバージョンとの比較が、情報処理装置3で実行される場合には、ソフトウェアの更新に関してサーバ装置2が行う処理を簡素化することができる。
なお、図35及び図36に示されるソフトウェア更新処理において、ステップs59及びs60から成る第3処理と、ステップs61及びs62から成る第4処理と、ステップs63及びs64から成る第5処理と、ステップs131及びs132から成る第6処理の実行順序が入れ替えられてもよい。例えば、ステップs58の直後に第6処理が実行されてもよいし、第3処理の直後に第6処理が実行されてもよい。
また、図35及び図36の例では、ソフトウェア373が自動更新されているが、ユーザの指示に応じてソフトウェア373が更新されてもよい。この場合の情報処理装置3(情報処理装置3Bともいう)の主装置30の構成は、例えば、上述の図27に示される構成と同様の構成を有する。
図38は、情報処理装置3Bの動作の一例を示すフローチャートである。図38に示されるように、上述のステップs63での識別情報の比較の結果、動作制御装置40が識別情報431と受信識別情報とが一致すると判定すると(ステップs64のYES)、上述のステップs131が実行される。ステップs131でのバージョン比較の結果、制御部410が、記憶バージョンが更新バージョンよりも古いと判定すると(ステップs132のYES)、上述のステップs91及びs92が実行される。ステップs92においてYESと判定されると、つまり、入力部385がユーザからの更新指示を受け付けると、ステップs65の更新処理が実行される。これにより、ユーザの更新指示に応じて、対象ソフトウェア373、対象バージョン情報376及び対象署名377が更新される。
図35,36,38の例において、情報処理装置3の動作制御装置40は、ステップs52においてNOと判定したとき、動作可能期間であっても、主装置30のクロック入力口301に対するクロック信号の供給を停止するなどして、自ら設定対象機能を停止あるいは制限してもよい。また、動作制御装置40は、ステップs54においてNOと判定したとき、動作可能期間であっても、自ら設定対象機能を停止あるいは制限してもよい。また、動作制御装置40は、ステップs60においてNOと判定したとき、動作可能期間であっても、自ら設定対象機能を停止あるいは制限してもよい。また、動作制御装置40は、ステップs62においてNOと判定したとき、動作可能期間であっても、自ら設定対象機能を停止あるいは制限してもよい。また、動作制御装置40は、ステップs64においてNOと判定したとき、動作可能期間であっても、自ら設定対象機能を停止あるいは制限してもよい。
上記の各種例では、サーバ装置2が生成する更新ソフトウェア関連データに、識別情報431が含まれているが、識別情報431が含まれなくてもよい。この場合、情報処理装置3は、上述の図21,28等に示されるステップs63及びステップs64を実行しない。また、情報処理装置3は、上述のステップs61において、更新ソフトウェア関連データに含まれる更新バージョン情報216と動作制御装置40の記憶部430内の識別情報431からハッシュ値を生成する。そして、情報処理装置3は、サーバ生成署名を復号化して得られた値と、生成したハッシュ値とを比較する。情報処理装置3は、サーバ生成署名を復号化して得られた値と、生成したハッシュ値とが一致する場合には、サーバ生成署名が正しいと判定する。一方で、情報処理装置3は、サーバ生成署名を復号化して得られた値と、生成したハッシュ値とが一致しない場合には、サーバ生成署名が正しくないと判定する。
このように、情報処理装置3においてステップs63及びs64が実行されない場合には、情報処理装置3は、サーバ生成署名が正しいと判定した場合、サーバ装置2からの更新ソフトウェア213、更新バージョン情報216及びサーバ生成署名で、メモリ370内のソフトウェア373、バージョン情報376及び署名377をそれぞれ更新する更新処理を行う。したがって、対象情報処理装置3は、サーバ装置2からの更新バージョン情報216がハッカーによって改ざんされておらず、かつ、更新バージョン情報216及びサーバ生成署名がハッカーによって別の情報処理装置3のものと入れ換えられていないときに更新処理を実行することができる。よって、情報処理装置3は、情報処理システム1がハッキングされていないときに、更新処理を実行することができる。したがって、情報処理装置3は、メモリ370内のソフトウェア373、バージョン情報376及び署名377を適切に更新することができる。
また、情報処理装置3は、上述の図20及び23等に示されるステップs53及びs54を実行しなくてもよい。この場合、主装置30のメモリ370は識別情報432を記憶しなくてもよい。メモリ370が識別情報432を記憶しない場合には、上述のステップs51において、情報処理装置3は、メモリ370内の対象バージョン情報376と動作制御装置40の記憶部430内の識別情報431からハッシュ値を生成する。そして、情報処理装置3は、対象署名377を復号化して得られた値と、生成したハッシュ値と比較する。情報処理装置3は、対象署名377を復号化して得られた値と、生成したハッシュ値とが一致すれば、対象署名377が正しいと判定する。一方で、情報処理装置3は、対象署名377を復号化して得られた値と、生成したハッシュ値とが一致しなければ、対象署名377が正しくないと判定する。
このように、情報処理装置3においてステップs53及びs54が実行されない場合には、情報処理装置3は、署名377が正しいと判定した場合、メモリ370内のバージョン情報376をサーバ装置2に送信する。これにより、ハッキングによって、誤ったバージョンを示すバージョン情報376がサーバ装置2に送信される可能性を低減することができる。例えば、対象情報処理装置3のメモリ370内のバージョン情報376及び署名377が、ハッカーによって、別の情報処理装置3のメモリ370から盗まれたバージョン情報376及び署名377に置き換えられた場合を考える。この場合、本例では、例えば、対象情報処理装置3のメモリ370内のバージョン情報376と対象情報処理装置3の記憶部430内の識別情報431から生成されたハッシュ値と、対象情報処理装置3のメモリ370内の署名377が復号化されて得られた値とが一致しなくなる。つまり、署名377が正しくないと判定される。これにより、ステップs55あるいはステップs155が実行されない。よって、誤ったバージョンを示すバージョン情報376がサーバ装置2に送信される可能性が低下する。
ここに開示される要素の機能は、当該開示される要素を実行するように構成された、あるいは当該開示される機能を実行するようにプログラミングされた汎用プロセッサ、専用 プロセッサ、集積回路、ASIC(「特定用途向け集積回路」)、従来の回路構成及び/ またはそれらの組み合わせを含む回路構成あるいは処理回路構成が用いられて実装されて もよい。プロセッサは、それが、その中にトランジスタ及び他の回路構成を含むとき、処 理回路構成あるいは回路構成として見なされる。本開示において、回路構成、ユニットあるいは手段は、挙げられた機能を実行するハードウェア、あるいは当該機能を実行するようにプログラミングされたハードウェアである。ハードウェアは、挙げられた機能を実行 するようにプログラミングされた、あるいは当該機能を実行するように構成された、ここ で開示されるいかなるハードウェアあるいは既知の他のものであってもよい。ハードウェ アが、あるタイプの回路構成として見なされるかもしれないプロセッサであるとき、回路 構成、手段あるいはユニットは、ハードウェアとソフトウェアの組み合わせ、ハードウェ アを構成するために用いられるソフトウェア及び/またはプロセッサである。
以上のように、情報処理システム1は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
1 情報処理システム
2 サーバ装置
3,3A,3B 情報処理装置
40 動作制御装置
213 更新ソフトウェア
216 更新バージョン情報
360 不揮発性メモリ
373 ソフトウェア
376 バージョン情報
377 署名
385 入力部
430 記憶部
431,432 識別情報
2 サーバ装置
3,3A,3B 情報処理装置
40 動作制御装置
213 更新ソフトウェア
216 更新バージョン情報
360 不揮発性メモリ
373 ソフトウェア
376 バージョン情報
377 署名
385 入力部
430 記憶部
431,432 識別情報
Claims (19)
- 所定機能を有する情報処理装置と、
前記情報処理装置と通信ネットワークを通じて通信するサーバ装置と
を備え、
前記情報処理装置は、前記所定機能を制御する動作制御装置を有し、
前記動作制御装置は、前記動作制御装置の識別情報を記憶し、
前記情報処理装置は、前記動作制御装置が記憶する前記識別情報を前記サーバ装置に送信し、
前記情報処理装置は、第1ソフトウェアと、前記第1ソフトウェアのバージョンを示す第1バージョン情報と、前記第1バージョン情報及び前記識別情報の両方に対応する第1署名とを記憶する第1記憶部を有し、
前記サーバ装置は、第2ソフトウェアと、前記第2ソフトウェアのバージョンを示す第2バージョン情報とを記憶する第2記憶部を有し、
前記サーバ装置は、前記第2バージョン情報及び前記情報処理装置から受信した前記識別情報の両方に対応する第2署名を生成し、
前記情報処理装置では、
前記動作制御装置が、前記第1記憶部内の前記第1署名を検証し、前記動作制御装置が、前記第1署名が正しいと判定した場合、前記情報処理装置が、前記第1バージョン情報を前記サーバ装置に送信するという第1処理が実行され、
前記サーバ装置は、前記第1バージョン情報を受信した場合、前記第1バージョン情報と前記第2バージョン情報とを比較し、前記第1バージョン情報が示すバージョンが前記第2バージョン情報が示すバージョンよりも古いと判定したとき、前記第2ソフトウェア、前記第2バージョン情報及び前記第2署名を含む所定データを前記情報処理装置に送信し、
前記情報処理装置が前記所定データを受信した場合、前記情報処理装置では、
前記動作制御装置が、前記所定データに含まれる前記第2署名を検証し、前記動作制御装置が、前記第2署名が正しいと判定した場合、前記情報処理装置が、前記所定データに含まれる前記第2ソフトウェア、前記第2バージョン情報及び前記第2署名で、前記第1記憶部内の前記第1ソフトウェア、前記第1バージョン情報及び前記第1署名をそれぞれ更新する更新処理を行うという第2処理が実行され、
前記サーバ装置が前記第1バージョン情報を受信しないと判定した場合、前記動作制御装置によって前記所定機能が停止あるいは制限され、
前記情報処理装置は、前記第1処理を繰り返し実行し、
前記サーバ装置が、前記所定データを送信した後に前記情報処理装置から受信した前記第1バージョン情報が示すバージョンが、前記第2バージョン情報が示すバージョンと一致しないと判定した場合、前記動作制御装置によって前記所定機能が停止あるいは制限される、情報処理システム。 - 請求項1に記載の情報処理システムであって、
前記情報処理装置は、ユーザからの前記第1ソフトウェアの更新指示を受け付ける入力部を有し、
前記第2処理においては、
前記動作制御装置が前記第2署名が正しいと判定し、かつ前記入力部が前記更新指示を受け付けた場合、前記情報処理装置は前記更新処理を行う、情報処理システム。 - 請求項2に記載の情報処理システムであって、
前記第2処理においては、
前記動作制御装置が、前記第2署名が正しいと判定した場合、前記情報処理装置は前記ユーザに第1通知を行い、前記第1通知を受けた前記ユーザからの前記更新指示を前記入力部が受け付けたとき、前記情報処理装置は前記更新処理を行う、情報処理システム。 - 請求項2に記載の情報処理システムであって、
前記所定機能が停止あるいは制限された後、前記入力部が前記更新指示を受け付けた場合、前記情報処理装置は前記更新処理を実行する、情報処理システム。 - 請求項4に記載の情報処理システムであって、
前記所定機能が停止あるいは制限された後、前記情報処理装置は前記ユーザに第2通知を行い、前記第2通知を受けた前記ユーザからの前記更新指示を前記入力部が受け付けた場合、前記情報処理装置は前記更新処理を行う、情報処理システム。 - 請求項4に記載の情報処理システムであって、
前記動作制御装置は、前記所定機能が停止あるいは制限されているときに前記更新処理が行われる場合、前記更新処理の実行中に前記所定機能の停止あるいは制限を一時的に解除する、情報処理システム。 - 請求項4に記載の情報処理システムであって、
前記サーバ装置が、前記所定機能が停止あるいは制限された後に前記情報処理装置から受信した前記第1バージョン情報が示すバージョンが、前記第2バージョン情報が示すバージョンと一致したと判定した場合、前記動作制御装置によって前記所定機能の停止あるいは制限が解除される、情報処理システム。 - 請求項1に記載の情報処理システムであって、
前記サーバ装置は、前記情報処理装置に関する所定の条件の成立に応じて、前記所定機能の動作許可を示す動作許可情報を前記情報処理装置に送信し、
前記動作制御装置は、前記情報処理装置が受信する前記動作許可情報に応じて、前記所定機能を動作させ、
前記サーバ装置は、前記第1バージョン情報を受信しないと判定した場合、前記所定の条件が成立したとしても、前記動作許可情報を前記情報処理装置に送信せず、
前記動作制御装置は、前記情報処理装置が前記動作許可情報を受信しない場合、前記所定機能を停止あるいは制限する、情報処理システム。 - 請求項1に記載の情報処理システムであって、
前記サーバ装置は、前記情報処理装置に関する所定の条件の成立に応じて、前記所定機能の動作許可を示す動作許可情報を前記情報処理装置に送信し、
前記動作制御装置は、前記情報処理装置が受信する前記動作許可情報に応じて、前記所定機能を動作させ、
前記サーバ装置は、前記所定データを送信した後に前記情報処理装置から受信した前記第1バージョン情報が示すバージョンが、前記第2バージョン情報が示すバージョンと一致しないと判定した場合、前記所定の条件が成立したとしても、前記動作許可情報を前記情報処理装置に送信せず、
前記動作制御装置は、前記情報処理装置が前記動作許可情報を受信しない場合、前記所定機能を停止あるいは制限する、情報処理システム。 - 請求項1に記載の情報処理システムであって、
前記サーバ装置は、前記第1バージョン情報を受信しない場合、前記所定機能の停止あるいは制限を指示する指示情報を前記情報処理装置に送信し、
前記動作制御装置は、前記情報処理装置が受信した前記指示情報に応じて、前記所定機能を停止あるいは制限する、情報処理システム。 - 請求項1に記載の情報処理システムであって、
前記サーバ装置は、前記所定データを送信した後に前記情報処理装置から受信した前記第1バージョン情報が示すバージョンが、前記第2バージョン情報が示すバージョンと一致しないと判定した場合、前記所定機能の停止あるいは制限を指示する指示情報を前記情報処理装置に送信し、
前記動作制御装置は、前記情報処理装置が受信した前記指示情報に応じて、前記所定機能を停止あるいは制限する、情報処理システム。 - 請求項1に記載の情報処理システムであって、
前記第1記憶部は前記識別情報を記憶し、
前記情報処理装置では、前記第1処理において、
前記動作制御装置が、前記第1記憶部内の前記第1署名を検証し、前記第1記憶部内の前記識別情報が、自身が記憶する前記識別情報と一致するか否かを判定し、前記動作制御装置が、前記第1署名が正しいと判定し、かつ前記第1記憶部内の前記識別情報が、自身が記憶する前記識別情報と一致すると判定した場合、前記情報処理装置が、前記第1バージョン情報を前記サーバ装置に送信し、
前記サーバ装置は、前記第1バージョン情報が示すバージョンが前記第2バージョン情報が示すバージョンよりも古いと判定したとき、前記第2ソフトウェア、前記第2バージョン情報、前記第2署名及び前記識別情報を含む前記所定データを前記情報処理装置に送信し、
前記情報処理装置では、前記第2処理において、
前記動作制御装置が、前記所定データに含まれる前記第2署名を検証し、前記所定データに含まれる前記識別情報が、自身が記憶する前記識別情報と一致するか否かを判定し、前記動作制御装置が、前記第2署名が正しいと判定し、かつ前記所定データに含まれる前記識別情報が、自身が記憶する前記識別情報と一致すると判定した場合、前記情報処理装置が前記更新処理を行う、情報処理システム。 - 請求項1に記載の情報処理システムであって、
前記情報処理装置は、前記動作制御装置が、前記第1記憶部内の前記識別情報が、自身が記憶する前記識別情報と一致しないと判定した場合、前記動作制御装置が記憶する前記識別情報と前記所定データの送信を要求する要求情報とを前記サーバ装置に送信し、
前記サーバ装置は、前記情報処理装置から受信した前記要求情報に応じて前記所定データを送信し、
前記要求情報に応じて前記サーバ装置が送信した前記所定データを受信した前記情報処理装置では、
前記動作制御装置が、前記所定データに含まれる前記第2署名を検証し、前記所定データに含まれる前記識別情報が、自身が記憶する前記識別情報と一致するか否かを判定し、前記動作制御装置が、前記第2署名が正しいと判定し、かつ前記所定データに含まれる前記識別情報が、自身が記憶する前記識別情報と一致すると判定した場合、前記情報処理装置が、前記所定データに含まれる前記第2ソフトウェア、前記第2バージョン情報、前記識別情報及び前記第2署名で、前記第1記憶部内の前記第1ソフトウェア、前記第1バージョン情報、前記識別情報及び前記第1署名をそれぞれ書き換える、情報処理システム。 - 所定機能を有する情報処理装置と、
前記情報処理装置と通信ネットワークを通じて通信するサーバ装置と
を備え、
前記情報処理装置は、前記所定機能を制御する動作制御装置を有し、
前記動作制御装置は、前記動作制御装置の識別情報を記憶し、
前記情報処理装置は、前記動作制御装置が記憶する前記識別情報を前記サーバ装置に送信し、
前記情報処理装置は、第1ソフトウェアと、前記第1ソフトウェアのバージョンを示す第1バージョン情報と、前記第1バージョン情報及び前記識別情報の両方に対応する第1署名とを記憶する第1記憶部を有し、
前記サーバ装置は、第2ソフトウェアと、前記第2ソフトウェアのバージョンを示す第2バージョン情報とを記憶する第2記憶部を有し、
前記サーバ装置は、前記第2バージョン情報及び前記情報処理装置から受信した前記識別情報の両方に対応する第2署名を生成し、
前記サーバ装置は、前記第2ソフトウェア、前記第2バージョン情報及び前記第2署名を含む所定データを前記情報処理装置に送信し、
前記動作制御装置は、
前記第1記憶部内の前記第1署名を検証し、
前記情報処理装置が受信した前記所定データに含まれる前記第2署名を検証し、
前記第1バージョン情報と前記所定データに含まれる前記第2バージョン情報とを比較し、
前記動作制御装置が、前記第1及び第2署名のそれぞれが正しいと判定し、かつ前記第1バージョン情報が示すバージョンが前記第2バージョン情報が示すバージョンよりも古いと判定した場合、前記情報処理装置は、前記所定データに含まれる前記第2ソフトウェア、前記第2バージョン情報及び前記第2署名で、前記第1記憶部内の前記第1ソフトウェア、前記第1バージョン情報及び前記第1署名をそれぞれ更新する更新処理を行う、情報処理システム。 - 請求項14に記載の情報処理システムであって、
前記情報処理装置は、ユーザからの前記第1ソフトウェアの更新指示を受け付ける入力部を有し、
前記動作制御装置が前記第1及び第2署名のそれぞれが正しいと判定し、かつ前記動作制御装置が、前記第1バージョン情報が示すバージョンが前記第2バージョン情報が示すバージョンよりも古いと判定し、かつ前記入力部が前記更新指示を受け付けた場合、前記情報処理装置は前記更新処理を行う、情報処理システム。 - 請求項14に記載の情報処理システムであって、
前記動作制御装置は、
前記第1署名が正しくないと判定した場合及び前記第2署名が正しくないと判定した場合の少なくとも一つの場合において、前記所定機能を停止あるいは制限する、情報処理システム。 - 請求項1に記載の情報処理システムが備えるサーバ装置。
- 請求項1に記載の情報処理システムが備える情報処理装置。
- 請求項1に記載の情報処理システムが備える動作制御装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-093967 | 2020-05-29 | ||
JP2020093967A JP2021189715A (ja) | 2020-05-29 | 2020-05-29 | 情報処理システム、サーバ装置、情報処理装置及び動作制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021241109A1 true WO2021241109A1 (ja) | 2021-12-02 |
Family
ID=78744503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/016708 WO2021241109A1 (ja) | 2020-05-29 | 2021-04-27 | 情報処理システム、サーバ装置、情報処理装置及び動作制御装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2021189715A (ja) |
WO (1) | WO2021241109A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005284573A (ja) * | 2004-03-29 | 2005-10-13 | Hitachi Software Eng Co Ltd | アクセス管理システム |
JP2017059210A (ja) * | 2015-09-14 | 2017-03-23 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | ゲートウェイ装置、ファームウェア更新方法及び制御プログラム |
JP2019145062A (ja) * | 2018-02-16 | 2019-08-29 | 株式会社メガチップス | 情報処理システム、サーバ装置、情報処理装置、動作制御装置及び情報処理システムの動作方法 |
-
2020
- 2020-05-29 JP JP2020093967A patent/JP2021189715A/ja active Pending
-
2021
- 2021-04-27 WO PCT/JP2021/016708 patent/WO2021241109A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005284573A (ja) * | 2004-03-29 | 2005-10-13 | Hitachi Software Eng Co Ltd | アクセス管理システム |
JP2017059210A (ja) * | 2015-09-14 | 2017-03-23 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | ゲートウェイ装置、ファームウェア更新方法及び制御プログラム |
JP2019145062A (ja) * | 2018-02-16 | 2019-08-29 | 株式会社メガチップス | 情報処理システム、サーバ装置、情報処理装置、動作制御装置及び情報処理システムの動作方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2021189715A (ja) | 2021-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11574061B2 (en) | Rollback resistant security | |
US10284375B2 (en) | Trust service for a client device | |
KR102323763B1 (ko) | 호스트 시스템과 데이터 처리 가속기 사이의 보안 통신을 제공하기 위한 방법 및 시스템 | |
US11843705B2 (en) | Dynamic certificate management as part of a distributed authentication system | |
US9626513B1 (en) | Trusted modular firmware update using digital certificate | |
EP3265950B1 (en) | Device attestation through security hardened management agent | |
TWI436280B (zh) | 存取基本輸入輸出系統設定的認證方法 | |
JP6538610B2 (ja) | 外部不揮発性メモリに間接アクセスするセキュリティデバイス | |
ES2819449T3 (es) | Cripto servicios en remoto que utilizan TPM de servidor | |
CN101578609A (zh) | 安全启动计算设备 | |
WO2021208956A1 (zh) | 智能合约的部署 | |
JP7174237B2 (ja) | 鍵生成装置、鍵更新方法および鍵更新プログラム | |
US11228421B1 (en) | Secure secrets to mitigate against attacks on cryptographic systems | |
JP7152214B2 (ja) | 情報処理システム、情報処理装置及び情報処理システムの動作方法 | |
CN114450663A (zh) | 使用安全集成电路来更新固件的电子装置及其操作方法 | |
KR102436485B1 (ko) | 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법 | |
US12069184B2 (en) | Embedded MMC device with secure boot updates by loading golden boot image from write-protected partition and validating self-recovery using public key | |
KR20190033930A (ko) | 보안 정보를 암호화하는 전자 장치 및 그 작동 방법 | |
TW202226018A (zh) | 在半導體裝置中之功能之客戶特定啟動 | |
WO2021241109A1 (ja) | 情報処理システム、サーバ装置、情報処理装置及び動作制御装置 | |
JP7090140B2 (ja) | 情報処理装置、及びbios管理方法 | |
WO2019159547A1 (ja) | 情報処理システム、サーバ装置、情報処理装置、動作制御装置及び情報処理システムの動作方法 | |
JP2020195039A (ja) | 情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21813570 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21813570 Country of ref document: EP Kind code of ref document: A1 |