WO2010092832A1 - 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 - Google Patents

不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 Download PDF

Info

Publication number
WO2010092832A1
WO2010092832A1 PCT/JP2010/000906 JP2010000906W WO2010092832A1 WO 2010092832 A1 WO2010092832 A1 WO 2010092832A1 JP 2010000906 W JP2010000906 W JP 2010000906W WO 2010092832 A1 WO2010092832 A1 WO 2010092832A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
update
modules
unit
update module
Prior art date
Application number
PCT/JP2010/000906
Other languages
English (en)
French (fr)
Inventor
海上勇二
前田学
布田裕一
松崎なつめ
野仲真佐男
静谷啓樹
酒井正夫
磯辺秀司
小泉英介
長谷川真吾
カルロス 宮内誠
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to EP10741112.6A priority Critical patent/EP2397964A4/en
Priority to JP2010550475A priority patent/JP5453324B2/ja
Priority to CN201080006212.0A priority patent/CN102301374B/zh
Priority to US13/143,594 priority patent/US8544093B2/en
Publication of WO2010092832A1 publication Critical patent/WO2010092832A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Definitions

  • the present invention relates to a technique for identifying a module that may perform an illegal operation.
  • a tamper-resistant module Conventionally, protection by a tamper-resistant module is known to prevent an application program having secret data such as an authentication key from being analyzed by a malicious third party (hereinafter referred to as “attacker”). .
  • the tamper resistant module is usually mounted on the device as hardware and protects the application program.
  • Technologies for protecting application programs with software include, for example, falsification verification using hash values, decryption load function that encrypts and saves application programs when they are not used, decrypts them only when they are used, and loads them into memory There is.
  • protection control module software that protects application programs itself can be attacked by an attacker. If the protection control module is tampered with, the application program is exposed to an attacker's attack.
  • Patent Document 1 discloses a technique for preventing modification of a program that can surely prevent the execution of the modified program even when the check program itself is modified to check whether the program has been modified or not. is doing. According to this technique, a plurality of check programs for monitoring the presence or absence of program modification are prepared, and each check program monitors one of the other check programs. This technique will be briefly described below.
  • Each of the monitoring modules A and B is a program (main program A and B) to be protected from tampering by an attacker, a program for detecting whether other modules have been tampered with (check programs A and B), and
  • the check program includes information (check information A and B) necessary for detecting falsification.
  • the check program A uses the check information A to detect falsification of the main body program B and the check program B of the monitoring module B.
  • the check program B uses the check information B to detect falsification of the main body program A and the check program A of the monitoring module A. In this way, each monitoring module detects falsification of the main body program and the check program of the counterpart monitoring module.
  • a normal protection control module is acquired from an external server device via the network, and the tampered protection control module is replaced with a normal protection control module.
  • Update to a module responsible for updating the protection control module (hereinafter referred to as “update module”) can also be attacked by an attacker.
  • the protection control module will not be updated correctly and there is a risk that the confidential data of the application program will be leaked.
  • the present invention provides an unauthorized module identification device, an information processing apparatus, an unauthorized module identification method, an unauthorized module identification that can identify an unauthorized module that has been tampered with higher probability than before.
  • An object is to provide a program, an integrated circuit, a software update system, and a software update method.
  • the present invention is an unauthorized module identifying device that identifies and invalidates an unauthorized module operating on an information processing apparatus connected via a network, and includes a plurality of alteration detection devices.
  • Receiving means for receiving a falsification detection result from one of the modules, one of the plurality of modules is assumed to be a normal module, and based on the assumption, it is determined whether there is a contradiction in the plurality of falsification detection results received.
  • a judging means for identifying the module assumed to be a normal module as an illegal module, and an invalidating means for outputting an invalidation instruction for the identified illegal module.
  • an illegal module is identified by detecting a contradiction between the results of module tampering detection processing with each other. Therefore, a method for logically verifying an unauthorized module that has falsely notified the tampering detection result. Can be effectively identified. Then, by outputting an invalidation instruction for the specified illegal module, the illegal module can be appropriately excluded.
  • FIG. 1 is an overall configuration diagram of a software update system 10 according to a first embodiment.
  • 3 is a block diagram of an update module 131 in the first embodiment.
  • FIG. 2 is a block diagram of a protection control module 120 according to Embodiment 1.
  • FIG. 2 is a block diagram of an access control module 140 according to Embodiment 1.
  • FIG. 2 is a hardware configuration diagram of the device 100 according to Embodiment 1.
  • FIG. 3 is a software configuration diagram of the device 100 according to Embodiment 1.
  • FIG. 3 is a block diagram of a determination unit 210 according to Embodiment 1.
  • FIG. 3 is a block diagram of an update software distribution unit 220 according to Embodiment 1.
  • FIG. 3 is a block diagram of a module invalidation unit 230 in the first embodiment.
  • FIG. 3 is a flowchart showing the overall operation of the software update system 10 according to the first embodiment.
  • 6 is a diagram for explaining an operation of an initial setting process in the first embodiment.
  • FIG. 6 is a sequence diagram of initial setting processing in Embodiment 1.
  • FIG. 3 is a flowchart of update module initialization processing in the first embodiment.
  • FIG. 4 is a sequence diagram of detection processing in the first embodiment.
  • 6 is a sequence diagram of analysis / judgment processing according to Embodiment 1.
  • FIG. 6 is a sequence diagram of mutual authentication processing according to Embodiment 1.
  • FIG. 6 is a sequence diagram of mutual authentication processing according to Embodiment 1.
  • FIG. 3 is a flowchart of recovery processing in the first embodiment.
  • FIG. 4 is a sequence diagram of mutual monitoring processing in the first embodiment.
  • FIG. 3 is a sequence diagram of update processing in Embodiment 1.
  • FIG. 3 is a sequence diagram of update processing in Embodiment 1.
  • FIG. 6 is a diagram for explaining a cooperative operation between a mutual monitoring process and an update process in the first embodiment.
  • FIG. 4 is a sequence diagram of re-encryption processing in Embodiment 1.
  • FIG. 10 is a sequence diagram of a next round preparation process in the first embodiment.
  • FIG. 6 is a sequence diagram of invalidation processing in the first embodiment.
  • FIG. 10 is a block diagram of an unauthorized module specifying unit 605 according to Embodiment 2.
  • 6 is a block diagram of a circulation detection unit 606 according to Embodiment 2.
  • FIG. FIG. 10 is a diagram for explaining a monitoring pattern in the second embodiment. It is a figure for demonstrating the mutual monitoring result in Embodiment 2.
  • FIG. 10 is a diagram for explaining a contradiction between mutual monitoring results in the second embodiment.
  • 10 is a flowchart of an unauthorized module specifying process in the second embodiment.
  • FIG. 12 is a diagram for explaining an unauthorized module specifying process in the second embodiment.
  • FIG. 10 is a diagram for explaining a circulation monitoring pattern in the second embodiment.
  • FIG. 10 is a diagram for explaining a contradiction in the circulation monitoring pattern in the second embodiment.
  • FIG. 10 is a diagram for explaining a contradiction in the circulation monitoring pattern in the second embodiment.
  • 10 is a flowchart of an unauthorized module specifying process in consideration of the circulation monitoring pattern in the second embodiment.
  • FIG. 10 is a diagram showing a data configuration of a circulation monitoring pattern list 2100 in the second embodiment. It is a figure which shows the data structure of the circulation monitoring pattern list
  • FIG. 10 is a flowchart of an unauthorized module specifying process in consideration of the circulation monitoring pattern in the second embodiment.
  • 10 is a flowchart of an unauthorized module specifying process in consideration of the circulation monitoring pattern in the second embodiment. It is a figure for demonstrating the specific example which distributes distributed information in consideration of a circulation monitoring pattern.
  • FIG. 10 It is a block diagram which shows the structure of the disturbance module specific
  • Still another result of mutual monitoring in the software update system 10db An example of the monitoring result in a modification (22) is shown. An example of the monitoring result in a modification (25) is shown. An example of the monitoring result in a modification (25) is shown. An example of the monitoring result in a modification (26) is shown. An example of the monitoring result in a modification (26) is shown. It is a block diagram which shows the structure of the content reproduction system 10e. It is a block diagram which shows the structure of the mobile banking system 10f. It is a block diagram which shows the structure of the falsification monitoring system 10ca in Embodiment 3 of this invention. It is a block diagram which shows the structure of the falsification monitoring system 10da in Embodiment 4 of this invention. It is a whole block diagram of the software update system 10a which concerns on Embodiment 2. It is a whole block diagram of the software update system 10b which concerns on Embodiment 2.
  • An unauthorized module identifying device is an unauthorized module identifying device that identifies and invalidates an unauthorized module that operates on an information processing device connected via a network, and detects falsification.
  • the unauthorized module identification device selects a temporary normal module group storage means for storing identification information of a module assumed to be a normal module, and selects one of the plurality of modules. Assuming that the module is a normal module, the identification information is recorded in the temporary normal module group storage unit, and the module assumed to be a normal module by the assumption unit is used as a starting point.
  • Contradiction detection means for judging whether there is a contradiction in the falsification detection result by There when it is detected, characterized in that it comprises a specifying means for specifying illegal module the module where it is assumed that a normal module in the assumed means.
  • the fraud module identifying device wherein the assumption unit assumes that the first module is the normal module, and the contradiction detection unit detects the falsification by the first module and the first module.
  • the specifying unit specifies the first module as an unauthorized module.
  • the fraud module identifying device includes: Circulation storage means for storing identification information of a plurality of modules included in a circulation pattern, which is a module group that circulates in one direction and detects tampering, and a plurality of modules included in the circulation pattern circulate in one direction.
  • Circulation storage means for storing identification information of a plurality of modules included in a circulation pattern, which is a module group that circulates in one direction and detects tampering, and a plurality of modules included in the circulation pattern circulate in one direction.
  • the processing efficiency is markedly greater than when determining whether each update module is fraudulent. Can be improved.
  • the contradiction detecting means includes a third module not included in the circulation pattern in which the first module and the second module included in the circulation pattern have detected tampering.
  • the fraud module identifying device includes a third module included in the circulation pattern in which the first module and the second module included in the circulation pattern have detected tampering.
  • the specifying means specifies all modules included in the circulation pattern as illegal modules.
  • the contradiction detecting means determines whether or not the results of the falsification detection between the first module and the second module included in the circulation pattern contradict each other.
  • the specifying means specifies all modules included in the circulation pattern as illegal modules.
  • the fraud module identifying device includes a monitoring pattern storage unit that stores a monitoring pattern that is a combination of a verification source module and a verification destination module. From a monitoring pattern stored in the monitoring pattern storage means, a circulation pattern that is a module group that circulates in one direction and detects falsification is detected, and identification information of a plurality of modules included in the detected circulation pattern is stored. It is characterized by that.
  • the illegal module specifying device can improve the efficiency of the illegal module specifying process by detecting and storing the circulation pattern in advance.
  • the determination unit sequentially starts with a circulation pattern in which the number of modules included in the circulation pattern is small. Processing of the assumption means, the contradiction detection means, and the identification means is performed.
  • an unauthorized update module can be efficiently found and invalidated by preferentially performing the unauthorized module identification process from the circulation pattern with a small number of modules.
  • the fraud module identifying device stores a plurality of circulation patterns in the circulation storage means, and the number of modules included in each circulation pattern is the same number.
  • the tampering detection process is performed on the modules included in each circulation pattern.
  • the assumption unit, the contradiction detection unit, and the identification unit are processed in order from the circulation pattern in which the number of modules not included in the circulation pattern is large.
  • the update module outside the circulation pattern determines that any update module included in the circulation pattern is normal, the update outside the circulation pattern The module can be determined to be an unauthorized module.
  • the unauthorized module identification device further includes, for each circulation pattern, the number of modules included in each circulation pattern, and falsification detection processing for the modules included in the circulation pattern.
  • a circulation pattern list including the number of modules not included in the circulation pattern is stored, and the determination means refers to the circulation pattern list, the assumption means, the contradiction detection means, and the identification means. The sequence of the cyclic pattern for processing is determined by the above.
  • the illegal module specifying process can be efficiently performed by holding the circulation pattern list in advance.
  • the unauthorized module identification device includes the number of modules included in each circulation pattern in ascending order of the number of modules included in each circulation pattern. And the number of modules not included in the circulation pattern for performing the falsification detection processing on the modules included in the circulation pattern is arranged.
  • the illegal module specifying process can be performed in ascending order of the number of modules.
  • the fraud module identifying device is a monitoring that is a combination of a verification source module and a verification destination module for a plurality of modules that operate on the information processing device and perform falsification detection processing on each other.
  • a monitoring pattern generation unit that generates a pattern; and a monitoring pattern transmission unit that transmits the generated monitoring pattern to the information processing apparatus.
  • the monitoring pattern generation unit includes a plurality of modules that circulate in one direction and are tampered with. The monitoring pattern including a circulating pattern for detection is generated.
  • An information processing apparatus includes an application program that includes secret data and is encrypted, a protection control module having a function of protecting the secret data, and a function of updating software.
  • Each of which is assigned to itself among a plurality of distributed keys generated according to a predetermined key distribution method from a decryption key for decrypting the encrypted application program.
  • the distributed information assigned to is also assigned to modules that are not included in the circulation pattern. Characterized in that it is.
  • FIG. 1 is an overall configuration diagram of the software update system 10.
  • the software update system 10 includes a device 100 that is an information processing apparatus according to the present invention, and an update server 200 that is an unauthorized module specifying apparatus according to the present invention.
  • the device 100 and the update server 200 are connected via a network.
  • the device 100 is a device that provides various services to a user via a network. For example, the device 100 accesses a content distribution server, purchases and plays content such as music and video, accesses a financial institution system, and uses net banking (deposit balance inquiry and account transfer, etc.). Or (A) Software Configuration of Device 100 As shown in FIG. 1, the device 100 includes application software (hereinafter referred to as “application”) 110, an application 111, a protection control module 120, an update module group 130, and an access control module 140. including.
  • application application software
  • the application 110 and the application 111 are software for providing various functions to a user who uses the device 100 via a network. For example, purchase music content or video content from a content distribution server (not shown), access software that plays back the purchased content, or a financial institution system (not shown), and perform online banking such as checking the balance or making a transfer. Software for use.
  • the application 110 and the application 111 have secret data such as an authentication key for authenticating with a content distribution server or a financial institution system.
  • the confidential data is data that is extracted from the application by a malicious third party (hereinafter referred to as “attacker”) and needs to be protected in order to prevent unauthorized use.
  • the protection control module 120 is a module that controls a function for protecting the application 110 and the application 111 so that the attacker 110 analyzes the application 110 and the application 111 and does not extract confidential data such as an authentication key.
  • a function to protect the application it is encrypted and saved when not using the application, and it is decrypted and loaded into memory only when the application is used, and whether the application has been tampered with is checked.
  • the protection control module 120 controls the operation of these functions, and checks whether the app 110 and the app 111 have been analyzed by an attacker. When an attack by an attacker is detected, the protection control module 120 stops the operations of the application 110 and the application 111, and clears the memory used by the application 110 and the application 111, particularly the memory area in which the confidential data is recorded. To prevent leakage of confidential data.
  • the update module group 130 includes a plurality of update modules.
  • the update module group 130 includes three update modules, that is, an update module 131, an update module 132, and an update module 133, as shown in FIG.
  • the update modules 131, 132, 133 detect whether the protection control module 120 has been tampered with.
  • Each update module has a function of downloading a protection control module for update from the update server 200 and updating the protection control module that has been tampered with when the protection control module 120 has been tampered with.
  • update modules 131, 132, and 133 may have a function of updating the application 110 and the application 111.
  • the update modules detect each other's alterations in order to prevent each update module from being tampered by an attacker and using each update module illegally. Then, the alteration detection result is transmitted to the update server 200.
  • the update server 200 determines that a certain update module has been tampered with, another normal update module receives an invalidation instruction from the update server 200 and invalidates the tampered update module.
  • the access control module 140 holds access information necessary for each update module to erase other modules.
  • the access information is, for example, an address where a module to be erased is arranged or a procedure manual in which a procedure necessary for erasure is written.
  • the access information is encrypted with an individual access information acquisition key for each module to be erased.
  • FIG. 2 is a functional block diagram showing a functional configuration of the update module 131.
  • the update modules 132 and 133 have the same configuration.
  • the update module 131 includes an update module body, a verification certificate, and a MAC value table.
  • the update module body includes a reception unit 301, a transmission unit 302, a control unit 303, an update unit 304, a verification unit 305, a MAC value generation unit 306, a MAC value table update unit 307, and a distributed information holding unit 308.
  • the receiving unit 301 receives various instructions and update software from the update server 200.
  • the receiving unit 301 receives an update module main body, an update module verification certificate, and the like necessary for mutual monitoring from other update modules. Further, the reception unit 301 receives the requested processing result, the monitoring result of the protection control module 120 by the other update module, and the like from another update module.
  • the transmission unit 302 transmits data such as various processing results and certificates to the update server 200, the protection control module 120, other update modules, and the access control module 140.
  • the control unit 303 performs various processes by controlling the update unit 304 and the verification unit 305 based on various instructions and notifications received by the reception unit 301.
  • control unit 303 includes a protection control module 120, an update module 132.
  • falsification verification processing of the update module 133, update processing of the protection control module 120, the update module 132, and the update module 133, update processing of the monitoring pattern, and the like are performed.
  • the update unit 304 cooperates with the update server 200 to install software inside the device 100, specifically, the applications 110 and 111, the protection control module 120, and the update modules 131.132 and 133. Update.
  • the verification unit 305 performs falsification detection processing of the protection control module 120, the update module 132, and the update module 133 based on the control of the control unit 303.
  • the verification unit 305 may perform falsification detection processing using a verification certificate added to each module.
  • a pre-calculated message authentication code hereinafter referred to as “MAC value”.
  • the verification unit 305 It is given in advance from the update server 200 which module tampering detection processing the verification unit 305 performs.
  • the verification unit 305 receives an instruction from the update server 200 to change the alteration detection target module or change the timing to detect the alteration, the verification unit 305 changes the instruction according to the instruction.
  • the MAC value generation unit 306 holds a verification key.
  • the MAC value generation unit 306 generates a MAC value using a verification key when the verification unit 305 uses a MAC value for falsification detection processing.
  • the MAC value table update unit 307 updates the MAC value table in which the MAC value of each module is stored.
  • a module identifier for identifying a module and a MAC value corresponding to the module are stored as a pair.
  • the MAC value generation unit 306 acquires the module that is the target of the falsification detection process and calculates the MAC value.
  • the verification unit 305 detects falsification by comparing the calculated MAC value with the MAC value of the target module stored in the MAC value table.
  • the shared information holding unit 308 holds shared information and arrangement information.
  • the shared information is information generated based on the secret sharing method from the encryption / decryption key used by the protection control module 120 for the encryption / decryption processing of the applications 110 and 111.
  • the arrangement information is information describing which distributed information is distributed to which update module.
  • FIG. 3 is a functional block diagram showing a functional configuration of the protection control module 120.
  • the protection control module 120 includes a reception unit 401, a transmission unit 402, a control unit 403, a decryption load unit 404, a falsification detection unit 405, an analysis tool detection unit 406, an encryption / decryption key holding unit 407, an encryption / decryption.
  • the key generation unit 408, the encryption / decryption key distribution unit 409, the certificate generation unit 410, and the encryption / decryption key restoration unit 411 are configured.
  • the receiving unit 401 receives distributed information and various requests from the update modules 131, 132, and 133.
  • the transmission unit 402 transmits various requests to the update modules 131, 132, and 133.
  • the control unit 403 controls the decryption load unit 404, the falsification detection unit 405, and the analysis tool detection unit 406 to detect when the applications 110 and 111 are attacked by an attacker.
  • the decryption load unit 404 performs a process of decrypting using the encryption / decryption key and loading it onto the memory when executing the encrypted applications 110 and 111. If a context switch to another application occurs during the execution of the applications 110 and 111, the decryption load unit 404 encrypts the data on the memory using the encryption / decryption key. Then, when context switching is performed again to the applications 110 and 111, a process of decrypting the encrypted data is performed.
  • the decryption load unit 404 decrypts the applications 110 and 111 using the restored old encryption / decryption key input from the encryption / decryption key restoration unit 411, and then stores the encryption / decryption key. Using the new encryption / decryption key held in the unit 407, the applications 110 and 111 are re-encrypted.
  • the falsification detection unit 405 executes falsification detection processing of the applications 110 and 111.
  • the falsification detection processing includes a method using a verification certificate added to the applications 110 and 111 and a method of comparing MAC values.
  • the analysis tool detection unit 406 detects an analysis tool such as a debugger when it is installed or operated. This is because it is assumed that an unauthorized attacker installs or operates an analysis tool in order to attack the applications 110 and 111.
  • an analysis tool such as a debugger when it is installed or operated.
  • a detection method for example, a method of searching for a file name, a method of checking whether a special register used by the debugger is used, a method of detecting an interrupt set by the debugger, or the like is used.
  • the encryption / decryption key holding unit 407 holds an encryption / decryption key for encrypting / decrypting the applications 110 and 111.
  • the encryption / decryption key generation unit 408 generates an encryption / decryption key for encrypting / decrypting the applications 110 and 111.
  • the encryption / decryption key distribution unit 409 generates distributed information from the encryption / decryption key using a secret distribution method at the time of initial setting or preparation for the next round.
  • the certificate generation unit 410 generates a certificate used for verifying whether or not the distributed information generated from the encryption / decryption key has been correctly restored.
  • FIG. 4 is a functional block diagram functionally showing the configuration of the access control module 140. As shown in the figure, the access control module 140 includes a receiving unit 501, a transmitting unit 502, and an access information holding unit 503.
  • the receiving unit 501 receives, from the update modules 131, 132, and 133, an access information acquisition request that is information necessary for deleting the altered update module.
  • the transmission unit 502 transmits the access information to the update module that has requested the access information acquisition.
  • the access information holding unit 503 holds, for each of the update modules 131, 132, and 133, access information for deleting the module.
  • Each access information has an update module identifier for identifying an update module to be erased.
  • Each access information is encrypted with an access information acquisition key.
  • the access information holding unit 503 transmits the access information with the identifier of the update module to be deleted to the request source update module.
  • the device 100 includes a CPU (Central Processing Unit) 171, an EEPROM (Electrically Erasable Programmable Read Only Memory) 172, and RAM (Random Access Memory 3 MemoryC 17) 174 and the like. In addition, these are connected via a bus so as to be able to communicate with each other.
  • CPU Central Processing Unit
  • EEPROM Electrically Erasable Programmable Read Only Memory
  • RAM Random Access Memory 3 MemoryC 17
  • the EEPROM 172 stores a protection control module 120, update modules 131, 132, 133, and applications 110, 111, and the like.
  • each functional unit of the various modules is realized.
  • Each functional unit is specifically described by a computer program.
  • the RAM 173 is used as a work area for the CPU 171.
  • the update modules 131, 132, 133 and the applications 110, 111 are loaded on the RAM 173.
  • the update module that is the target of the falsification detection process and the invalidation process is an update module operating on the RAM 173.
  • the NIC 174 is an expansion card for connecting to a network.
  • the access control module 140 and the update module group 130 are incorporated in the OS 150.
  • the application 110 and the application 111 operate on the OS 150, and the protection control module 120 and the boot loader 160 are outside the management of the OS 150.
  • the protection control module 120 and the update module group 130 are activated, and then the application is executed.
  • the application is executed.
  • Configuration of Update Server 200 Next, the configuration of the update server 200 will be described.
  • the update server 200 functions as an unauthorized module identification device that receives an alteration detection result from the update module group 130 of the device 100 and identifies an unauthorized update module to be invalidated based on the received alteration detection result. Furthermore, the update server 200 functions as a software distribution device that distributes update software necessary for updating software (for example, the protection control module 120) operating on the device 100 to the device 100.
  • the update server 200 includes a determination unit 210, an update software distribution unit 220, a module invalidation unit 230, and a communication unit 240.
  • the update server 200 is a computer system including a CPU, a ROM, a RAM, a hard disk unit, and the like. The update server 200 exhibits the above functions by the CPU operating according to the computer program stored in the ROM or the hard disk unit.
  • the determination unit 210 receives the falsification detection result from the update module group 130 of the device 100, and identifies an illegal update module to be invalidated based on the received falsification detection result.
  • the update software distribution unit 220 operates in cooperation with the update modules 131, 132, and 133 when updating the protection control module 120, and securely transmits the update software to the device 100.
  • the module invalidation unit 230 When the module invalidation unit 230 receives an access information acquisition key acquisition request from the update modules 131, 132, and 133, the module invalidation unit 230 transmits the access information acquisition key to the request source update module.
  • the communication unit 240 transmits and receives information between the device 100 and each unit in the update server 200. For example, the communication unit 240 transmits the falsification detection result received from the device 100 to the determination unit 210. Note that for communication between the device 100 and the update server 200, a communication path in which security is ensured, such as data encryption, may be used.
  • FIG. 7 is a functional block diagram functionally showing the configuration of the determination unit 210.
  • the determination unit 210 includes a reception unit 601, a transmission unit 602, an instruction generation unit 603, and a module identification unit 604.
  • the receiving unit 601 receives falsification detection results, distributed information, various requests, and the like from the update modules 131, 132, and 133, and outputs them to the instruction generation unit 603. In addition, the receiving unit 601 receives a notification that processing has been completed from each unit in the update server 200, and outputs the notification to the instruction generating unit 603.
  • the transmission unit 602 outputs the instruction generated by the instruction generation unit 603 to each unit in the update server 200.
  • the instruction generation unit 603 outputs the falsification detection results (hereinafter sometimes referred to as “mutual monitoring results”) received from the update modules 131, 132, and 133 to the module identification unit 604. Also, the instruction generation unit 603 acquires information for identifying an unauthorized update module that has been tampered with from the module identification unit 604, and generates an instruction for each unit in the update server 200 based on the acquired information.
  • the module identification unit 604 determines whether or not each update module has been tampered with using the mutual monitoring results received from the update modules 131, 132, and 133, and identifies an unauthorized update module that has been tampered with.
  • the module identification unit 604 outputs information for identifying an unauthorized update module to the instruction generation unit 603.
  • the module specifying unit 604 uses, for example, a plurality of alteration detection results received from each update module to determine that the majority of update modules are determined to have been “tampered” as unauthorized update modules. Identifies it. Specifically, since the update module group 130 now includes three update modules 131, 132, and 133, an update module that determines that two update modules have been “tampered” is illegally updated. Identify the module.
  • C Update software distribution unit 220
  • FIG. 8 is a functional block diagram showing a functional configuration of the update software distribution unit 220.
  • the update software distribution unit 220 includes a reception unit 701, a transmission unit 702, an encryption key generation unit 703, an encryption processing unit 704, an authentication unit 705, an update module selection unit 706, a control unit 707, a certificate.
  • a generation unit 708, a signature private key holding unit 709, an update software holding unit 710, and an encryption key holding unit 711 are configured.
  • the receiving unit 701 receives the falsification detection result for the protection control module 120 and the mutual monitoring result between the update modules from the update modules 131, 132, and 133.
  • the transmission unit 702 When it is necessary to update the applications 110 and 111 and the protection control module 120 of the device 100, the transmission unit 702 requests the update modules 131, 132, and 133 to perform update processing, update software, keys necessary for decryption, and the like. Send the data.
  • the encryption key generation unit 703 generates an encryption key used when transmitting the update software to the update modules 131, 132, and 133.
  • the encryption processing unit 704 encrypts the update software using the encryption key generated by the encryption key generation unit 703.
  • the encryption processing unit 704 encrypts the encryption key using a key unique to each update module.
  • the encryption key and the update software are not all transmitted to the update modules 131, 132, and 133 at the same time, but are transmitted to the respective update modules at the timing when the respective data is required during the update process. Is done.
  • the authentication unit 705 performs mutual authentication with the update modules 131, 132, and 133 and the protection control module 120.
  • the update module selection unit 706 selects an update module to be used for update processing when the protection control module 120 is updated.
  • the encryption processing unit 704 encrypts the encryption key used for encryption of the update protection control module using the key unique to the update module selected by the update module selection unit 706. Then, the transmission unit 702 sends the encryption key and the protection control module for update to the update module selected by the update module selection unit 706.
  • the control unit 707 controls each component of the update software distribution unit 220.
  • the certificate generation unit 708 generates an authentication certificate using the signature private key for the authentication public keys of the update modules 131, 132, and 133. Also, the certificate generation unit 708 uses the signature private key for the protection control module for update, and uses the signature secret key to generate an update verification certificate for verifying whether or not the protection control module has been correctly updated. Generate.
  • the signature private key holding unit 709 holds a signature private key used when the certificate generation unit 708 generates a certificate.
  • the update software holding unit 710 holds an update protection control module for updating when the protection control module 120 is attacked.
  • FIG. 9 is a functional block diagram showing a functional configuration of the module invalidation unit 230.
  • the module invalidation unit 230 includes a reception unit 801, a transmission unit 802, an access information acquisition key holding unit 803, and an update module selection unit 804.
  • the receiving unit 801 receives an instruction to invalidate an unauthorized update module that has been tampered with from the determining unit 210. In addition, the receiving unit 801 receives an access information acquisition key acquisition request from the update modules 131, 132, and 133.
  • the transmission unit 802 transmits the access information acquisition key to the requesting update module.
  • the access information acquisition key holding unit 803 holds an access information acquisition key that is a key for decrypting the access information held by the access control module 140.
  • the update module selection unit 804 selects an update module for invalidating an unauthorized update module that has been tampered with, and instructs the selected update module to invalidate the unauthorized update module.
  • FIG. 10 is a flowchart showing the overall processing flow of the software update system 10.
  • the software update system 10 first performs an initial setting process (S100).
  • the initial setting processing refers to various key data necessary for updating the protection control module 120, data necessary after software update (distributed information distributed using the secret sharing method), and the like. 1 is a process of embedding in each of 133. The initial setting process is performed when the device 100 is manufactured in a factory. Thereafter, the device 100 is shipped from the factory and used for the user.
  • the protection control module 120 protects the applications 110 and 111 from an attack by an attacker inside the device 100.
  • the update modules 131, 132, and 133 execute falsification detection processing of the protection control module 120 and perform detection processing to check whether or not the protection control module 120 is attacked (S200).
  • step S200 when tampering of the protection control module 120 is detected in step S200, the software update system 10 analyzes the protection control module 120 and performs analysis / determination processing to determine whether or not it is necessary to update (step S200). S300).
  • the software update system 10 performs a mutual authentication process for confirming whether or not the update modules 131, 132, and 133 and the update software distribution unit 220 are correct software (S400).
  • the protection control module for update is installed in the device 100.
  • the protection control module is updated using the distributed information embedded in the update modules 131, 132, and 133.
  • the software update system 10 generates key data and distributed information necessary for the update and performs a next round preparation process embedded in each update module in preparation for the next update of the protection control module (S600). ). Thereafter, the software update system 10 returns to the detection process of step S200 and continues the process.
  • the software update system 10 detects an unauthorized update module that has been altered. Perform invalidation processing to be deleted.
  • FIG. 12 is a sequence diagram of the initial setting process.
  • the software update system 10 installs the apps (110, 111), the protection control module 120, the update modules (131, 132, 133) and the like in the nonvolatile memory of the device 100 at the time of manufacturing the device 100 (S1000).
  • FIG. 11 is a diagram schematically illustrating a key embedded in the device 100.
  • the update module 131 is included in the update module group 130.
  • the update modules 132 and 133 are also included, but are omitted here.
  • the encryption / decryption key is embedded in the protection control module 120, and the signature public key, the verification key, and the authentication key pair are embedded in the update modules 131, 132, and 133 (at this time, the update key is still updated. A set of distributed information is not embedded in the module). Furthermore, update module identifiers for identifying the respective update modules are embedded in the update modules 131, 132, and 133, and are installed in the device 100 in that state.
  • the encryption / decryption key is a key for encrypting and decrypting the applications 110 and 111.
  • the applications 110 and 111 are stored in the nonvolatile memory in an encrypted state using the encryption / decryption key, and are executed after being decrypted by the protection control module 120 using the encryption / decryption key at the time of execution.
  • the device 100 executes a plurality of applications while switching contexts, by encrypting and decrypting data used by the applications 110 and 111 using an encryption / decryption key at the timing of context switching.
  • an analysis tool such as a debugger.
  • the signature public key is a key common to all the update modules.
  • the verification key and the authentication key pair are different in each update module.
  • the device 100 After installing each software in S1000, the device 100 performs initialization by executing software for initial setting, software for testing whether to operate normally, and the like (S1001). In addition, the device 100 outputs an initialization instruction to the protection control module 120 and the update modules 131, 132, and 133.
  • the protection control module 120 generates shared information from the encryption / decryption key using a secret sharing method (S1002).
  • the protection control module 120 generates the same number of shared information as the number of update modules including the shared information holding unit 308.
  • the update modules 131, 132, and 133 all include the shared information holding unit 308, the protection control module 120 generates three pieces of shared information.
  • the protection control module 120 generates an encryption / decryption key certificate using the signature private key (S1003).
  • the encryption / decryption key certificate is a certificate for confirming whether the encryption / decryption key has been correctly restored when the encryption / decryption key is restored.
  • the protection control module 120 transmits the generated shared information and encryption / decryption key certificate to the update modules 131, 132, and 133 (S1004).
  • the protection control module 120 transmits a set of shared information to each update module so that the update modules 131, 132, and 133 hold different sets of shared information. Further, the protection control module 120 transmits arrangement information indicating which distributed information is transmitted to which update module to each update module. The arrangement information transmitted to each update module is the same information.
  • Patent Document 2 A method for generating shared information from the encryption / decryption key using the secret sharing method and a method for transmitting the shared information to the update module are described in detail in pages 47 to 49 of Patent Document 2.
  • the private key d in Patent Document 2 correspond to the encryption / decryption key of the present embodiment
  • making the certificate authority device correspond to the protection control module 120
  • making the shared information holding device correspond to the update modules 131, 132, 133
  • the same method as in Patent Document 2 can be used.
  • FIG. 13 is a flowchart showing the operation of the update module initialization process (S1005 in FIG. 12).
  • update module 131 Although only the update module 131 will be described here, the operations of the update modules 132 and 133 are basically the same.
  • the update module 131 receives the shared information, the arrangement information, and the encryption / decryption key certificate from the protection control module 120, and holds each received information in the shared information holding unit 308 (S1006).
  • the update module 131 verifies the alteration detection certificates of the update modules 132 and 133 and the protection control module 120 that are the alteration detection targets (S1007). This verification is performed by generating a hash value from each module and comparing the generated hash value with the hash value described in each falsification detection certificate.
  • MAC value is generated for each of the update modules 132 and 133 and the protection control module 120. . Then, the generated MAC value is held as a MAC value table (S1009).
  • the update module 131 If at least one hash value does not match the hash value described in the falsification detection certificate (N in S1008), the update module 131 outputs an error and stops (S1010). (4) Operation of Detection Processing Next, details of the detection processing (S200 in FIG. 10) of the software update system 10 will be described using the sequence diagram of FIG.
  • the device 100 is shipped from the factory, sent to the user, and the device 100 is used by the user.
  • the protection control module 120 controls functions such as the decryption load function, the falsification detection function, and the analysis tool detection function inside the device 100, and the applications 110 and 111 are controlled by an attacker. Protect against attacks by.
  • the update modules 131, 132, and 133 detect falsification of the protection control module 120.
  • the alteration detection is performed by calculating the MAC value of the protection control module 120 using the verification key, and comparing the calculated MAC value with the MAC value held in the MAC value table.
  • the protection control module 120 If the MAC values match, it is determined that the protection control module 120 has not been tampered with, and if the MAC values do not match, it is determined that the protection control module 120 has been tampered with.
  • the subsequent processing is also described mainly in the case where the update module 131 detects that the protection control module 120 has been tampered with. However, basically, when the update modules 132 and 133 detect tampering with the protection control module 120, basically. Similar processing is performed.
  • the update module 131 This is notified to the determination unit 210 and other update modules of the update server 200 (S2001).
  • the update module 131 returns to the tamper detection process without notifying the determination unit 210 and other update modules.
  • the update module that has received the notification that the protection control module 120 has been tampered with from another update module performs tampering detection of the protection control module 120 using the verification key and the MAC value (S2002). Then, the falsification detection result is notified to the determination unit 210 and other update modules (S2003).
  • the determination unit 210 receives the falsification detection result from the update modules 131, 132, and 133.
  • the update module group 130 may also perform a mutual monitoring process to identify an unauthorized update module by performing a falsification detection process with each other during the detection process in step S2000. Then, when an unauthorized update module is identified, invalidation processing for invalidating the identified update module may be performed.
  • the determination unit 210 determines that the protection control module 120 is normal based on the received falsification detection result. Or whether it is illegal (whether it has been tampered with).
  • the protection control module 120 determines that the tampering has occurred (tampered), and fewer than a predetermined number of update modules have been tampered with. Is detected, it is determined that the protection control module 120 is normal (not tampered with).
  • the predetermined number may be a majority of the update modules included in the update module group 130.
  • the determination unit 210 determines whether or not the protection control module 120 needs to be recovered with respect to the update module group 130. Then, request notification of falsification information such as which part of the protection control module 120 has been falsified (S3001).
  • the update module group 130 collects the alteration information (S3002) and notifies the determination unit 210 (S3003).
  • the determination unit 210 determines whether to restore the protection control module 120, revokes the device 100, or do nothing based on the falsification information (S3004).
  • the determination unit 210 prepares a protection control module for update (S3006), and instructs the update module group 130 to start the update process (S3007).
  • the server that provides services to the applications 110 and 111 is requested to revoke the device 100 (S3005). If nothing is done (N in S3004), the process returns to the detection process.
  • the determination unit 210 of the update server 200 determines that the protection control module 120 needs to be recovered in the analysis / determination process, the determination unit 210 causes the update software distribution unit 220 to recover the protection control module 120. Instruct.
  • the update software distribution unit 220 instructs the update modules 131, 132, and 133 to start the update process, and then performs a one-to-one mutual authentication process with each update module. This prevents the device 100 from connecting to an unauthorized server and the update server 200 from connecting to an unauthorized device.
  • the update software distribution unit 220 uses a signature private key and a signature public key, and each update module uses an authentication key pair (authentication private key and authentication public key).
  • FIG. 16 is a sequence diagram when the update module 131 authenticates the software distribution unit 220 for update.
  • the update modules 132 and 133 operate in the same manner as the update module 131 in FIG. 16 and authenticate the update software distribution unit 220.
  • the update module 131 generates a random number (challenge data) using a random number generator (S4000), and transmits the generated challenge data to the update software distribution unit 220 (S4001). At this time, an update module identifier for identifying the update module 131 is transmitted together with the challenge data.
  • the update software distribution unit 220 generates signature data using the signature secret key for the received challenge data (S4002), and returns the generated signature data as response data to the update module 131 (S4003).
  • the update module 131 verifies whether the response data matches the signature data of the challenge data using the signature public key (S4004).
  • the update module 131 continues processing. If the response data is not correct and the update software distribution unit 220 is an invalid module (N in S4005), the update module 131 outputs an error and stops processing (S4006).
  • the update software distribution unit 220 authenticates the update modules 131, 132, and 133.
  • FIG. 17 is a sequence diagram when the update software distribution unit 220 authenticates each update module.
  • the update software distribution unit 220 generates a different random number (challenge data) using a random number generator for each update module that has transmitted the challenge data (S4100), and uses the generated challenge data for each update module. (S4101).
  • Each update module generates signature data using the authentication secret key for the received challenge data (S4102), and returns the generated signature data as response data to the update software distribution unit 220.
  • each update module transmits the authentication public key and the authentication key certificate to the update software distribution unit 220 together with the response data.
  • the update software distribution unit 220 receives response data, an authentication public key, and an authentication key certificate from each update module (S4104).
  • the update software distribution unit 220 verifies whether the authentication key certificate is a certificate issued by itself, and further verifies the validity of the authentication public key using the authentication key certificate (S4105). .
  • the update software distribution unit 220 stops the processing (S4106).
  • the update software distribution unit 220 verifies whether the received response data matches the signature data of the challenge data using the authentication public key (S4107). .
  • the update software distribution unit 220 determines whether or not the number of update modules (legitimate update modules) that have returned correct response data is equal to or greater than a preset number required for recovery processing (S4108). .
  • the recovery software distribution unit 220 stops the process because the recovery process cannot be executed (S4106). If the number of valid update modules satisfies the number required for the recovery process, the mutual authentication process is terminated and the process proceeds to the recovery process.
  • the update software distribution unit 220 creates an authentication list in which the update module identifiers of all the update modules whose validity has been confirmed in the mutual authentication process. In subsequent recovery processing, only the update module whose identifier is described in the authentication list is used. (7) Operation of Recovery Process Next, details of the recovery process (S500 in FIG. 10) will be described with reference to FIGS.
  • the recovery process is a process of updating the altered protection control module 120 to a new protection control module when the mutual authentication is successful in the above-described mutual authentication process.
  • FIG. 18 is a flowchart showing the operation during the recovery process.
  • each update module 131, 132, 133 performs a mutual monitoring process (S5000).
  • each update module executes a falsification detection process for another update module.
  • an update process for updating the protection control module 120 is performed using the protection control module for update (S5100).
  • the software update system receives an update trigger from the outside, and uses the new protection control module to update the tampered protection control module 120 (S5000), and the update modules mutually detect tampering. It suffices if there is a mutual monitoring process for recovery (S5100). (8) Mutual Monitoring Processing Here, the details of the mutual monitoring processing (S5000 in FIG. 18) will be described using the sequence diagram of FIG.
  • the update modules 131, 132, and 133 execute a falsification detection process for other update modules in the update module group 130.
  • to which update module the falsification detection process is executed is described in the monitoring pattern held by the update module.
  • information module identifier, memory location, size, address, file name, etc. relating to the module that is the target of alteration detection is described.
  • the update module 131 performs falsification detection processing of the update module 132 (S5001a), the update module 132 performs falsification detection processing of the update module 133 (S5001b), and the update module 133 detects falsification of the update module 131. Processing is performed (S5001c).
  • Each update module calculates the MAC value of each update module 131, 132, 133 using a verification key, and detects tampering by comparing with the MAC value calculated at the time of initial setting, which is stored in the MAC value table. Process.
  • Each update module calculates the hash values of the update modules 131, 132, and 133, and compares the calculated hash value with the hash value described in the certificate added in advance to each update module.
  • the tampering detection process may be performed by the above.
  • Each update module notifies the determination unit 210 of the alteration detection result (S5002).
  • the determination unit 210 receives the falsification detection result from each update module (S5003), and determines whether there is a falsified update module (S5004).
  • the determination unit 210 If it is determined that there is a tampered update module (Y in S5004), the determination unit 210 immediately stops the recovery process (S5005).
  • the certificate generation unit 708 of the update software distribution unit 220 generates an update verification certificate using the signature private key (S5101).
  • the update verification certificate is a certificate for each of the update modules 131, 132, and 133 to check whether the new protection control module has been correctly installed.
  • the update software distribution unit 220 transmits the generated certificate to each update module (S5102).
  • the encryption key generation unit 703 of the update software distribution unit 220 generates two encryption keys (first key and second key) for multiply encrypting the new protection control module (S5103).
  • the encryption processing unit 704 encrypts a new protection control module using the second key, and generates an encrypted new protection control module (S5104).
  • the encryption processing unit 704 further encrypts the encrypted new protection control module using the first key to generate a multiple encrypted new protection control module (S5105).
  • the update software distribution unit 220 selects one valid update module from the update module group 130 (S5106), and notifies the determination unit 210 of the identifier of the selected update module.
  • S5106 an update module other than the unauthorized update module stored in the unauthorized module specifying unit 604 in the determination unit 210 is selected.
  • the update module 131 is selected.
  • the update software distribution unit 220 transmits the multiple encryption new protection control module to the selected update module 131 (S5107), and further transmits the first key (S5108).
  • the update module 131 receives the multiple encryption new protection control module and the first key.
  • the update module 131 decrypts the multiple encrypted new protection control module using the first key, and acquires the encrypted new protection control module (S5109).
  • the update software distribution unit 220 is notified to that effect (S5110).
  • the update software distribution unit 220 selects one update module that is a valid module and different from the update module selected in S5106 from the update module group 130 (S5112).
  • the update module 132 is selected.
  • the update module is selected by selecting an update module other than the unauthorized update module stored in the unauthorized module specifying unit 604 in the determination unit 210 in the same manner as described above.
  • the update software distribution unit 220 transmits the second key to the selected update module 132 (S5113). Further, the update software distribution unit 220 requests the update module 131 to transmit the encrypted new protection control module acquired in S5109 to the update module 132 (S5114).
  • the update module 131 receives the request from the update software distribution unit 220 and transmits the encrypted new protection control module to the update module 132 (S5115).
  • the update module 132 receives the second key from the update software distribution unit 220 and receives the encrypted new protection control module from the update module 131. Then, using the second key, the encrypted new protection control module is decrypted to obtain a new protection control module (S5117).
  • the update module 132 overwrites the protection control module 120 with the new protection control module acquired in S5117 and updates it (S5118). Then, the update module 132 notifies the end of the update to other update modules (S5119). Subsequently, each of the update modules 131, 132, 133 verifies whether or not the protection control module has been correctly updated using the update verification certificate received in advance (S5120), and distributes the verification result to the update software distribution. Notification is made to the unit 220 (S5121).
  • the update software distribution unit 220 determines whether the protection control module has been updated correctly (S5122). If it is determined that the update has not been performed correctly (N in S5121), the update software distribution unit 220 stops the device 100 (S5123).
  • the update software distribution unit 220 notifies each update module of the end of the update process (S5124).
  • Each update module upon receiving the update process end notification, generates a new protection control module MAC value, and writes the set of the generated MAC value and protection control module identifier in the MAC value table (S5125).
  • the update software distribution unit 220 multiplexly encrypts the new protection control module for update using a plurality of keys, and transmits it to the update module group 130.
  • the update module group 130 updates the protection control module 120 with the received new protection control module.
  • the update software distribution unit 220 controls the timing of transmitting a plurality of keys for decrypting the newly encrypted new protection control module to the update module group 130 so that the attacker can encrypt the key. It makes it difficult to obtain new protection control modules that have not been done. (10) Relationship between mutual monitoring process and update process The above-described mutual monitoring process and update process are executed in cooperation with each other.
  • the mutual monitoring process is performed when a plurality of keys are sent from the update software distribution unit 220 to the update module included in the update module group 130 as a transmission destination, and the update module group 130 of the encrypted protection control module for update. Is periodically performed during the decryption process in the update module included in the.
  • the time interval at the regular implementation is, for example, an interval shorter than the time until the update protection control module is completely output to the outside through the communication path. If it takes 1 second to be completely output to the outside, for example, the monitoring process is executed at a timing of 500 milliseconds shorter than that.
  • the device 100 performs a mutual monitoring process (mutual monitoring 1) before the multiple encryption new protection control module is sent from the update server 200. This is because an invalid update module is selected so that update processing is not performed.
  • the device 100 performs a mutual monitoring process (mutual monitoring 2) before the update module 131 receives the first key transmitted by the update server 200, and when the device 100 receives the first key. , Make sure that you have not selected an incorrect update module.
  • the update module 131 receives the first key and decrypts the multiple encryption new protection control module using the first key
  • the decryption process by the update module 131 is periodically interrupted to perform mutual monitoring.
  • the processing (mutual monitoring 3-1, 3-2) is performed.
  • the subsequent processing is the same as above. That is, the device 100 performs the monitoring process (mutual monitoring 4) before the update module 132 receives the second key transmitted by the update server 200, and when the device 100 receives the key, the device 100 performs an unauthorized update. Confirm that the module is not selected in the update process.
  • the update module 132 receives the second key and decrypts the encrypted new protection control module using the second key
  • the decryption process by the update module 132 is periodically interrupted and the mutual monitoring process ( Implement mutual monitoring 5-1, 5-2).
  • a mutual monitoring process (mutual monitoring 6) is performed.
  • the updated protection control module (referred to as “protection control module 121” in the description of FIG. 23 and FIG. 24 in order to distinguish from the protection control module 120 before update) has the update modules 131, 132, 133 is requested to transmit the shared information and encryption / decryption key certificate held by each of them (S5201).
  • Each update module 131, 132, 133 receives the request from the protection control module 121 and transmits the distributed information and the encryption / decryption key certificate (S5202).
  • the protection control module 121 receives the shared information and the encryption / decryption key certificate from each of the update modules 131, 132, and 133 (S5203), and the encryption / decryption key used by the protection control module 120 before the update from the received distributed information. (Hereinafter referred to as “old encryption / decryption key”) is restored (S5204). Further, the protection control module 121 verifies whether or not the old encryption / decryption key has been correctly restored using the encryption / decryption key certificate (S5205).
  • the protection control module 121 starts an unauthorized update module (identifies which update module has transmitted unauthorized distributed information) (S5206).
  • the identified unauthorized update module is notified to the update server 200.
  • the encryption / decryption key generation unit 408 of the protection control module 121 When the old encryption / decryption key has been correctly restored (Y in S5205), the encryption / decryption key generation unit 408 of the protection control module 121 generates a new encryption / decryption key (herein referred to as “new encryption / decryption key”) ( S5207). Then, the decryption load unit 404 decrypts the application (110, 111) encrypted using the old encryption / decryption key, and re-encrypts the application (110, 111) using the new encryption / decryption key (S5208). .
  • the protection control module 121 collects a set of shared information from each update module, and adds identification information for identifying each update module to the collected distributed information.
  • the distributed information set and distributed at the initial design is grouped together. Then, the values of the shared information included in each group are compared, and the shared information having the same value is further combined into one subgroup. Then, all combinations for selecting subgroups one by one from all groups are generated.
  • verification OK Verifies whether the correct old encryption / decryption key was generated.
  • verification pass identification information representing verification OK is added to the subgroup included in the combination.
  • the distributed information included in the subgroup with verification pass identification information is removed.
  • the update module that has transmitted the distributed information having an invalid value can be specified by the identification information added to the distributed information.
  • the update module specified by the identification information is specified as an unauthorized update module.
  • Patent Document 2 The secret key d in Patent Document 2 is made to correspond to the encryption / decryption key of this embodiment, the certificate authority device is made to correspond to the protection control module 121 of this embodiment, and the distributed information holding device is made to correspond to the update modules 131, 132, 133. Thus, the same method as in Patent Document 2 can be used.
  • the protection control module 121 generates shared information from the new encryption / decryption key using the secret sharing method (S6000), and further generates a new encryption / decryption key certificate using the signature secret key (S6001). . Then, the protection control module 121 transmits the generated shared information and encryption / decryption key certificate to each of the update modules 131, 132, 133 (S6002).
  • each update module is transmitted so as to hold a different pair of distributed information.
  • the new encryption / decryption key certificate is transmitted to each of the update modules 131, 132, and 133.
  • Each update module 131, 132, 133 receives the shared information and the new encryption / decryption key certificate from the protection control module 121, and holds the received shared information and the new encryption / decryption key certificate in the shared information holding unit 308. (S6003). (13) Operation of Invalidation Process Next, details of the invalidation process will be described with reference to the sequence diagram of FIG.
  • the determination unit 210 determines which update module has been tampered with based on the mutual monitoring result received from the update modules 131, 132, and 133 (S7001). As a determination method, for example, an update module in which a majority of update modules are determined to be “tampered” is determined to be an unauthorized update module.
  • the determination unit 210 outputs an invalidation instruction to the module invalidation unit 230 together with the identification information of the altered update module (S7002).
  • the module invalidation unit 230 requests one of the update modules 131 and 132 determined to have not been tampered (herein, the update module 131) to invalidate the tampered update module 133 (S7003). .
  • the update module 131 When receiving the invalidation request for the update module 133 from the module invalidation unit 230, the update module 131 requests the module invalidation unit 230 to send an access information acquisition key for invalidating the update module 133 ( S7004). Further, the update module 131 requests the access control module 140 to acquire access information for invalidating the update module 133 (S7005).
  • the module invalidation unit 230 determines whether or not the update module 131 is a valid (not tampered) update module, and the requested access information acquisition key is invalid (tampered). It is confirmed whether or not the access information acquisition key is for invalidating the update module 133 (S7006). This confirmation is performed using the information of the update module notified from the determination unit 210 to the module invalidation unit 230.
  • the update module 131 receives the access information acquisition key from the module invalidation unit 230, and further receives the encrypted access information from the access control module 140 (S7009).
  • the update module 131 acquires access information from the access information acquisition key and the encrypted access information (S7010).
  • the acquired access information is a dedicated driver for erasing the update module 133.
  • the update module 131 uses the dedicated driver to delete the unauthorized update module 133 that has been tampered with (S7011).
  • the update module 131 deletes the access information acquisition key, the encrypted access information, the access information, and the like, and transmits a completion notification to the module invalidation unit 230 (S7012).
  • the module invalidation unit 230 transmits an invalidation completion notification to the determination unit 210 (S7013).
  • step S7003 the update module 131 is requested to invalidate the update module 133 that has been tampered with.
  • the unauthorized module according to the present invention is used.
  • One legitimate module may be selected using the result of the specific process.
  • the invalidation processing considering the deletion of the distributed information is described in detail as “withdrawal processing” from page 56 to page 64 of Patent Document 2.
  • the private key d in Patent Document 2 correspond to the encryption / decryption key of the present embodiment
  • the distributed information holding device correspond to the update modules 131, 132, and 133 of the present embodiment
  • the same method as Patent Document 2 can be achieved. Is available.
  • the protection control module 120 is used for the invalidation process, the distributed information may be generated and distributed again by the same method as in the initial design.
  • Embodiment 2 Here, Embodiment 2 of the unauthorized module invalidation system according to the present invention will be described with reference to the drawings.
  • the determined update module is Judged as an invalid update module.
  • the update module has been tampered with, the module that has not been tampered with is misjudged as “tampered”, or the module that has actually been tampered with is “tampered”. There is a possibility of misjudging.
  • Non-Patent Document 3 describes a technique for diagnosing a failure by mutual monitoring of modules. However, since this technique limits the number of failures in the system, there is a possibility of erroneous determination as in the case of the first embodiment.
  • the software update system 10a is configured by connecting an information processing apparatus 100a and an unauthorized module specifying apparatus 200a via a network.
  • the information processing apparatus 100a includes a module 131, a module 132, and a module 133. These modules mutually perform falsification detection processing, and transmit the falsification detection result to the unauthorized module identification device 200a via the network. Note that the information processing apparatus 100a may be configured to include more modules.
  • the unauthorized module specifying device 200a includes a receiving unit 2310, a determining unit 210a, and an invalidating unit 2320.
  • the receiving unit 2310 receives the falsification detection result from the modules 131, 132, 133 of the information processing apparatus 100a.
  • the determination unit 210a assumes that one of the plurality of modules is a normal module, determines whether there is a contradiction in the received plurality of alteration detection results based on the assumption, and if there is a contradiction, the normal module The module assumed to be is identified as an illegal module.
  • the determination unit 210a includes a temporary normal module group storage unit 2330, an assumption unit 2340, a temporary normal module group generation unit 2350, a contradiction detection unit 2360, and a specification unit 2370.
  • Temporary normal module group storage means 2330 stores module identification information assumed to be a normal module.
  • the assumption means 2340 selects one of the modules 131, 132, and 133, assumes a normal module, and records the identification information in the temporary normal module group storage means 2330.
  • the provisional normal module group generation unit 2350 starts from the module assumed to be a normal module by the assumption unit 2340, assumes that a module in which falsification is not detected as a result of the falsification detection processing is a normal module, and identifies identification information as the provisional normal module group. The procedure for recording in the storage unit 2330 is repeated.
  • the contradiction detection unit 2360 determines whether or not there is a contradiction in the alteration detection result by the module corresponding to the identification information stored in the provisional normal module group storage unit 2330.
  • the identification unit 2370 identifies the module assumed to be a normal module by the assumption unit 2340 as an illegal module.
  • FIG. 80 is a block diagram showing a configuration of a software update system 10b that is an example for more specifically describing the second embodiment.
  • the software update system 10b includes a device 100b as an information processing apparatus according to the present invention and an update server 200b as an unauthorized module specifying apparatus according to the present invention.
  • the device 100b and the update server 200b are connected via a network.
  • the device 100b includes an application 110, an application 111, a protection control module 120, an update module group 130b, and an access control module 140.
  • the update server 200b includes a determination unit 210b, an update software distribution unit 220, a module invalidation unit 230, and a communication unit 240.
  • FIG. 26 is a diagram illustrating a configuration of the update module group 130b according to the second embodiment.
  • the update module group 130b of the second embodiment includes seven update modules 131, 132, 133, 134, 135, 136, and 137.
  • the configuration of each update module is the same as that in the first embodiment (see FIG. 2).
  • FIG. 27 is a functional block diagram functionally showing the configuration of the determination unit 210b according to the second embodiment.
  • the determination unit 210b includes a reception unit 601, a transmission unit 602, an instruction generation unit 603, a module identification unit 604b, and a circulation detection unit 606.
  • the module specifying unit 604 includes an unauthorized module specifying unit 605.
  • the module specifying unit 604 includes an unauthorized module specifying unit 605 and a circulation detecting unit 606.
  • A Configuration of Unauthorized Module Identification Unit 605
  • a detailed configuration of the unauthorized module identification unit 605 that is a characteristic component of the second embodiment will be described.
  • FIG. 28 is a functional block diagram showing a functional configuration of the unauthorized module specifying unit 605.
  • the unauthorized module specifying unit 605 includes a specifying instruction receiving unit 651, a specifying result transmitting unit 652, a normal module assumption unit 653, a verification result determining unit 654, a temporary normal update module group extracting unit 655, and a contradiction detecting unit. 656, and a circulation monitoring pattern acquisition unit 657.
  • the specific instruction receiving unit 651 When the specific instruction receiving unit 651 receives the specific instruction of the unauthorized update module and the mutual monitoring result (falsification detection result) of the update module group 130b from the instruction generation unit 603, the specific instruction receiving unit 561 assumes the normal module assumption. The instruction is output to the unit 653.
  • the identification result transmission unit 652 When the identification result transmission unit 652 receives the identification result of the unauthorized update module from the contradiction detection unit 656, the identification result transmission unit 652 outputs the identification result to the instruction generation unit 603.
  • the normal module assumption unit 653 When the normal module assumption unit 653 receives an instruction from the specific instruction reception unit 651, the normal module assumption unit 653 selects one update module in the update module group 130, and assumes that the selected update module is a normal update module. Then, the selected update module is set as a temporary normal update module group.
  • the temporary normal update module group is a conceptual group including update modules assumed to be normal modules by the normal module assumption unit 653. Specifically, the normal module assumption unit 653 generates provisional normal update module group configuration information including identification information of all the update modules assumed to be normal.
  • the normal module assumption unit 653 outputs the identification number of the selected update module to the contradiction detection unit 656. Further, the temporary normal update module group configuration information is output to the verification result determination unit 654.
  • the normal module assumption unit 653 outputs a circulation monitoring pattern acquisition instruction to the circulation monitoring pattern acquisition unit 657.
  • the normal module assumption unit 653 assumes that update modules other than the update module in the circulation monitoring pattern are normal update modules. Details of the circulation monitoring pattern will be described later.
  • the normal module assumption unit 653 assumes that an update module different from the selected update module is a normal update module and includes it in the temporary normal update module group. Then, the temporary normal update module group configuration information is updated. The normal module assumption unit 653 outputs the updated temporary normal update module group configuration information to the verification result determination unit 654.
  • the verification result determination unit 654 determines a falsification detection result for another update module by the update module in the temporary normal update module group.
  • the verification result determination unit 654 regards the verified update module as a normal update module when the alteration detection result for the other update modules by the update module in the temporary normal update module group is normal.
  • an update module that is determined to be “normal” by a normal update module can be regarded as a normal update module.
  • the verification result determination unit 654 outputs the update module identification information regarded as normal and the temporary normal update module group configuration information received from the normal module assumption unit 653 to the temporary normal update module group extraction unit 655.
  • the verification result determination unit 654 outputs that fact to the temporary normal update module group extraction unit 655.
  • the verification result determination unit 654 performs the same processing when the temporary normal update module group configuration information is received from the temporary normal update module group extraction unit 655.
  • the temporary normal update module group extraction unit 655 receives the identification number of the update module that can be regarded as normal and the temporary normal update module group configuration information. Then, the received identification number is added to the received provisional normal update module group configuration information to update the configuration information. The temporary normal update module group extraction unit 655 outputs the updated temporary normal update module group configuration information to the verification result determination unit 654.
  • the temporary normal update module group extraction unit 655 Upon receiving a notification that there is no update module that can be considered normal from the verification result determination unit 654, the temporary normal update module group extraction unit 655 outputs temporary normal update module group configuration information to the contradiction detection unit 656.
  • the contradiction detection unit 656 When the contradiction detection unit 656 receives provisional normal update module group configuration information from the temporary normal update module group extraction unit 655, the contradiction detection unit 656 performs contradiction detection processing. Details will be described later.
  • the normal module assumption unit 653 can specify that the update module assumed to be normal is an illegal update module. Accordingly, the contradiction detection unit 656 notifies the identification result transmission unit 652 that an unauthorized update module has been identified. When no contradiction is detected, the contradiction detection unit 656 notifies the normal module assumption unit 653 that there is no contradiction.
  • the update module in the circulation monitoring pattern has performed the falsification detection process on the other update modules in the circulation monitoring pattern. As a result, it is determined whether there is an update module determined to be invalid. If there are unauthorized update modules, all update modules included in the circulation monitoring pattern are identified as unauthorized modules.
  • the contradiction detection unit 656 verifies whether or not there is a contradiction in the detection result of the same update module outside the circulation monitoring pattern that the update module in the circulation monitoring pattern has performed the falsification detection processing. When there is a contradiction, all update modules included in the circulation monitoring pattern are identified as illegal modules.
  • the contradiction detection unit 656 outputs the fact to the specification result transmission unit 652 and the normal module assumption unit 653.
  • FIG. 29 is a functional block diagram showing a functional configuration of the circulation detection unit 606.
  • the circulation detection unit 606 includes an acquisition instruction reception unit 661, a circulation monitoring pattern transmission unit 662, a circulation monitoring pattern acquisition unit 663, an acquired circulation monitoring pattern storage unit 664, a monitoring pattern storage unit 665, and a circulation.
  • the monitoring pattern storage unit 666 is configured.
  • the acquisition instruction receiving unit 661 outputs an instruction to the circulation monitoring pattern acquisition unit 663 when receiving the acquisition instruction of the circulation monitoring pattern from the unauthorized module identification unit 605.
  • the circulation monitoring pattern transmission unit 662 outputs the acquired circulation monitoring pattern to the unauthorized module identification unit 605.
  • the circulation monitoring pattern acquisition unit 663 reads the circulation monitoring pattern from the circulation monitoring pattern storage unit 666, and all the results of the alteration detection processing performed by the group of update modules included in the read circulation monitoring pattern circulating in one direction are normal. Judge if there is. If all are normal, the circulation monitoring pattern acquisition unit 663 outputs the circulation monitoring pattern read from the circulation monitoring pattern storage unit 666 to the circulation monitoring pattern transmission unit 662. Further, the circulation monitoring pattern is output to the acquired circulation monitoring pattern storage unit 664.
  • the acquired circulation monitoring pattern storage unit 664 stores the circulation monitoring pattern acquired from the circulation monitoring pattern acquisition unit 663.
  • the monitoring pattern storage unit 665 stores a monitoring pattern between update modules included in the update module group 130b.
  • the monitoring pattern describes information related to a monitoring target (verification target) module when the update modules 131 to 137 included in the update module group 130b mutually perform falsification detection processing.
  • the monitoring pattern describes a module identifier, a position on the memory, a size, an address, a file name, and the like.
  • the monitoring pattern is represented by a directed graph.
  • the arrow points from the monitoring source (verification source) update module to the monitoring destination (verification destination) update module.
  • the update module 131 performs a falsification verification process of the update module 132. Since the arrow 2001 is directed from the update module 131 to the update module 134, the update module 131 further performs a falsification verification process for the update module 134. Since the arrow 2003 points from the update module 133 to the update module 131, the update module 133 performs a falsification detection process for the update module 131.
  • the circulation monitoring pattern storage unit 666 acquires a monitoring pattern stored in the monitoring pattern storage unit 665, detects a group of update modules that perform tampering detection processing by circulating in one direction from the entire monitoring pattern, and performs circulation. Generate a monitoring pattern. Then, the circulation monitoring pattern storage unit 666 stores the generated circulation monitoring pattern.
  • the circulation monitoring pattern describes information related to a monitoring target (verification target) module for a plurality of update modules that circulate in one direction and perform falsification detection processing. Specifically, the circulation monitoring pattern describes a module identifier, a memory location, a size, an address, a file name, and the like.
  • the group of update modules that perform the falsification detection process while circulating in one direction are, for example, the update module 131, the update module 132, and the update module 133. As indicated by the arrows in FIG. 30, the update module 131 verifies the update module 132, the update module 132 verifies the update module 133, and the update module 133 verifies the update module 131.
  • the information describing these update modules 131, 132, and 133 is a circulation monitoring pattern.
  • the update module 131, the update module 132, the update module 135, the update module 137, and the update module 133 are also circulated in one direction to perform the falsification detection process.
  • the update module 133, the update module 136, and the update module 137 also circulates in one direction to perform falsification detection processing.
  • the circulation monitoring pattern storage unit 666 can generate a plurality of circulation monitoring patterns from the monitoring patterns of FIG. (B) Contradiction of Mutual Monitoring Result (Falsification Detection Result)
  • the update modules 131 to 137 transmit the respective falsification detection results to the determination unit 210b of the update server 200b.
  • FIG. 31 is a diagram illustrating a detection result received by the determination unit 210b.
  • the detection result “not tampered” is represented by a circle mark corresponding to the arrow, and the detection result “tampered” is represented by a cross mark corresponding to the arrow. Represents.
  • a circle mark 2010 indicates that the update module 131 is determined as “not tampered” as a result of performing the alteration detection process of the update module 132.
  • a circle 2011 indicates that the update module 131 is determined as “not tampered” as a result of performing the falsification detection process of the update module 134.
  • a circle mark 2012 indicates that the update module 133 has been determined as “not tampered” as a result of performing the falsification detection process of the update module 131.
  • the x mark 2013 indicates that the update module 134 has been determined to be “tampered” as a result of the falsification detection processing of the update module 136.
  • the x mark 2014 indicates that the update module 133 is determined to be “tampered” as a result of performing the falsification detection process of the update module 136.
  • the update module 132 is a normal update module.
  • the update modules 133 and 135 are determined as “not tampered” by the update module 132 as indicated by the circles 2015 and 2016. It can be assumed that the update modules 133 and 135 determined as “not tampered” by the normal update module 132 are both normal modules.
  • FIG. 33 is a flowchart showing the operation of the unauthorized module specifying process.
  • the unauthorized module identification unit 605 repeats the processing from step S8001 to step S8006 for all the update modules (S8000).
  • the normal module assumption unit 653 assumes that the update module 131 is a normal update module, and generates a temporary normal update module group including only the update module 131 (S8001).
  • the verification result determination unit 654 determines whether or not there is an update module determined as “not falsified (normal)” in the falsification detection process by the update module 131 included in the temporary normal update module group. (S8002).
  • the update module 132 and the update module 134 are determined to be normal as represented by the circles 2021 and 2022.
  • the verification result determination unit 654 When there is an update module determined to be normal (Y in S8002), the verification result determination unit 654 outputs the update module 132 and update module 134 identification information determined to be normal to the temporary normal update module group extraction unit 655. To do.
  • the temporary normal update module group extraction unit 655 adds the received identification information to the temporary normal update module group. Thereby, the update module 132 and the update module 134 determined to be normal are added to the temporary normal update module group (S8003).
  • the verification result determination unit 654 determines whether there is an update module determined to be normal in the falsification detection processing by the update module 132 and the update module 134 included in the temporary normal update module group (S8002). As indicated by a circle 2023, since the update module 133 is determined to be normal, the update module 133 is added to the temporary normal update module group (S8003).
  • the verification result determination unit 654 determines whether there is an update module determined to be normal in the falsification detection process by the update module 133 included in the temporary normal update module group (S8002). As represented by the circles 2024 and 2025, the update module 131 and the update module 136 are determined to be normal, so the update module 136 is added to the temporary normal update module group (S8003).
  • the contradiction detection unit 656 verifies the update module included in the temporary normal update module group. It is determined whether there is a contradiction in the results (S8004).
  • the provisional normal update module group 2031 shown in FIG. 34 is formed.
  • the verification result of the update module included in the provisional normal update module group 2031 is viewed, the verification result for the update module 136 by the update module 133 is ⁇ mark 2025, whereas the verification for the update module 136 by the update module 134 is performed. Since the result is x mark 2026, there is a contradiction in the verification result.
  • the update module 131 assumed to be normal in step S8001 has an incorrect assumption. That is, the update module 131 is identified as an unauthorized update module (S8005).
  • step S8004 If there is no contradiction in the temporary normal update module (N in S8004), the update module 131 assumed to be normal is not specified in step S8001 (S8006).
  • step S8006 the processing from step S8001 to step S8006 is performed.
  • step S8001 to step S8006 is repeated for all the update modules included in the update module group 130b (S8007).
  • the unauthorized module identification process in the second embodiment focuses on one update module as a determination target, assumes that the update module is a normal module, and detects falsification of each update module based on the assumption. Verify whether the results are inconsistent. If there is a contradiction, the update module to be determined is identified as an invalid module.
  • the determination unit 210b can effectively identify an unauthorized update module that has falsely notified the falsification detection result using a logical verification method. Then, the determination unit 210b can appropriately exclude the unauthorized update module by outputting the specified invalid update module invalidation instruction.
  • (B) Case of Circulation Monitoring Pattern Next, the illegal module specifying process when the circulation monitoring pattern is included in the monitoring pattern between the update modules included in the update module group 130b will be described.
  • the update module 133, the update module 136, and the update module 137 circulate in one direction and perform the falsification detection process as indicated by arrows 2041, 2042, and 2043. As indicated by the circles 2045, 2046, and 2047, all the tamper detection results are normal.
  • the update module 133, the update module 136, and the update module 137 can be handled as a group in the unauthorized module specifying process.
  • the update module 133 when the update module 133 is identified as an unauthorized update module, the falsification detection result ( ⁇ mark 2047 in FIG. 35) of the update module 133 by the update module 137 is an error. Then, the update module 137 is highly likely to be an unauthorized update module that cannot detect falsification correctly. Furthermore, when the update module 137 is an unauthorized update module, the falsification detection result ( ⁇ mark 2046 in FIG. 35) of the update module 137 by the update module 136 is an error. In this case, the update module 136 is also likely to be an unauthorized update module that cannot detect falsification correctly.
  • the update modules 133, 136, and 137 can be identified as a group and all can be identified as unauthorized update modules.
  • the update module 136 and the update module 137 perform tampering detection processing with each other.
  • the update module 136 determines that the update module 137 is “tampered”, and the update module 137 determines that the update module 136 is “tampered”.
  • the update modules 133, 136, and 137 can be identified as a group and all can be identified as unauthorized update modules. .
  • the update modules 131, 132, and 133 can be identified as a group and all can be identified as unauthorized update modules.
  • the circulation monitoring pattern acquisition unit 663 refers to the circulation monitoring pattern storage unit 666 to determine whether or not there is a circulation monitoring pattern in the monitoring patterns of the update module group 130b (S8101). If there is no circulation monitoring pattern (N in S8101), the unauthorized module specifying process is terminated.
  • step S8105 If all are not normal (N in S8102), the update modules in the circulation monitoring pattern cannot be treated as a group. Therefore, the process proceeds to step S8105.
  • the update module in the circulation monitoring pattern determines whether the verification results match for the same update module that performs the tampering detection process. (S8103).
  • circulation size the number of update modules included in the circulation monitoring pattern
  • the greater the size of the cycle the lower the likelihood that all verification results will be normal.
  • an unauthorized module when there are a plurality of circulation monitoring patterns, an unauthorized module is efficiently managed by performing unauthorized module identification processing preferentially from a circulation monitoring pattern with a small circulation size. Discover and disable.
  • the circulation monitoring pattern After all the update modules in the circulation monitoring pattern are determined to be illegal modules, if the update module outside the circulation monitoring pattern determines that any of the update modules included in the circulation monitoring pattern is normal, the circulation monitoring pattern It can be determined that the outside update module is an unauthorized update module.
  • the circulation monitoring pattern storage unit 666 detects a plurality of circulation monitoring patterns from the monitoring pattern storage unit 665, in addition to the circulation monitoring pattern described above, the circulation monitoring pattern storage unit 666 shown in FIG. A pattern list is generated and stored.
  • the circulation monitoring pattern list is a list in which information related to the circulation monitoring pattern is described for each of the plurality of circulation monitoring patterns included in the monitoring pattern.
  • FIG. 39 is a diagram showing a data configuration of the circulation monitoring pattern list 2100.
  • the circulation monitoring pattern list 2100 is modified for each circulation monitoring pattern with respect to the size of the circulation, the identification information of the update modules constituting the circulation monitoring pattern, and the update modules in the circulation monitoring pattern.
  • the number of update modules outside the circulation monitoring pattern that are performing the detection process (herein referred to as “input to circulation”) is stored in association with each other.
  • No. One circulation monitoring pattern has a circulation size of 3, and includes update modules 131, 132, and 133.
  • FIG. 40 is a diagram showing a data configuration of the circulation monitoring pattern list 2200.
  • the information about each circulation monitoring pattern is arranged in the order of decreasing circulation size. Further, when there are a plurality of circulation monitoring patterns having the same circulation size, the number of external update modules (inputs to the circulation) for verifying the update modules in the circulation monitoring pattern is arranged in descending order.
  • the circulation monitoring pattern acquisition unit 663 refers to the circulation monitoring pattern storage unit 666 to determine whether or not there is a circulation monitoring pattern in the monitoring patterns of the update module group 130b (S8111). If there is no circulation monitoring pattern (N in S8111), the unauthorized module specifying process is terminated.
  • the circulation monitoring pattern acquisition unit 663 searches the circulation monitoring pattern list stored in the circulation monitoring pattern storage unit 666 for a circulation monitoring pattern having the smallest circulation size. (S8112). Furthermore, when there are a plurality of circulation monitoring patterns having the same circulation size, the circulation monitoring pattern acquisition unit 663 selects a circulation monitoring pattern having a large number of external update modules for verifying the update modules in the circulation monitoring pattern. Select (S8113).
  • the circulation monitoring pattern acquisition unit 663 determines whether or not all the monitoring results of the selected circulation monitoring pattern are normal (S8114).
  • the contradiction detection unit 656 updates the update module determined to be invalid as a result of the falsification detection processing of the other update modules in the circulation monitoring pattern being performed by the update module in the circulation monitoring pattern. It is confirmed whether the module exists (S8115).
  • step SS8118 If there is an update module determined to be illegal (Y in S8115), all update modules in the circulation monitoring pattern are specified as illegal update modules (S8116), and the process proceeds to step SS8118.
  • the contradiction detection unit 656 determines that the update module within the circulation monitoring pattern has detected the alteration detected by the same update module outside the circulation monitoring pattern. It is determined whether or not there is a contradiction (S8117).
  • the circulation monitoring pattern acquisition unit 663 refers to the circulation monitoring pattern list stored in the circulation monitoring pattern storage unit 666, and determines whether there is another circulation monitoring pattern. (S8118).
  • the circulation monitoring pattern acquisition unit 663 selects a circulation monitoring pattern whose circulation size is equal to or larger than the circulation size of the circulation monitoring pattern targeted last time and which is the minimum. Select (S8119). Then, the process returns to step S8113 to continue the processing.
  • the protection control module 120 creates shared information from the encryption / decryption key using the secret sharing method, and transmits the generated shared information to each update module.
  • the protection control module 120 in order to prevent a situation in which the encryption / decryption key cannot be restored, if there is a circulation monitoring pattern, each update is performed based on the configuration of the circulation monitoring pattern. Send distributed information to the module.
  • FIG. 43 is a diagram illustrating an example of a monitoring pattern.
  • the update modules 131, 132, 133 and the update modules 133, 136, 137 are circulation monitoring patterns.
  • the control module 120 cannot restore the encryption / decryption key.
  • the protection control module 120 When there is shared information that only the update modules 133, 136, and 137 hold and the other update modules do not hold, when all of the update modules 133, 136, and 137 are invalidated, the protection control module 120 The encryption / decryption key cannot be restored.
  • the protection control module 120 updates the update module 131 for all of the shared information 1, shared information 2, shared information 3, shared information 4, shared information 5, shared information 6, and shared information 7, as shown in FIG. , 132, 133 and the shared information held only by the update modules 133, 136, 137 are transmitted to the respective update modules.
  • Embodiment 3 Here, another embodiment will be described. 3.1 Tamper monitoring system 10ca A falsification monitoring system 10ca as another embodiment will be described with reference to the configuration diagram shown in FIG.
  • the falsification monitoring system 10ca includes an information security device 100ca and a management device 200ca.
  • the information security device 100ca includes a plurality of monitoring modules 131ca, 132ca, 133ca, and 134ca that monitor tampering.
  • the management device 200ca receives from the information security device 100ca the reception unit 240ca that receives the monitoring results of the other monitoring modules by each monitoring module, and the presence of a normal monitoring module that has not been tampered with using the received monitoring results. It is assumed that a detection unit 678ca to detect, a first assumption unit 673ca that assumes that one monitoring module selected from the monitoring modules has been tampered with when the detection is made, and a tampering is assumed. From the monitoring module as a starting point, using the received monitoring result, a procedure that assumes that the monitoring module that is assumed to be tampered with is the normal one that has been tampered with is unprocessed.
  • a second hypothesis 679ca to be applied in a chain and the second hypothesis 67 As a result of the application of the procedure by ca, it is determined whether or not all the monitoring modules are assumed to be tampered. When the determination is made, the monitoring module assumed to be tampered first is changed to a normal monitoring module. It is comprised from the judgment part 676ca which determines.
  • the detection unit 678ca since the detection unit 678ca detects the presence of a normal monitoring module that has not been tampered with, at least one monitoring module is normal.
  • the assumption by the first assumption unit 673ca is reversed, and the monitoring module assumed to be falsified by the first assumption unit 673ca is determined as a normal monitoring module.
  • the normal monitoring module can be determined as described above, the monitoring result of the normal monitoring module is reliable and can be used effectively.
  • the software update system 10cb uses a method of specifying a normal update module that has not been tampered with in the selection of the update module in the update process (step S5106 in FIG. 20 and step S5112 in FIG. 21).
  • a normal update module can be logically specified from among a plurality of update modules, so that the protection control module can be safely updated using the specified normal update module.
  • the software update system 10cb includes an update server 200cb (not shown) and the device 100.
  • the device 100 has the same configuration as the device 100 of the first embodiment.
  • the update server 200cb has a configuration similar to that of the update server 200 of the first embodiment, and includes a determination unit 210cb shown in FIG. 45 instead of the determination unit 210 of the update server 200.
  • Other configurations are the same as those of the update server 200. Below, it demonstrates centering around difference with the update server 200.
  • the determination unit 210cb has a configuration similar to that of the determination unit 210b illustrated in FIG.
  • the determination unit 210cb includes a module specification unit 604cb as shown in FIG. 45 instead of the module specification unit 604b of the determination unit 210b.
  • the module specifying unit 604cb includes an unauthorized module specifying unit 605 and a normal module specifying unit 607 as shown in FIG.
  • the unauthorized module specifying unit 605 is the same as the unauthorized module specifying unit 605 shown in FIG.
  • the normal module specifying unit 607 will be described below.
  • (3) Normal module identification unit 607 The normal module specifying unit 607 specifies normal update modules that have not been tampered with, using the mutual monitoring results of the update modules in the device 100 as described below.
  • the normal module specifying unit 607 includes a specifying instruction receiving unit 671, a specifying result transmitting unit 672, an illegal module assumption unit (also referred to as a first assumption unit) 673, a verification result determination unit 674, and a temporary illegal update.
  • the module group extraction unit 675, the extraction result determination unit 676, the circulation monitoring pattern determination unit 677, and the abnormality detection unit 678 are configured.
  • the verification result determination unit 674 and the temporary unauthorized update module group extraction unit 675 constitute a second assumption unit 679.
  • the second hypothesis unit 679 determines that the update module assumed to be tampered is normal by using the received monitoring result, starting from the update module assumed to be tampered by the unauthorized module assumption unit 673. The procedure assuming that the update module to be tampered with is applied to the unprocessed update modules in a chain.
  • the specific instruction receiving unit 671 receives a normal module specifying instruction indicating a specific instruction of a normal update module from the instruction generating unit 603. When the normal module specifying instruction is received, the normal module specifying instruction is output to the abnormality detecting unit 678.
  • the specific instruction receiving unit 671 receives the update module list from the instruction generating unit 603.
  • the update module list includes identification numbers for identifying all the update modules constituting the update module group 130 in the device 100.
  • the specific instruction reception unit 671 outputs the received update module list to the unauthorized module assumption unit 673 and the extraction result determination unit 676.
  • the specific instruction receiving unit 671 receives the monitoring result of the update module group 130 in the device 100 from the device 100 via the network 5, the communication unit 240, the receiving unit 601, and the instruction generating unit 603.
  • the received monitoring result of the update module group 130 is output to the abnormality detection unit 678, the unauthorized module assumption unit 673, the circulation monitoring pattern determination unit 677, and the verification result determination unit 674.
  • the abnormality detection unit 678 detects the presence of a normal update module that has not been tampered with, using the received monitoring result, as described below.
  • the abnormality detection unit 678 uses the monitoring result received last time and the monitoring result received this time, determines that all the update modules are normal based on the monitoring result received last time, and received the monitoring result received this time. As a result, if it is not determined that all the update modules are normal, the presence of a normal update module that has not been tampered with is detected.
  • the time interval between the previous monitoring and the current monitoring is assumed to be smaller than a predetermined threshold.
  • abnormality detection unit 678 will be described in more detail.
  • the abnormality detecting unit 678 receives the normal module specifying instruction from the specifying instruction receiving unit 671.
  • the abnormality detecting unit 678 receives the monitoring result (the latest monitoring result) of the update module group 130 in the device 100 from the specifying instruction receiving unit 671. Further, the result of the previous monitoring of the update module group 130 in the device 100 is received from the specific instruction receiving unit 671.
  • the previous monitoring indicates the monitoring performed one time before the latest monitoring.
  • the device 100 may be regularly or irregularly spaced at regular intervals (eg, 10-20 times a month, 5-6 times a week, 2-3 times a day, once an hour, etc.) , Monitoring is repeated.
  • the time interval between the previous monitoring and the current monitoring is smaller than a predetermined threshold.
  • examples of the predetermined threshold are 5 days, 3 days, 1 day, 12 hours, 6 hours, 3 hours, 1 hour, and the like.
  • the update server 200cb cumulatively stores the monitoring results in each monitoring.
  • the device 100 repeats monitoring regularly or irregularly at a close interval, all of the period from the first monitoring time point to the next second monitoring time point is obtained. It can be assumed that the situation where the update module is tampered with is avoided.
  • the anomaly detection unit 678 determines whether or not all the latest monitoring results are normal using the received latest monitoring results. When all the latest monitoring results are normal, a normal result indicating that all the latest monitoring results are all normal is output to the instruction generation unit 603 via the identification result transmission unit 672, and the module is identified. The unit 604cb ends the process. In this case, since all the update modules are normal, there is no need to perform normal update module identification processing.
  • the abnormality detection unit 678 determines whether all the previous monitoring results are normal using the received previous monitoring results. To do. If all the previous monitoring results are not determined to be normal, a result indicating that is output to the instruction generation unit 603 via the identification result transmission unit 672, and the module identification unit 604cb ends the processing. To do. In this case, since there is a possibility that all the update modules are not normal, normal update module identification processing is not performed.
  • the abnormality detection unit 678 controls the other components configuring the normal module specifying unit 607 to perform normal module specifying processing. Further, an unauthorized module specifying instruction indicating that an unauthorized update module is specified is output to the circulation monitoring pattern determination unit 677.
  • Circulation monitoring pattern determination unit 677 receives the unauthorized module specifying instruction from the abnormality detecting unit 678 and receives the monitoring result of the update module group 130 from the specifying instruction receiving unit 671. When the illegal module specifying instruction is received, the circulation monitoring pattern determination unit 677 transmits a circulation monitoring pattern acquisition instruction to the circulation detection unit 606. The circulation detection unit 606 transmits one or more circulation monitoring patterns to the circulation monitoring pattern determination unit 677 if present. Next, the circulation monitoring pattern determination unit 677 receives the circulation monitoring pattern from the circulation detection unit 606.
  • the circulation monitoring pattern determination unit 677 verifies whether there is a contradiction in the monitoring results of the plurality of update modules indicated by the received circulation monitoring pattern, using the received monitoring result. If there is a contradiction, all the update modules included in the received circulation monitoring pattern are identified as unauthorized update modules, and the unauthorized identification numbers that identify all the update modules identified as unauthorized are illegal. It transmits to the module assumption part 673.
  • the circulation monitoring pattern can be briefly described as follows.
  • the update module to be monitored is defined for the update module by the cyclic monitoring pattern.
  • the second update module to be monitored by the first update module monitors the first update module, or intervenes with one or more update modules, to update the first update module. Indicates that the module is monitored.
  • the circulation monitoring pattern determination unit 677 illegally identifies the plurality of update modules related to the circulation monitoring pattern when the plurality of monitoring results for the other one update module by the plurality of update modules related to the circulation monitoring pattern do not match. Specific update module.
  • an unauthorized update module may be specified as follows. That is, when it is assumed that one update module is normal, the unauthorized module specifying unit determines whether or not there is a mismatch among a plurality of monitoring results using the received monitoring result. Then, the update module assumed to be normal is identified as an unauthorized update module.
  • (D) Unauthorized module assumption unit 673 It is assumed that the unauthorized module assumption unit 673 has been tampered with one update module selected from among the update modules as described below.
  • the unauthorized module assumption unit 673 receives the update module list from the specific instruction reception unit 671 and receives the monitoring result of the update module group 130 in the device 100. In addition, a fraud identification number for identifying all update modules identified as fraudulent is received from the circulation monitoring pattern determination unit 677.
  • the unauthorized module assumption unit 673 selects one update module identification number other than the received unauthorized identification number from among the update module identification numbers included in the update module list, and the update indicated by the selected identification number. Assume that the module is an illegal update module. This selected identification number is called a hypothetical identification number.
  • the unauthorized module assumption unit 673 determines a temporary unauthorized update module group of an empty set, and then includes an assumption identification number in the temporary unauthorized update module group. At this point, the temporary unauthorized update module group includes only a hypothetical identification number that identifies the selected update module.
  • the temporary unauthorized update module group may be referred to as a hypothetical unauthorized group.
  • the fraudulent module assumption unit 673 generates a hypothetical fraud group that includes a hypothetical identification number.
  • the unauthorized module assumption unit 673 transmits the assumed identification number of the selected update module to the extraction result determination unit 676, and transmits the temporary unauthorized configuration information of the temporary unauthorized update module group to the verification result determination unit 674.
  • the temporary unauthorized configuration information of the temporary unauthorized update module group includes all identification numbers included in the temporary unauthorized update module group.
  • the unauthorized module assumption unit 673 receives from the extraction result determination unit 676 an unidentifiable notification that a normal update module cannot be identified.
  • the unauthorized module assumption unit 673 is an update module other than the received unauthorized identification number among the update module identification numbers included in the update module list, and is different from the selected update module.
  • Temporary unauthorized update module group by newly selecting an identification number of the update module, assuming that the selected update module is an invalid normal module, and including only the assumed identification number for identifying the selected update module in the temporary unauthorized update module group Is transmitted to the verification result determination unit 674.
  • the second assumption unit 679 includes the verification result determination unit 674 and the temporary unauthorized update module group extraction unit 675 as described above.
  • the second assumption unit 679 is assumed to have been tampered with the received monitoring result from the update module assumed to be tampered by the unauthorized module assumption unit 673.
  • a procedure that assumes that an update module that has been determined to be normal has been tampered with is applied to unprocessed update modules in a chain.
  • the second assumption unit 679 uses the monitoring result to determine whether there is an update module that determines that the update module identified by the identification number included in the assumed incorrect group is normal. If it is determined that the update module is present, an identification number for identifying the update module is added to the hypothetical fraud group, and control is performed so that the determination and the addition are repeated for an unprocessed update module.
  • Verification result determination unit 674 receives the monitoring result of the update module group 130 in the device 100 from the specific instruction reception unit 671. Further, provisional illegal configuration information is received from the illegal module assumption unit 673.
  • the verification result determination unit 674 uses the monitoring result of the update module group 130 in the device 100 received from the specific instruction reception unit 671 and the temporary unauthorized configuration information of the temporary unauthorized update module group received from the unauthorized module assumption unit 673. The verification result for the update module in the temporary unauthorized update module group is determined.
  • the update module 131 monitors the update module 132 (3004), and the monitoring result for the update module 132 by the update module 131 is normal (3003).
  • the update module 132 is an update module included in the temporary unauthorized update module group 3002.
  • the verification result determination unit 674 uses the received monitoring result to search for an update module that determines that the update module 132 included in the temporary unauthorized update module group 3002 is normal.
  • the update module 131 determines that the update module 132 is normal (3003). Therefore, the verification result determination unit 674 regards the update module 131 that determines that the update module 132 is normal as a temporary unauthorized update module.
  • the update module 131 is added to the temporary unauthorized update module group as a temporary unauthorized update module.
  • the update modules 132 and 131 are included in the new temporary unauthorized update module group 3001.
  • the verification result determination unit 674 identifies an identification number for identifying an update module determined to be normal (hereinafter referred to as a temporary unauthorized identification number) and the received temporary address.
  • the configuration information of the unauthorized update module group is transmitted to the temporary unauthorized update module group extraction unit 675. If there is no normal update module as a result of monitoring the update module in the temporary unauthorized update module group, the fact is transmitted to the temporary unauthorized update module group extraction unit 675. The same operation is performed when the configuration information of the temporary unauthorized update module group extraction unit 675 is received.
  • Temporary unauthorized update module group extraction unit 675 The temporary unauthorized update module group extraction unit 675, as a result of monitoring from the verification result determination unit 674 to the update module in the temporary unauthorized update module group, the identification number (temporary unauthorized identification number) of the update module determined to be normal, The configuration information of the unauthorized update module group is received. Next, the received update module identification number (temporary fraud identification number) is added to the received temporary fraud update module group.
  • the update module 131 is included as a temporary unauthorized update module in addition to the temporary unauthorized update module group.
  • the update modules 132 and 131 are included in the new temporary unauthorized update module group 3001.
  • the temporary unauthorized update module group extraction unit 675 transmits the configuration information of the new temporary unauthorized update module group to which the identification number is added to the verification result determination unit 674.
  • the configuration information of the temporary unauthorized update module group is transmitted to the extraction result determination unit 676.
  • the extraction result determination unit 676 receives the update module list from the specific instruction reception unit 671.
  • the temporary unauthorized update module group extraction unit 675 receives temporary unauthorized configuration information and a hypothetical identification number of the temporary unauthorized update module group. Further, an unauthorized identification number for identifying an unauthorized update module is received from the circulation monitoring pattern determination unit 677.
  • the extraction result determination unit 676 uses the temporary unauthorized configuration information of the temporary unauthorized update module group and the unauthorized identification number for identifying the unauthorized update module, and uses the other than the unauthorized update module specified by the circulation monitoring pattern determination unit 677. It is determined whether or not all the update modules are included in the temporary unauthorized update module group.
  • the extraction result determination unit 676 determines whether all the update modules are included in the temporary unauthorized update module group. Further, even when an unauthorized update module is not detected, it is determined whether or not all the update modules are included in the temporary unauthorized update module group. In other words, it is determined whether it is assumed that all the update modules have been tampered with. Furthermore, in other words, the extraction result determination unit 676 determines whether the hypothetical fraud group includes an identification number that identifies all the update modules.
  • the extraction result determination unit 676 removes the unauthorized identification number from the identification number included in the update module list, and further removes the identification number included in the temporary unauthorized configuration information, so that the updated module list becomes an empty set. Or whether it contains an identification number rather than an empty set.
  • the extraction result determination unit 676 removes the identification number included in the temporary unauthorized configuration information from the identification number included in the update module list, and as a result, the update module list is empty. Or whether it contains an identification number rather than an empty set. Further, even when the presence of an unauthorized update module is not detected, the update module list becomes an empty set as a result of removing the identification number included in the temporary unauthorized configuration information from the identification number included in the update module list, or Determine whether it contains an identification number, not an empty set.
  • the extraction result determination unit 676 determines the update module assumed by the unauthorized module assumption unit 673.
  • the module is identified as a normal update module, the received assumption identification number is set as an identification number indicating a normal module, and the normal module identification number is output as a specific result to the specific result transmitting unit 672.
  • the extraction result determination unit 676 instructs the unauthorized module assumption unit 673 to assume an update module other than the update module assumed by the unauthorized module assumption unit 673. (Not-specific notification that normal update module cannot be specified) is transmitted. (G) Specific result transmission unit 672 The identification result transmission unit 672 receives the identification result of the normal update module from the extraction result determination unit 676 and transmits the received identification result to the instruction generation unit 603.
  • the specific result transmission unit 672 transmits a normal result indicating that all the latest monitoring results are normal to the instruction generation unit 603.
  • FIGS. 50 to 52 are flowcharts showing the operation of normal module identification processing.
  • the anomaly detection unit 678 determines whether or not at least one update module is normal. In other words, the presence of a normal update module that has not been tampered with is detected (step S9000). Details of step S9000 are as follows (steps S9001 to S9004).
  • the anomaly detection unit 678 acquires by receiving all the latest monitoring results (step S9001), and determines whether all the latest monitoring results are normal (step S9002). When all the monitoring results are normal (Y in step S9002), all the update modules are specified as normal, and the module specifying unit 604cb ends the normal module specifying process. If it is not determined that all the monitoring results are normal (N in step S9002), the previous monitoring results are obtained by receiving all the previous monitoring results (step S9003), and all the previous monitoring results are normal. It is determined whether or not there is (step S9004). If all the previous monitoring results are not determined to be normal (N in step S9004), the module specifying unit 604cb ends the normal module specifying process.
  • step S9004 it is determined that at least one update module in the update module group 130 is normal. This is because if all the update modules are normal in the previous mutual monitoring, the mutual monitoring interval is narrow, so it is determined that all the update modules will not be tampered with an illegal update module at that interval. It is.
  • a normal module can be logically specified as will be described later.
  • the circulation monitoring pattern determination unit 677 determines whether a circulation monitoring pattern exists (step S9005). This determination is performed by checking whether or not the circulation monitoring pattern is stored in the circulation monitoring pattern storage unit 666 in the circulation detection unit 606. If there is no circulation monitoring pattern (N in step S9005), the process proceeds to step S9014.
  • step S9006 the circulation monitoring pattern determination unit 677 identifies an unauthorized update module using the circulation monitoring pattern. Details of step S9006 are as follows (steps S9007 to S9013). Note that the unauthorized update module may not be identified using the circulation monitoring pattern. In other words, an unauthorized update module may be specified by another method. Further, it may not be necessary to specify an unauthorized update module.
  • the circulation monitoring pattern determination unit 677 selects one circulation monitoring pattern stored in the circulation monitoring pattern storage unit 666 in the circulation detection unit 606 (step S9007), and all the monitoring results in the selected circulation monitoring pattern are displayed. It is determined whether it is normal (step S9008). If the monitoring results of the circulation monitoring pattern are all normal (Y in step S9008), it is verified whether the plurality of monitoring results for the same module that is the monitoring target of the plurality of update modules in the circulation monitoring pattern match (step S9009). ). If they do not match (N in step S9009), all the update modules in the circulation monitoring pattern are specified as illegal update modules (step S9010).
  • step S9011 it is determined whether there is an update module that determines that the update module identified as an unauthorized update module in step S9010 is normal (step S9011). If it exists (Y in step S9011), the update module determined to be normal is identified as an unauthorized update module (step S9012). Thereby, it is possible to reduce the number of update modules that remain without being determined whether they are unauthorized update modules. As a result, a normal update module that updates the protection control module can be identified more effectively. Next, control is transferred to step S9013.
  • the circulation monitoring pattern determination unit 677 matches the plurality of monitoring results for the same module that is the monitoring target of the plurality of update modules in the circulation monitoring pattern. If there is no update module that determines that the update module identified as an unauthorized update module is normal (N in step S9011), then in the circulation detection unit 606 It is determined whether there is another circulation monitoring pattern in the circulation monitoring pattern storage unit 666 (step S9013). If another circulation monitoring pattern exists (Y in step S9013), the control is transferred to step S9007. If there is no other circulation monitoring pattern (N in step S9013), the circulation monitoring pattern determination unit 677 ends the specific process of the unauthorized update module using the circulation monitoring pattern.
  • the unauthorized module assumption unit 673 selects an update module other than the update module identified as the unauthorized update module in Step S9010 or Step S9012, assumes that the selected update module is an unauthorized update module, and performs temporary unauthorized update. It is assumed that the module group includes only the identification number of the update module assumed to be illegal (step S9014).
  • the verification result determination unit 674 determines whether there is at least one update module that determines that the update module identified by the identification number included in the temporary unauthorized update module group is normal other than the temporary unauthorized update module group ( Step S9015). If there is at least one update module other than the temporary unauthorized update module group that determines that the module in the temporary unauthorized update module group is normal (Y in step S9015), the temporary unauthorized update module group extraction unit 675 identifies this update module. The identification number to be included is included in the temporary unauthorized update module group (step S9016). Next, control is transferred to step S9015.
  • step S9015 If there is no update module other than the temporary unauthorized update module group that determines that the update module in the temporary unauthorized update module group is normal (N in step S9015), it is identified as an unauthorized update module in step S9010 or step S9012. It is determined whether there is an unauthorized update module that has been updated and an update module other than the temporary unauthorized update module group (step S9017). If it does not exist (N in step S9017), the update module assumed in step S9014 is identified as a normal update module (step S9018). When a normal update module can be identified in this way, thereafter, all assumptions made illegal in the above are canceled and the identification number included in the temporary unauthorized update module group is deleted.
  • step S9017 If it exists (Y in step S9017), the update module assumed in step S9014 is not identified as a normal update module (step S9019). In step S9014, if all the update modules other than the update module identified as an unauthorized update module in step S9010 or step S9012 have not been selected (N in step S9020), the control is transferred to step S9014. If all the update modules are assumed (Y in step S9020), the normal module specifying process is terminated.
  • step S9019 by not identifying the assumed update module as a normal update module in step S9019, it is possible to prevent an incorrect update module from being erroneously determined as a normal update module. This can prevent the protection control module from being updated to an unauthorized protection control module via an unauthorized update module.
  • any one of the plurality of update modules is an unauthorized update module.
  • the protection control module can be safely updated using the identified normal update module.
  • the update module may be a monitoring module.
  • Example of Normal Module Identification (a) First Example of Normal Module Identification Next, an example of normal module identification processing will be described using the example shown in FIG.
  • the update module group 130 included in the device 100 includes update modules 131 to 137.
  • the update module 131 monitors the update modules 132 and 134, and the monitoring results are normal (3022) and illegal, respectively.
  • the update module 132 monitors the update modules 131, 133, and 135, and the monitoring results are
  • the update module 133 monitors the update modules 131, 135, and 136, and the monitoring results are normal (3024), illegal, and illegal, respectively.
  • the update module 134 monitors the update module 136, the monitoring result is normal (3027), the update module 135 monitors the update module 137, and the monitoring result is normal (3025).
  • the module 136 monitors the update module 137, and the monitoring result is A normally (3026), update module 137 monitors the update module 133, the monitoring results are to be incorrect.
  • the update module 131 monitors the update module 132 (3028), the update module 132 monitors the update module 133 (3029), and the update module 133 monitors the update module 131 (3030). To do. Accordingly, the circulation monitoring pattern 3014 exists.
  • the update module to be monitored is determined by the circulation monitoring pattern for the update module.
  • the second update module to be monitored by the first update module monitors the first update module, or intervenes with one or more update modules, to update the first update module. Indicates that the module is monitored.
  • the circulation monitoring pattern determination unit 677 determines whether there is a circulation monitoring pattern (step S9005), and specifies that all the update modules 131, 132, and 133 of the circulation monitoring pattern are all illegal update modules ( Step S9010).
  • the circulation monitoring pattern 3014 exists, and the monitoring results in the circulation monitoring pattern 3014 are all normal (3022, 3023, 3024), and the monitoring result (3021) for the update module 131 by the update module 132 and the update This is because the monitoring result (3024) for the update module 131 by the module 133 is different.
  • the unauthorized module assumption unit 673 selects the update module 137, assumes that the update module 137 is an unauthorized update module, and includes an identification number for identifying the update module 137 in the temporary unauthorized update module group 3011 (step S9014). .
  • the update modules 135 and 136 since the update modules 135 and 136 other than the update modules 131 to 133 determined to be unauthorized determine that the update module 137 is normal (3025, 3026) (step S9015), provisional unauthorized update The update module 135 that determines that the update module 137 in the module group 3011 is normal and the update module 136 are included in the temporary unauthorized update module group (step S9016). As a result, a new temporary unauthorized update module group 3012 is generated. Further, according to FIG.
  • the update module 134 that determines that the update module 136 in the temporary unauthorized update module group 3012 is normal is included in the temporary unauthorized update module group (step S9016). As a result, a new temporary unauthorized update module group 3013 is generated.
  • the extraction result determination unit 676 determines whether there are update modules other than the unauthorized update modules 131 to 133 identified as the unauthorized update module in step S9010 and the temporary unauthorized update module group (update modules 134 to 137). Judgment is made (step S9017). According to FIG. 48, since all the update modules are unauthorized update modules or temporary unauthorized update modules (N in step S9017), the extraction result determination unit 676 specifies that the update module 137 is a normal update module ( Step S9018).
  • the update module group 130 included in the device 100 includes update modules 131 to 137.
  • the update module 131 monitors the update modules 132 and 134, and the monitoring results are normal (3052) and illegal, respectively.
  • the update module 132 monitors the update modules 131, 133, and 135, and the monitoring results are , Normal (3051), normal (3053), and normal (3060), respectively, and the update module 133 monitors the update modules 131, 135, and 136, and the monitoring results are normal (3054), normal ( 3059) and normal (3055), the update module 134 monitors the update module 136, the monitoring result is normal (3056), the update module 135 monitors the update module 137, and the monitoring result is , Normal (3058), and the update module 136 Monitoring the Le 137, the monitoring result is normal (3057), update module 137 monitors the update module 133, the monitoring results are to be normal.
  • the update module 131 monitors the update module 132 (3061), the update module 132 monitors the update module 133 (3062), and the update module 133 monitors the update module 131 (3063). To do. Therefore, the circulation monitoring pattern 3041 exists.
  • the circulation monitoring pattern determination unit 677 determines whether there is a circulation monitoring pattern (step S9005). Since the monitoring results of the same module to be monitored match (Y in step S9009), the control is transferred to step S9014. . According to FIG. 49, the circulation monitoring pattern 3041 exists, and the monitoring results in the circulation monitoring pattern 3041 are all normal (3052, 3053, 3054), the update result of the update module 131 by the update module 132 (3051), and the update This is because the monitoring result (3054) of the update module 131 by the module 133 matches. This is because there are no other inconsistent monitoring results.
  • the unauthorized module assumption unit 673 selects the update module 137, assumes that the update module 137 is an unauthorized update module, and includes an identification number for identifying the update module 137 in the temporary unauthorized update module group 3042 (step S9014). .
  • the update modules 135 and 136 that have not been determined to be unauthorized determine that the update module 137 is normal (3058, 3057) (step S9015), so the update in the temporary unauthorized update module group 3042
  • the update module 135 and the update module 136 that determine that the module 137 is normal are included in the temporary unauthorized update module group (step S9016).
  • a new temporary unauthorized update module group 3043 is generated.
  • step S9015 Since no update module 132 determines that the update module 135 (included in the temporary unauthorized update module group 3043) is normal (3060) (step S9015), the update modules 136 and 135 in the temporary unauthorized update module group 3043 are changed. The update modules 134 and 132 that are determined to be normal are included in the temporary unauthorized update module group (step S9016). As a result, a new temporary unauthorized update module group 3044 is generated.
  • step S9015 since the update module 131 that has not been determined to be unauthorized determines that the update module 132 (included in the temporary unauthorized update module group 3044) is normal (3052) (step S9015), the update module 131 in the temporary unauthorized update module group 3044 The update module 131 that determines that the update module 132 is normal is included in the temporary unauthorized update module group (step S9016). As a result, a new temporary unauthorized update module group 3045 is generated.
  • the extraction result determination unit 676 specifies that the update module 137 is a normal update module (step S9018).
  • Embodiment 4 Here, another embodiment will be described. 4.1 Third Embodiment In the software update system 10cb of the third embodiment described above, a normal update module that has not been tampered with is selected in the selection of the update module in the update process.
  • an example of an update module that interferes with the identification of a normal module is that all of the monitoring results by the update module are determined to be illegal.
  • An example is shown in FIG.
  • FIG. 57 shows the results of monitoring by the update modules 131 to 137 included in the update module group 130.
  • the update module 132 monitors the update modules 131, 133, and 135, and the monitoring results for the update modules 131, 133, and 135 by the update module 132 are all invalid (4001, 4003, 4004). .
  • the update module 131 monitors the update module 134, and the monitoring result is normal (4006).
  • the update module 133 monitors the update modules 131, 135, and 136, and the monitoring results are respectively Normal (4005, 4012 and 4008), the update module 134 monitors the update module 136, the result of the monitoring is normal (4007), the update module 135 monitors the update module 137, and The monitoring result is normal (4011), the update module 136 monitors the update module 137, the monitoring result is normal (4010), the update module 137 monitors the update module 133, and The monitoring result is normal (4009).
  • any update module is invalid. Not determined to be an update module.
  • step S9014 is applied to select one update module, and the procedure of steps S9015 to S9016 is applied to add the update module assumed to be illegal to the temporary unauthorized update module group.
  • the update module 132 is not included in the temporary unauthorized update module group. This is because the update module 132 determines that all the monitoring to the update modules 131, 133, and 135 is illegal (4001, 4003, 4004).
  • the update modules 131 to 137 shown in FIG. 57 cannot be divided only into the temporary unauthorized update module group and the unauthorized update module group. For this reason, the normal module specifying process described in the software update system 10cb of the third embodiment cannot be applied, and none of the update modules can be specified as a normal update module.
  • the update module 132 is not determined to be an unauthorized update module, and is not classified into an unauthorized temporary update module group. For this reason, the normal module cannot be specified by applying the method of specifying the normal module in the software update system 10cb to this case.
  • an interference module In the falsification monitoring system 10da, in order to solve the above problem, a monitoring module (hereinafter referred to as an interference candidate module) that is determined to be illegal is extracted from all the monitoring modules to be monitored, and the extracted interference candidates are extracted. A true disturbing module is identified from the modules, and the identified disturbing module is excluded in advance. In this way, by excluding the tampering module that has been tampered with and performing the illegal operation in advance, it is possible to effectively identify the normal monitoring module from among the remaining plurality of monitoring modules. Modules can be used effectively.
  • a falsification monitoring system 10da as another embodiment will be described with reference to the configuration diagram shown in FIG.
  • the falsification monitoring system 10da is composed of an information security device 100da and a management device 200da as shown in FIG.
  • the information security device 100da has a plurality of monitoring modules 131da, 132da, 133da, and 134da that monitor tampering.
  • the management apparatus 200da receives from the information security apparatus 100da a reception unit 240da that receives monitoring results for other monitoring modules by each monitoring module, and uses the received monitoring results to select all monitoring targets from the monitoring modules.
  • a determination unit 683da that extracts an interference candidate module that determines that the monitoring module has been tampered with, and a plurality of interference candidate modules are mutually monitored.
  • the update unit 250da generates a new monitoring pattern, transmits the generated new monitoring pattern to the information security apparatus, and replaces the information with the new monitoring pattern.
  • the receiving unit 240da further receives a new monitoring result based on a new monitoring pattern from the information security apparatus 100da.
  • the determination unit 683da further uses the received new monitoring result to exclude two interference candidate modules that are determined to be normal from each other and that are determined to be illegal with respect to the other interference candidate modules. Other interference candidate modules are identified as interference modules.
  • the specified disturbing module may be invalidated.
  • the determination unit 683da further determines that the first interference candidate module is normal with respect to the second interference candidate module among the two interference candidate modules using the received new monitoring result, If the second interference candidate module determines that the first interference candidate module is illegal, the first interference candidate module may be specified as an unauthorized update module that has been tampered with.
  • Software update system 10db A software update system 10db as another embodiment will be described.
  • the software update system 10db extracts and extracts update modules (hereinafter referred to as interference candidate modules) that are determined to be illegal for all the monitoring target update modules.
  • a true interference module is identified from the identified interference candidate modules, and the identified interference module is excluded in advance. In this way, it is possible to effectively identify a normal update module from a plurality of remaining update modules by preliminarily eliminating tampering modules that have been tampered with and performing illegal operations.
  • the module can be used to safely update the protection control module.
  • the software update system 10db includes an update server 200db and a device 100db.
  • the device 100db has the same configuration as the device 100 of the first embodiment.
  • the update server 200db has a configuration similar to that of the update server 200 of the first embodiment, and includes a determination unit 210db, an update software distribution unit 220, a module invalidation unit 230, a communication unit 240, and a monitoring pattern update unit. 250.
  • the update software distribution unit 220, the module invalidation unit 230, and the communication unit 240 are the same as the update software distribution unit 220, the module invalidation unit 230, and the communication unit 240 included in the update server 200.
  • the determination unit 210db has a configuration similar to the determination unit 210cb included in the update server 200cb of the software update system 10cb.
  • the determination unit 210db and the monitoring pattern update unit 250 will be mainly described.
  • the monitoring pattern updating unit 250 updates the monitoring pattern of the updating module group 130 inside the device 100db
  • the updating module group is updated according to the monitoring pattern updating instruction from the determination unit 210db.
  • a monitoring pattern for updating is generated, and the generated monitoring pattern is transmitted to each updating module.
  • the monitoring pattern update unit 250 includes a reception unit 901, a transmission unit 902, a monitoring pattern generation unit 903, a monitoring pattern division unit 904, and a control unit 905.
  • the reception unit 901 receives a generation instruction indicating generation of a monitoring pattern and an update module list at the time of the instruction from the determination unit 210db.
  • the update module list includes identification numbers for identifying all the update modules included in the update module group 130 included in the device 100db. If there are interference candidate modules, the identification numbers for identifying all the interference candidate modules are received.
  • the receiving unit 901 outputs the received monitoring pattern generation instruction to the control unit 905.
  • the received update module list is output to the monitoring pattern generation unit 903 via the control unit 905.
  • the received identification number is output to the monitoring pattern generation unit 903 via the control unit 905.
  • the monitoring pattern generation unit 903 receives the update module list from the reception unit 901 via the control unit 905. If there are interference candidate modules, the identification numbers for identifying all the interference candidate modules are received.
  • the monitoring pattern generation unit 903 uses the received update module list to determine which update module monitors which update module, and performs overall monitoring in the update module group 130 included in the device 100db. Generate a pattern.
  • the monitoring pattern generation unit 903 uses the identification number for identifying the received interference candidate module so that each of the plurality of interference candidate modules monitors all other interference candidate modules, that is, the plurality of interference candidates.
  • An overall monitoring pattern is generated so as to perform mutual monitoring between candidate modules.
  • monitoring pattern generation unit 903 may determine, as the overall monitoring pattern, for example, so that all the update modules monitor all other update modules.
  • the monitoring pattern generation unit 903 outputs the generated entire monitoring pattern to the monitoring pattern division unit 904.
  • (C) Monitoring pattern dividing unit 904 The monitoring pattern division unit 904 receives the entire monitoring pattern from the monitoring pattern generation unit 903.
  • the monitoring pattern dividing unit 904 divides the received entire monitoring pattern into monitoring patterns for each update module. Next, the monitoring pattern for each update module obtained by dividing is used as an update monitoring pattern to each update module of the device 100db via the control unit 905, the transmission unit 902, the communication unit 240, and the network 5. Send.
  • Transmitter 902 The transmission unit 902 transmits a monitoring pattern for each update module for update to the device 100 db via the communication unit 240 and the network 5. Further, the determination unit 210db is notified of the generation of the monitoring pattern for update and the end of transmission.
  • Control unit 905 The control unit 905 receives a monitoring pattern generation instruction from the reception unit 901.
  • the control unit 905 Upon receiving the monitoring pattern generation instruction, the control unit 905 generates an entire monitoring pattern in the update module group 130 of the device 100db for the monitoring pattern generation unit 903 and the monitoring pattern division unit 904, and updates for updating. A monitor pattern for each module is generated, and the monitor pattern for each update module for update is transmitted to the device 100db, and control is performed so that the monitor pattern is updated in the device 100db.
  • the determination unit 210db includes a reception unit 601, a transmission unit 602, an instruction generation unit 603, a module identification unit 604db, and a circulation detection unit 606.
  • the module specifying unit 604db includes an unauthorized module specifying unit 605, a normal module specifying unit 607, and a disturbing module specifying unit 608.
  • the reception unit 601, the transmission unit 602, the instruction generation unit 603, and the circulation detection unit 606 are respectively the reception unit 601, the transmission unit 602, the instruction generation unit 603, and the circulation detection included in the determination unit 210cb of the update server 200cb of the software update system 10cb. This is the same as the unit 606.
  • the instruction generation unit 603 transmits a generation instruction indicating generation of a monitoring pattern to the monitoring pattern update unit 250 via the transmission unit 602.
  • the unauthorized module identifying unit 605 and the normal module identifying unit 607 are the same as the unauthorized module identifying unit 605 and the normal module identifying unit 607 included in the module identifying unit 604cb of the determination unit 210cb of the update server 200cb of the software update system 10cb, respectively. is there.
  • the interfering module specifying unit 608 determines whether there is an update module that has been tampered with and may be performing an illegal operation.
  • the disturbing module specifying unit 608 includes a specifying instruction receiving unit 681, a specifying result transmitting unit 682, a verification result determining unit 683, a monitoring pattern update instruction generating unit 684, and a verification result receiving unit 685.
  • the specification instruction receiving unit 681 receives, from the instruction generation unit 603, the interference specification instruction indicating an instruction for specifying an update module that interferes with the specification of a normal module and the result of monitoring the update module in the device 100db, and the received monitoring result Is transmitted to the verification result determination unit 683.
  • (B) Verification result receiving unit 685 receives the monitoring result after the monitoring pattern of the update module group 130 is updated in the device 100db from the instruction generation unit 603, and the received monitoring result after the update is a verification result determination unit. To 683.
  • (C) Verification result determination unit 683 receives the monitoring result from the specific instruction reception unit 681, and determines whether there is a possibility that there is an update module that interferes with the specification of the normal module using the received monitoring result. To do. That is, it is determined whether or not there is an interference candidate module.
  • the interference candidate module is an update module that determines that all the update modules to be monitored are illegal. The details of the determination as to whether or not there is an interference candidate module will be described later.
  • the verification result determination unit 683 transmits to the specific result transmission unit 682 that the interference candidate module does not exist.
  • the verification result determination unit 683 determines whether or not the interference candidate module is truly an interference module, and then sends all candidate interference modules to the monitoring pattern update instruction generation unit 684. The ID number is sent and the monitoring pattern is updated. This is to determine whether the interference candidate module has been tampered with illegally preventing the identification of a normal module, or whether a normal update module is normally monitoring an unauthorized update module. is there. Details will be described later.
  • the verification result determination unit 683 receives the monitoring result after the monitoring pattern update from the verification result reception unit 685, and may be illegal. It is determined whether or not the determined update module is an unauthorized update module. The determined result is transmitted to the specific result transmitting unit 682, and the monitoring pattern update instruction generating unit 684 is requested to update the monitoring pattern in order to update the monitoring pattern of the update module group 130.
  • monitoring pattern update instruction generation unit 684 receives, from the verification result determination unit 683, the identification information of the update module and the monitoring pattern update request that are considered to be fraudulent, and each update identified by the received identification information A monitoring pattern update instruction is transmitted to the instruction generation unit 603 so that the module becomes a monitoring pattern for monitoring all the update modules other than the self-update module. When only a monitoring pattern update request is received, a monitoring pattern update instruction is transmitted to the instruction generation unit 603.
  • E Specific result transmission unit 682
  • the identification result transmission unit 682 receives the identification result of the update module that interferes with the identification of the normal module from the verification result determination unit 683, and transmits the identification result to the instruction generation unit 603.
  • Operation in Software Update System 10db Here, the operation in the software update system 10db will be described using the operation diagram shown in FIG. In particular, the transition of the process from the disturbing module specifying process to the normal module specifying process will be described.
  • a plurality of update modules in the update module group 130 monitor each other, and the device 100db transmits the monitoring result to the update server 200db.
  • the update server 200db receives a monitoring result, and an update module that invalidates all the monitoring results for all the monitoring modules to be monitored (as described above, such an update module is referred to as a disturbance candidate module). It is determined whether or not it exists (step S10001). When there are interference candidate modules, the update server 200db extracts all interference candidate modules from the update module group 130 (step S10002). Next, the update server 200db generates a new monitoring pattern so that each interference candidate module monitors all other interference candidate modules in order to determine whether or not the extracted interference candidate module is a disturbance module. To do. Next, a new monitoring pattern is transmitted to each update module of the device 100db, and the device 100db is controlled to be updated to a new monitoring pattern (step S10003).
  • Each update module of the device 100db monitors each other using a new monitoring pattern.
  • each interference candidate module monitors all other interference candidate modules.
  • the update server 200db receives the monitoring result based on the new monitoring pattern from the device 100db, and determines whether or not the interference candidate module is an interference module using the received monitoring result.
  • the disturbing module always determines that all the update modules to be monitored are illegal, but the normal update module determines that the normal update module is normal. Therefore, when there are a plurality of normal update modules in the interference candidate module group, the result of mutual monitoring between normal interference candidate modules is normal. On the other hand, all the monitoring results of the interference candidate modules other than the normal interference candidate modules by the interference candidate modules are invalid.
  • the interference candidate module determines whether the interference candidate module is an interference module, (i) the result of mutual monitoring between the two interference candidate modules is normal, and (ii) the two that are determined to be normal to each other
  • the interference candidate module determines that the interference candidate modules other than the two interference candidate modules are illegal
  • the two interference candidate modules are determined not to be interference modules.
  • the interference candidate module that does not satisfy this condition is identified as an interference module in order to always determine that the interference candidate modules other than the self-interference candidate module are illegal (step S10004).
  • the update server 200db extracts an interference candidate module that does not satisfy the condition when there is an interference candidate module that satisfies the above conditions, identifies it as an interference module (step S10005), and the module invalidation unit 230 specifies An instruction is output to the device 100db so as to invalidate the disturbance module (step S10006).
  • the module invalidation unit 230 of the update server 200db invalidates the specified interference module because all the interference candidate modules are interference modules when there is no interference candidate module that satisfies the above conditions.
  • the instruction is output to the device 100db (step S10006).
  • the update server 200db updates the monitoring pattern of all the update modules (step S10007), and performs mutual monitoring on the entire update module (step S10001).
  • the update server 200db receives the result of monitoring by the update module group 130, and when there is no interference candidate module, executes the normal module specifying process (step S10008) and specifies the normal update module (step S10009). .
  • the efficiency for identifying a normal update module is improved in the normal module identification process by disabling and eliminating the interfering module that obstructs the identification of the normal module.
  • steps S10001 to S10006 are the disturbing module specifying process.
  • the instruction generation unit 603 of the determination unit 210db transmits a monitoring pattern generation instruction to the monitoring pattern update unit 250, and the monitoring pattern update unit 250 receives the monitoring pattern generation instruction (step S11001).
  • the monitoring pattern generation unit 903 of the monitoring pattern update unit 250 generates an entire new monitoring pattern, and the monitoring pattern division unit 904 divides the entire new monitoring pattern into monitoring patterns for each update module (step S11002).
  • the monitoring pattern update unit 250 transmits a monitoring pattern for each update module to each update module of the device 100db via the communication unit 240 and the network 5, and each update module in the update module group 130 of the device 100db is updated. A monitoring pattern for each module is received (step S11003).
  • Each update module in the update module group 130 updates the monitoring pattern by replacing the old monitoring pattern with the received new monitoring pattern (step S11004).
  • each update module in the update module group 130 executes the monitoring process according to the new monitoring pattern, and performs the falsification detection process according to the monitoring pattern in the same manner as the mutual monitoring process of the first embodiment. This is performed (step S11005). It is not determined whether there is a falsified update module of the first embodiment (step S5004 in FIG. 19).
  • the device 100db transmits the monitoring result to the determination unit 210db via the network 5 and the communication unit 240, and the determination unit 210db receives the monitoring result (step S11006).
  • the determining unit 210db performs the interference module specifying process (step S11007). Details of the disturbing module specifying process will be described later.
  • the determining unit 210db transmits an invalidation instruction to the module invalidating unit 230 together with an identification number for identifying the identified disturbing module (step S11008).
  • the module invalidation unit 230 transmits a request for invalidation to the update module in the update module group 130 together with the identification number for identifying the identified disturbing module (step S11009).
  • the update module that has received the invalidation request cooperates with the access control module 140 to invalidate the jamming module by using the received identification number for identifying the jamming module (step S11010).
  • the determination unit 210db transmits a monitoring pattern generation instruction
  • the monitoring pattern update unit 250 receives the monitoring pattern generation instruction (step S11011).
  • the monitoring pattern generation unit 903 of the monitoring pattern update unit 250 generates an entire new monitoring pattern based on the received monitoring pattern generation instruction, and the monitoring pattern division unit 904 updates the entire new monitoring pattern as an update module.
  • Each monitoring pattern is divided (step S11012).
  • the monitoring pattern update unit 250 transmits a monitoring pattern for each update module to each update module of the device 100db via the communication unit 240 and the network 5, and each update module in the update module group 130 of the device 100db is updated.
  • a monitoring pattern for each module is received (step S11013).
  • Each update module in the update module group 130 of the device 100db is updated to a new monitoring pattern (step S11014). After updating to a new monitoring pattern, each update module executes a mutual monitoring process (step S11015). The device 100db transmits the monitoring result, and the determination unit 210db receives the monitoring result (step S11016).
  • the determination unit 210db performs normal module identification processing (step S11017).
  • the details of the normal module specifying process are the same as those in the third embodiment, and will not be described.
  • (6) Example of Mutual Monitoring Monitoring Pattern An example of the mutual monitoring monitoring pattern will be described with reference to the example of the mutual monitoring monitoring pattern shown in FIG.
  • FIG. 65 shows an example in which monitoring is performed with four interference candidate modules. As shown in this figure, it is assumed that the update modules 131, 132, 136, and 137 are extracted as interference candidate modules, respectively.
  • the update modules 131, 132, 136, and 137 are respectively extracted as interference candidate modules, the update modules 131 and 132 are mutually monitored by the monitoring pattern update unit 250, and the update modules 132 and 137 are monitored. Update each other, the update modules 137 and 136 monitor each other, the update modules 136 and 131 monitor each other, and the update modules 137 and 131 update each other. A monitoring pattern for each module is generated.
  • the monitoring pattern update unit 250 transmits the monitoring pattern for each update module to the update modules 131, 132, 136, and 137. It is assumed that the monitoring pattern is changed and mutual monitoring is performed using a new monitoring pattern. (7) Example of Mutual Monitoring Result Using Mutual Monitoring Monitoring Pattern An example of the mutual monitoring result when the example of the mutual monitoring monitoring pattern shown in FIG. 65 is used will be described with reference to FIGS. 66 to 69. FIG.
  • FIG. 66 shows a first example of the mutual monitoring result when the example of the mutual monitoring monitoring pattern shown in FIG. 65 is used.
  • FIG. 67 shows a second example of the mutual monitoring result when the example of the mutual monitoring monitoring pattern shown in FIG. 65 is used.
  • FIG. 68 shows a third example of the mutual monitoring results when the example of the mutual monitoring monitoring pattern shown in FIG. 65 is used.
  • the update module 131 determines that the update module 132 is normal (4061), and the update module 132 determines that the update module 131 is illegal.
  • the update module 131 determines that the update module 137 is normal (4063), and the update module 137 determines that the update module 131 is normal (4062).
  • the mutual monitoring between the update modules 132 and 137, the mutual monitoring between the update modules 132 and 136, the mutual monitoring between the update modules 131 and 136, and the mutual monitoring between the update modules 136 and 137 are determined to be invalid. is doing.
  • FIG. 69 shows a fourth example of the mutual monitoring result when the example of the mutual monitoring monitoring pattern shown in FIG. 65 is used.
  • the update module 131 determines that the update module 137 is normal (4072), and the update module 137 determines that the update module 131 is normal (4071). Also, mutual monitoring between the update modules 131 and 132, mutual monitoring between the update modules 132 and 137, mutual monitoring between the update modules 132 and 136, mutual monitoring between the update modules 131 and 136, and the update module 136 and In the mutual monitoring between 137, it is determined to be illegal.
  • the operation of the interference module specification processing will be described with reference to the flowcharts shown in FIGS.
  • the determination unit 210db performs the interfering module specifying process based on the monitoring result of each update module in the update module group 130 as shown below.
  • the verification result determination unit 683 determines whether or not there is an update module that determines that all the monitoring results for all the monitoring target update modules are invalid, in other words, whether or not there is an interference candidate module (step S12001). ).
  • the verification result determination unit 683 terminates the interference module identification process.
  • the verification result determination unit 683 When there are interference candidate modules (Y in step S12001), the verification result determination unit 683 outputs identification numbers for identifying all the interference candidate modules to the monitoring pattern update unit 250.
  • the monitoring pattern update unit 250 generates a monitoring pattern for each update module so that all the interference candidate modules monitor each other using the received identification numbers for identifying all the interference candidate modules, respectively (step S12002). ).
  • the update modules 131, 132, 136, and 137 in the update module group 130 determine that all the update modules to be monitored are illegal
  • 136 and 137 are interference candidate modules, respectively, and a monitoring pattern is generated so that the update modules 131, 132, 136, and 137 monitor each other.
  • the monitoring pattern in this case is shown in FIG.
  • the generated monitoring pattern is transmitted to the device 100db so that the update module included in the device 100db performs mutual monitoring, and the update module included in the device 100db performs mutual monitoring.
  • the device 100db receives the monitoring pattern.
  • Each update module of the update module group 130 updates the old monitoring pattern with the received monitoring pattern, and performs mutual monitoring using the newly updated monitoring pattern (step S12003).
  • the device 100db transmits the monitoring result to the update server 200db.
  • the verification result determination unit 683 of the disturbance module identification unit 608 of the determination unit 210db of the update server 200db receives the result of mutual monitoring (step S12004).
  • the verification result determination unit 683 determines whether there is at least one normality in the monitoring result between the interference candidate modules (step S12005).
  • the verification result determination unit 683 selects all the interference candidate modules.
  • the interference module is identified (step S12006).
  • all the results of mutual monitoring are all invalid (“ ⁇ ” in FIG. 66). Since there is no normal (“ ⁇ ”) in the result, the verification result determination unit 683 identifies the update modules 131, 132, 136, and 137 as interference modules.
  • control is transferred to step S12011.
  • the verification result determination unit 683 further determines whether there are two interference candidate modules that are determined to be normal to each other. Judgment is made (step S12007).
  • the update modules 131 and 137 are interference candidate modules that mutually determine that the other party is normal.
  • the update modules 131 and 137 are interference candidate modules that mutually determine that the other party is normal.
  • step S12007 is not satisfied.
  • step S12007 is satisfied.
  • the monitoring result is normal (4051 “ ⁇ ”) as in the update module 131 illustrated in the example of FIG. Is present, the determination result for the update module 132 by the update module 131 is normal, but the determination result for the update module 131 by the update module 132 is incorrect. In this way, a contradiction occurs in the monitoring result. Therefore, the verification result determination unit 683 identifies the update module 131 as an unauthorized update module.
  • the first interference candidate module determines that the second interference candidate module is normal, but the second interference candidate module This is a case where the module determines that the first interference candidate module is illegal. In such a case, the interference candidate module that determines that the opponent interference candidate module is normal is identified as an unauthorized update module (step S12008a).
  • the determination unit 210db transmits an invalidation instruction to invalidate the update module identified as an unauthorized update module (step S12008b).
  • the update modules 132, 136, and 137 determine that all the monitoring results for the interference candidate modules are invalid (“ ⁇ ”).
  • Update modules 132, 136 and 137 are identified as jamming modules. That is, the verification result determination unit 683 identifies the interference candidate module that determines that all the monitoring results for all the monitoring target interference candidate modules are illegal as the interference module (step S12008c).
  • control is passed to step S12011.
  • the verification result determination unit 683 further monitors the interference candidate module group that is determined to be normal (“O”) to each other. It is determined whether the interference candidate modules other than the interference candidate modules that are determined to be normal (“O”) are determined to be illegal (“ ⁇ ”) among the interference candidate modules that are all illegal. Step S12009).
  • the update module group that determines that each other is normal (“O”) determines that the update module other than the update module group is illegal (“ ⁇ ”) among the update module groups that all monitor results are invalid (“ ⁇ ”) ( As in the example shown in FIG.
  • the update module 131 and the update module 137 are determined to be normal (“ ⁇ ”), but the update module 131 and the update module 132 are mutually connected. Based on the monitoring result, a contradiction occurs in the monitoring result of the update module 131 (the update module 132 determines that the update module 131 is invalid, and the update module 137 determines that the update module 131 is normal). Further, a contradiction occurs in the monitoring result of the update module 137. Therefore, the update module 131 and the update module 137 are identified as unauthorized update modules (step S12010a).
  • the determination unit 210db transmits an invalidation instruction to invalidate the update module 131 and the update module 137 that have been identified as an unauthorized update module (step S12010b).
  • the verification result determination unit 683 determines that the update modules 132 and 136 are disturbing modules because the update modules 132 and 136 always determine that all the monitoring results are invalid (“ ⁇ ”) ( Step S12010c).
  • the verification result determination unit 683 determines whether there is an update module other than the interference candidate module group that determines that the interference candidate modules are mutually normal (“ ⁇ ”). That is, it is determined whether or not a disturbing module exists (step S12011).
  • the update module 131 and the update module 137 are interference candidate module groups that are determined to be normal (“O”), and the update module 132 and the update module 136 exist in addition thereto. .
  • the update module 132 and the update module 136 always determine that all the monitoring results are illegal (“ ⁇ ”), and therefore the verification result determination unit 683 specifies that it is a disturbing module. If there is a disturbing module (Y in step S12011), the determination unit 210db transmits an instruction to invalidate the disturbing module (step S12012).
  • the determination unit 210db When there is no disturbing module (N in step S12011) or after the invalidation instruction is transmitted (step S12012), the determination unit 210db generates a new monitoring pattern for the entire update module group 130 for the monitoring pattern update unit 250.
  • the monitoring pattern update unit 250 generates a new monitoring pattern for the entire update module group 130, and transmits the new monitoring pattern to the device 100db (step S12013).
  • the determination unit 210db transmits a mutual monitoring instruction based on a new monitoring pattern to the update module group 130 of the device 100db (step S12014).
  • the update module that always determines that the update module to be monitored is invalid (“ ⁇ ”) is invalidated, so that the normal update module Actively eliminate update modules that interfere with the identification of (i.e., jamming modules).
  • the normal update module is identified, and the protection control module is updated by using the identified normal update module, so that the protection control module can be relieved more effectively, and the system safety Can be further enhanced.
  • the update module may be a monitoring module. 5).
  • the present invention is of course not limited to the above embodiments. The following cases are also included in the present invention.
  • the protection control module 120 is updated. However, the present invention is not limited to this.
  • update modules other than the protection control module 120, such as update modules and application programs.
  • update modules other than the protection control module 120, such as update modules and application programs.
  • the update process of the update module will be described by taking the case of updating the update module 133 as an example.
  • the update software distribution unit 220 multiplexly encrypts the update module for updating for updating the update module 133 using a plurality of keys,
  • An update module (excluding the update module 133) included in the update module group 130 is transmitted as a transmission destination.
  • the update modules (excluding the update module 133) included in the update module group 130 update the update module 133 to the update module for update.
  • each update module includes the reception unit 301, transmission unit 302, control unit 303, update unit 304, verification unit 305, MAC value generation unit 306, MAC value table update unit 307, distributed information.
  • the holding unit 308 is included.
  • the present invention is not limited to this.
  • Each update module may be configured only by components (control unit 303 and verification unit 305) necessary for the monitoring process. In addition, each update module may be configured by only components (control unit 303 and update unit 304) necessary for the update process. In addition, each update module may be configured by only components (control unit 303 and update unit 304) necessary for the invalidation process.
  • each update module may be composed of the above combinations.
  • the plurality of update modules included in the update module group 130 may be configured to include components necessary for the monitoring process and the update process as a whole.
  • the verification unit 305 of each update module performs a tamper check on other update modules and the protection control module 120.
  • the target of the tamper check is limited to the entire module. It is not a thing.
  • the target of the tampering check may be a part of the update module, for example, data such as a specific function, function, or key included in the update module. Also, instead of checking all the falsification targets at once, it is possible to check only a part of the falsification targets. At this time, tampering check may be performed for each part obtained by dividing the tampering target into a certain size, or tampering check may be performed for each part obtained by dividing the function or function unit. Furthermore, each time a tampering check is performed, one part may be sequentially selected from a plurality of parts to be tampered with, and the selected part may be tampered with.
  • each update module and protection control module 120 may operate in a region protected from an attack by an attacker, such as a tamper resistant region.
  • the other update modules and the determination unit 210 are updated in the protected area.
  • the notification may be accepted unconditionally, and update processing or invalidation processing may be performed.
  • the notification may be treated as more important than notifications from other modules, and the update process or invalidation process may be determined.
  • the protection control module operates in the protection mode, that is, operates in a tamper-resistant area or the like.
  • the update module may operate in the normal mode, that is, operate in an area that is not tamper resistant.
  • the module invalidation unit 230 is present in the update server and the access control module 140 is present in the device.
  • the present invention is not limited to this.
  • the module invalidation unit 230 and the access control module 140 may exist in the device or in the update server. Moreover, you may exist in each update module.
  • module invalidation unit 230 and the access control module 140 are not separate modules, but may be one module inside the device or inside the update server.
  • the access information acquisition key and the encrypted access information are not transmitted to the update module, but the access information is invalidated. It may be sent directly to the update module.
  • the update server is configured from a determination unit, an update software distribution unit, a module invalidation unit, a communication unit, a monitoring pattern update unit, and the like, but is not limited thereto. .
  • the determination unit, the update software distribution unit, the module invalidation unit, the communication unit, the monitoring pattern update unit, and the like may be configured by one module. Moreover, it is good also as being comprised from the combination of said part.
  • the software update system performs the initial setting process at the time of manufacturing the device, but the present invention is not limited to this.
  • the initialization process may be performed somewhere after shipment from the factory, such as after sales. Further, the initialization process may be performed not only once but also twice or more.
  • the verification certificate and the authentication key certificate are certificates generated using the signature private key held by the update software distribution unit 220. However, the present invention is not limited to this, and may be generated using different keys, or may be a certificate issued by a certificate issuing device other than the update software distribution unit 220.
  • the shared information generated from the encryption / decryption key is transmitted to the update module 13x, and the update module 13x holds the shared information. However, the present invention is not limited to this.
  • the application program may hold the shared information, or the update module 13x and the application program may hold the shared information. (10)
  • the detection processing operation when the update module 13x detects falsification of the protection control module 120, the falsification detection processing is performed using the MAC value calculated using the verification key. However, it is not limited to this.
  • Verification may be performed using the falsification detection certificate of the protection control module 120. Further, instead of performing falsification verification using a hash value like a MAC value or a certificate, falsification verification may be performed by checking a log. (11) In each of the above embodiments, when each update module detects falsification of the protection control module 120 as an operation of the detection process, the determination unit 210 and other update modules are notified. However, the present invention is not limited to this. is not.
  • the update module may be stopped, or the device 100 or the protection control module 120 may be stopped. Furthermore, the tampered protection control module may be deleted.
  • each update module does not detect falsification of the protection control module 120, the determination unit 210 is not notified, but the present invention is not limited to this. As a result of performing the falsification detection process, it may be notified that falsification has not been detected. (12) In each of the above embodiments, as an operation of the detection process, each update module does not transmit the falsification detection result of the protection control module to other update modules. However, each update module shares the detection result. It is good.
  • the update module may be determined to be an invalid update module and invalidated. (13)
  • the operation of the analysis / determination process it is determined whether to update the protection control module 120 based on the falsification information.
  • the present invention is not limited to this.
  • Whether or not to update may be determined by the number of update modules that have been notified that tampering has occurred. For example, it may be determined to update when the number of update modules that have been notified of tampering is greater than or equal to a predetermined number, and may be determined not to be updated when less.
  • the predetermined number is the number of all update modules included in the update module group.
  • each update module authenticates the update software distribution unit 220, and then the update software distribution unit 220 authenticates each update module.
  • the present invention is not limited to this.
  • the update software distribution unit 220 may authenticate each update module, and then each update module may authenticate the update software distribution unit 220. In addition, each update module and the update software distribution unit 220 may individually perform authentication processing. (15) In each of the above embodiments, as the mutual authentication processing operation, the update software distribution unit 220 uses different values for each update module in the process of authenticating each update module. It is not limited to.
  • the challenge data may be the same value in all the update modules, or all the update modules may be divided into a plurality of groups, and the challenge data may be different in each group. (16) In each of the above embodiments, as an operation of the mutual authentication process, each update module individually authenticates the update software distribution unit 220 in a process in which each update module authenticates the update software distribution unit 220. However, it is not limited to this.
  • the result of signature verification is notified to the other update modules, the verification result is shared between the update modules, and the update software distribution unit 220 authenticates from the authentication result of the self-update module and the authentication result received from the other update module. Whether or not each may be determined.
  • the update server 200 performs the mutual authentication process using the signature private key and the signature public key.
  • the present invention is not limited to this. .
  • an authentication key pair used for mutual authentication may be used.
  • the authentication public key of the authentication key pair of the update server may be held in advance by one update module, or may be transmitted from the update server to the update module at the time of mutual authentication processing.
  • the subsequent recovery process is performed depending on whether or not the number of update modules that can be verified as a legitimate module exceeds the number required for the recovery process. Although it is determined whether to do, it is not limited to this.
  • each update module includes the authentication public key and the authentication key certificate together with the response data. Is transmitted to the update software distribution unit 220, but the present invention is not limited to this.
  • Each update module may transmit the authentication public key and the authentication key certificate together with the response data at different timings.
  • the authentication public key and the authentication key certificate may be transmitted only when requested by the update software distribution unit 220.
  • the update software distribution unit 220 may receive the authentication public keys and authentication key certificates of all the update modules, or the number of update modules that is set in advance and that is greater than the number necessary for the recovery process. Authentication public keys and authentication key certificates may be received, or authentication public keys and authentication key certificates of preset update modules that are less than the allowable number of unauthorized update modules may be received. Good. (20)
  • the monitoring process is performed twice during one decoding (monitoring 3-1, 3-2, 5-1, 5-2). However, it is not limited to this.
  • the monitoring process may be performed any number of times according to the time of the decryption process, and the monitor process may be performed during the reception process, the detection process, and the mutual authentication process of the key or update protection control module, even if it is not the decryption process. May be.
  • the update process may be divided into a plurality of blocks, and may be performed every time the process of the block is completed, may be performed at random time intervals, or may be performed at time intervals specified by the update server. Good.
  • each update module may acquire synchronization information indicating the timing of executing the monitoring process from an external server, and execute the monitoring process according to the acquired synchronization information. Thereby, each update module can execute the monitoring process at the same timing as the other update modules, so that it is possible to improve the detection accuracy of unauthorized update modules.
  • the detection frequency at the normal time and during the recovery process may be changed.
  • the detection frequency may be changed during the recovery process.
  • the number of update modules in the circulation monitoring pattern is assumed to be three. However, the present invention is not limited to this.
  • Four or more update modules may be verified by circulating in one direction.
  • a plurality of update modules in the cyclic monitoring pattern are treated as a group, but this is limited to this. It is not a thing. Even when a set of update modules monitor each other and both the verification results are normal, the set of update modules may be handled as a group. At this time, if the verification results for the same update module by the mutually monitored update modules do not match, all the sets of update modules are identified as invalid update modules.
  • the update modules in the circulation monitoring pattern may be selected in descending order of the number of verifying the same update module. For example, there are first, second, and third circulation monitoring patterns.
  • the first update module is monitored by 20 update modules, and in the second circulation monitoring pattern, Assume that 10 update modules monitor the second update module, and in the third circulation monitoring pattern, the 5 update modules monitor the third update module.
  • the circulation monitoring pattern is selected in the order of the first, second, and third circulation monitoring patterns.
  • the update modules in the circulation monitoring pattern may be selected in descending order of the number of verifying the same update module. Thereby, as the number of the same update modules to be verified increases, it is possible to perform more verification as to whether or not there is a contradiction. Therefore, if there is a conflict, it becomes easier to find the conflict quickly. As a result, unauthorized update modules can be identified quickly, and unauthorized update modules can be efficiently and quickly eliminated.
  • an unauthorized update module is specified in the monitoring result of one mutual monitoring process, but the present invention is not limited to this. An unauthorized update module may be identified based on the monitoring results of the plurality of mutual monitoring processes.
  • the update server 200bb receives the monitoring result of FIG. 71 in the mutual monitoring process, and further receives the monitoring result of FIG. 72 in the next mutual monitoring process.
  • the monitoring result of the updating module 137 to the updating module 136 is illegal (3112), and the monitoring result of the updating module 136 to the updating module 137 is also illegal (3111). Other monitoring results are normal.
  • the monitoring result of the updating module 132 to the updating module 135 is illegal (3115), and the monitoring result of the updating module 133 to the updating module 135 is also illegal (3114).
  • the monitoring result of the update module 137 to the update module 133 is illegal (3113).
  • the monitoring result of the updating module 137 to the updating module 136 is illegal (3112), and the monitoring result of the updating module 136 to the updating module 137 is also illegal (3111).
  • Other monitoring results are normal.
  • the update module 137 can be identified as an unauthorized update module.
  • An unauthorized update module continues to exist as an unauthorized update module unless it is deleted from the device 100 by invalidation processing. Therefore, in the next mutual monitoring process, an update module that determines an update module that has been identified as an unauthorized update module as a normal update module is an unauthorized update module. Therefore, the update module 135 shown in FIG. 72 can also be specified as an unauthorized update module. This is because the update module 135 determines that the update module 137 identified as unauthorized is normal. (26) In the second embodiment, an unauthorized update module is specified in the monitoring result of one mutual monitoring process, but the present invention is not limited to this.
  • An unauthorized update module may be identified based on the monitoring results of multiple mutual monitoring processes. This will be specifically described with reference to examples of monitoring results shown in FIGS. 73 and 74.
  • the update server 200bb receives the monitoring result shown in FIG. 73 in the mutual monitoring process, and further receives the monitoring result shown in FIG. 74 in the next mutual monitoring process.
  • the monitoring result to the updating module 136 by the updating module 137 is illegal (3121), and the monitoring result to the updating module 137 by the updating module 136 is also illegal (3122). Further, the monitoring result of the updating module 135 to the updating module 137 is illegal (3126), and the monitoring result of the updating module 137 to the updating module 133 is also illegal (3123). Other monitoring results are normal.
  • the monitoring result to the updating module 136 by the updating module 137 is illegal (3121), and the monitoring result to the updating module 137 by the updating module 136 is also illegal (3122). Further, the monitoring result of the updating module 133 to the updating module 135 is illegal (3124), and the monitoring result of the updating module 132 to the updating module 135 is illegal (3125), and the updating module 137 reports to the updating module 133. The monitoring result is also invalid (3123). Other monitoring results are normal.
  • the update module 135 determines that the update module 137 is an unauthorized (3126) update module. Thereafter, according to the example illustrated in FIG. 74, the update module 135 determines that the update module 137 is a normal (3127) update module. Thus, in the example shown in FIG. 73 and the example shown in FIG. 74, the determination results for the update module 137 by the update module 135 do not match. Therefore, it can be determined that the update module 135 is an unauthorized update module. (27) In the second embodiment, the normal module assumption unit 653 randomly selects one update module in the update module group 130, but the present invention is not limited to this.
  • the normal module assumption unit 653 may select an update module that determines many other update modules as normal. As a result, by determining other update modules as normal, the number of update modules included in the temporary normal update module group can be increased, and verification of whether there is a contradiction can be increased. Become. As a result, unauthorized update modules can be identified quickly, and unauthorized update modules can be efficiently and quickly eliminated. (28) In the second embodiment, the unauthorized module specifying process is terminated in step S8006 shown in FIG. 33, the other update modules are assumed to be normal, and the unauthorized module specifying process is performed again. At this time, in the unauthorized module specifying process, the normal module assumption unit 653 randomly selects one update module in the update module group 130, but the present invention is not limited to this.
  • a module other than the update module in the temporary normal update module group in step S8003 of the previous unauthorized module identification process may be selected. Since it is known that there is no contradiction among the update modules in the temporary normal update module group in the previous illegal module identification process, even if an update module in the temporary normal update module group is selected in step S8001, an illegal update is performed. Cannot be identified as a module. Accordingly, the processing efficiency can be improved by not selecting an update module that cannot be identified as an unauthorized update module. (29)
  • in the normal module specifying process it is determined whether there is a circulation monitoring pattern and whether there is a contradiction in the circulation monitoring pattern.
  • the present invention is limited to this. is not.
  • an illegal module specifying process may be executed.
  • An unauthorized update module may be identified by executing an unauthorized module identification process.
  • the fraudulent module assumption unit 673 may select an update module determined to be normal from many other update modules. Since it is determined that other update modules are normal, the number of update modules included in the temporary unauthorized update module group increases. Thereby, in step S9014, the number of update modules to be selected is reduced, and the processing efficiency can be improved.
  • step S9020 when all the update modules are not selected in step S9020, one other update module is randomly selected in step S9014.
  • a module other than the update module in the temporary unauthorized update module group in step S9016 of the previous normal module identification process may be selected.
  • the previous normal module identification process since it is known that there is no contradiction among the update modules in the temporary unauthorized update module group, even if the update module in the temporary unauthorized update module group is selected in step S9014, it is normal. Cannot be identified as an update module. Thereby, the processing efficiency can be improved by not selecting an update module that cannot be identified as a normal update module.
  • step S9005 to step S9013 it is determined whether there is a circulation monitoring pattern, an unauthorized update module is specified, and in step S9014 to step S9016, an update module is selected.
  • the present invention is not limited to this, and after step S9004, the process from step S9014 to step S9016 is performed, and then the process from step S9005 to step S9013 is performed.
  • the determination in S9017 may be made. In this case, if a normal update module cannot be identified, the process returns to step S9014, and an update module other than the update module identified as an unauthorized update module is selected in steps S9005 to S9013.
  • the monitoring result is received from each module, but if the update module does not transmit the monitoring result, the update module that does not transmit the monitoring result is illegal.
  • the update module may be specified.
  • an update module that determines that an update module that does not transmit a monitoring result is normal may be identified as an unauthorized update module.
  • an unauthorized update module can be identified before the unauthorized module identification process is performed, and the unauthorized update module can be efficiently and quickly eliminated.
  • the normal module specifying process of the third embodiment is performed in step S11017.
  • the present invention is not limited to this, and the normal module specifying process described in the modified example (29) is performed. You may do that.
  • the monitoring pattern is updated in step S12002. After updating the monitoring pattern, it is determined from the monitoring result whether there is a disturbing module, but the present invention is not limited to this. If there are multiple update modules that determine that the monitoring results for the target update module are all illegal (that is, interference candidate modules), the update modules that determine that all the monitoring results for the target update module are illegal are mutually invalid. If it is determined, an instruction to invalidate the update modules determined to be illegal may be transmitted.
  • an update module that is, an interference candidate module
  • the management device may be a management device that manages an information security device having a plurality of monitoring modules that monitor tampering.
  • the management device receives from the information security device a monitoring unit that receives monitoring results for other monitoring modules by each monitoring module, and uses the received monitoring results to monitor all monitoring target monitoring modules.
  • the information security unit so as to invalidate the extracted interference candidate module when only one interference candidate module is extracted.
  • a new monitoring pattern is created except for the interference candidate module, and the created monitoring pattern is transmitted to the information security device And an updating unit for replacing with a new monitoring pattern.
  • the reception unit further receives a new monitoring result based on a new monitoring pattern from the information security device, and the determination unit further specifies a normal monitoring module using the received new monitoring result.
  • step S12007 it is determined whether there is a block candidate module group in which update modules that are block candidate modules are determined to be normal (“ ⁇ ”). When there are interference candidate module groups that are determined to be normal to each other, if the monitoring result of step S12001 of the interference candidate module groups that are determined to be normal to each other is determined to be illegal, the interference candidate modules are determined to be illegal.
  • the update module may be specified and an invalidation instruction may be transmitted.
  • step S12001 the update module to be monitored is determined to be invalid, and in step S12007, the same update module to be monitored is determined to be normal. If there is a discrepancy, the monitoring result in each step is inconsistent, so the determined update module can be identified as an unauthorized update module.
  • the update module that hinders the specification of the normal module is specified. However, the present invention is not limited to this. An update module that hinders identification of an unauthorized module may be specified.
  • step S10008 of the operation diagram shown in FIG. 58 an unauthorized module specifying process is performed instead of the normal module specifying process.
  • the update modules 131, 132, 136, and 137 are not specified as unauthorized update modules. That is, each of the update modules 131, 132, 136 and 137 interferes with identification of its own unauthorized module.
  • the interference module identification process by performing the interference module identification process, the unauthorized module that could not be identified by the unauthorized module identification process is identified as an interference module, the identified interference module is excluded in advance, and then the unauthorized module identification process is executed. By doing so, unauthorized update modules can be eliminated efficiently and quickly.
  • a monitoring pattern for monitoring all the interference candidate modules is generated in the interference candidate module group in which all the monitoring results of the monitoring target update modules are determined to be invalid.
  • a monitoring pattern for monitoring all the update modules in the update module group 130 may be generated.
  • the interference module is identified as the interference module.
  • each of the modules may be an individual computer program, a computer program incorporated in an operating system, or a driver program called from the operating system. It may be an application program. (40) Application examples of each system (1)
  • Each system of the above embodiments may be a content reproduction system 10e as shown in FIG.
  • the content playback system 10e is composed of a BD playback device 100e, a monitor 20e, and a home server device 200e.
  • the BD playback device 100e, the monitor 20e, and the home server device 200e are connected via a home network 30e. Are connected to each other.
  • the home server device 200e acquires content from a content server device (not shown) connected to the Internet 40e via the Internet 40e.
  • the content is configured by compressing video data and audio data and further encrypting them.
  • the home server device 200e transmits the acquired content to the BD playback device 100e via the home network 30e.
  • the BD playback device 100e receives content from the home server device 200e, and records the received content on a BD (Blu-ray Disc). Further, the BD playback device 100e generates video signals and audio signals by expanding the video data and audio data that have been encrypted and compressed from the content recorded on the BD, and generates the generated video signals and audio signals. The data is output to the monitor 20e via the home network 30e. The monitor 20e receives the video signal and the audio signal, displays the video according to the received video signal and the audio signal, and outputs the audio.
  • BD Blu-ray Disc
  • the BD playback device 100e corresponds to a device of each software update system of each of the above embodiments, or corresponds to an information security device of each falsification monitoring system, and has the same configuration as the device or the information security device. is doing.
  • An example of an application program included in the BD playback device 100e is a computer program for decrypting encrypted data, and another example is for decompressing compressed video data and audio data. It is a computer program.
  • the home server device 200e corresponds to an update server of each software update system, or corresponds to a management device of each falsification monitoring system, and has the same configuration as the update server or the management device.
  • Each system in the above embodiments may be a mobile banking system 10f as shown in FIG.
  • the mobile banking system 10f includes a mobile phone 100f, a radio base station 50f, a bank server device 40f, and an update server device 200f as shown in FIG.
  • the mobile phone 100f is connected to the update server device 200f and the bank server device 40f via the radio base station 50f, the mobile phone network 20f, and the Internet 30f.
  • the bank server device 40f stores an account file corresponding to a bank user account.
  • the account file contains transaction data.
  • the transaction data includes the type of transaction, the amount, date, identification information of the other party.
  • the mobile phone 100f transfers the bank server device 40f from the operator's account to the customer's account via the radio base station 50f, the mobile phone network 20f, and the Internet 30f according to an instruction from the operator. Request.
  • the bank server device 40f executes transfer from the operator's account to the customer's account in accordance with the transfer request.
  • the mobile phone 100f performs mutual device authentication using a digital signature when transmitting / receiving data to / from the bank server device 40f. It also requests data encryption.
  • the bank server device 40f executes transfer from the operator's account to the customer's account in accordance with the transfer request.
  • the mobile phone 100f and the bank server device 40f each perform mutual device authentication using a digital signature. Further, when data is transmitted / received between the mobile phone 100f and the bank server device 40f, the mobile phone 100f and the bank server device 40f encrypt data and decrypt the encrypted data.
  • the mobile phone 100f corresponds to a device of each software update system of each embodiment, or corresponds to an information security device of each falsification monitoring system, and has the same configuration as the device or the information security device.
  • An example of an application program that the mobile phone 100f has is a computer program for encrypting data or a computer program for decrypting encrypted data, and another example is a communication partner device. Is a computer program for performing device authentication using a digital signature.
  • the update server device 200f corresponds to an update server of each software update system of each embodiment, or corresponds to a management device of each falsification monitoring system.
  • the update servers 200, 200a, and 200b described in the first embodiment and the second embodiment generate monitoring patterns when the update module groups of the devices 100, 100a, and 100b perform mutual monitoring processing, respectively.
  • the monitoring pattern generation unit may be configured.
  • the update servers 200, 200a, and 200b transmit the generated monitoring pattern to the devices 100, 100a, and 100b, and the devices 100, 100a, and 100b receive the monitoring pattern.
  • the devices 100, 100a, and 100b perform mutual monitoring processing based on the received monitoring pattern.
  • the update servers 200a and 200b may generate a monitoring pattern including a circulation monitoring pattern.
  • the devices 100a and 100b can improve the processing efficiency of the unauthorized module identification processing performed by the update servers 200a and 200b performed later by performing the mutual monitoring processing using the monitoring pattern including the circulation monitoring pattern.
  • Each of the above devices is specifically a computer system including a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or hard disk unit.
  • Each device achieves its functions by the microprocessor operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions for the computer in order to achieve a predetermined function.
  • a part or all of the constituent elements included in each of the above-described devices may be configured by one system LSI (Large Scale Integration).
  • the system LSI is a super multifunctional LSI manufactured by integrating a plurality of components on one chip, and specifically, a computer system including a microprocessor, a ROM, a RAM, and the like. .
  • a computer program is stored in the RAM.
  • the system LSI achieves its functions by the microprocessor operating according to the computer program.
  • each part of the constituent elements constituting each of the above devices may be individually made into one chip, or may be made into one chip so as to include a part or all of them.
  • the system LSI is used here, it may be called IC, LSI, super LSI, or ultra LSI depending on the degree of integration. Further, the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • a part or all of the components constituting each of the above devices may be configured as an IC card or a single module that can be attached to and detached from each device.
  • the IC card or the module is a computer system including a microprocessor, a ROM, a RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal composed of the computer program.
  • the present invention also provides a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray Disc). ), Recorded in a semiconductor memory or the like.
  • the digital signal may be recorded on these recording media.
  • the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, a data broadcast, or the like.
  • the present invention may be a computer system including a microprocessor and a memory, the memory storing the computer program, and the microprocessor operating according to the computer program.
  • a software update system includes a software update device that stores a predetermined application, and a management device connected to the software update device.
  • the software update device includes a tampering with the predetermined application.
  • a protection control module that verifies whether or not the protection control module has been updated, and a plurality of update modules that update the protection control module, wherein the plurality of update modules verify whether other update modules perform unauthorized operations.
  • the verification result is transmitted to the management device, and the management device receives a verification result from the plurality of update modules, and an update that may perform an illegal operation based on the received verification result.
  • Judgment of modules and no update module A control unit that transmits an instruction to be converted to the software update device, wherein the control unit targets a first update module among the plurality of update modules, and the first update module is normal. Assuming this assumption, the first update module and the second update module verified by the first update module as normal verify the common third update module, and If the verification result does not match the verification result of the second update module, the assumption is erroneously determined and the first update module determines that there is a possibility of performing an illegal operation.
  • an update module for updating the protection control module is set as an update module group including a plurality of update modules, and by verifying whether the plurality of update modules perform an illegal operation, Since the alteration is self-verified within the update module group, it is possible to prevent the alteration of the update module and the normal operation of the update module from being hindered. As a result, it is possible to prevent the protection control module from being updated to an unauthorized protection control module via an update module that performs an unauthorized operation, and to prevent the predetermined application from being attacked by the unauthorized protection control module.
  • the management apparatus assumes that the update module to be determined is normal using the verification result received from each of the plurality of update modules, and if there is a contradiction in the assumption, Determining that an update module has the potential for unauthorized operation. Therefore, even when a tampered update module falsely notifies another management module that has not been tampered with as "tampered", it appropriately identifies the update module that may perform unauthorized operations. be able to.
  • the management device prevents invalidating an update module that has not been tampered with by giving an instruction to invalidate the update module that is determined to have the possibility of performing the unauthorized operation. It is possible to prevent the update module from being left in the update module group without being invalidated.
  • the software update system includes a software update device that stores a predetermined application and a management device connected to the software update device, and the software update device includes the predetermined application. Includes a protection control module that verifies whether or not the tampering has been tampered with, and a plurality of update modules that update the protection control module. The verification is performed and the verification result is transmitted to the management device.
  • the management device can perform an illegal operation based on the received verification result and a communication unit that receives the verification result from the plurality of update modules.
  • An update that has determined that there is a possibility of performing the unauthorized operation A control unit that transmits an instruction to invalidate a module to the software update device, and the control unit determines a combination of which update module is to be verified among the plurality of update modules, and Sending the indicated combination information to the software update device, and including in the combination a predetermined relationship in which a plurality of update modules of the plurality of update modules sequentially circulate in one direction and sequentially verify, It is determined that all of the plurality of update modules included in the predetermined relationship are normal as a result of verifying by circulating the plurality of update modules included in the predetermined relationship in one direction based on the verification result; and If any of the determinations of the plurality of update modules included in the predetermined relationship is inconsistent, all of the plurality of update modules included in the predetermined relationship It is determined that there is a possibility to perform a positive operation.
  • the management apparatus determines a combination of which update modules are to be verified among a plurality of update modules, some of the update modules in the plurality of update modules are sequentially circulated in one direction. Include a predetermined relationship to be verified.
  • the plurality of update modules included in the predetermined relationship circulating and verified in one direction, it is determined that all of the plurality of update modules included in the predetermined relationship are normal, and the predetermined If any of the determinations of the plurality of update modules included in the relationship is inconsistent, the plurality of update modules in the predetermined relationship are treated as a group, and all of the plurality of update modules included in the predetermined relationship It can be determined that there is a possibility of performing an illegal operation.
  • the control unit determines that any of the update modules may perform an illegal operation,
  • the plurality of update modules included in the predetermined relationship is not determined whether or not there is a possibility of performing an illegal operation.
  • a plurality of update modules included in the predetermined relationship cannot be handled as a group. Thereafter, if there are a plurality of other update modules having the predetermined relationship, the process may be shifted to a process of determining the plurality of update modules as a group.
  • control unit determines that all of the plurality of update modules included in the predetermined relationship are normal as a result of verifying by circulating the plurality of update modules included in the predetermined relationship in one direction. If there is no contradiction in any of the determinations of the plurality of update modules included in the predetermined relationship, whether or not there is a possibility that the plurality of update modules included in the predetermined relationship may be illegally operated. No judgment is made.
  • the plurality of update modules having the predetermined relationship are handled as a group, and it can be considered that it is impossible to determine whether or not there is a possibility of performing an illegal operation.
  • the process may be shifted to a process of determining the plurality of update modules as a group.
  • the first update module detects falsification of the second update module
  • the second update module detects falsification of the third update module
  • the third update module detects falsification of the first update module. That is, the first update module, the second update module, and the third update module circulate in one direction and sequentially perform falsification detection processing.
  • At least two update modules of the plurality of update modules included in the predetermined relationship verify other common update modules, and the control unit uses the two update modules to determine the common other modules.
  • the verification results for the update modules are inconsistent, it is determined that any of the determinations of the plurality of update modules included in the predetermined relationship is inconsistent.
  • the other common update module may be an update module included in the predetermined relationship.
  • the other common update module may be an update module not included in the predetermined relationship.
  • control unit of the management device may perform an illegal operation on all of the plurality of update modules included in the predetermined relationship in order from the smallest number of update modules included in the predetermined relationship. Judge whether there is sex.
  • control unit of the management apparatus is monitored from other update modules not included in the predetermined relationship when there are a plurality of update modules included in the predetermined relationship. In order from the one that includes more update modules, it is determined whether or not all of the plurality of update modules included in the predetermined relationship are likely to perform an illegal operation.
  • the management device includes a storage unit that stores a relationship list indicating a plurality of update modules included in the predetermined relationship, and the control unit is based on the relationship list stored in the storage unit, A module having the smallest number of update modules included in the predetermined relationship is identified.
  • the relationship list a plurality of update modules included in the predetermined relationship may be arranged in an order of decreasing number of the plurality of update modules included in the predetermined relationship.
  • the determination unit can quickly identify the module having the smallest number of update modules included in the predetermined relationship.
  • the predetermined application is encrypted using a predetermined encryption key, and a decryption key corresponding to the predetermined encryption key is converted into a plurality of distributed keys according to a predetermined distribution method.
  • Each of the plurality of distributed keys is assigned to the update module, and each of the plurality of update modules is arranged to be an end point of a virtual polygon, and the distributed key assigned to the own update module is assigned to each of the plurality of update keys.
  • Holding the distributed key assigned to the other two update modules adjacent to each other, and the protection control module acquires at least three of the distributed keys from the update module and restores the decryption key,
  • the plurality of update modules included in the predetermined relationship includes three update modules, and the three update modules included in the predetermined relationship.
  • the update module is composed of three update modules different from the three update modules composed of one update module and other two adjacent update modules corresponding to the distributed key held by the one update module. It is characterized by.
  • the decryption key since a plurality of distributed keys generated from the decryption key are allocated to the update module, the decryption key cannot be acquired even if an unauthorized analyst analyzes the protection control module. Therefore, the confidentiality of the predetermined application can be ensured.
  • each of the plurality of update modules is arranged to be an end point of a virtual polygon, and each update module has a distributed key assigned to its own update module and is adjacent to two other update modules Since the distributed key assigned to is held, the decryption key can be reproduced even when some of the update modules are invalidated.
  • the protection control module can restore the decryption key.
  • the management apparatus stores a protection control module that verifies whether a predetermined application has been tampered with, and a plurality of update modules that update the protection control module, and the plurality of update modules Is connectable to a software update device that verifies whether another update module does not perform an illegal operation, and a communication unit that receives the verification result from the software update device, and an illegal operation based on the received verification result
  • a control unit that determines an update module that has a possibility of performing an unauthorized operation, and transmits an instruction to invalidate the update module that has been determined to have the possibility of performing an unauthorized operation, to the software update device,
  • a combination of which update modules to be verified is determined among the plurality of update modules, and the combination Including a predetermined relationship in which the plurality of update modules in the plurality of update modules sequentially circulate in one direction and sequentially verify in the combination.
  • the unauthorized module identifying method includes a predetermined application, a protection control module that verifies whether the predetermined application has been tampered with, and a plurality of update modules that update the protection control module.
  • a software updating apparatus comprising storage means for storing, and a control means for performing control to verify whether another update module does not perform an unauthorized operation, and transmitting the verification result to the management apparatus.
  • a communication unit that receives the verification results from the plurality of update modules, and an update module that may perform an illegal operation based on the received verification results, and may perform the illegal operation.
  • a control unit that transmits an instruction to invalidate the determined update module to the software update device.
  • a method for determining an update module that may perform an illegal operation from the plurality of update modules in the management device comprising: A combination of which update modules is to be verified is determined, and combination information indicating the combination is transmitted to the software update device, and some of the plurality of update modules in the plurality of update modules is included in the combination Are included in the predetermined relationship as a result of circularly verifying a plurality of update modules included in the predetermined relationship based on the verification result. Which of the plurality of update modules is determined to be normal, and any of the plurality of update modules included in the predetermined relationship If there is a conflict, all of the plurality of update modules included in the predetermined relationship is determined that there is a possibility of performing illegal operations.
  • the present invention is an unauthorized module identifying device that identifies and invalidates an unauthorized module that operates on an information processing apparatus connected via a network.
  • receiving means for receiving one of the plurality of modules is a normal module, based on the assumption, whether there is a contradiction in a plurality of received falsification detection results, if there is a contradiction
  • An unauthorized module identifying apparatus comprising: a determining unit that identifies a module assumed to be a normal module as an unauthorized module; and an invalidating unit that outputs an invalidation instruction for the identified unauthorized module.
  • the determination means selects one of the plurality of modules and assumes a normal module, and a module first assumed to be a normal module by the assumption means is used as a starting point.
  • a detection destination module in which tampering is not detected is a normal module
  • a new detection destination module in which tampering is not detected as a result of the falsification detection processing by this newly assumed module is a normal module.
  • the new detection destination module is determined to be an abnormal module, the module that performs the falsification detection process and the detection target module are shifted in order until reaching the end point.
  • Iterative means for repeating the processing assumed to be Temporary normal module storage means for storing the identification information of the module assumed to be a normal module for the return means, and the tampering detection result by the module from the start point to the end point with reference to the identification information stored in the temporary normal module storage means And a contradiction detecting means for detecting whether or not there is a contradiction, and a specifying means for identifying a module assumed by the assumption means as an illegal module when a contradiction is detected.
  • the determination means performs falsification detection processing in one direction between the modules that make a circuit when one of the detection destination modules up to the end module matches the start module.
  • the apparatus further includes a replacement unit that performs a process of replacing all of the modules that make a round with one normal module.
  • the present invention relates to a technology in which, in an industry that manufactures and sells an update server that provides software to an information processing device, the update server specifies unauthorized software that operates on the information processing device and updates the software safely. Can be used as

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

 本発明は、ネットワークを介して接続されている情報処理装置100aで動作する不正モジュールを特定して無効化する不正モジュール特定装置200aであって、改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信手段2310と、前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断手段210aと、特定された不正モジュールの無効化指示を出力する無効化手段2320とを備えることを特徴とする。

Description

不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法
 本発明は、不正動作を行う可能性のあるモジュールを特定する技術に関する。
 従来、認証鍵等の秘匿データを有しているアプリケーションプログラムが、悪意のある第三者(以下、「攻撃者」という)に解析されないようにするため、耐タンパモジュールによる保護が知られている。耐タンパモジュールは、通常、ハードウェアとして機器上に実装され、アプリケーションプログラムを保護している。しかし、日々新たな攻撃手法が考案される昨今の現状を踏まえると、新たな攻撃手法に柔軟に対応するためにも、更新が容易なコンピュータプログラムであるソフトウェアにより、アプリケーションプログラムを保護することが望ましい。
 ソフトウェアによってアプリケーションプログラムを保護する技術として、例えば、ハッシュ値を用いた改ざん検証や、アプリケーションプログラムを利用しない時には暗号化して保存しておき、利用する時にのみ復号してメモリへロードする復号ロード機能等がある。
 ところが、このような技術を利用しても、アプリケーションプログラムを保護するソフトウェア(以下、「保護制御モジュール」という)自体が攻撃者により攻撃され得る。保護制御モジュールが改ざんされると、アプリケーションプログラムが攻撃者の攻撃にさらされることになる。
 特許文献1は、プログラムの改変の有無をチェックするチェックプログラム自体の改変が行われた場合でも、改変されたプログラムの実行を確実に阻止することが可能なプログラムの改変防止のための技術を開示している。この技術によると、プログラムの改変の有無を監視するためのチェックプログラムを複数用意し、各チェックプログラムが他のチェックプログラムのうちのいずれかを監視する。以下にこの技術について簡単に説明する。
 2つの監視モジュールA、Bが相互に監視を行うものとする。監視モジュールA、Bはそれぞれ、攻撃者による改ざんから保護すべきプログラム(本体プログラムA、B)、他のモジュールが改ざんされているかを検出するためのプログラム(チェックプログラムA、B)、及びそれぞれのチェックプログラムが改ざん検出を行うために必要な情報(チェック情報A、B)から構成される。チェックプログラムAは、監視モジュールBの本体プログラムBとチェックプログラムBの改ざん検出を、チェック情報Aを用いて行う。さらにチェックプログラムBは、監視モジュールAの本体プログラムAとチェックプログラムAの改ざん検出を、チェック情報Bを用いて行う。この様に、それぞれの監視モジュールが、相手の監視モジュールの本体プログラム及びチェックプログラムの改ざん検出を行う。
日本国特許第3056732号公報 WO2008/099682
岡本龍明、山本博資、「現代暗号」、産業図書(1997年) ITU-T Recommendation X.509 (1997 E): Information Technology - Open Systems Interconnection - The Directory: Authentication Framework,1997 F.Preparata,G. Metze and R.T. Chien,"On The Connection Assignment Problem of Diagnosable Systems," IEEE Trans. Electronic Computers,vol. 16,pp.848-854,1968.
 このようにして改ざん検出を行い、改ざんを検出した場合には、例えば、ネットワークを介して、外部のサーバ装置から正常な保護制御モジュールを取得し、改ざんされた保護制御モジュールを正常な保護制御モジュールに更新すればよい。しかしながら、保護制御モジュールを更新する機能を担うモジュール(以下、「更新モジュール」という)も攻撃者により攻撃され得る。
 更新モジュールが改ざんされると、保護制御モジュールが正しく更新されず、アプリケーションプログラムが有する秘匿データが漏洩する恐れがある。更新モジュールの改ざん検出を行うモジュールをさらに備えることにより、更新モジュールの改ざんを検出することは可能となるが、当該モジュール自体もやはり改ざんされる恐れがあるため、根本的な解決には至らない。
 上記においては、保護制御モジュールの更新例を用いて説明したが、保護制御モジュールの更新以外に、アプリケーションプログラムや更新モジュール自身を更新する場合においても、これらが正しく更新されないことにより同様の問題が生じる。
 上記のような問題を解決するために、本発明は、従来よりも高い確率で改ざんされている不正モジュールを特定することができる不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュールー特定プログラム、集積回路、ソフトウェア更新システム、およびソフトウェア更新方法を提供することを目的とする。
 上記の目的を達成するために、本発明は、ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置であって、改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信手段と、前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断手段と、特定された不正モジュールの無効化指示を出力する無効化手段とを備えることを特徴とする。
 本発明によれば、モジュールが相互に改ざん検出処理を行った結果の矛盾を検出することにより不正なモジュールを特定するので、改ざん検出結果を偽って通知してきた不正なモジュールを論理的な検証方法を用いて効果的に特定することができる。そして、特定された不正なモジュールの無効化指示を出力することにより、不正なモジュールを適切に排除することができる。
実施の形態1におけるソフトウェア更新システム10の全体構成図である。 実施の形態1における更新モジュール131のブロック図である。 実施の形態1における保護制御モジュール120のブロック図である。 実施の形態1におけるアクセス制御モジュール140のブロック図である。 実施の形態1における機器100のハードウェア構成図である。 実施の形態1における機器100のソフトウェア構成図である。 実施の形態1における判断部210のブロック図である。 実施の形態1における更新用ソフトウェア配布部220のブロック図である。 実施の形態1におけるモジュール無効化部230のブロック図である。 実施の形態1におけるソフトウェア更新システム10全体の動作を示すフローチャートである。 実施の形態1における初期設定処理の動作を説明するための図である。 実施の形態1における初期設定処理のシーケンス図である。 実施の形態1における更新モジュール初期化処理のフローチャートである。 実施の形態1における検知処理のシーケンス図である。 実施の形態1における解析・判断処理のシーケンス図である。 実施の形態1における相互認証処理のシーケンス図である。 実施の形態1における相互認証処理のシーケンス図である。 実施の形態1における回復処理のフローチャートである。 実施の形態1における相互監視処理のシーケンス図である。 実施の形態1における更新処理のシーケンス図である。 実施の形態1における更新処理のシーケンス図である。 実施の形態1における相互監視処理と更新処理との連携動作について説明するための図である。 実施の形態1における再暗号化処理のシーケンス図である。 実施の形態1における次ラウンド準備処理のシーケンス図である。 実施の形態1における無効化処理のシーケンス図である。 実施の形態2における更新モジュール群130bの構成を説明するための図である。 実施の形態2における判断部210bのブロック図である。 実施の形態2における不正モジュール特定部605のブロック図である。 実施の形態2における循環検出部606のブロック図である。 実施の形態2における監視パターンについて説明するための図である。 実施の形態2における相互監視結果について説明するための図である。 実施の形態2における相互監視結果の矛盾について説明するための図である。 実施の形態2における不正モジュール特定処理のフローチャートである。 実施の形態2における不正モジュール特定処理を説明するための図である。 実施の形態2における循環監視パターンについて説明するための図である。 実施の形態2における循環監視パターンの矛盾について説明するための図である。 実施の形態2における循環監視パターンの矛盾について説明するための図である。 実施の形態2における循環監視パターンを考慮した不正モジュール特定処理のフローチャートである。 実施の形態2における循環監視パターンリスト2100のデータ構成を示す図である。 実施の形態2における循環監視パターンリスト2200のデータ構成を示す図である。 実施の形態2における循環監視パターンを考慮した不正モジュール特定処理のフローチャートである。 実施の形態2における循環監視パターンを考慮した不正モジュール特定処理のフローチャートである。 循環監視パターンを考慮して分散情報を配布する具体例を説明するための図である。 循環監視パターンを考慮して分散情報を配布する具体例を説明するための図である。 ソフトウェア更新システム10cbにおける判断部210cbの構成を示す構成図である。 ソフトウェア更新システム10cbにおける正常モジュール特定部607の構成を示す構成図である。 ソフトウェア更新システム10cbにおける検証結果判定部674による判定方法について説明するための監視パターン及び監視の結果の一例である。 ソフトウェア更新システム10cbにおける各更新モジュールの改竄検出の監視の結果の一例を示す。 ソフトウェア更新システム10cbにおける各更新モジュールの改竄検出の監視の結果の別の一例を示す。 ソフトウェア更新システム10cbにおける正常な更新モジュールの特定処理の動作を示すフローチャートである。図51へ続く。 ソフトウェア更新システム10cbにおける正常な更新モジュールの特定処理の動作を示すフローチャートである。図52へ続く。 ソフトウェア更新システム10cbにおける正常な更新モジュールの特定処理の動作を示すフローチャートである。図51から続く。 ソフトウェア更新システム10dbの構成を示す構成図である。 ソフトウェア更新システム10dbにおける監視パターン更新部250の構成を示す構成図である。 ソフトウェア更新システム10dbにおける判断部210cbの構成を示す構成図である。 ソフトウェア更新システム10dbにおける妨害モジュール特定部608の構成を示す構成図である。 監視の結果の一例を示す。 ソフトウェア更新システム10dbにおける動作を示す動作図である。特に、妨害モジュール特定処理と正常モジュール特定処理との関係を表している。 ソフトウェア更新システム10dbにおける妨害モジュールの特定処理と正常モジュールの特定処理の動作を示すシーケンス図である。図60へ続く。 ソフトウェア更新システム10dbにおける妨害モジュールの特定処理と正常モジュールの特定処理の動作を示すシーケンス図である。図59から続く。 ソフトウェア更新システム10dbにおける妨害モジュールの特定処理を示すフローチャートである。図62へ続く。 ソフトウェア更新システム10dbにおける妨害モジュールの特定処理を示すフローチャートである。図63へ続く。 ソフトウェア更新システム10dbにおける妨害モジュールの特定処理を示すフローチャートである。図62から続く。 ソフトウェア更新システム10dbの変形例における監視の結果の一例を示す。 ソフトウェア更新システム10dbにおける監視パターンの一例を示す。 ソフトウェア更新システム10dbにおける相互の監視の結果の一例を示す。 ソフトウェア更新システム10dbにおける相互の監視の結果の別の一例を示す。 ソフトウェア更新システム10dbにおける相互の監視の結果のさらに別の一例を示す。 ソフトウェア更新システム10dbにおける相互の監視の結果のさらに別の 変形例(22)における監視結果の一例を示す。 変形例(25)における監視結果の一例を示す。 変形例(25)における監視結果の一例を示す。 変形例(26)における監視結果の一例を示す。 変形例(26)における監視結果の一例を示す。 コンテンツ再生システム10eの構成を示す構成図である。 モバイルバンキングシステム10fの構成を示す構成図である。 本発明の実施の形態3における改竄監視システム10caの構成を示すブロック図である。 本発明の実施の形態4における改竄監視システム10daの構成を示すブロック図である。 実施の形態2に係るソフトウェア更新システム10aの全体構成図である。 実施の形態2に係るソフトウェア更新システム10bの全体構成図である。
 請求項1に記載の態様である不正モジュール特定装置は、ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置であって、改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信手段と、前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断手段と、特定された不正モジュールの無効化指示を出力する無効化手段とを備えることを特徴とする。
 請求項2に記載の態様である不正モジュール特定装置において、前記判断手段は、正常モジュールと仮定したモジュールの識別情報を記憶する仮正常モジュール群記憶手段と、前記複数のモジュールから一つを選択し、正常モジュールと仮定し、識別情報を前記仮正常モジュール群記憶手段に記録する仮定手段と、前記仮定手段により正常モジュールと仮定された前記モジュールを起点として、改ざん検出処理の結果、改ざんが検出されないモジュールを正常モジュールと仮定し、識別情報を前記仮正常モジュール群記憶手段に記録する手順を繰り返す仮正常モジュール群生成手段と、前記仮正常モジュール群記憶手段に記憶されている識別情報に対応するモジュールによる改ざん検出結果に矛盾があるか否か判断する矛盾検出手段と、矛盾が検出された場合に、前記仮定手段において正常モジュールと仮定した前記モジュールを不正モジュールと特定する特定手段とを備えることを特徴とする。
 この構成によると、正常なモジュールは誤った改ざん検出結果を出力しないという前提に基づき仮正常モジュール群を生成することにより、改ざん検出結果を偽って通知してきた不正なモジュールを論理的な検証方法を用いて効果的に特定することができる。
 請求項3に記載の態様である不正モジュール特定装置において、前記仮定手段は、第1モジュールを前記正常モジュールと仮定し、前記矛盾検出手段は、前記第1モジュールと、前記第1モジュールによる改ざん検出結果が正常である第2モジュールとが改ざん検出を行なった第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記第1モジュールを不正モジュールと特定することを特徴とする。
 この構成によると、3つのモジュールが相互に改ざん検出処理を行う場合には、前記矛盾検出手段による単純な検証によって、不正なモジュールを確実に特定することができる。
 請求項4に記載の態様である不正モジュール特定装置において、前記判断手段は、
 一方向に循環して改ざん検出を行うモジュール群である循環パターンに含まれる複数のモジュールの識別情報を記憶している循環記憶手段と、前記循環パターンに含まれる複数のモジュールが一方向に循環して改ざん検出を行った結果がすべて正常である場合に、前記循環パターンに含まれる複数のモジュールを正常モジュールと仮定する仮定手段と、前記循環パターンに含まれる2以上のモジュールによる他のモジュールへの改ざん検出結果に矛盾があるか否か判断する矛盾検出手段と、矛盾がある場合、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定する特定手段とを備えることを特徴とする。
 この構成によると、一方向に循環して改ざん検出を行う複数のモジュールを一群として扱うことにより、個々の更新モジュール毎に不正であるか否かを判断する場合と比較して、処理効率を格段に向上させることができる。
 請求項5に記載の態様である不正モジュール特定装置において、前記矛盾検出手段は、前記循環パターンに含まれる第1モジュールと第2モジュールとが改ざん検出を行った前記循環パターンに含まれない第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定することを特徴とする。
 請求項6に記載の態様である不正モジュール特定装置において、前記矛盾検出手段は、前記循環パターンに含まれる第1モジュールと第2モジュールとが改ざん検出を行った前記循環パターンに含まれる第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定することを特徴とする。
 請求項7に記載の態様である不正モジュール特定装置において、前記矛盾検出手段は、前記循環パターンに含まれる第1モジュールと第2モジュールとが相互に改ざん検出を行った結果が矛盾するか否か判断し、相互に改ざん検出を行った結果が矛盾する場合、前記特定手段は、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定することを特徴とする。
 この構成によると、一方向に循環して改ざん検出処理を行う循環パターンが存在する場合には、様々な検証パターンにおいて不正モジュール特定処理の効率を向上させることができる。
 請求項8に記載の態様である不正モジュール特定装置は、検証元のモジュールと検証先のモジュールとの組み合わせである監視パターンを記憶している監視パターン記憶手段を備え、前記循環記憶手段は、前記監視パターン記憶手段に記憶されている監視パターンから、一方向に循環して改ざん検出を行うモジュール群である循環パターンを検出し、検出した前記循環パターンに含まれる複数のモジュールの識別情報を記憶することを特徴とする。
 この構成によると、不正モジュール特定装置が予め循環パターンを検出して記憶しておくことにより、不正モジュール特定処理の効率を向上させることができる。
 請求項9に記載の態様である不正モジュール特定装置において、前記判断手段は、前記循環記憶手段に複数の循環パターンが記憶されている場合、循環パターンに含まれるモジュール数が少ない循環パターンから順に、前記仮定手段、前記矛盾検出手段、および前記特定手段の処理を行うこと特徴とする。
 循環パターンに含まれるモジュール数が多い場合、循環パターンに含まれるすべてのモジュールが同時に改ざんされている可能性は低いと考えられる。また、循環パターンに含まれるモジュール数が多いほど、すべての検証結果が正常となる可能性は低くなる。
 そこで、循環パターンが複数存在する場合には、モジュール数の少ない循環パターンから優先的に不正モジュール特定処理を行うことにより、不正な更新モジュールを効率的に発見し、無効化することができる。
 請求項10に記載の態様である不正モジュール特定装置において、前記判断手段は、前記循環記憶手段に複数の循環パターンが記憶されており、かつ、各循環パターンに含まれるモジュール数が同数である場合、各循環パターンに含まれるモジュールに対する改ざん検出処理を行う当該循環パターンに含まれないモジュールの数が多い循環パターンから順に、前記仮定手段、前記矛盾検出手段、および前記特定手段の処理を行うこと特徴とする。
 循環パターン内の更新モジュールがすべて不正モジュールと判断された後は、循環パターン外の更新モジュールが、循環パターンに含まれるいずれかの更新モジュールを正常と判定している場合、当該循環パターン外の更新モジュールは、不正なモジュールであると判断できる。
 そこで、循環パターンに含まれるモジュール数が同じである循環パターンが複数存在する場合には、循環パターン内の更新モジュールに対して改ざん検出処理を行っている循環パターン外のモジュールの数が多い循環パターンから、優先的に不正モジュール特定処理を行うことにより、全体の不正モジュール特定処理を効率的に行うことができる。
 請求項11に記載の態様である不正モジュール特定装置において、前記循環記憶手段は、さらに、循環パターン毎に、各循環パターンに含まれるモジュール数、および、当該循環パターンに含まれるモジュールに対する改ざん検出処理を行う当該循環パターンに含まれないモジュールの数を含む循環パターンリストを記憶しており、前記判断手段は、前記循環パターンリストを参照して、前記仮定手段、前記矛盾検出手段、および前記特定手段により処理を行う循環パターンの順序を決定することを特徴とする。
 この構成によると、予め前記循環パターンリストを保持しておくことにより、不正モジュール特定処理を効率的に行うことができる。
 請求項12に記載の態様である不正モジュール特定装置において、前記循環記憶手段に記憶されている前記循環パターンリストは、各循環パターンに含まれるモジュール数が少ない順に、各循環パターンに含まれるモジュール数、および、当該循環パターンに含まれるモジュールに対する改ざん検出処理を行う当該循環パターンに含まれないモジュールの数を配置していることを特徴とする。
 この構成によると、前記循環パターンリストの上位から順に情報を読み出して処理を行えば、モジュール数の少ない順に不正モジュール特定処理を行うことができる。
 請求項13に記載の態様である不正モジュール特定装置は、前記情報処理装置で動作し、相互に改ざん検出処理を行う複数のモジュールについて、検証元のモジュールと検証先のモジュールとの組み合わせである監視パターンを生成する監視パターン生成手段と、生成した前記監視パターンを、前記情報処理装置へ送信する監視パターン送信手段とを備え、前記監視パターン生成手段は、複数のモジュールが一方向に循環して改ざん検出を行う循環パターンを含む前記監視パターンを生成すること特徴とする。
 この構成によると、一方向に循環して改ざん検出を行う複数のモジュールから改ざん検出結果を受信した場合には、前記複数のモジュールを一群として扱うことにより、個々の更新モジュール毎に不正であるか否かを判断する場合と比較して、処理効率を格段に向上させることができる。
 請求項14に記載の態様である情報処理装置は、秘匿データを含み、且つ、暗号化されているアプリケーションプログラムと、前記秘匿データを保護する機能を有する保護制御モジュールと、ソフトウェアを更新する機能を有し、相互に改ざんの有無を検証し合い、前記暗号化されているアプリケーションプログラムを復号するための復号鍵から所定の鍵分散法に従って生成された複数の分散鍵のうち、自身に割り当てられた分散鍵を保持する複数のモジュールとを備える情報処理装置であって、前記複数のモジュールが一方向に循環して改ざん検出を行うモジュール群である循環パターンを含む場合、前記循環パターンに含まれるモジュールに割り当てられる分散情報は、前記循環パターンに含まれないモジュールにも重複して割り当てられることを特徴とする。
 循環パターンの場合、一つのモジュールが不正モジュールと特定されると、循環パターンに含まれるすべてのモジュールが不正モジュールと特定され、無効化される。
 そこで、循環パターンに含まれるモジュールに割り当てられる分散情報を、前記循環パターンに含まれないモジュールにも重複して割り当てることにより、前記復号鍵の復元が不能となる事態を防止することができる。
1.実施の形態1
 ここでは、本発明に係る不正モジュール無効化システムの実施の形態として、ソフトウェア更新システム10について図面を参照しながら説明する。
1.1 ソフトウェア更新システム10の構成
(1)全体構成
 図1は、ソフトウェア更新システム10の全体構成図である。
 同図に示すように、ソフトウェア更新システム10は、本発明に係る情報処理装置である機器100と、本発明に係る不正モジュール特定装置である更新サーバ200とから構成される。機器100と更新サーバ200とは、ネットワークを介して接続されている。
(2)機器100の構成
 次に、機器100について説明する。
 機器100は、ネットワークを介した様々なサービスをユーザに提供する機器である。例えば、機器100は、コンテンツ配信サーバにアクセスし、音楽や映像などのコンテンツを購入して再生したり、金融機関のシステムにアクセスし、ネットバンキング(預金の残高照会や口座振り込みなど)を利用したりする。
(a)機器100のソフトウェア構成
 図1に示すように、機器100は、アプリケーションソフト(以下、「アプリ」という。)110、アプリ111、保護制御モジュール120、更新モジュール群130、およびアクセス制御モジュール140を含む。
 アプリ110およびアプリ111は、ネットワークを介して、機器100を使用するユーザに、様々な機能を提供するためのソフトウェアである。例えば、コンテンツ配信サーバ(不図示)から音楽コンテンツや映像コンテンツを購入し、その購入したコンテンツを再生するソフトウェアや、金融機関のシステム(不図示)にアクセスし、残高確認や振り込みなどのネットバンキングを利用するためのソフトウェアである。
 アプリ110及びアプリ111は、コンテンツ配信サーバや金融機関のシステムと認証を行うための認証鍵など、秘匿データを有している。秘匿データは、悪意のある第三者(以下、「攻撃者」という。)によりアプリから抜き取られ、不正に利用されないようにするために保護される必要があるデータである。
 保護制御モジュール120は、攻撃者によりアプリ110およびアプリ111が解析され、認証鍵などの秘匿データが抜き取られないようにアプリ110およびアプリ111を保護するための機能を制御するモジュールである。アプリを保護するための機能としては、アプリを利用しない時には暗号化して保存しておき、アプリを利用する時にのみ復号してメモリへロードする復号ロード機能や、アプリが改ざんされていないかをチェックする改ざん検出機能、デバッガなどの解析ツールが動作しないかをチェックする解析ツール検出機能などがある。
 保護制御モジュール120は、これらの機能の動作を制御し、アプリ110およびアプリ111が攻撃者によって解析されていないかなどをチェックする。攻撃者による攻撃を検出したときには、保護制御モジュール120は、アプリ110およびアプリ111の動作を停止し、アプリ110およびアプリ111が利用していたメモリ、特に秘匿データが記録されたメモリ領域のクリアなどの処理を行い、秘匿データの漏洩を防止する。
 更新モジュール群130は、複数の更新モジュールから構成される。実施の形態1では、更新モジュール群130は、図1に示すように、更新モジュール131、更新モジュール132、および更新モジュール133の3つの更新モジュールから構成される。
 更新モジュール131、132、133は、それぞれ、保護制御モジュール120の改ざんの有無を検出する。各更新モジュールは、保護制御モジュール120が改ざんされている場合、更新サーバ200から更新用の保護制御モジュールをダウンロードし、改ざんされている保護制御モジュールを更新する機能を有する。
 また、更新モジュール131、132、133は、アプリ110およびアプリ111を更新する機能を有していてもよい。
 そして、更新モジュール群130は、攻撃者によって各更新モジュールが改ざんされ、各更新モジュールを不正に利用されることを防止するために、更新モジュール同士が相互に改ざん検出を実施する。そして、改ざん検出結果を、更新サーバ200へ送信する。更新サーバ200により、ある更新モジュールが改ざんされていると判断された場合には、他の正常な更新モジュールは、更新サーバ200からの無効化指示を受け、改ざんされた更新モジュールを無効化する。
 これにより、更新モジュール群130に含まれる一部の更新モジュールが攻撃され、改ざんされた場合であっても、それを検出し、攻撃に対処することが可能となる。
 アクセス制御モジュール140は、各更新モジュールが他のモジュールを消去するために必要なアクセス情報を保持する。アクセス情報は、例えば、消去対象であるモジュールが配置されているアドレスや、消去に必要な手順が書かれた手順書などである。なお、アクセス情報は、消去対象であるモジュール毎に、それぞれ個別のアクセス情報取得鍵で暗号化されている。
(b)更新モジュールの構成
 次に、更新モジュール131、132、133の詳細について説明する。
 図2は、更新モジュール131の機能的な構成を示す機能ブロック図である。更新モジュール132および133も同様の構成を有する。更新モジュール131は、更新モジュール本体と、検証用証明書と、MAC値テーブルとを含む。
 更新モジュール本体は、受信部301、送信部302、制御部303、更新部304、検証部305、MAC値生成部306、MAC値テーブル更新部307、および分散情報保持部308から構成される。
 受信部301は、更新サーバ200から、各種指示や更新用ソフトウェアを受信する。また、受信部301は、他の更新モジュールから、相互監視を行うために必要な更新モジュール本体や更新モジュール検証用証明書などを受信する。さらに、受信部301は、他の更新モジュールから、依頼した処理の結果や、当該他の更新モジュールによる保護制御モジュール120の監視結果などを受信する。
 送信部302は、更新サーバ200、保護制御モジュール120、他の更新モジュール、およびアクセス制御モジュール140へ、各種処理結果や証明書などのデータを送信する。
 制御部303は、受信部301が受信した各種指示や通知に基づいて、更新部304や検証部305を制御することにより各種の処理を行う。
 具体的には、制御部303は、保護制御モジュール120、更新モジュール132.および更新モジュール133の改ざん検証処理、保護制御モジュール120、更新モジュール132、および更新モジュール133の更新処理、監視パターンの更新処理などを行う。
 更新部304は、制御部303の制御に基づき、更新サーバ200と連携して、機器100内部のソフトウェア、具体的には、アプリ110および111、保護制御モジュール120、更新モジュール131.132および133を更新する。
 検証部305は、制御部303の制御に基づき、保護制御モジュール120、更新モジュール132および更新モジュール133の改ざん検出処理を行う。
 検証部305は、各モジュールに付加されている検証用証明書を用いて改ざん検出処理を行うとしてもよい。または、予め計算されたメッセージ認証コード(Message Authentication Code)(以下、「MAC値」という。)を用いてもよい。
 検証部305が、どのタイミングでどのモジュールの改ざん検出処理を行うのかは、予め、更新サーバ200から与えられている。検証部305は、更新サーバ200から改ざん検出対象のモジュールの変更や改ざん検出を行うタイミングの変更の指示があった場合には、指示にしたがい変更する。
 MAC値生成部306は、検証鍵を保持している。MAC値生成部306は、検証部305が改ざん検出処理にMAC値を用いる場合、検証鍵を用いてMAC値を生成する。
 MAC値テーブル更新部307は、各モジュールのMAC値が格納されているMAC値テーブルを更新する。MAC値テーブルには、モジュールを識別するためのモジュール識別子と、そのモジュールに対応するMAC値とが対になって格納されている。
 MAC値生成部306は、改ざん検出処理の対象であるモジュールを取得し、MAC値を計算する。検証部305は、計算されたMAC値とMAC値テーブルに格納されている対象モジュールのMAC値とを比較することにより改ざん検出を行う。
 分散情報保持部308は、分散情報および配置情報を保持している。分散情報は、保護制御モジュール120がアプリ110および111の暗復号処理に用いる暗復号鍵から秘密分散法に基づいて生成された情報である。配置情報は、どの分散情報をどの更新モジュールに配布したかを記述した情報である。
 なお、署名方式に関しては非特許文献1に詳しく説明されている。証明書に関しては非特許文献2に詳しく説明されている。また、分散情報に関しては特許文献2に詳しく説明されている。
(c)保護制御モジュール120の構成
 ここでは、保護制御モジュール120の詳細について説明する。
 図3は、保護制御モジュール120の機能的な構成を示す機能ブロック図である。
 同図に示すように、保護制御モジュール120は、受信部401、送信部402、制御部403、復号ロード部404、改ざん検出部405、解析ツール検出部406、暗復号鍵保持部407、暗復号鍵生成部408、暗復号鍵分散部409、証明書生成部410、および暗復号鍵復元部411から構成される。
 受信部401は、更新モジュール131、132、133から、分散情報や各種依頼などを受信する。
 送信部402は、更新モジュール131、132、133へ、各種依頼などを送信する。
 制御部403は、復号ロード部404、改ざん検出部405、および解析ツール検出部406を制御することにより、アプリ110、111が攻撃者により攻撃されている場合に、それを検出する。
 復号ロード部404は、暗号化されているアプリ110、111を実行するときに、暗復号鍵を用いて復号し、メモリ上にロードする処理を行う。また、アプリ110、111の実行中に、他のアプリへのコンテキストスイッチが発生すると、復号ロード部404は、メモリ上のデータを、暗復号鍵を用いて暗号化する。そして、再びアプリ110、111へコンテキストスイッチしたときに、暗号化したデータを復号する処理を行う。
 さらに、後述する再暗号化処理において、復号ロード部404は、暗復号鍵復元部411から入力される復元された旧暗復号鍵を用いて、アプリ110、111を復号した後、暗復号鍵保持部407に保持されている新たな暗復号鍵を用いて、アプリ110、111を再暗号化する。
 改ざん検出部405は、アプリ110、111の改ざん検出処理を実行する。改ざん検出処理は、アプリ110、111に付加されている検証用証明書を用いる方法と、MAC値を比較する方法とがある。
 解析ツール検出部406は、デバッガなどの解析ツールがインストールされたり、動作したときにそれを検出する。不正な攻撃者がアプリ110、111を攻撃するために、解析ツールをインストールしたり、動作させることが想定されるからである。検出方法としては、例えば、ファイル名を検索する方法や、デバッガが使用する特殊なレジスタが使用されているかを調べる方法や、デバッガが設定する割り込みを検出する方法などを用いる。
 暗復号鍵保持部407は、アプリ110、111を暗復号するための暗復号鍵を保持する。
 暗復号鍵生成部408は、アプリ110、111を暗復号するための暗復号鍵を生成する。
 暗復号鍵分散部409は、初期設定時や次ラウンド準備時に、暗復号鍵から秘密分散法を用いて分散情報を生成する。
 証明書生成部410は、暗復号鍵から生成された分散情報を復元したときに、正しく復元できたか否かを検証するために用いられる証明書を生成する。
 暗復号鍵復元部411は、配置情報に基づいて、各更新モジュールから、各更新モジュールに配布されていた分散情報を取得する。そして、暗復号鍵復元部411は、取得した分散情報から暗復号鍵を復元し、復元した暗復号鍵を復号ロード部404に送信する。
(d)アクセス制御モジュール140の構成
 図4は、アクセス制御モジュール140の構成を機能的に示す機能ブロック図である。同図に示すように、アクセス制御モジュール140は、受信部501、送信部502、およびアクセス情報保持部503から構成される。
 受信部501は、更新モジュール131、132、133から、改ざんされた更新モジュールを消去するために必要な情報であるアクセス情報の取得依頼を受信する。
 送信部502は、アクセス情報取得依頼に応じて、アクセス情報取得を依頼してきた更新モジュールへアクセス情報を送信する。
 アクセス情報保持部503は、更新モジュール131、132、133毎に、そのモジュールを消去するためのアクセス情報を保持する。
 各アクセス情報は、消去対象となる更新モジュールを識別するための更新モジュール識別子が付されている。また、各アクセス情報は、アクセス情報取得鍵で暗号化されている。
 更新モジュール131、132、133からアクセス情報取得依頼を受け付けると。アクセス情報保持部503は、消去対象の更新モジュールの識別子が付されたアクセス情報を、依頼元の更新モジュールへ送信する。
(e)機器100のハードウェア構成
 続いて、図5を用いて、機器100のハードウェア構成について説明する。
 図5に示すように、機器100は、CPU(Central Processing Unit)171、不揮発性メモリであるEEPROM(Electrically Erasableand Programmable Read Only Memory)172、RAM(Random Access Memory)173、およびNIC(Network Interface Card)174などを含んで構成される。また、これらはバスを介して、相互に通信可能に接続されている。
 EEPROM172には、保護制御モジュール120、更新モジュール131、132、133、及びアプリ110、111などが格納されている。
 EEPROM172に格納されている各種モジュールをCPU171が実行することにより、各種モジュールの各機能部が実現される。各機能部は、具体的には、コンピュータプログラムによって記述されている。
 RAM173は、CPU171のワークエリアとして用いられる。RAM173には更新モジュール131、132、133、および、アプリ110、111がロードされる。改ざん検出処理および無効化処理の対象となる更新モジュールは、RAM173上で動作している更新モジュールである。
 NIC174は、ネットワークに接続するための拡張カードである。
(f)ソフトウェア階層
 続いて、図6を用いて、機器100のソフトウェア階層について説明する。
 図6に示すように、アクセス制御モジュール140及び更新モジュール群130は、OS150の中に組み込まれている。アプリ110及びアプリ111は、OS150上で動作し、保護制御モジュール120及びブートローダ160は、OS150の管理外にある。
 機器100の起動の際には、まず保護制御モジュール120及び更新モジュール群130が起動された上でアプリケーションが実行される。
(3)更新サーバ200の構成
 次に、更新サーバ200の構成について説明する。
 更新サーバ200は、機器100の更新モジュール群130から、改ざん検出結果を受信して、受信した改ざん検出結果を基に、無効化すべき不正な更新モジュールを特定する不正モジュール特定装置として機能する。さらに、更新サーバ200は、機器100上で動作するソフトウェア(例えば、保護制御モジュール120)を更新するために必要な更新用のソフトウェアを機器100に配布するソフトウェア配布装置として機能する。
(a)全体構成
 図1に示すように、更新サーバ200は、判断部210、更新用ソフトウェア配布部220、モジュール無効化部230、および通信部240から構成される。更新サーバ200は、具体的には、CPU、ROM、RAM、ハードディスクユニットなどを備えるコンピュータシステムである。CPUが、ROMまたはハードディスクユニットに記憶されているコンピュータプログラムにしたがって動作することにより、更新サーバ200は、上記の機能を発揮する。
 判断部210は、機器100の更新モジュール群130から、改ざん検出結果を受信して、受信した改ざん検出結果を基に、無効化すべき不正な更新モジュールを特定する。
 更新用ソフトウェア配布部220は、保護制御モジュール120を更新する際に、更新モジュール131、132、133と連携して動作し、更新用のソフトウェアを機器100へ安全に送信する。
 モジュール無効化部230は、更新モジュール131、132、133からアクセス情報取得鍵取得要求を受け付けると、要求元の更新モジュールへ、アクセス情報取得鍵を送信する。
 通信部240は、機器100と、更新サーバ200内部の各部との間で情報の送受信を行う。例えば、通信部240は、機器100から受信した改ざん検出結果を判断部210に送信する。なお、機器100と更新サーバ200との間の通信には、データを暗号化するなど、セキュリティの確保された通信路を用いてもよい。
 続いて、更新サーバ200の各構成要素について説明する。
(b)判断部210の構成
 図7は、判断部210の構成を機能的に示す機能ブロック図である。
 同図に示すように、判断部210は、受信部601、送信部602、指示生成部603、およびモジュール特定部604とから構成される。
 受信部601は、更新モジュール131、132、133から、改ざん検出結果、分散情報、各種依頼などを受信し、それらを指示生成部603へ出力する。また、受信部601は、更新サーバ200内の各部から、処理が完了した旨の通知を受け取り、それを指示生成部603へ出力する。
 送信部602は、指示生成部603によって生成された指示を、更新サーバ200内の各部へ出力する。
 指示生成部603は、更新モジュール131、132、133から受信した改ざん検出結果(以下、「相互監視結果」ということがある。)を、モジュール特定部604へ出力する。また、指示生成部603は、モジュール特定部604から、改ざんされている不正な更新モジュールを識別する情報を取得し、取得した情報を基に、更新サーバ200内の各部に対する指示を生成する。
 モジュール特定部604は、更新モジュール131、132、133から受信した相互監視結果を用いて、各更新モジュールが改ざんされているか否かを判断し、改ざんされている不正な更新モジュールを特定する。モジュール特定部604は、不正な更新モジュールを識別する情報を指示生成部603へ出力する。
 実施の形態1のモジュール特定部604は、例えば、各更新モジュールから受信した複数の改ざん検出結果を用いて、過半数の更新モジュールが「改ざんされている」と判断した更新モジュールを不正な更新モジュールであると特定する。具体的には、いま更新モジュール群130には、3つの更新モジュール131、132、133が含まれているので、2つの更新モジュールが「改ざんされている」と判断した更新モジュールを、不正な更新モジュールと特定する。
(c)更新用ソフトウェア配布部220
 図8は、更新用ソフトウェア配布部220の機能的な構成を示す機能ブロック図である。
 同図に示すように、更新用ソフトウェア配布部220は、受信部701、送信部702、暗号鍵生成部703、暗号処理部704、認証部705、更新モジュール選択部706、制御部707、証明書生成部708、署名秘密鍵保持部709、更新用ソフトウェア保持部710、および暗号鍵保持部711から構成される。
 受信部701は、更新モジュール131、132、133から保護制御モジュール120に対する改ざん検出結果、および更新モジュール間の相互監視結果を受信する。
 送信部702は、機器100のアプリ110、111、保護制御モジュール120を更新する必要がある場合に、更新モジュール131、132、133へ、更新処理の依頼、更新用ソフトウェア、復号に必要な鍵などのデータを送信する。
 暗号鍵生成部703は、更新用ソフトウェアを更新モジュール131、132、133へ送信するときに使用する暗号鍵を生成する。
 暗号処理部704は、暗号鍵生成部703が生成した暗号鍵を用いて、更新用ソフトウェアを暗号化する。また、暗号処理部704は、各更新モジュール固有の鍵を用いて、暗号鍵を暗号化する。
 暗号鍵および更新用ソフトウェアは、更新モジュール131、132、133へ一度にすべてが送信されるのではなく、更新処理の中で、それぞれのデータが必要になったタイミングで、それぞれ各更新モジュールへ送信される。
 認証部705は、更新モジュール131、132、133、および保護制御モジュール120と相互認証を行う。
 更新モジュール選択部706は、保護制御モジュール120を更新する場合に、更新処理に使用する更新モジュールを選択する。暗号処理部704は、更新用の保護制御モジュールの暗号化に使用した暗号鍵を、更新モジュール選択部706が選択した更新モジュール固有の鍵を用いて暗号化する。そして、送信部702は、更新モジュール選択部706が選択した更新モジュールへ、暗号鍵および更新用の保護制御モジュールを送付する。
 制御部707は、更新用ソフトウェア配布部220の各構成要素を制御する。
 証明書生成部708は、更新モジュール131、132、133の認証公開鍵に対して署名秘密鍵を用いて認証証明書を生成する。また、証明書生成部708は、更新用の保護制御モジュールに対して署名秘密鍵を用いて、機器100にて、保護制御モジュールが正しく更新されたか否かを検証するための更新検証証明書を生成する。
 署名秘密鍵保持部709は、証明書生成部708が証明書を生成するときに用いる署名秘密鍵を保持する。
 更新用ソフトウェア保持部710は、保護制御モジュール120が攻撃された場合に更新するための更新用の保護制御モジュールを保持する。
 暗号鍵保持部711は、暗号鍵生成部703が生成した暗号鍵および暗号処理部704により暗号化された暗号鍵を保持する。
(d)モジュール無効化部230
 図9は、モジュール無効化部230の機能的な構成を示す機能ブロック図である。
 同図に示すように、モジュール無効化部230は、受信部801、送信部802、アクセス情報取得鍵保持部803、および更新モジュール選択部804から構成される。
 受信部801は、判断部210から改ざんされた不正な更新モジュールを無効化する指示を受信する。また、受信部801は、更新モジュール131、132、133からアクセス情報取得鍵の取得依頼を受信する。
 送信部802は、アクセス情報取得鍵の取得依頼に応じて、アクセス情報取得鍵を依頼元の更新モジュールへ送信する。
 アクセス情報取得鍵保持部803は、アクセス制御モジュール140が保持するアクセス情報を復号するための鍵であるアクセス情報取得鍵を保持する。
 更新モジュール選択部804は、改ざんされた不正な更新モジュールの無効化処理を行う更新モジュールを選択し、選択した更新モジュールに、不正な更新モジュールの無効化を指示する。
 なお、モジュール選択部804が選択した更新モジュールからアクセス情報取得鍵の取得依頼があった場合には、送信部802は、アクセス情報取得鍵に、消去対象となる更新モジュールの識別子を付して、前記更新モジュールへ送信する。
1.2 ソフトウェア更新システム10の動作
 続いて、ソフトウェア更新システム10の動作を説明する。
(1)全体動作
 図10は、ソフトウェア更新システム10全体の処理の流れを示したフローチャートである。
 ソフトウェア更新システム10は、先ず、初期設定処理を行う(S100)。
 初期設定処理とは、保護制御モジュール120を更新するために必要となる各種の鍵データや、ソフトウェア更新後に必要となるデータ(秘密分散法を用いて分散した分散情報)などを更新モジュール131、132、133のそれぞれに埋め込む処理である。なお、初期設定処理は、機器100が工場で製造される際に行われる。その後、機器100は、工場から出荷され、ユーザの利用に供される。
 ユーザにより機器100が利用される際には、機器100内部では、保護制御モジュール120がアプリ110、111を攻撃者による攻撃から保護する。
 これと同時に、更新モジュール131、132、133は、保護制御モジュール120の改ざん検出処理を実行し、保護制御モジュール120が攻撃されているか否かをチェックする検知処理を行う(S200)。
 次に、ソフトウェア更新システム10は、ステップS200で保護制御モジュール120の改ざんが検出された場合に、保護制御モジュール120を解析し、更新する必要があるか否か判断する解析・判断処理を行う(S300)。
 次に、ソフトウェア更新システム10は、更新モジュール131、132、133と更新用ソフトウェア配布部220とが互いに正しいソフトウェアであるか否かを確認するための相互認証処理を行う(S400)。
 次に、ソフトウェア更新システム10は、回復処理を行う(S500)。
 回復処理とは、更新モジュール群130に含まれる更新モジュール間で相互に改ざん検出処理を行った後、更新用の保護制御モジュールを機器100へインストールする。そして、機器100において、更新モジュール131、132、133へ埋め込まれた分散情報を用いて、保護制御モジュールを更新する処理である。
 その後、ソフトウェア更新システム10は、次に保護制御モジュールの更新が必要となる場合に備えて、更新に必要な鍵データや分散情報を生成し、各更新モジュールに埋め込む次ラウンド準備処理を行う(S600)。その後、ソフトウェア更新システム10は、ステップS200の検知処理へ戻り、処理を続ける。
 ここで、ソフトウェア更新システム10は、ステップS400の相互認証処理、および、ステップS400の回復処理において、更新モジュール131、132、133の改ざんが検出された場合には、改ざんされた不正な更新モジュールを消去する無効化処理を行う。
 なお、本発明のソフトウェア更新システムは、上記のすべての処理は必須ではない。ソフトウェア更新システムは、外部から更新のトリガを与えられて、更新を行う処理(回復処理)があればよい。
(2)初期設定処理の動作
 ここでは、図11から図13を用いて、ソフトウェア更新システム10の初期設定処理(図10のS100)の詳細について説明する。
 図12は、初期設定処理のシーケンス図である。
 ソフトウェア更新システム10は、機器100の工場製造時に、機器100の不揮発メモリへアプリ(110、111)、保護制御モジュール120、更新モジュール(131、132、133)などをインストールする(S1000)。
 これらのソフトウェアには、ソフトウェアが改ざんされているか否かを検証するための改ざん検出用証明書が付加されている。この改ざん検出用証明書は、更新サーバ200の更新用ソフトウェア配布部220が保持する署名秘密鍵により署名が施されている。なお、S1000では、上記のソフトウェア以外にも、機器100の動作に必要なソフトウェアがインストールされる。
 ここで、図11を用いて、初期設定処理の際に機器100に埋め込まれる鍵について説明する。図11は、機器100に埋め込まれる鍵を模式的に示す図である。ここでは、更新モジュール群130の内部に更新モジュール131のみ含まれている。実際には、更新モジュール132及び133も含まれるが、ここでは省略する。
 図11に示すように、保護制御モジュール120には暗復号鍵が埋め込まれ、更新モジュール131、132、133には署名公開鍵、検証鍵及び認証鍵対が埋め込まれる(この時点では、まだ、更新モジュールに分散情報の組は埋め込まれてない)。更に、更新モジュール131、132、133には、それぞれの更新モジュールを識別するための更新モジュール識別子が埋め込まれ、その状態で機器100にインストールされる。
 暗復号鍵は、アプリ110、111を暗号化及び復号するための鍵である。アプリ110、111は、暗復号鍵を用いて暗号化された状態で不揮発メモリへ記憶され、実行時に保護制御モジュール120により暗復号鍵を用いて復号された後、実行される。
 機器100が、コンテキストを切り替えながら複数のアプリを実行する場合には、コンテキスト切り替えのタイミングで、暗復号鍵を用いて、アプリ110、111が使用しているデータの暗号化及び復号を行うことにより、アプリ110、111の実行時に、デバッガなどの解析ツールによって、データが抜き取られることを防止する。
 更新モジュール131、132、133に埋め込まれる鍵のうち、署名公開鍵は、すべての更新モジュールに共通の鍵である。検証鍵と認証鍵対とは、それぞれの更新モジュールで異なる鍵である。 図12に戻り説明を続ける。S1000で各ソフトウェアをインストールした後、機器100は、初期設定を行うソフトウェア、および、正常に動作するかテストするためのソフトウェアなどを実行して、初期化する(S1001)。また、機器100は、保護制御モジュール120、および、更新モジュール131、132、133に対して、初期化指示を出力する。
 保護制御モジュール120は、暗復号鍵から秘密分散法を用いて分散情報を生成する(S1002)。なお、保護制御モジュール120は、分散情報保持部308を備える更新モジュールの数と同数の分散情報を生成する。更新モジュール131、132、133がすべて分散情報保持部308を備えている場合、保護制御モジュール120は、3つの分散情報を生成する。
 更に、保護制御モジュール120は、署名秘密鍵を用いて、暗復号鍵証明書を生成する(S1003)。暗復号鍵証明書は、暗復号鍵の復元時に、暗復号鍵が正しく復元できたか否かを確認するための証明書である。
 保護制御モジュール120は、生成した分散情報と暗復号鍵証明書とを、更新モジュール131、132、133へ送信する(S1004)。
 なお、保護制御モジュール120は、更新モジュール131、132、133が、それぞれ異なる分散情報の組を保持するように、各更新モジュールに分散情報の組を送信する。更に、保護制御モジュール120は、どの更新モジュールへどの分散情報を送信したかを示す配置情報を、各更新モジュールへ送信する。各更新モジュールに送信される配置情報は、同一の情報である。
 暗復号鍵から秘密分散法を用いて分散情報を生成する方法や、分散情報を更新モジュールへ送信する方法については、特許文献2の47ページから49ページに詳しく説明されている。特許文献2における秘密鍵dを本実施の形態の暗復号鍵に対応させ、認証局装置を保護制御モジュール120に対応させ、分散情報保持装置を更新モジュール131、132、133に対応させることで、特許文献2と同じ方法を用いることができる。
 保護制御モジュール120から分散情報、配置情報及び暗復号鍵証明書を受信した各更新モジュールは、更新モジュール初期化処理を行う(S1005)。
(3)更新モジュール初期化処理
 図13は、更新モジュール初期化処理(図12のS1005)の動作を示すフローチャートである。
 なお、ここでは、更新モジュール131についてのみ説明するが、更新モジュール132、および133の動作も基本的に同一である。
 更新モジュール131は、保護制御モジュール120から分散情報、配置情報及び暗復号鍵証明書を受信し、受信した各情報を分散情報保持部308に保持する(S1006)。
 更に、更新モジュール131は、改ざん検出対象である更新モジュール132、133及び保護制御モジュール120の改ざん検出用証明書の検証を行う(S1007)。この検証は、各モジュールからハッシュ値を生成し、生成したハッシュ値とそれぞれの改ざん検出用証明書に記述されているハッシュ値とを比較することにより行う。
 生成したハッシュ値が、それぞれの改ざん検出用証明書に記述されているハッシュ値と一致すれば(S1008でY)、更新モジュール132、133、保護制御モジュール120のそれぞれに対してMAC値を生成する。そして、生成したMAC値を、MAC値テーブルとして保持する(S1009)。
 少なくとも1のハッシュ値が、改ざん検出用証明書に記述されているハッシュ値と一致しなければ(S1008でN)、更新モジュール131は、エラーを出力して停止する(S1010)。
(4)検知処理の動作
 続いて、図14のシーケンス図を用いて、ソフトウェア更新システム10の検知処理(図10のS200)の詳細について説明する。
 機器100は、初期設定処理を終えると工場から出荷され、ユーザの元へ送られ、ユーザの元で機器100が使用される。
 機器100でアプリ110、111が動作しているとき、機器100内部では、保護制御モジュール120が復号ロード機能、改ざん検出機能、解析ツール検出機能などの機能を制御し、アプリ110、111を攻撃者による攻撃から保護する。
 検知処理においては、先ず、更新モジュール131、132、133が、保護制御モジュール120の改ざん検出を実施する。改ざん検出は、検証鍵を使用して保護制御モジュール120のMAC値を計算し、計算したMAC値とMAC値テーブルに保持されているMAC値とを比較することにより行う。
 MAC値が一致すれば、保護制御モジュール120は改ざんされていないと判定し、MAC値が一致しなければ、保護制御モジュール120は改ざんされていると判定する。
 なお、図14では記載を簡略化し、更新モジュール131のみが保護制御モジュール120の改ざん検出を行っているように記載されているが、当然ながら、更新モジュール132、133でも同様の処理が行われる。
 その後の処理についても、更新モジュール131が保護制御モジュール120の改ざんを検出した場合を中心に記載しているが、更新モジュール132、133が保護制御モジュール120の改ざんを検出した場合も基本的には同様の処理が行われる。
 保護制御モジュール120が改ざんされているか否か、即ち、MAC値が一致するか否かを判定し、保護制御モジュール120が改ざんされていると判定した場合(S2000でY)、更新モジュール131は、その旨を、更新サーバ200の判断部210及び他の更新モジュールへ通知する(S2001)。
 保護制御モジュール120が改ざんされていないと判定した場合(S2000でN)、更新モジュール131は、判断部210や他の更新モジュールへ通知を行わず、改ざん検出処理へ戻る。
 他の更新モジュールから保護制御モジュール120が改ざんされている旨の通知を受けた更新モジュールは、検証鍵及びMAC値を用いて、保護制御モジュール120の改ざん検出を実施する(S2002)。そして、改ざん検出結果を、判断部210及び他の更新モジュールへ通知する(S2003)。
 判断部210は、更新モジュール131、132、133から改ざん検出結果を受信する。
 なお、ステップS2000の検知処理時にも、更新モジュール群130が、相互に改ざん検出処理を行い、不正な更新モジュールを特定する相互監視処理を行ってもよい。そして、不正な更新モジュールが特定された場合には、特定された更新モジュールを無効化する無効化処理を行ってもよい。
 相互監視処理および無効化処理の詳細については後述する。なお、相互監視処理では、本発明に係る実施の形態2で説明する方法を用いて、不正モジュール特定処理を行ってもよい。
(5)解析・判断処理の動作
 続いて、図15のシーケンス図を用いて、解析判断処理(図10のS300)の詳細について説明する。なお、図15では、更新モジュール131、132、133のそれぞれが個別に行う処理を、更新モジュール群130が行う処理としてまとめて記載している。
 図14のS2001およびS2003において、判断部210が各更新モジュールから保護制御モジュール120の改ざん検出結果を受信すると、判断部210は、受信した改ざん検出結果に基づいて、保護制御モジュール120が正常であるか不正であるか(改ざんされているか否か)を判定する。
 判定方法の一例として、例えば、所定数の更新モジュールが改ざんを検出した場合には、保護制御モジュール120は不正である(改ざんされている)と判定し、また、所定数未満の更新モジュールが改ざんを検出した場合には、保護制御モジュール120は正常である(改ざんされていない)と判定する。前記所定数は、更新モジュール群130に含まれる更新モジュールの過半数としてもよい。
 保護制御モジュール120が改ざんされていると判定した場合(S3000でY)、判断部210は、保護制御モジュール120を回復する必要があるか否かを判断するために、更新モジュール群130に対して、保護制御モジュール120のどの部分が改ざんされたかなどの改ざん情報の通知を依頼する(S3001)。
 更新モジュール群130は、改ざん情報の通知を依頼されると、改ざん情報を収集して(S3002)、判断部210へ通知する(S3003)。
 判断部210は、改ざん情報に基づいて、保護制御モジュール120を回復するか、機器100をリボークするか、または、何もしないかを判断する(S3004)。
 保護制御モジュール120を回復する場合(S3004でY)、判断部210は、更新用の保護制御モジュールを準備し(S3006)、更新モジュール群130に、更新処理の開始を指示する(S3007)。また、機器100をリボークする場合には、アプリ110、111にサービスを提供しているサーバに対して、機器100をリボークするように依頼する(S3005)。何もしない場合(S3004でN)、検知処理へ戻る。
 保護制御モジュール120が正当である(改ざんされていない)と判定した場合(S3000でN)は、検知処理へ戻る。
(6)相互認証処理の動作
 次に、図16および図17のシーケンス図を用いて、ソフトウェア更新システム10による相互認証処理(図10のS400)の詳細について説明する。
 更新サーバ200の判断部210が、解析・判断処理において、保護制御モジュール120を回復する必要があると判断した場合、判断部210は、更新用ソフトウェア配布部220へ、保護制御モジュール120の回復を指示する。
 更新用ソフトウェア配布部220は、更新モジュール131、132、133へ更新処理の開始を指示した後、各更新モジュールとの間で、それぞれ1対1の相互認証処理を行う。これにより、機器100が不正なサーバと接続したり、更新サーバ200が不正な機器と接続することを防止する。なお、相互認証処理において、更新用ソフトウェア配布部220は、署名秘密鍵および署名公開鍵を使用し、各更新モジュールは、認証鍵対(認証秘密鍵及び認証公開鍵)を使用する。
 図16は、更新モジュール131が更新用ソフトウェア配布部220を認証するときのシーケンス図である。なお、更新モジュール132、133も、図16の更新モジュール131と同様に動作し、更新用ソフトウェア配布部220を認証する。
 更新モジュール131は、乱数生成器を用いて乱数(チャレンジデータ)を生成し(S4000)、生成したチャレンジデータを更新用ソフトウェア配布部220へ送信する(S4001)。この時、更新モジュール131を識別するための更新モジュール識別子を、チャレンジデータと共に送信する。 更新用ソフトウェア配布部220は、受信したチャレンジデータに署名秘密鍵を用いて署名データを生成し(S4002)、生成した署名データをレスポンスデータとして、更新モジュール131へ返信する(S4003)。
 更新モジュール131は、更新用ソフトウェア配布部220からレスポンスデータを受信すると、署名公開鍵を用いて、レスポンスデータが、チャレンジデータの署名データと一致するか否か検証する(S4004)。
 検証の結果、レスポンスデータが正しく、更新用ソフトウェア配布部220が正当なモジュールである場合(S4005でY)、更新モジュール131は、処理を継続する。レスポンスデータが正しくなく、更新用ソフトウェア配布部220が不正なモジュールである場合(S4005でN)、更新モジュール131は、エラーを出力し、処理を停止する(S4006)。
 次に、更新用ソフトウェア配布部220が、更新モジュール131、132、133を認証する。
 図17は、更新用ソフトウェア配布部220が各更新モジュールを認証するときのシーケンス図である。
 更新用ソフトウェア配布部220は、チャレンジデータを送信してきた各更新モジュールに対して、乱数生成器を用いてそれぞれ異なる乱数(チャレンジデータ)を生成し(S4100)、生成したチャレンジデータを、各更新モジュールへ個別に送信する(S4101)。
 各更新モジュールは、受信したチャレンジデータに認証秘密鍵を用いて署名データを生成し(S4102)、生成した署名データをレスポンスデータとして更新用ソフトウェア配布部220へ返信する。
 このとき、各更新モジュールは、レスポンスデータと共に認証公開鍵と認証鍵証明書とを更新用ソフトウェア配布部220へ送信する。
 更新用ソフトウェア配布部220は、それぞれの更新モジュールからレスポンスデータ、認証公開鍵及び認証鍵証明書を受信する(S4104)。更新用ソフトウェア配布部220は、認証鍵証明書が、自身が発行した証明書であるか否か検証し、更に、認証鍵証明書を用いて、認証公開鍵の正当性を検証する(S4105)。
 認証鍵証明書及び認証公開鍵が不正であれば、更新用ソフトウェア配布部220は、処理を停止する(S4106)。
 認証鍵証明書及び認証公開鍵が正当であれば、更新用ソフトウェア配布部220は、認証公開鍵を用いて、受信したレスポンスデータがチャレンジデータの署名データと一致するか否か検証する(S4107)。
 次に、更新用ソフトウェア配布部220は、正しいレスポンスデータを返した更新モジュール(正当な更新モジュール)の数が、予め設定されている回復処理に必要な数以上であるかを判断する(S4108)。
 正当な更新モジュールの数が、回復処理に必要な数に満たない場合、回復処理が実行できないため、更新用ソフトウェア配布部220は、処理を停止する(S4106)。正当な更新モジュールの数が、回復処理に必要な数を満たしている場合、相互認証処理を終了し、回復処理に移る。
 また、更新用ソフトウェア配布部220は、相互認証処理において、正当性が確認されたすべての更新モジュールの更新モジュール識別子を記載した認証リストを作成する。そして、これ以降の回復処理では、認証リストに識別子が記載されている更新モジュールのみを利用する。
(7)回復処理の動作
 続いて、図18~23を用いて、回復処理(図10のS500)の詳細について説明する。回復処理は、上述した相互認証処理において、相互認証が成功した場合に、改ざんされた保護制御モジュール120を、新しい更新用の保護制御モジュールへ更新する処理である。
 図18は、回復処理時の動作を示すフローチャートである。
 先ず、各更新モジュール131、132、133が、相互監視処理を行う(S5000)。相互監視処理では、各更新モジュールが、他の更新モジュールの改ざん検出処理を実行する。
 さらに、更新用保護制御モジュールを用いて、保護制御モジュール120を更新する更新処理を行う(S5100)。
 そして、暗号化されたアプリ110、111を再暗号化する再暗号化処理を行う(S5200)。
 なお、本発明のソフトウェア更新システムは、上記のすべての処理は必須ではない。ソフトウェア更新システムは、外部から更新のトリガを与えられて、新しい保護制御モジュールを用いて、改ざんされた保護制御モジュール120を更新する更新処理(S5000)、及び、更新モジュールが相互に改ざん検出を実施する回復時相互監視処理(S5100)があればよい。
(8)相互監視処理
 ここでは、図19のシーケンス図を用いて、相互監視処理(図18のS5000)の詳細について説明する。
 相互監視処理では、更新モジュール131、132、133が、更新モジュール群130内の他の更新モジュールに対して改ざん検出処理を実行する。相互監視処理において、どの更新モジュールに対して改ざん検出処理を実行するかは、更新モジュールが保持する監視パターンに記述されている。監視パターンには、改ざん検出対象であるモジュールに関する情報(モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等)が記述されている。
 先ず、更新モジュール131は、更新モジュール132の改ざん検出処理を行い、(S5001a)、更新モジュール132は、更新モジュール133の改ざん検出処理を行い(S5001b)、更新モジュール133は、更新モジュール131の改ざん検出処理を行う(S5001c)。
 各更新モジュールは、各更新モジュール131、132、133のMAC値を、検証鍵を用いて算出し、MAC値テーブルに保持されている、初期設定時に算出されたMAC値と比較することにより改ざん検出処理を行う。
 また、各更新モジュールは、更新モジュール131、132、133のハッシュ値を算出し、算出したハッシュ値と、各更新モジュールに予め付加されている証明書に記述されているハッシュ値とを比較することにより改ざん検出処理を行ってもよい。
 各更新モジュールは、改ざん検出結果を判断部210へ通知する(S5002)。
 判断部210は、各更新モジュールから改ざん検出結果を受信し(S5003)、改ざんされた更新モジュールがあるか否かを判定する(S5004)。
 改ざんされた更新モジュールがあると判定した場合には(S5004でY)、判断部210は、直ちに回復処理を停止する(S5005)。
 改ざんされた更新モジュールがないと判定した場合には(S5004でN)、処理を継続する。
(9)更新処理
 続いて、図20および図21のシーケンス図を用いて、更新処理(図18のS5100)の詳細について説明する。
 先ず、更新用ソフトウェア配布部220の証明書生成部708は、署名秘密鍵を用いて、更新検証証明書を生成する(S5101)。更新検証証明書は、新しい保護制御モジュールが正しくインストールできたか否か、各更新モジュール131、132、133が確認するための証明書である。更新用ソフトウェア配布部220は、生成した証明書を、各更新モジュールへ送信する(S5102)。
 次に、更新用ソフトウェア配布部220の暗号鍵生成部703は、新しい保護制御モジュールを多重に暗号化するための暗号鍵を2つ(第1の鍵及び第2の鍵)生成する(S5103)。暗号処理部704は、第2の鍵を用いて新しい保護制御モジュールを暗号化し、暗号化新保護制御モジュールを生成する(S5104)。暗号処理部704は、暗号化新保護制御モジュールに対して、第1の鍵を用いてさらに暗号化し、多重暗号化新保護制御モジュールを生成する(S5105)。
 更新用ソフトウェア配布部220は、更新モジュール群130から正当な更新モジュールを一つ選択し(S5106)、選択した更新モジュールの識別子を判断部210に通知する。S5106では、判断部210内の不正モジュール特定部604に記憶されている不正な更新モジュール以外の更新モジュールを選択する。ここでは、一例として、更新モジュール131を選択するものとする。
 更新用ソフトウェア配布部220は、選択した更新モジュール131へ多重暗号化新保護制御モジュールを送信し(S5107)、更に、第1の鍵を送信する(S5108)。
 更新モジュール131は、多重暗号化新保護制御モジュールと第1の鍵とを受信する。更新モジュール131は、第1の鍵を用いて、多重暗号化新保護制御モジュールを復号し、暗号化新保護制御モジュールを取得する(S5109)。そして、復号が終了すると、その旨を更新用ソフトウェア配布部220へ通知する(S5110)。
 更新用ソフトウェア配布部220は、復号終了通知を受信すると、更新モジュール群130から、正当なモジュールであって、且つ、S5106で選択した更新モジュールとは異なる更新モジュールを一つ選択する(S5112)。ここでは、一例として、更新モジュール132を選択するものとする。
 更新モジュールの選択は、上記と同様に判断部210内の不正モジュール特定部604に記憶されている不正な更新モジュール以外の更新モジュールを選択する。
 更新用ソフトウェア配布部220は、選択した更新モジュール132に、第2の鍵を送信する(S5113)。さらに、更新用ソフトウェア配布部220は、更新モジュール131に対して、S5109で取得した暗号化新保護制御モジュールを更新モジュール132へ送信するよう依頼する(S5114)。
 更新モジュール131は、更新用ソフトウェア配布部220からの依頼を受けて、暗号化新保護制御モジュールを更新モジュール132へ送信する(S5115)。
 更新モジュール132は、更新用ソフトウェア配布部220から第2の鍵を受信し、更新モジュール131から暗号化新保護制御モジュールを受信する。そして、第2の鍵を用いて、暗号化新保護制御モジュールを復号し、新しい保護制御モジュールを取得する(S5117)。
 更新モジュール132は、S5117で取得した新しい保護制御モジュールを保護制御モジュール120に上書きし、更新する(S5118)。そして、更新モジュール132は、更新の終了を他の更新モジュールへ通知する(S5119)。 続いて、各更新モジュール131、132、133のそれぞれは、事前に受信した更新検証証明書を用いて、保護制御モジュールが正しく更新されたか否か検証し(S5120)、検証結果を更新用ソフトウェア配布部220へ通知する(S5121)。
 更新用ソフトウェア配布部220は、各更新モジュールから送信された検証結果通知を受信すると、保護制御モジュールが正しく更新されたかを判定する(S5122)。正しく更新されていないと判定する場合(S5121でN)、更新用ソフトウェア配布部220は、機器100を停止させる(S5123)。
 正しく更新されている場合(S5121でY)、更新用ソフトウェア配布部220は、更新処理終了を各更新モジュールへ通知する(S5124)。
 各更新モジュールは、更新処理終了通知を受信すると、新しい保護制御モジュールのMAC値を生成し、生成したMAC値と保護制御モジュールの識別子との組を、MAC値テーブルに書き込む(S5125)。
 以上説明したように、更新処理では、更新用ソフトウェア配布部220が更新用の新保護制御モジュールを複数の鍵を用いて多重に暗号化し、更新モジュール群130へ送信する。更新モジュール群130は、受信した新保護制御モジュールで、保護制御モジュール120を更新する。
 この時、更新用ソフトウェア配布部220は、多重に暗号化された新保護制御モジュールを復号するための複数の鍵を、更新モジュール群130に送信するタイミングを制御することにより、攻撃者が暗号化されていない新保護制御モジュールを入手することを困難にする。
(10)相互監視処理と更新処理との関係
 上述した相互監視処理と更新処理とは、互いに連携しながら実行される。
 相互監視処理は、更新用ソフトウェア配布部220から、更新モジュール群130に含まれる更新モジュールを送信先として、複数の鍵が送られる時と、暗号化された更新用保護制御モジュールの更新モジュール群130に含まれる更新モジュールでの復号処理中に定期的に実施される。定期的に実施する際の時間間隔は、例えば、更新用保護制御モジュールが通信路を通して完全に外部に出力されるまでの時間より短い間隔である。完全に外部に出力されるまでに1秒かかるのであれば、例えば、それより短い500ミリ秒間隔のタイミングで監視処理を実行する。
 ここでは、図22を用いて、相互監視処理と更新処理との連携動作について説明する。
 先ず、機器100は、更新サーバ200から多重暗号化新保護制御モジュールが送付される前に、相互監視処理(相互監視1)を実施する。不正な更新モジュールを選択して、更新処理を行わないようにするためである。
 その後、機器100は、更新サーバ200により送信された第1の鍵を更新モジュール131が受信する前に、相互監視処理(相互監視2)を実施し、機器100が第1の鍵を受信する時に、不正な更新モジュールを選択していないことを確認する。
 さらに、更新モジュール131が第1の鍵を受信し、第1の鍵を用いて多重暗号化新保護制御モジュールを復号する間、定期的に、更新モジュール131による復号処理を中断して、相互監視処理(相互監視3-1、3-2)を実施する。これにより、復号処理中に、更新モジュール131、132、133が攻撃されたとしても、暗号化新保護制御モジュールがすべて漏洩する前に更新モジュールが攻撃されたことを検出し、漏洩を防止することが可能となる。
 これ以降の処理は、上記と同様である。即ち、機器100は、更新サーバ200により送信された第2の鍵を更新モジュール132が受信する前に、監視処理(相互監視4)を実施し、機器100が鍵を受信する時に、不正な更新モジュールを更新処理において、選択していないことを確認する。
 さらに、更新モジュール132が第2の鍵を受信し、第2の鍵を用いて暗号化新保護制御モジュールを復号する間、定期的に、更新モジュール132による復号処理を中断し、相互監視処理(相互監視5-1、5-2)を実施する。最後に、相互監視処理(相互監視6)を実施する。
 これにより、新保護制御モジュールがすべて漏洩する前に更新モジュールが攻撃されたことを検出し、漏洩を防止することが可能となる。
 ここで、相互監視処理において、更新モジュールに改ざんが検出されたた場合には、回復処理を停止する。これにより、更新サーバ200は、第1の鍵や第2の鍵の送信を中止することが可能となり、攻撃者は、多重暗号化新保護制御モジュールを復号するための鍵を入手することが不可能となる。
(11)再暗号化処理
 続いて、図23のシーケンス図を用いて、再暗号化処理(図18のS5200)の詳細について説明する。
 先ず、更新された保護制御モジュール(図23および図24の説明においては、更新前の保護制御モジュール120と区別するために、「保護制御モジュール121」という。)が、各更新モジュール131、132、133に対して、それぞれが保持している分散情報及び暗復号鍵証明書の送信を依頼する(S5201)。
 各更新モジュール131、132、133は、保護制御モジュール121からの依頼を受けて、分散情報及び暗復号鍵証明書を送信する(S5202)。
 保護制御モジュール121は、各更新モジュール131、132、133から分散情報及び暗復号鍵証明書を受信し(S5203)、受信した分散情報から更新前の保護制御モジュール120が使用していた暗復号鍵(ここでは、「旧暗復号鍵」という。)を復元する(S5204)。更に、保護制御モジュール121は、暗復号鍵証明書を用いて、旧暗復号鍵が正しく復元されたか否か検証する(S5205)。
 旧暗復号鍵が正しく復元されなかった場合(S5205でN)、保護制御モジュール121は、不正な更新モジュールを炙り出す(どの更新モジュールが不正な分散情報を送信したか特定する)(S5206)。特定された不正な更新モジュールは、更新サーバ200へ通知される。
 旧暗復号鍵が正しく復元された場合(S5205でY)、保護制御モジュール121の暗復号鍵生成部408は、新しい暗復号鍵(ここでは、「新暗復号鍵」という。)を生成する(S5207)。そして、復号ロード部404は、旧暗復号鍵を用いて暗号化されたアプリ(110、111)を復号し、新暗復号鍵を用いてアプリ(110、111)を再暗号化する(S5208)。
 ここで、S5206において、不正な更新モジュールを特定するための方法について説明する。先ず、保護制御モジュール121は、各更新モジュールから分散情報の組を集め、集めた分散情報に各更新モジュールを識別するための識別情報を付加する。
 その後、初期設計時に同じ値に設定されて配布された分散情報同士をグループにまとめる。そして、各グループに含まれる分散情報同士の値を比較し、同じ値になる分散情報同士を更に1つのサブグループにまとめる。そして、すべてのグループの中からサブグループを1つずつ選び出す組み合わせを全て生成する。
 生成した組み合わせそれぞれに対して旧暗復号鍵を生成し、正しい旧暗復号鍵が生成できたかを検証する。検証OKの場合、その組み合わせに含まれるサブグループに、検証OKを表す検証通過識別情報を付加する。
 すべての組み合わせについて、旧暗復号鍵の生成・検証を行った後、検証通過識別情報の付いているサブグループに含まれる分散情報を取り除く。
 取り除かれずに残っている分散情報は、不正な値となっている。そこで、この分散情報に付加された識別情報により、不正な値となっている分散情報を送信してきた更新モジュールを特定することができる。識別情報により特定された更新モジュールが不正な更新モジュールであると特定される。
 分散情報から旧暗復号鍵を復元する方法や不正な更新モジュールの特定方法については、特許文献2の50ページから52ページに詳しく説明されている。特許文献2における秘密鍵dを本実施形態の暗復号鍵に対応させ、認証局装置を本実施形態の保護制御モジュール121に対応させ、分散情報保持装置を更新モジュール131、132、133に対応させることで、特許文献2と同じ方法が利用可能である。
 また、S5206において、不正な更新モジュールを特定するための方法として、後述する実施の形態2で詳細に説明する不正モジュール特定方法を用いてもよい。
(12)次ラウンド準備処理の動作
 続いて、図24のシーケンス図を用いて、次ラウンド準備処理(図10のS600)の詳細について説明する。次ラウンド準備処理では、回復処理の終了後、次の回復処理のための準備を行う。以下、具体的に説明する。
 まず、保護制御モジュール121は、新暗復号鍵から、秘密分散法を用いて分散情報を生成し(S6000)、更に、署名秘密鍵を用いて、新暗復号鍵証明書を生成する(S6001)。そして、保護制御モジュール121は、生成した分散情報と暗復号鍵証明書とを各更新モジュール131、132、133へ送信する(S6002)。
 ここで、初期設計処理時と同様に、分散情報は、更新モジュールの数と同数が生成され、それぞれの更新モジュールが、異なる分散情報のペアを保持するように送信される。新暗復号鍵証明書は、各更新モジュール131、132、133へ同じ証明書が送信される。
 各更新モジュール131、132、133は、保護制御モジュール121から分散情報と新暗復号鍵証明書とを受信し、受信した分散情報と新暗復号鍵証明書とを分散情報保持部308に保持する(S6003)。
(13)無効化処理の動作
 続いて、図25のシーケンス図を用いて、無効化処理の詳細について説明する。
 無効化処理は、相互認証時に認証に失敗した更新モジュールが存在する場合、回復処理内の監視処理において改ざんされた更新モジュールを検出した場合、回復処理内の再暗号化処理において不正な更新モジュールを炙り出した場合など、機器100内部に存在する不正な(改ざんされた)モジュールを無効化する処理である。
 ここでは、更新モジュール133が改ざんされ、それを更新モジュール131および132が検出した場合の処理を例に、無効化処理の動作の詳細を説明する。
 判断部210は、更新モジュール131、132、133から受信した、相互監視結果を基に、どの更新モジュールが改ざんされているかを判定する(S7001)。判定方法としては、例えば、過半数の更新モジュールが「改ざんされている」と判断した更新モジュールを不正な更新モジュールであると判定する。
 判断部210は、改ざんされた更新モジュールの識別情報と共に、モジュール無効化部230へ無効化の指示を出力する(S7002)。
 モジュール無効化部230は、改ざんされていないと判定した更新モジュール131及び132のいずれか(ここでは、更新モジュール131とする。)へ、改ざんされた更新モジュール133の無効化を依頼する(S7003)。
 更新モジュール131は、モジュール無効化部230から、更新モジュール133の無効化依頼を受信すると、モジュール無効化部230に対し、更新モジュール133を無効化するためのアクセス情報取得鍵の送付を依頼する(S7004)。更に、更新モジュール131は、アクセス制御モジュール140へ、更新モジュール133を無効化するためのアクセス情報の取得を依頼する(S7005)。
 モジュール無効化部230は、アクセス情報取得鍵の送付依頼を受信すると、更新モジュール131が正当な(改ざんされていない)更新モジュールか否か、及び、依頼されたアクセス情報取得鍵が不正な(改ざんされた)更新モジュール133を無効化するためのアクセス情報取得鍵か否かを確認する(S7006)。この確認は、判断部210からモジュール無効化部230へ通知された更新モジュールの情報を利用して行なう。
 確認した結果、改ざんされた更新モジュール133からの依頼であったり、或いは、改ざんされていない更新モジュール131、132に対するアクセス情報取得鍵の取得依頼であったりする場合には(S7006でN)、無効化処理を停止する。
 確認した結果、問題なければ(S7006でY)、依頼してきた更新モジュール131へ更新モジュール133を無効化するためのアクセス情報取得鍵を送付する(S7008)。
 更新モジュール131は、モジュール無効化部230からアクセス情報取得鍵を受信し、さらに、アクセス制御モジュール140から暗号化されたアクセス情報を受信する(S7009)。更新モジュール131は、アクセス情報取得鍵と暗号化されたアクセス情報とから、アクセス情報を取得する(S7010)。取得したアクセス情報は、更新モジュール133を消去するための専用ドライバである。更新モジュール131は、専用ドライバを利用して、改ざんされた不正な更新モジュール133を消去する(S7011)。
 更新モジュール131は、無効化処理が終了すると、アクセス情報取得鍵、暗号化されたアクセス情報、及び、アクセス情報等を消去し、モジュール無効化部230へ完了通知を送信する(S7012)。モジュール無効化部230は、更新モジュール131から完了通知を受信したら、判断部210へ無効化の完了通知を送信する(S7013)。
 ここで、ステップS7003では、更新モジュール131に対して、改ざんされた更新モジュール133の無効化処理を依頼しているが、正当な更新モジュールを1つ選択する方法としては、本発明に係る不正モジュール特定処理の結果を用いて、正当なモジュールを1つ選択するとしてもよい。
 なお、無効化処理により、分散情報保持部308を備える更新モジュールが無効化された場合、その更新モジュールが保持していた分散情報も消去される。そこで、分散情報保持部308を備える更新モジュールを無効化する場合は、分散情報の消去を考慮した無効化処理を行う必要がある。
 分散情報の消去を考慮した無効化処理については、特許文献2の56ページから64ページに、「脱退処理」として詳しく説明されている。特許文献2における秘密鍵dを、本実施形態の暗復号鍵に対応させ、分散情報保持装置を、本実施形態の更新モジュール131、132、133に対応させることで、特許文献2と同じ方法が利用可能である。なお、分散情報の消去を考慮した無効化処理を行いには、無効化する不正な更新モジュール以外に、正当な更新モジュールが最低3つ必要である。無効化処理に保護制御モジュール120を使用する場合は、初期設計時と同じ方法で再度分散情報を生成し、配布すればよい。
 以上説明したように、更新モジュール群130内の複数の更新モジュールが相互監視処理を行うので、改ざんされた更新モジュールを検出することが可能となり、ソフトウェア更新システムの信頼性を高めることができる。また、改ざんされた更新モジュールを無効化するので、改ざんされた更新モジュールによる不正動作を防止することができる。
2.実施の形態2
 ここでは、本発明に係る不正モジュール無効化システムの実施の形態2について、図面を参照しながら説明する。
 上記の実施の形態1では、改ざんされている不正な更新モジュールを特定する方法として、例えば、過半数など一定数の更新モジュールが「改ざんされている」と判定した場合、当該判定された更新モジュールを不正な更新モジュールと判断した。
 しかし、更新モジュールが改ざんされている場合には、実際には改ざんされていないモジュールを「改ざんされている」と誤判断したり、実際には改ざんされているモジュールを「改ざんされていない」と誤判断する可能性がある。
 そうすると、無効化すべき更新モジュールを無効化できない場合や、無効化すべきでないモジュールを無効化してしまう事態が想定される。なお、非特許文献3には、モジュールの相互監視により故障診断をするため技術が記載されている。しかし、この技術では、システム内の故障数を制限しているため、実施の形態1の場合と同様に誤判断をする可能性がある。
 そこで、実施の形態2では、改ざん検出結果の矛盾から不正な更新モジュールを特定する。
2.1 ソフトウェア更新システム10aの構成
 実施の形態2に係るソフトウェア更新システム10aの構成について、図79を用いて説明する。
 同図に示すように、ソフトウェア更新システム10aは、情報処理装置100aと不正モジュール特定装置200aとが、ネットワークを介して接続されて構成される。
 情報処理装置100aは、モジュール131、モジュール132、モジュール133を含む。これらのモジュールは、相互に改ざん検出処理を行い、改ざん検出結果を、ネットワークを介して不正モジュール特定装置200aへ送信する。なお、情報処理装置100aは、さらに多くのモジュールを含むように構成してもよい。
 不正モジュール特定装置200aは、受信手段2310、判断手段210a、および無効化手段2320から構成される。
 受信手段2310は、情報処理装置100aのモジュール131、132、133から、改ざん検出結果を受信する。
 判断手段210aは、前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する。
 判断手段210aは、図79に示すように、仮正常モジュール群記憶手段2330、仮定手段2340、仮正常モジュール群生成手段2350、矛盾検出手段2360、および特定手段2370から構成される。
 仮正常モジュール群記憶手段2330は、正常モジュールと仮定したモジュールの識別情報を記憶する。
 仮定手段2340は、モジュール131、132、133から一つを選択し、正常モジュールと仮定し、識別情報を仮正常モジュール群記憶手段2330に記録する。
 仮正常モジュール群生成手段2350は、仮定手段2340により正常モジュールと仮定された前記モジュールを起点として、改ざん検出処理の結果、改ざんが検出されないモジュールを正常モジュールと仮定し、識別情報を仮正常モジュール群記憶手段2330に記録する手順を繰り返す。
 矛盾検出手段2360は、仮正常モジュール群記憶手段2330に記憶されている識別情報に対応するモジュールによる改ざん検出結果に矛盾があるか否か判断する。
 特定手段2370は、矛盾検出手段2360により矛盾が検出された場合に、仮定手段2340において正常モジュールと仮定した前記モジュールを不正モジュールと特定する。
 無効化手段2320は、特定された不正モジュールの無効化指示を出力する。
2.2 ソフトウェア更新システム10bの構成
 ここでは、本発明に係る実施の形態2について、より具体的に説明する。
(1)全体構成
 図80は、実施の形態2をより具体的に説明するための実施例であるソフトウェア更新システム10bの構成を示すブロック図である。
 同図に示すように、ソフトウェア更新システム10bは、本発明に係る情報処理装置としての機器100bと、本発明に係る不正モジュール特定装置としての更新サーバ200bとから構成される。そして、機器100bおよび更新サーバ200bは、ネットワークを介して接続されている。
 機器100bは、アプリ110、アプリ111、保護制御モジュール120、更新モジュール群130b、およびアクセス制御モジュール140から構成される。
 更新サーバ200bは、判断部210b、更新用ソフトウェア配布部220、モジュール無効化部230、および通信部240から構成される。
 図80において、実施の形態1と同様の機能を有する構成要素には、図1と同一の符号を付し、詳細な説明を省略する。以下では、実施の形態2の特徴的な構成要素および処理について詳細に説明する。
(2)更新モジュール群130bの構成
 図26は、実施の形態2の更新モジュール群130bの構成を示す図である。
 同図に示すように、実施の形態2の更新モジュール群130bは、更新モジュール131、132、133、134、135、136、および137の7つの更新モジュールが含まれ。各更新モジュールの構成は、実施の形態1と同様である(図2参照)。
(3)判断部210bの構成
 図27は、実施の形態2に係る判断部210bの構成を機能的に示す機能ブロック図である。
 同図に示すように、判断部210bは、受信部601、送信部602、指示生成部603、モジュール特定部604b、および循環検出部606から構成される。そして、モジュール特定部604の内部に、不正モジュール特定部605を備える。
 実施の形態1の判断部210との相違点は、モジュール特定部604の内部に、不正モジュール特定部605を備える点、および、循環検出部606を備える点である。
(a)不正モジュール特定部605の構成
 ここでは、実施の形態2の特徴的な構成要素である不正モジュール特定部605の詳細な構成について説明する。
 図28は、不正モジュール特定部605の機能的な構成を示す機能ブロック図である。同図に示すように、不正モジュール特定部605は、特定指示受信部651、特定結果送信部652、正常モジュール仮定部653、検証結果判定部654、仮正常更新モジュール群抽出部655、矛盾検出部656、および循環監視パターン取得部657から構成される。
 特定指示受信部651は、指示生成部603から、不正な更新モジュールの特定の指示と更新モジュール群130bの相互監視結果(改ざん検出結果)とを受け付けると、特定指示受信部561は、正常モジュール仮定部653に前記指示を出力する。
 特定結果送信部652は、矛盾検出部656から不正な更新モジュールの特定結果を受け付けると、特定結果を、指示生成部603に出力する。
 正常モジュール仮定部653は、特定指示受信部651から指示を受け付けると、更新モジュール群130内の更新モジュールを一つ選択し、選択した更新モジュールを正常な更新モジュールと仮定する。そして、選択した更新モジュールを、仮正常更新モジュール群とする。
 仮正常更新モジュール群は、正常モジュール仮定部653により、正常なモジュールと仮定された更新モジュールで構成される概念上のグループである。具体的には、正常モジュール仮定部653は、正常であると仮定したすべての更新モジュールの識別情報を含む仮正常更新モジュール群構成情報を生成する。
 正常モジュール仮定部653は、選択した更新モジュールの識別番号を矛盾検出部656へ出力する。また、仮正常更新モジュール群構成情報を検証結果判定部654へ出力する。
 正常モジュール仮定部653は、循環監視パターン取得の指示を循環監視パターン取得部657へ出力する。循環監視パターン取得部657から特定結果を受け付けると、正常モジュール仮定部653は、循環監視パターン内の更新モジュール以外の更新モジュールを正常な更新モジュールと仮定する。なお、循環監視パターンの詳細については後述する。
 矛盾検出部656から矛盾がない旨の通知を受け付けると、正常モジュール仮定部653は、選択した更新モジュールとは別の更新モジュールを正常な更新モジュールと仮定し、仮正常更新モジュール群に含める。そして、仮正常更新モジュール群構成情報を更新する。正常モジュール仮定部653は、更新した仮正常更新モジュール群構成情報を、検証結果判定部654へ出力する。
 検証結果判定部654は、正常モジュール仮定部653から仮正常更新モジュール群構成情報を受け付けると、仮正常更新モジュール群内の更新モジュールによる他の更新モジュールに対する改ざん検出結果を判定する。
 検証結果判定部654は、仮正常更新モジュール群内の更新モジュールによる他の更新モジュールに対する改ざん検出結果が正常の場合、検証された更新モジュールは正常な更新モジュールであるとみなす。つまり、正常な更新モジュールが「正常である」と判断した更新モジュールは、正常な更新モジュールとみなすことができる。
 そして、検証結果判定部654は、正常とみなした更新モジュールの識別情報と、正常モジュール仮定部653から受け付けた仮正常更新モジュール群構成情報とを、仮正常更新モジュール群抽出部655へ出力する。
 正常とみなすことができる更新モジュールが存在しない場合、検証結果判定部654は、その旨を仮正常更新モジュール群抽出部655へ出力する。
 また、検証結果判定部654は、仮正常更新モジュール群抽出部655から仮正常更新モジュール群構成情報を受信した場合も、同様の処理を行う。
 仮正常更新モジュール群抽出部655は、正常とみなすことができる更新モジュールの識別番号と仮正常更新モジュール群構成情報を受け取る。そして、受け取った識別番号を、受け取った仮正常更新モジュール群構成情報へ追加して、構成情報を更新する。仮正常更新モジュール群抽出部655は、更新した仮正常更新モジュール群構成情報を、検証結果判定部654へ出力する。
 検証結果判定部654から正常とみなすことができる更新モジュールが存在しない旨の通知を受け付けると、仮正常更新モジュール群抽出部655は、矛盾検出部656へ仮正常更新モジュール群構成情報を出力する。
 矛盾検出部656は、仮正常更新モジュール群抽出部655から仮正常更新モジュール群構成情報を受け取ると、矛盾検出処理を行う。詳細については後述する。
 矛盾が検出された場合、正常モジュール仮定部653において、正常であると仮定した更新モジュールは不正な更新モジュールであると特定することができる。そこで、矛盾検出部656は、不正な更新モジュールが特定された旨を特定結果送信部652へ通知する。矛盾が検出されない場合、矛盾検出部656は、正常モジュール仮定部653へ矛盾がない旨を通知する。
 また、矛盾検出部656は、循環監視パターン取得部657から循環監視パターンを受け付けた場合、循環監視パターン内の更新モジュールが、循環監視パターン内の他の更新モジュールに対して改ざん検出処理を行った結果、不正と判定された更新モジュールが存在するか判断する。不正な更新モジュールが存在する場合、循環監視パターンに含まれるすべての更新モジュールは、不正モジュールであると特定する。
 さらに、矛盾検出部656は、循環監視パターン内の更新モジュールが改ざん検出処理を行った循環監視パターン外の同一更新モジュールの検出結果に矛盾があるか否かを検証する。矛盾がある場合、循環監視パターンに含まれるすべての更新モジュールは不正モジュールであると特定する。
 そして、循環監視パターンに含まれるすべての更新モジュールが不正モジュールであると特定されたら、矛盾検出部656は、その旨を特定結果送信部652および正常モジュール仮定部653へ出力する。
 循環監視パターン取得部657は、正常モジュール仮定部653から取得指示を受け付けると、循環検出部606へ循環監視パターンの取得指示を出力する。また、循環検出部606から循環監視パターンを受け付けると、矛盾検出部656へ、循環監視パターンを出力する。
(b)循環検出部606の構成
 ここでは、実施の形態2の特徴的な構成要素である循環検出部606の詳細な構成について説明する。
 図29は、循環検出部606の機能的な構成を示す機能ブロック図である。同図に示すように、循環検出部606は、取得指示受信部661、循環監視パターン送信部662、循環監視パターン取得部663、取得済み循環監視パターン記憶部664、監視パターン記憶部665、および循環監視パターン記憶部666から構成される。
 取得指示受信部661は、不正モジュール特定部605から循環監視パターンの取得指示を受け付けると、循環監視パターン取得部663へ指示を出力する。
 循環監視パターン送信部662は、循環監視パターン取得部663から、循環監視パターンを取得すると、取得した循環監視パターンを、不正モジュール特定部605へ出力する。
 循環監視パターン取得部663は、循環監視パターン記憶部666から循環監視パターンを読み出し、読み出した循環監視パターンに含まれる一群の更新モジュールが一方向に循環して行う改ざん検出処理の結果がすべて正常であるか判断する。すべて正常である場合、循環監視パターン取得部663は、循環監視パターン記憶部666から読み出した当該循環監視パターンを、循環監視パターン送信部662へ出力する。また、当該循環監視パターンを、取得済み循環監視パターン記憶部664へ出力する。
 取得済み循環監視パターン記憶部664は、循環監視パターン取得部663から取得した循環監視パターンを記憶する。
 監視パターン記憶部665は、更新モジュール群130bに含まれる更新モジュール間の監視パターンを記憶している。監視パターンとは、更新モジュール群130bに含まれる更新モジュール131~137が相互に改ざん検出処理を行うときの、監視対象(検証対象)のモジュールに関する情報を記述したものである。具体的には、監視パターンには、モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等が記述されている。
 図30に示す具体例を用いて説明する。図30では、監視パターンの説明を容易にするため、監視パターンを有向グラフで表している。矢印は、監視元(検証元)の更新モジュールから監視先(検証先)の更新モジュールへ向いている。
 たとえば、矢印2000は、更新モジュール131から更新モジュール132へ向いていることから、更新モジュール131は、更新モジュール132の改ざん検証処理を行う。矢印2001は、更新モジュール131から更新モジュール134へ向いていることから、更新モジュール131は、さらに、更新モジュール134の改ざん検証処理を行う。矢印2003は、更新モジュール133から更新モジュール131へ向いていることから、更新モジュール133は、更新モジュール131の改ざん検出処理を行う。
 循環監視パターン記憶部666は、監視パターン記憶部665に記憶されている監視パターンを取得し、全体の監視パターンから、一方向に循環して改ざん検出処理を行う一群の更新モジュールを検出し、循環監視パターンを生成する。そして、循環監視パターン記憶部666は、生成した循環監視パターンを記憶する。
 循環監視パターンとは、一方向に循環して改ざん検出処理を行う複数の更新モジュールについて、監視対象(検証対象)のモジュールに関する情報を記述したものである。具体的には、循環監視パターンには、モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等が記述されている。
 図30に示す具体例を用いて説明する。
 一方向に循環して改ざん検出処理を行う一群の更新モジュールとは、例えば、更新モジュール131、更新モジュール132、および更新モジュール133である。図30の矢印が示すように、更新モジュール131が更新モジュール132を検証し、更新モジュール132が更新モジュール133を検証し、更新モジュール133が更新モジュール131を検証する関係を有している。
 これらの更新モジュール131、132、および133の情報を記述したものが、循環監視パターンである。
 また、図30では、更新モジュール131、更新モジュール132、更新モジュール135、更新モジュール137、更新モジュール133も一方向に循環して改ざん検出処理を行っており、更新モジュール133、更新モジュール136、更新モジュール137も一方向に循環して改ざん検出処理を行っている。
 このように、循環監視パターン記憶部666は、図30の監視パターンから、複数の循環監視パターンを生成することができる。
(b)相互監視結果(改ざん検出結果)の矛盾
 ここでは、改ざん検出結果の矛盾について説明する。
 更新モジュール群130bが、図30に示した監視パターンで相互に改ざん検出処理を行った場合、更新モジュール131~137は、それぞれの改ざん検出結果を、更新サーバ200bの判断部210bへ送信する。
 図31は、判断部210bが受信した検出結果を示す図である。図31では、「改ざんされていない」という検出結果を、矢印と対応して記載された○印で表し、「改ざんされている」という検出結果を、矢印と対応して記載された×印で表している。
 例えば、○印2010は、更新モジュール131が、更新モジュール132の改ざん検出処理を行った結果、「改ざんされていない」と判定されたことを表している。
 また、○印2011は、更新モジュール131が、更新モジュール134の改ざん検出処理を行った結果、「改ざんされていない」と判定されたことを表している。
 また、○印2012は、更新モジュール133が、更新モジュール131の改ざん検出処理を行った結果、「改ざんされていない」と判定されたことを表している。
 また、×印2013は、更新モジュール134が、更新モジュール136の改ざん検出処理を行った結果、「改ざんされている」と判定されたことを表している。
 また、×印2014は、更新モジュール133が、更新モジュール136の改ざん検出処理を行った結果、「改ざんされている」と判定されたことを表している。
 なお、図31では、すべての矢印に対応して検出結果が記載されている。これは、判断部210bが、すべての改ざん検出結果の受信が完了していることを表している。
 次に、図32を用いて、矛盾について説明する。先ず、更新モジュール132を正常な更新モジュールであると仮定する。そして、更新モジュール133および135は、○印2015および○印2016により表されるように、何れも更新モジュール132によって、「改ざんされていない」と判定されている。正常な更新モジュール132によって、「改ざんされていない」と判定された更新モジュール133および135は、共に正常なモジュールであると仮定することができる。
 しかし、×印2017により表されるように、正常なモジュールであると仮定された更新モジュール133は、更新モジュール135を「改ざんされている」と判定しており、正常なモジュールである更新モジュール132による改ざん検出結果と、正常なモジュールである更新モジュール133による改ざん検出結果とが一致していない。このような場合を、改ざん検出結果の矛盾という。
(4)不正モジュール特定処理の動作
 ここでは、図33および図42を用いて、ソフトウェア更新システム10bにおける不正な更新モジュールの特定処理の動作について説明する。
(a)通常の監視パターンの場合
 図33は、不正モジュール特定処理の動作を示すフローチャートである。
 不正モジュール特定部605は、すべての更新モジュールについて、ステップS8001からステップS8006までの処理を繰り返す(S8000)。
 以下では、図34に示した改ざん検出結果を具体例として用い、更新モジュール131に対する不正モジュール特定処理の動作について説明する。
 まず、正常モジュール仮定部653は、更新モジュール131を正常な更新モジュールであると仮定し、更新モジュール131のみを含む仮正常更新モジュール群を生成する(S8001)。
 次に、検証結果判定部654は、仮正常更新モジュール群に含まれる更新モジュール131による改ざん検出処理において、「改ざんされていない(正常)」と判定された更新モジュールが存在するか否か判断する(S8002)。
 図34によれば、○印2021および○印2022に表されるように、更新モジュール132および更新モジュール134が正常と判定された。
 正常と判定された更新モジュールが存在する場合(S8002でY)、検証結果判定部654は、正常と判定された更新モジュール132および更新モジュール134識別情報を、仮正常更新モジュール群抽出部655へ出力する。
 仮正常更新モジュール群抽出部655は、受け取った識別情報を仮正常更新モジュール群に追加する。これにより、正常と判定された更新モジュール132および更新モジュール134が仮正常更新モジュール群に追加される(S8003)。
 同様に、検証結果判定部654は、仮正常更新モジュール群に含まれる更新モジュール132および更新モジュール134による改ざん検出処理において、正常と判定された更新モジュールが存在するか否か判断する(S8002)。○印2023に表されるように、更新モジュール133が正常と判定されたので、更新モジュール133が、仮正常更新モジュール群に追加される(S8003)。
 同様に、検証結果判定部654は、仮正常更新モジュール群に含まれる更新モジュール133による改ざん検出処理において、正常と判定された更新モジュールが存在するか否か判断する(S8002)。○印2024および○印2025に表されるように、更新モジュール131および更新モジュール136が正常と判定されたので、更新モジュール136が、仮正常更新モジュール群に追加される(S8003)。
 仮正常更新モジュール群に含まれる更新モジュールが、正常であると判定する更新モジュールが存在しなくなった場合(S8002でN)、矛盾検出部656は、仮正常更新モジュール群に含まれる更新モジュールの検証結果に矛盾があるか否か判断する(S8004)。
 このとき、図34に示す仮正常更新モジュール群2031が形成されている。仮正常更新モジュール群2031に含まれる更新モジュールの検証結果を見ると、更新モジュール133による、更新モジュール136に対する検証結果は、○印2025であるのに対して、更新モジュール134による更新モジュール136に対する検証結果は×印2026であるから、検証結果に矛盾がある。
 仮正常更新モジュール内に矛盾がある場合(S8004でY)、ステップS8001において、正常であると仮定した更新モジュール131は、仮定が誤っていたことになる。すなわち、更新モジュール131は、不正な更新モジュールであると特定される(S8005)。
 仮正常更新モジュール内に矛盾がない場合(S8004でN)、ステップS8001において、正常と仮定した更新モジュール131についての特定は行なわない(S8006)。
 次に、ステップS8000に戻って他の更新モジュールを正常と仮定し、ステップS8001からステップS8006までの処理を行う。
 更新モジュール群130bに含まれるすべての更新モジュールについてステップS8001からステップS8006までの処理が終了するまで繰り返す(S8007)。
 このように、実施の形態2における不正モジュール特定処理は、判断対象として一つの更新モジュールに着目し、当該更新モジュールを正常なモジュールと仮定した上で、その仮定に基づいて各更新モジュールの改ざん検出結果に矛盾があるか否か検証する。そして、矛盾がある場合に、判断対象の更新モジュールを、不正なモジュールであると特定する。
 これにより、判断部210bは、改ざん検出結果を偽って通知してきた不正な更新モジュールを論理的な検証方法を用いて効果的に特定することができる。そして、判断部210bは、特定された不正な更新モジュールの無効化指示を出力することにより、不正な更新モジュールを適切に排除することができる。
(b)循環監視パターンの場合
 次に、更新モジュール群130bに含まれる更新モジュール間の監視パターンに、循環監視パターンが含まれる場合の不正モジュール特定処理について説明する。
 例えば、図35において、更新モジュール133、更新モジュール136、更新モジュール137は、矢印2041、2042、2043が示すように、一方向に循環して改ざん検出処理を行っている。そして、○印2045、2046、2047が示すように、改ざん検出結果は、すべて正常である。
 このような場合、不正モジュール特定処理において、更新モジュール133、更新モジュール136、更新モジュール137を一群として扱うことができる。
 例えば、更新モジュール133が不正な更新モジュールであると特定された場合、更新モジュール137による、更新モジュール133の改ざん検出結果(図35の○印2047)は、誤りであったことになる。そうすると、更新モジュール137は、正しく改ざん検出を行うことができない、不正な更新モジュールである可能性が高い。さらに、更新モジュール137が不正な更新モジュールである場合には、更新モジュール136による更新モジュール137の改ざん検出結果(図35の○印2046)は、誤りであったことになる。そうすると、更新モジュール136もまた、正しく改ざん検出を行うことが出来ない、不正な更新モジュールである可能性が高い。
 すなわち、すべての改ざん検出結果が正常である循環監視パターンにおいては、その内の一つの更新モジュールが不正であると特定された場合には、循環監視パターン内のすべての更新モジュールが不正であるとみなすことができる。
 以下では、図36および図37を用いて、より具体的に説明する。
 図36において、更新モジュール133、136、137から成る循環監視パターンは、改ざん検出結果がすべて正常である。このため、更新モジュール133、136、137を、一群として扱うことができる。
 ここで、更新モジュール133による更新モジュール136の改ざん検出結果と、更新モジュール137による更新モジュール136の改ざん検出結果とに矛盾がある。そこで、更新モジュール133、136、137を一群として、すべて不正な更新モジュールであると特定することができる。
 また、図36の例では、更新モジュール136および更新モジュール137が、相互に改ざん検出処理を行っている。更新モジュール136は、更新モジュール137を「改ざんされている」と判断しており、更新モジュール137は、更新モジュール136を「改ざんされていない」と判断している。このように、循環監視パターン内の一組の更新モジュールの相互監視結果に矛盾がある場合にも、更新モジュール133、136,137を一群として、すべて不正な更新モジュールであると特定することができる。
 図37において、更新モジュール131、132、133から成る循環監視パターンは、改ざん検出結果がすべて正常である。このため、更新モジュール131、132、133を、一群として扱うことができる。
 ここで、更新モジュール132による更新モジュール135の改ざん検出結果(○印2061)と、更新モジュール133による更新モジュール135の改ざん検出結果(×印2062)とに矛盾がある。このように、循環監視パターン外の更新モジュールに対する改ざん検出結果が矛盾している場合にも、更新モジュール131、132、133を一群として、すべて不正な更新モジュールであると特定することができる。
 このように、循環監視パターンに含まれる更新モジュールを一群として扱うことにより、個々の更新モジュール毎に不正であるか否かを判断する場合と比較して、処理効率を格段に向上させることができる。
 続いて、図38のフローチャートを用いて、循環監視パターンを考慮した不正モジュール特定処理の動作について説明する。
 先ず、循環監視パターン取得部663は、循環監視パターン記憶部666を参照することにより、更新モジュール群130bの監視パターンの中に、循環監視パターンが存在するか否かを判断する(S8101)。循環監視パターンが存在しない場合(S8101でN)、不正モジュール特定処理を終了する。
 循環監視パターンが存在する場合(S8101でY)、当該循環監視パターンの改ざん検出結果がすべて正常であるか否か判断する(S8102)。
 すべてが正常でない場合(S8102でN)、当該循環監視パターン内の更新モジュールを一群として扱うことはできない。そこで、ステップS8105へ進む。
 当該循環監視パターンの改ざん検出結果がすべて正常である場合(S8102でY)、循環監視パターン内の更新モジュールが、改ざん検出処理を行う同一の更新モジュールについて、検証結果が一致するか否か判断する(S8103)。
 一致しない場合(S8103でN)、循環監視パターン内の更新モジュールは全て不正な更新モジュールであると特定する(S8104)。
 循環監視パターンの監視結果がすべて正常でない場合(S8102でN)、および、循環監視パターン内の更新モジュールが、改ざん検出処理を行う同一の更新モジュールについて、検証結果が一致する場合(S8103でY)、更新モジュール群130bの監視パターンの中に、他の循環監視パターンが存在するか判断する(S8105)。
 他の循環監視パターンが存在する場合(S8105でY)、ステップS8102へ戻り処理を続ける。他の循環監視パターンが存在しない場合(S8105でN)、不正モジュール特定処理を終了する。
(c)循環監視パターン選択方法
 次に、循環監視パターン選択方法について説明する。
 上述したように、不正モジュール特定処理において、循環監視パターンの改ざん検出結果がすべて正常である場合には、循環監視パターンに含まれるすべての更新モジュールを一群として扱うことができる。
 ここで、循環監視パターンに含まれる更新モジュールの数(以下では、「循環のサイズ」と表現する。)が大きい場合、循環監視パターンに含まれるすべての更新モジュールが同時に改ざんされている可能性は低いと考えられる。また、循環のサイズが大きいほど、すべての検証結果が正常となる可能性は低くなる。
 これらのことから、実施の形態2では、循環監視パターンが複数存在する場合には、循環のサイズが小さい循環監視パターンから優先的に不正モジュール特定処理を行うことにより、不正な更新モジュールを効率的に発見し、無効化する。
 また、循環のサイズが同じである循環監視パターンが複数存在する場合には、循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールの数を基に、不正モジュール特定処理を行う場合の優先順位を決定する。
 循環監視パターン内の更新モジュールがすべて不正モジュールと判断された後に、循環監視パターン外の更新モジュールが、循環監視パターンに含まれるいずれかの更新モジュールを正常と判定している場合、当該循環監視パターン外の更新モジュールは、不正な更新モジュールであると判断できる。
 そこで、循環のサイズが同じである循環監視パターンが複数存在する場合には、循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールの数が多い循環監視パターンから、優先的に不正モジュール特定処理を行う。
 上記の処理を実現するために、循環監視パターン記憶部666は、監視パターン記憶部665から、複数の循環監視パターンを検出すると、上述した循環監視パターンに加え、図39または図40に示す循環監視パターンリストを生成して、記憶する。循環監視パターンリストは、監視パターンに含まれる複数の循環監視パターンについて、循環監視パターン毎に、当該循環監視パターンに係る情報を記述したリストである。
 図39は、循環監視パターンリスト2100のデータ構成を示す図である。
 同図に示すように、循環監視パターンリスト2100は、各循環監視パターンについて、循環のサイズ、当該循環監視パターンを構成する更新モジュールの識別情報、および当該循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールの数(ここでは、「循環への入力」という。)を対応付けて記憶している。
 たとえば、No.1の循環監視パターンは、循環のサイズが3であり、更新モジュール131、132、133から構成される。また、当該循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールが、1つ存在する。
 図40は、循環監視パターンリスト2200のデータ構成を示す図である。
 循環監視パターンリスト2200は、図39の循環監視パターンリスト2100と比較すると、各循環監視パターンについての情報が、循環のサイズが小さい順に並べられている。さらに、循環のサイズが同一である循環監視パターンが複数ある場合には、循環監視パターン内の更新モジュールを検証する外部の更新モジュールの数(循環への入力)が大きい順に並べられている。
 そこで、図40のリスト2200を用いれば、複数の循環監視パターンのうち、何れの循環監視パターンから優先的に処理を行えば良いのかを判断しやすくなり、図39のリスト2100を用いる場合と比較して、不正な更新モジュールをより効率的に発見し、無効化することができる。
 次に、図41および図42のフローチャートを用いて、循環監視パターンが複数存在する場合の不正モジュール特定処理の動作について説明する。
 先ず、循環監視パターン取得部663は、循環監視パターン記憶部666を参照することにより、更新モジュール群130bの監視パターンの中に、循環監視パターンが存在するか否かを判断する(S8111)。循環監視パターンが存在しない場合(S8111でN)、不正モジュール特定処理を終了する。
 循環監視パターンが存在する場合(S8111でY)、循環監視パターン取得部663は、循環監視パターン記憶部666に記憶されている循環監視パターンリストから、循環のサイズが最小である循環監視パターンを探す(S8112)。さらに、循環のサイズが同一である循環監視パターンが複数存在する場合には、循環監視パターン取得部663は、循環監視パターン内の更新モジュールを検証する外部の更新モジュールの数が多い循環監視パターンを選択する(S8113)。
 次に、循環監視パターン取得部663は、選択した循環監視パターンの監視結果がすべて正常であるか否か判断する(S8114)。
 すべて正常でない場合(S8114でN)、ステップS8118へ進む。
 すべて正常である場合(S8114でY)、矛盾検出部656は、循環監視パターン内の更新モジュールが、循環監視パターン内の他の更新モジュールの改ざん検出処理を行った結果、不正と判定された更新モジュールが存在するか確認する(S8115)。
 不正と判定された更新モジュールが存在する場合(S8115でY)、循環監視パターン内の更新モジュールは全て不正な更新モジュールであると特定し(S8116)、ステップSS8118へ進む。
 不正と判定された更新モジュールが存在しない場合(S8115でN)、矛盾検出部656は、循環監視パターン内の更新モジュールが、循環監視パターン外の同一の更新モジュールに対して行なった改ざん検出結果に、矛盾があるか否か判断する(S8117)。
 検証結果が矛盾する場合(S8117でN)、循環監視パターン内の更新モジュールは全て不正な更新モジュールであると特定し(S8116)、ステップS8118へ進む。
 検証結果が一致する場合(S8117でY)、循環監視パターン取得部663は、循環監視パターン記憶部666に記憶されている循環監視パターンリストを参照し、他に循環監視パターンが存在するかを判断する(S8118)。
 循環監視パターンが存在する場合(S8118でY)、循環監視パターン取得部663は、循環のサイズが、前回対象とした循環監視パターンの循環のサイズ以上であり、かつ、最小である循環監視パターンを選択する(S8119)。そして、ステップS8113へ戻り処理を続ける。
 他に循環監視パターンが存在しない場合(S8118でN)、不正モジュール特定処理を終了する。
(5)分散情報について
 ここでは、循環監視パターンと更新モジュールが保持する分散情報との関係について説明する。
 上述した初期設定処理では、保護制御モジュール120が暗復号鍵から秘密分散法を用いて分散情報を作成し、生成した分散情報を各更新モジュールへ送信する。
 特許文献2に記載されている方法を用いる場合、同一の分散情報を複数の更新モジュールへ送信する。これにより、ある更新モジュールが無効化され、当該更新モジュールから分散情報が取得できない場合であっても、同一の分散情報を保持する他の更新モジュールから分散情報を取得することにより、暗復号鍵を復元することができる。
 循環監視パターンでは、一つの更新モジュールが不正モジュールと特定されると、循環監視パターンに含まれるすべての更新モジュールが不正モジュールと特定され、無効化される。
 そこで、実施の形態2の保護制御モジュール120は、暗復号鍵の復元が不能となる事態を防止するために、循環監視パターンが存在する場合には、循環監視パターンの構成に基づいて、各更新モジュールに分散情報を送信する。
 以下、図43および図44を用いて具体的に説明する。
 図43は、監視パターンの一例を示す図である。同図によれば、更新モジュール131、132、133、および、更新モジュール133、136、137が循環監視パターンである。
 このとき、循環監視パターン内の更新モジュール131、132、133のみが保持し、他の更新モジュールが保持しない分散情報がある場合、更新モジュール131、132、133のすべてが無効化されると、保護制御モジュール120は、暗復号鍵を復元できなくなる。
 同様に、更新モジュール133、136、137のみが保持し、他の更新モジュールが保持しない分散情報がある場合、更新モジュール133、136、137のすべてが無効化されると、保護制御モジュール120は、暗復号鍵を復元できなくなる。
 そこで、保護制御モジュール120は、図44に示すように、分散情報1、分散情報2、分散情報3、分散情報4、分散情報5、分散情報6、および分散情報7のすべてについて、更新モジュール131、132、133のみが保持する分散情報、および、更新モジュール133、136、137のみが保持する分散情報が存在しないように、各分散情報を、各更新モジュールへ送信する。
 これにより、更新モジュール131、132、133のすべてが無効化された場合であっても、または、更新モジュール133、136、137のすべてが無効化された場合であっても、保護制御モジュール120は、暗復号鍵を復元することができる。
3.実施の形態3
 ここでは、別の実施の形態について説明する。
3.1 改竄監視システム10ca
 別の実施の形態としての改竄監視システム10caについて、図77に示す構成図を用いて、説明する。
 改竄監視システム10caは、図77に示すように、情報セキュリティ装置100ca及び管理装置200caから構成されている。
 情報セキュリティ装置100caは、改竄を監視する複数の監視モジュール131ca、132ca、133ca、134caを有する。
 管理装置200caは、情報セキュリティ装置100caから、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信部240caと、受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出部678caと、前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第一仮定部673caと、改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第二仮定部679caと、前記第二仮定部679caによる手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断部676caとから構成されている。
 管理装置200caによると、検出部678caは、改竄されていない正常な監視モジュールの存在を検出しているので、少なくとも1個の監視モジュールは、正常である。
 これに対して、判断部676caにより、全ての監視モジュールに対して改竄されていると仮定されたと判断された場合には、この判断結果は、検出部678caの検出の結果と矛盾している。これは、第一仮定部673caによる仮定に誤りがあったためである。
 従って、第一仮定部673caによる仮定を覆し、第一仮定部673caにより、改竄されていると仮定された監視モジュールを正常な監視モジュールと決定する。
 以上のようにして、正常な監視モジュールを決定することができるので、正常な監視モジュールの監視結果は信頼できるものであり、有効に利用することができる。
 なお、以上のようにして、正常な監視モジュールが決定できた場合には、上記において不正とした仮定を全て取り消す。
3.2 ソフトウェア更新システム10cb
 別の実施の形態としてのソフトウェア更新システム10cb(図示していない)について、説明する。
 ソフトウェア更新システム10cbでは、更新処理における更新モジュールの選択(図20のステップS5106及び図21のステップS5112)において、改竄されていない、つまり、正常な更新モジュールを特定する方式を用いる。この方式を用いると、複数の更新モジュールの中から正常である更新モジュールを、論理的に特定できるので、特定した正常な更新モジュールを用いて、保護制御モジュールを安全に更新することができる。
 なお、ソフトウェア更新システム10cbでは、実施の形態2と同様に更新モジュールが7個の場合について、説明する。しかし、更新モジュールは、8個以上であってもよいし、6個以下であってもよい。
(1)ソフトウェア更新システム10cbの構成
 ソフトウェア更新システム10cbは、更新サーバ200cb(図示していない)及び機器100から構成される。機器100は、実施の形態1の機器100と同一の構成を有している。更新サーバ200cbは、実施の形態1の更新サーバ200と類似の構成を有しており、更新サーバ200の判断部210に代えて、図45に示す判断部210cbを有している。その他の構成は、更新サーバ200と同一である。以下において、更新サーバ200との相違点を中心として説明する。
(2)判断部210cbの構成
 判断部210cbは、図27に示す判断部210bと類似の構成を有している。判断部210cbは、判断部210bのモジュール特定部604bに代えて、図45に示すように、モジュール特定部604cbを有している。モジュール特定部604cbは、この図に示すように、不正モジュール特定部605及び正常モジュール特定部607を有している。不正モジュール特定部605は、図27に示す不正モジュール特定部605と同一である。以下に正常モジュール特定部607について説明する。
(3)正常モジュール特定部607
 正常モジュール特定部607は、以下に示すようにして、機器100における各更新モジュールの相互監視結果を用いて、改竄されていない正常な更新モジュールを特定する。
 正常モジュール特定部607は、図46に示すように、特定指示受信部671、特定結果送信部672、不正モジュール仮定部(第一仮定部とも呼ぶ。)673、検証結果判定部674、仮不正更新モジュール群抽出部675、抽出結果判断部676、循環監視パターン判定部677及び異常検出部678から構成されている。また、検証結果判定部674及び仮不正更新モジュール群抽出部675は、第二仮定部679を構成している。
 第二仮定部679は、不正モジュール仮定部673により、改竄されていると仮定された更新モジュールを起点として、受信した監視結果を用いて、改竄されていると仮定された更新モジュールを正常と判定する更新モジュールに対して改竄されていると仮定する手順を、未処理の更新モジュールについて、連鎖的に適用する。
(a)特定指示受信部671
 特定指示受信部671は、指示生成部603から正常な更新モジュールの特定の指示を示す正常モジュール特定指示を受信する。正常モジュール特定指示を受信すると、正常モジュール特定指示を異常検出部678へ出力する。
 また、特定指示受信部671は、指示生成部603から更新モジュールリストを受信する。更新モジュールリストは、機器100における更新モジュール群130を構成する全ての更新モジュールを識別する識別番号を含んでいる。次に、特定指示受信部671は、受信した更新モジュールリストを不正モジュール仮定部673及び抽出結果判断部676へ出力する。
 また、特定指示受信部671は、機器100から、ネットワーク5、通信部240、受信部601及び指示生成部603を介して、機器100における更新モジュール群130の監視の結果を受信する。また、受信した更新モジュール群130の監視の結果を異常検出部678、不正モジュール仮定部673、循環監視パターン判定部677及び検証結果判定部674へ出力する。
(b)異常検出部678
 異常検出部678は、以下に示すようにして、受信した前記監視結果を用いて、改竄されていない正常な更新モジュールの存在を検出する。簡単に説明すると、異常検出部678は、前回受信した監視結果と、今回受信した監視結果とを用い、前回受信した監視結果により、全ての更新モジュールが正常であると判定され、今回受信した監視結果により、全ての更新モジュールが正常であると判定されなかった場合に、改竄されていない正常な更新モジュールの存在を検出する。ここで、前回の監視と今回の監視との時間間隔は、所定の閾値より小さいものとする。
 以下に、さらに詳細に異常検出部678について説明する。
 異常検出部678は、特定指示受信部671から正常モジュール特定指示を受信する。
 正常モジュール特定指示を受信すると、異常検出部678は、特定指示受信部671から機器100における更新モジュール群130の監視の結果(最新の監視の結果)を受信する。また、特定指示受信部671から、機器100における更新モジュール群130の前回の監視の結果を受信する。
 前回の監視とは、最新の監視を行う1回前における監視を示している。機器100は、定期的に又は不定期に、密な間隔により(例えば、1月に10~20回、1週間に5~6回、1日に2~3回、1時間に1回など)、監視を繰り返している。前回の監視と今回の監視との時間間隔は、所定の閾値より小さい。ここで、所定の閾値の例は、5日、3日、1日、12時間、6時間、3時間、1時間などである。
 更新サーバ200cbは、各監視における監視の結果を累積的に記憶している。
 上記のように、機器100は、定期的に又は不定期に、密な間隔により、監視を繰り返しているので、第1の監視時点から、その次の第2の監視時点までの間において、全ての更新モジュールが改竄されてしまうという事態は、避けられると仮定できる。
 つまり、第1の監視時点において、全ての更新モジュールが改竄されていない場合において、第1の監視時点の次の第2の監視時点において、少なくとも1個の更新モジュールが改竄されていないものと仮定することができる。
 異常検出部678は、受信した最新の監視の結果を用いて、最新の監視の結果が全て正常であるか否かを判断する。最新の監視の結果が全て正常である場合には、最新の監視の結果が全て正常であることを示す正常結果を、特定結果送信部672を介して、指示生成部603へ出力し、モジュール特定部604cbは、処理を終了する。この場合には、全ての更新モジュールが正常であるので、正常な更新モジュールの特定処理を行う必要はない。
 異常検出部678は、最新の監視の結果が全て正常であると判断されない場合、次に、受信した前回の監視の結果を用いて、前回の監視の結果が全て正常であるか否かを判断する。前回の監視の結果が全て正常であると判断されない場合には、その旨を示す結果を、特定結果送信部672を介して、指示生成部603へ出力し、モジュール特定部604cbは、処理を終了する。この場合には、全ての更新モジュールが正常でない可能性があるので、正常な更新モジュールの特定処理を行わない。
 前回の監視の結果が全て正常である場合には、異常検出部678は、正常モジュール特定部607を構成するその他の構成部に対して、正常モジュールの特定処理をするように、制御する。また、循環監視パターン判定部677に対して、不正な更新モジュールを特定する旨を示す不正モジュール特定指示を出力する。
(c)循環監視パターン判定部677
 循環監視パターン判定部677は、異常検出部678から不正モジュール特定指示を受信し、特定指示受信部671から更新モジュール群130の監視の結果を受信する。不正モジュール特定指示を受信すると、循環監視パターン判定部677は、循環検出部606へ循環監視パターンの取得指示を送信する。循環検出部606は、存在すれば、1個以上の循環監視パターンを循環監視パターン判定部677へ送信する。次に、循環監視パターン判定部677は、循環検出部606から循環監視パターンを受信する。
 次に、循環監視パターン判定部677は、受信した監視の結果を用いて、受信した循環監視パターンにより示される複数の更新モジュールの監視の結果に矛盾があるかを検証する。矛盾がある場合には、受信した循環監視パターン内に含まれる更新モジュールはすべて不正な更新モジュールであると特定し、不正であると特定した全ての更新モジュールをそれぞれ識別する不正識別番号を、不正モジュール仮定部673へ送信する。
 なお、循環監視パターンについて、簡単に説明すると、以下の通りである。
 更新モジュールに対して、循環監視パターンにより、監視対象の更新モジュールが定められている。循環監視パターンは、第1の更新モジュールによる監視対象である第2の更新モジュールが、前記第1の更新モジュールを監視し、又は、1個以上の更新モジュールを介在して、前記第1の更新モジュールを監視することを示している。
 要するに、循環監視パターン判定部677は、循環監視パターンに係る複数の更新モジュールによる他の1の更新モジュールに対する複数の監視結果が一致しない場合に、当該循環監視パターンに係る複数の更新モジュールを、不正な更新モジュールとして、特定する。
 なお、次のようにして、不正な更新モジュールを特定するとしてもよい。すなわち、不正モジュール特定部は、1個の更新モジュールが正常であると仮定する場合に、受信する監視結果を用いて、複数の監視結果に不一致があるか否かを判断し、不一致がある場合に、正常であると仮定した前記更新モジュールを、不正な更新モジュールとして、特定する。
(d)不正モジュール仮定部673
 不正モジュール仮定部673は、以下に示すようにして、更新モジュールの中から選択した1個の更新モジュールに対して改竄されていると仮定する。
 不正モジュール仮定部673は、特定指示受信部671から更新モジュールリストを受信し、機器100における更新モジュール群130の監視の結果を受信する。また、循環監視パターン判定部677から不正であると特定された全ての更新モジュールをそれぞれ識別する不正識別番号を受信する。
 次に、不正モジュール仮定部673は、更新モジュールリストに含まれる更新モジュールの識別番号の内、受信した不正識別番号以外の更新モジュールの識別番号を一つ選択し、選択した識別番号により示される更新モジュールを不正な更新モジュールと仮定する。この選択した識別番号を仮定識別番号と呼ぶ。不正モジュール仮定部673は、空集合の仮不正更新モジュール群を定め、次に、仮定識別番号を仮不正更新モジュール群に含める。この時点において、仮不正更新モジュール群には、選択した更新モジュールを識別する仮定識別番号のみが含まれる。なお、仮不正更新モジュール群を、仮定不正グループと呼ぶとしてもよい。このように、不正モジュール仮定部673は、仮定識別番号を含む仮定不正グループを生成する。
 次に、不正モジュール仮定部673は、選択した更新モジュールの仮定識別番号を抽出結果判断部676へ送信し、仮不正更新モジュール群の仮不正構成情報を検証結果判定部674へ送信する。仮不正更新モジュール群の仮不正構成情報は、仮不正更新モジュール群に含まれる全ての識別番号から構成されている。
 また、不正モジュール仮定部673は、抽出結果判断部676から正常な更新モジュールを特定できない旨の特定不可通知を受信する。特定不可通知を受信した場合、不正モジュール仮定部673は、更新モジュールリストに含まれる更新モジュールの識別番号の内、受信した不正識別番号以外の更新モジュールであって、選択した更新モジュールとは別の更新モジュールの識別番号を新たに選択し、選択した更新モジュールを不正な正常モジュールと仮定し、選択した当該更新モジュールを識別する仮定識別番号のみを仮不正更新モジュール群に含め、仮不正更新モジュール群の仮不正構成情報を検証結果判定部674へ送信する。
(e)第二仮定部679
 第二仮定部679は、上述したように、検証結果判定部674及び仮不正更新モジュール群抽出部675から構成されている。
 第二仮定部679は、以下に説明するように、不正モジュール仮定部673により、改竄されていると仮定された更新モジュールを起点として、受信した監視結果を用いて、改竄されていると仮定された更新モジュールを正常と判定する更新モジュールに対して改竄されていると仮定する手順を、未処理の更新モジュールについて、連鎖的に適用する。
 第二仮定部679は、簡単に説明すると、監視結果を用いて、前記仮定不正グループに含まれている識別番号により識別される更新モジュールを正常と判断する更新モジュールが存在するか否かを判定し、存在すると判定された場合に、当該更新モジュールを識別する識別番号を前記仮定不正グループに追加し、未処理の更新モジュールについて、前記判定と前記追加とを繰り返し行うように制御する。
(i)検証結果判定部674
 検証結果判定部674は、特定指示受信部671から、機器100における更新モジュール群130の監視の結果を受信する。また、不正モジュール仮定部673から仮不正構成情報を受信する。
 検証結果判定部674は、特定指示受信部671から受信した機器100における更新モジュール群130の監視の結果、及び、不正モジュール仮定部673から受信した仮不正更新モジュール群の仮不正構成情報を用いて、仮不正更新モジュール群内の更新モジュールへの検証結果を判定する。
 ここでは、図47に示す例を用いて、検証結果判定部674による判定方法について説明する。
 図47に示すように、更新モジュール131は、更新モジュール132を監視(3004)し、更新モジュール131による更新モジュール132に対する監視結果は、正常(3003)であるものとする。また、更新モジュール132は、仮不正更新モジュール群3002内に含まれる更新モジュールであるものとする。
 このとき、検証結果判定部674は、受信した監視の結果を用いて、仮不正更新モジュール群3002内に含まれる更新モジュール132を正常と判定する更新モジュールを探す。図47に示す例では、更新モジュール131が更新モジュール132を正常(3003)と判定している。そこで、検証結果判定部674は、更新モジュール132を正常と判定する更新モジュール131を仮不正更新モジュールとみなす。
 後述するように、更新モジュール131は、仮不正更新モジュールとして、仮不正更新モジュール群に追加して含まれるようになる。その結果、更新モジュール132及び131は、新たな仮不正更新モジュール群3001に含まれることになる。
 検証結果判定部674は、仮不正更新モジュール群内の更新モジュールへの監視の結果として、正常と判定する更新モジュールを識別する識別番号(以下、仮不正識別番号と呼ぶ。)と、受信した仮不正更新モジュール群の構成情報を仮不正更新モジュール群抽出部675へ送信する。仮不正更新モジュール群内の更新モジュールへの監視の結果として、正常とする更新モジュールが存在しない場合は、その旨を仮不正更新モジュール群抽出部675へ送信する。仮不正更新モジュール群抽出部675から仮不正更新モジュール群の構成情報を受信した場合も、同様の動作を行う。
(ii)仮不正更新モジュール群抽出部675
 仮不正更新モジュール群抽出部675は、検証結果判定部674から仮不正更新モジュール群内の更新モジュールへの監視の結果として、正常と判定する更新モジュールの識別番号(仮不正識別番号)と、仮不正更新モジュール群の構成情報を受信する。次に、受信した更新モジュールの識別番号(仮不正識別番号)を受信した仮不正更新モジュール群へ追加する。
 図47に示す例の場合には、更新モジュール131は、仮不正更新モジュールとして、仮不正更新モジュール群に追加して含まれるようになる。その結果、更新モジュール132及び131は、新たな仮不正更新モジュール群3001に含まれることになる。
 次に、仮不正更新モジュール群抽出部675は、識別番号が追加された新たな仮不正更新モジュール群の構成情報を検証結果判定部674へ送信する。検証結果判定部674から更新モジュールが存在しない旨の通知を受信した場合には、抽出結果判断部676へ仮不正更新モジュール群の構成情報を送信する。
(f)抽出結果判断部676
 抽出結果判断部676は、特定指示受信部671から更新モジュールリストを受信する。また、仮不正更新モジュール群抽出部675から仮不正更新モジュール群の仮不正構成情報及び仮定識別番号を受信する。さらに、循環監視パターン判定部677から不正な更新モジュールを識別する不正識別番号を受信する。
 次に、抽出結果判断部676は、仮不正更新モジュール群の仮不正構成情報及び不正な更新モジュールを識別する不正識別番号を用いて、循環監視パターン判定部677で特定した不正な更新モジュール以外の全ての更新モジュールが仮不正更新モジュール群に含まれているか否かを判断する。
 また、不正な更新モジュールが存在しない場合には、抽出結果判断部676は、全ての更新モジュールが仮不正更新モジュール群に含まれているか否かを判断する。さらに、不正な更新モジュールが存在を検出しない場合にも、全ての更新モジュールが仮不正更新モジュール群に含まれているか否かを判断する。言い換えると、全ての更新モジュールに対して、改竄されていると仮定されたかを判断する。さらに、言い換えると、抽出結果判断部676は、仮定不正グループに、全ての更新モジュールを識別する識別番号が含まれるか否かを判断する。
 言い換えると、抽出結果判断部676は、更新モジュールリストに含まれる識別番号から、不正識別番号を取り除き、さらに、仮不正構成情報に含まれる識別番号を取り除いた結果、更新モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。
 また、不正な更新モジュールが存在しない場合には、抽出結果判断部676は、更新モジュールリストに含まれる識別番号から、仮不正構成情報に含まれる識別番号を取り除いた結果、更新モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。さらに、不正な更新モジュールが存在を検出しない場合にも、更新モジュールリストに含まれる識別番号から、仮不正構成情報に含まれる識別番号を取り除いた結果、更新モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。
 循環監視パターン判定部677で特定した不正な更新モジュール以外の全ての更新モジュールが仮不正更新モジュール群に含まれている場合、抽出結果判断部676は、不正モジュール仮定部673で仮定した更新モジュールを正常な更新モジュールと特定し、受信した仮定識別番号を正常モジュールを示す識別番号とし、正常モジュール識別番号を、特定結果として、特定結果送信部672へ出力する。
 全ての更新モジュールが仮不正更新モジュール群に含まれない場合、抽出結果判断部676は、不正モジュール仮定部673で仮定した更新モジュール以外の更新モジュールを仮定するように、不正モジュール仮定部673へ指示(正常な更新モジュールを特定できない旨の特定不可通知)を送信する。
(g)特定結果送信部672
 特定結果送信部672は、抽出結果判断部676から正常な更新モジュールの特定結果を受信し、受信した特定結果を指示生成部603に送信する。
 また、特定結果送信部672は、最新の監視の結果が全て正常であることを示す正常結果を指示生成部603へ送信する。また、最新の監視の結果が全て正常ではなく(つまり、少なくとも一部は、不正)、また、前回の監視の結果が全て正常ではない(つまり、少なくとも一部は、不正)旨を示す結果を、指示生成部603へ送信する。
(4)正常モジュール特定処理の動作
 ソフトウェア更新システム10cbにおける正常な更新モジュールの特定処理の動作を、図48、図49及び図50~図52を用いて説明する。
 なお、図48及び図49は、それぞれ、各更新モジュールの改竄検出の監視の結果の一例を示し、図50~図52は、正常モジュール特定処理の動作を示すフローチャートである。
 以下に、正常モジュール特定処理の動作について、図50~図52に示すフローチャートを用いて説明する。
 異常検出部678は、少なくとも1個の更新モジュールが正常か否かを判断する。言い換えると、改竄されていない正常な更新モジュールの存在を検出する(ステップS9000)。ステップS9000の詳細は、次の通り(ステップS9001~S9004)である。
 異常検出部678は、最新の全ての監視結果を受信することにより取得し(ステップS9001)、最新の全ての監視結果が、正常であるか否かを判定する(ステップS9002)。すべての監視結果が正常である場合(ステップS9002でY)、全ての更新モジュールは正常であると特定し、モジュール特定部604cbは、正常モジュール特定処理を終了する。全ての監視結果が正常であると判断されない場合(ステップS9002でN)、直前の、つまり、前回の全ての監視結果を受信することにより取得し(ステップS9003)、直前の監視結果が全て正常であるかを判定する(ステップS9004)。直前の監視結果が全て正常である判断されない場合(ステップS9004でN)、モジュール特定部604cbは、正常モジュール特定処理を終了する。直前の監視結果が全て正常であった場合(ステップS9004でY)、更新モジュール群130の少なくとも一つの更新モジュールが正常であると判断する。これは、直前の相互監視では全ての更新モジュールが正常であった場合、相互監視の間隔が狭いため、その間隔で全ての更新モジュールが不正な更新モジュールへ改竄されることはないと判断するためである。
 このようにして、更新モジュール群130の少なくとも一つの更新モジュールが正常であると確認することにより、後に説明するように、論理的に正常モジュールを特定することができる。
 次に、直前の相互監視処理の監視結果が全て正常であった場合(ステップS9004でY)、循環監視パターン判定部677は、循環監視パターンが存在するかを判断する(ステップS9005)。この判断は、循環検出部606内の循環監視パターン記憶部666に循環監視パターンが記憶されているか否かを確認することにより行う。循環監視パターンが存在しない場合には(ステップS9005でN)、ステップS9014へ移行する。
 循環監視パターンが存在する場合(ステップS9005でY)には、循環監視パターン判定部677は、循環監視パターンを用いた不正な更新モジュールの特定を行う(ステップS9006)。ステップS9006の詳細は、次の通り(ステップS9007~S9013)である。なお、循環監視パターンを用いた不正な更新モジュールの特定を行わないとしてもよい。つまり、別の方法により、不正な更新モジュールの特定を行うとしてもよい。また、不正な更新モジュールの特定を行わないとしてもよい。
 循環監視パターン判定部677は、循環検出部606内の循環監視パターン記憶部666に記憶されている1個の循環監視パターンを選択し(ステップS9007)、選択した循環監視パターン内における監視結果が全て正常であるかを判断する(ステップS9008)。循環監視パターンの監視結果が全て正常である場合(ステップS9008でY)、循環監視パターン内の複数の更新モジュールの監視対象である同一モジュールに対する複数の監視結果が一致するかを検証する(ステップS9009)。一致しない場合には(ステップS9009でN)、循環監視パターン内の更新モジュールは全て不正な更新モジュールであると特定する(ステップS9010)。さらに、ステップS9010で不正な更新モジュールであると特定された更新モジュールを正常と判定している更新モジュールが存在するかを判断する(ステップS9011)。存在する場合には(ステップS9011でY)、正常と判定する更新モジュールを不正な更新モジュールであると特定する(ステップS9012)。これにより、不正な更新モジュールであるか否かの判断がされずに残存する更新モジュールの数を減らすことができる。その結果、保護制御モジュールを更新する正常な更新モジュールを一層効果的に特定できる。次に、ステップS9013へ制御を移す。
 循環監視パターン判定部677は、循環監視パターンの監視結果が全て正常でない場合(ステップS9008でN)、循環監視パターン内の複数の更新モジュールの監視対象である同一モジュールに対する複数の監視結果が一致する場合(ステップS9009でY)、又は、不正な更新モジュールであると特定された更新モジュールを正常と判定している更新モジュールが存在しない場合(ステップS9011でN)、さらに、循環検出部606内の循環監視パターン記憶部666に循環監視パターンが他に存在するかを判断する(ステップS9013)。他に循環監視パターンが存在する場合には(ステップS9013でY)、ステップS9007へ制御を移す。他に循環監視パターンが存在しない場合には(ステップS9013でN)、循環監視パターン判定部677は、循環監視パターンを用いた不正な更新モジュールの特定の処理を終了する。
 次に、不正モジュール仮定部673は、ステップS9010又はステップS9012で不正な更新モジュールと特定された更新モジュール以外の更新モジュールを選択し、選択した更新モジュールを不正な更新モジュールと仮定し、仮不正更新モジュール群がこの不正と仮定した更新モジュールの識別番号のみを含むとする(ステップS9014)。
 検証結果判定部674は、仮不正更新モジュール群内に含まれる識別番号により識別される更新モジュールを正常と判定する更新モジュールが、仮不正更新モジュール群以外に、一個でも存在するかを判定する(ステップS9015)。仮不正更新モジュール群内のモジュールを正常と判定する仮不正更新モジュール群以外の更新モジュールが一個でも存在する場合(ステップS9015でY)、仮不正更新モジュール群抽出部675は、この更新モジュールを識別する識別番号を仮不正更新モジュール群に含める(ステップS9016)。次に、ステップS9015へ制御を移す。仮不正更新モジュール群内の更新モジュールを正常と判定する仮不正更新モジュール群以外の更新モジュールが一個でも存在しなかった場合(ステップS9015でN)、ステップS9010又はステップS9012で不正な更新モジュールと特定された不正な更新モジュールと、仮不正更新モジュール群以外の更新モジュールが存在するか判断する(ステップS9017)。存在しない場合(ステップS9017でN)、ステップS9014で仮定した更新モジュールを正常な更新モジュールと特定する(ステップS9018)。こうして、正常な更新モジュールが特定できた場合には、その後に、上記において不正とした仮定を全て取り消し、仮不正更新モジュール群に含まれる識別番号を消去する。
 また、存在する場合(ステップS9017でY)、ステップS9014で仮定した更新モジュールを正常な更新モジュールと特定しない(ステップS9019)。ステップS9014において、ステップS9010やステップS9012で不正な更新モジュールと特定された更新モジュール以外の全ての更新モジュールを選択していない場合には(ステップS9020でN)、ステップS9014へ制御を移す。全ての更新モジュールを仮定した場合(ステップS9020でY)、正常モジュール特定処理を終了する。
 以上説明したように、ステップS9019において、仮定した更新モジュールを正常な更新モジュールと特定しないことにより、不正な更新モジュールを、正常な更新モジュールと誤判断するのを防止できる。これにより、不正な更新モジュールを介して保護制御モジュールが不正な保護制御モジュールに更新されるのを防止できる。
 上記、正常モジュール特定処理では、まず、複数の更新モジュールの中のいずれか一つの更新モジュールが不正な更新モジュールであるという仮定を行う。その上で、更新モジュールの中から正常である更新モジュールを論理的な検証方法を用いて効果的に特定できるので、特定した正常な更新モジュールを用いて、保護制御モジュールを安全に更新できる。
 なお、上記において、更新モジュールは、監視モジュールであるとしてもよい。
(5)正常モジュール特定の例
(a)正常モジュール特定の第1の例
 次に、図48に示す例を用いて、正常モジュール特定処理の一例について説明する。
 図48に示すように、機器100が有する更新モジュール群130は、更新モジュール131~137を含む。
 更新モジュール131は、更新モジュール132及び134を監視し、その監視結果は、それぞれ、正常(3022)及び不正であり、更新モジュール132は、更新モジュール131、133及び135を監視し、その監視結果は、それぞれ、不正(3021)、正常(3023)及び不正であり、更新モジュール133は、更新モジュール131、135及び136を監視し、その監視結果は、それぞれ、正常(3024)、不正及び不正であり、更新モジュール134は、更新モジュール136を監視し、その監視結果は、正常(3027)であり、更新モジュール135は、更新モジュール137を監視し、その監視結果は、正常(3025)であり、更新モジュール136は、更新モジュール137を監視し、その監視結果は、正常(3026)であり、更新モジュール137は、更新モジュール133を監視し、その監視結果は、不正であるとする。
 また、更新モジュール131は、更新モジュール132を監視し(3028)、更新モジュール132は、更新モジュール133を監視し(3029)、更新モジュール133は、更新モジュール131を監視(3030)しているものとする。従って、循環監視パターン3014が存在する。
 このように、更新モジュールに対して、循環監視パターンにより、監視対象の更新モジュールが定められている。循環監視パターンは、第1の更新モジュールによる監視対象である第2の更新モジュールが、前記第1の更新モジュールを監視し、又は、1個以上の更新モジュールを介在して、前記第1の更新モジュールを監視することを示している。
 まず、循環監視パターン判定部677は、循環監視パターンが存在するか判断し(ステップS9005)、循環監視パターンの全ての更新モジュール131、132及び133は、全て不正な更新モジュールであると特定する(ステップS9010)。図48によると、循環監視パターン3014が存在し、循環監視パターン3014における監視結果は、全て正常(3022、3023、3024)であり、更新モジュール132による更新モジュール131に対する監視結果(3021)と、更新モジュール133による更新モジュール131に対する監視結果(3024)とが異なるからである。
 次に、不正モジュール仮定部673は、更新モジュール137を選択し、更新モジュール137を不正な更新モジュールと仮定し、更新モジュール137を識別する識別番号を仮不正更新モジュール群3011に含める(ステップS9014)。次に、図48によると、不正と判定された更新モジュール131~133以外の更新モジュール135及び136が更新モジュール137を正常と判定(3025、3026)しているので(ステップS9015)、仮不正更新モジュール群3011内の更新モジュール137を正常と判定する更新モジュール135、更新モジュール136を仮不正更新モジュール群に含める(ステップS9016)。この結果、新たな仮不正更新モジュール群3012が生成される。また、図48によると、不正と判定された更新モジュール131~133以外の更新モジュール134が更新モジュール136(仮不正更新モジュール群3012に含まれる)を正常と判定(3027)しているので(ステップS9015)、仮不正更新モジュール群3012内の更新モジュール136を正常と判定する更新モジュール134を仮不正更新モジュール群に含める(ステップS9016)。この結果、新たな仮不正更新モジュール群3013が生成される。
 次に、抽出結果判断部676は、ステップS9010で不正な更新モジュールと特定された不正な更新モジュール131~133と、仮不正更新モジュール群(更新モジュール134~137)以外の更新モジュールが存在するか判断する(ステップS9017)。図48によると、全ての更新モジュールが不正な更新モジュールまたは仮不正更新モジュールであるので(ステップS9017でN)、抽出結果判断部676は、更新モジュール137が正常な更新モジュールであると特定する(ステップS9018)。
 このようにして、更新モジュールの中から正常である更新モジュール137を論理的な検証方法を用いて効果的に特定できるので、特定した正常である更新モジュール137を用いて、保護制御モジュールを安全に更新できる。
(b)正常モジュール特定の第2の例
 次に、図49に示す例を用いて、正常モジュール特定処理の一例について説明する。
 図49に示すように、機器100が有する更新モジュール群130は、更新モジュール131~137を含む。
 更新モジュール131は、更新モジュール132及び134を監視し、その監視結果は、それぞれ、正常(3052)及び不正であり、更新モジュール132は、更新モジュール131、133及び135を監視し、その監視結果は、それぞれ、正常(3051)、正常(3053)及び正常(3060)であり、更新モジュール133は、更新モジュール131、135及び136を監視し、その監視結果は、それぞれ、正常(3054)、正常(3059)及び正常(3055)であり、更新モジュール134は、更新モジュール136を監視し、その監視結果は、正常(3056)であり、更新モジュール135は、更新モジュール137を監視し、その監視結果は、正常(3058)であり、更新モジュール136は、更新モジュール137を監視し、その監視結果は、正常(3057)であり、更新モジュール137は、更新モジュール133を監視し、その監視結果は、正常であるとする。
 また、更新モジュール131は、更新モジュール132を監視し(3061)、更新モジュール132は、更新モジュール133を監視し(3062)、更新モジュール133は、更新モジュール131を監視(3063)しているものとする。従って、循環監視パターン3041が存在する。
 まず、循環監視パターン判定部677は、循環監視パターンが存在するか判断し(ステップS9005)、監視する同一モジュールの監視結果が一致しているため(ステップS9009でY)、ステップS9014へ制御を移す。図49によると、循環監視パターン3041が存在し、循環監視パターン3041における監視結果は、全て正常(3052、3053、3054)であり、更新モジュール132による更新モジュール131の監視結果(3051)と、更新モジュール133による更新モジュール131の監視結果(3054)とが一致するからである。また、その他に矛盾する監視結果が存在しないからである。
 次に、不正モジュール仮定部673は、更新モジュール137を選択し、更新モジュール137を不正な更新モジュールと仮定し、更新モジュール137を識別する識別番号を仮不正更新モジュール群3042に含める(ステップS9014)。
 次に、図49によると、不正と判定されていない更新モジュール135及び136が更新モジュール137を正常と判定(3058、3057)しているので(ステップS9015)、仮不正更新モジュール群3042内の更新モジュール137を正常と判定する更新モジュール135、更新モジュール136を仮不正更新モジュール群に含める(ステップS9016)。この結果、新たな仮不正更新モジュール群3043が生成される。また、図49によると、不正と判定されていない更新モジュール134が更新モジュール136(仮不正更新モジュール群3043に含まれる)を正常と判定(3056)しているので、また、不正と判定されていない更新モジュール132が更新モジュール135(仮不正更新モジュール群3043に含まれる)を正常と判定(3060)しているので、(ステップS9015)、仮不正更新モジュール群3043内の更新モジュール136及び135をそれぞれ正常と判定する更新モジュール134及び132を仮不正更新モジュール群に含める(ステップS9016)。この結果、新たな仮不正更新モジュール群3044が生成される。さらに、不正と判定されていない更新モジュール131が更新モジュール132(仮不正更新モジュール群3044に含まれる)を正常と判定(3052)しているので、(ステップS9015)、仮不正更新モジュール群3044内の更新モジュール132を正常と判定する更新モジュール131を仮不正更新モジュール群に含める(ステップS9016)。この結果、新たな仮不正更新モジュール群3045が生成される。
 こうして、更新モジュール131~137の全てが仮不正更新モジュール群3045に含まれることになる。従って、仮不正更新モジュール群以外の更新モジュールが存在しないので(ステップS9017でN)、抽出結果判断部676は、更新モジュール137が正常な更新モジュールであると特定する(ステップS9018)。
 このようにして、複数の更新モジュールの中から正常である更新モジュール137を論理的な検証方法を用いて効果的に特定できるので、特定した更新モジュール137を用いて保護制御モジュールを安全に更新できる。
4.実施の形態4
 ここでは、別の実施の形態について説明する。
4.1 実施の形態3について
 上記の実施の形態3のソフトウェア更新システム10cbでは、更新処理における更新モジュールの選択において、改竄されていない正常な更新モジュールを特定している。
 しかし、ソフトウェア更新システム10cbにおける正常モジュールを特定する方法においては、正常モジュールの特定を妨害する更新モジュールが存在すると、正常な更新モジュールが特定できないケースがある。
 ここで、正常モジュールの特定を妨害する更新モジュールの一例は、その更新モジュールによる監視結果の全てを不正と判定するものである。図57にその一例を示す。
 図57は、更新モジュール群130に含まれる更新モジュール131~137による監視の結果を示している。
 この図においては、更新モジュール132は、更新モジュール131、133及び135を監視しており、更新モジュール132による更新モジュール131、133及び135に対する監視結果は、全て不正(4001、4003、4004)である。
 また、更新モジュール131は、更新モジュール134を監視し、その監視の結果は、正常(4006)であり、更新モジュール133は、更新モジュール131、135及び136を監視し、その監視の結果は、それぞれ、正常(4005、4012及び4008)であり、更新モジュール134は、更新モジュール136を監視し、その監視の結果は、正常(4007)であり、更新モジュール135は、更新モジュール137を監視し、その監視の結果は、正常(4011)であり、更新モジュール136は、更新モジュール137を監視し、その監視の結果は、正常(4010)であり、更新モジュール137は、更新モジュール133を監視し、その監視の結果は、正常(4009)である。
 このケースにおいて、上記の各実施の形態において説明した方法によって、不正モジュールを特定しようとしても、各更新モジュールの監視結果には、矛盾が生じないため、いずれの更新モジュールも不正な更新モジュールと特定されない。
 また、このケースにおいて、実施の形態3のソフトウェア更新システム10cbにおいて説明した正常モジュールの特定処理を用いて、図50のステップS9001からS9013までの手順を適用しても、いずれの更新モジュールも不正な更新モジュールと判定されない。
 次に、ステップS9014の手順を適用して、1個の更新モジュールを選択し、ステップS9015からS9016の手順を適用して、不正と仮定した更新モジュールを仮不正更新モジュール群に追加する。この場合、図57に示す監視の結果によると、更新モジュール132は仮不正更新モジュール群に含まれない。これは、更新モジュール132が更新モジュール131、133、135への監視を全て不正(4001、4003、4004)と判定しているためである。この結果、図57に示す更新モジュール131~137を、仮不正更新モジュール群及び不正な更新モジュール群のみに分けることができない。このため、実施の形態3のソフトウェア更新システム10cbにおいて説明した正常モジュールの特定処理を適用できず、いずれの更新モジュールも正常な更新モジュールと特定できない。
 このように、ソフトウェア更新システム10cbにおける正常モジュールを特定する方法を用いても、更新モジュール132は、不正な更新モジュールと判定されないし、また、不正仮更新モジュール群に分類されない。このため、このケースに対して、ソフトウェア更新システム10cbにおける正常モジュールを特定する方式を適用して、正常モジュールを特定することができない。
 正常な更新モジュールを特定するためには、監視パターンを変更して、新たに監視の結果を受け取り、再度正常モジュール特定処理を行えばよいかもしれない。しかし、監視パターンを変更して再度監視を行ったとしても、更新モジュール132が対象の更新モジュールへの監視において全て不正と判定した場合には、同様に正常な更新モジュールが特定できない。
 このように、監視パターンを更新して再度監視を行っても、常に対象の更新モジュールへの監視結果を全て不正とする更新モジュールは、改竄されており、正常モジュールの特定を妨害する更新モジュール(以下、妨害モジュールと呼ぶ。)である。
4.2 改竄監視システム10da
 改竄監視システム10daでは、上記の問題を解決するために、全ての監視対象の監視モジュールに対して、不正と判定する監視モジュール(以下、妨害候補モジュールと呼ぶ。)を抽出し、抽出した妨害候補モジュールの中から、真の妨害モジュールを特定し、特定した妨害モジュールを予め排除する。このように、改竄され不正動作を行っている妨害モジュールを予め排除することにより、残りの複数の監視モジュールの中から正常である監視モジュールを効果的に特定することができ、特定した正常な監視モジュールを有効に用いることができる。
 別の実施の形態としての改竄監視システム10daについて、図78に示す構成図を用いて、説明する。
 改竄監視システム10daは、この図に示すように、情報セキュリティ装置100da及び管理装置200daから構成されている。
 情報セキュリティ装置100daは、改竄を監視する複数の監視モジュール131da、132da、133da、134daを有する。
 管理装置200daは、情報セキュリティ装置100daから、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信部240daと、受信した前記監視結果を用いて、前記監視モジュールのうちから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定部683daと、複数の妨害候補モジュールが検出された場合に、複数の妨害候補モジュール間で、相互に相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせる更新部250daとから構成されている。受信部240daは、さらに、情報セキュリティ装置100daから新たな監視パターンによる新たな監視結果を受信する。判定部683daは、さらに、受信した新たな監視結果を用いて、前記妨害候補モジュールから、相互に正常と判定し、他の妨害候補モジュールに対して不正と判定する2個の妨害候補モジュールを除く他の妨害候補モジュールを妨害モジュールと特定する。
 このようにして、妨害モジュールを特定することができるので、特定された妨害モジュールを無効化すればよい。
 ここで、判定部683daは、さらに、受信した新たな監視結果を用いて、2個の妨害候補モジュールのうち、第1の妨害候補モジュールが第2の妨害候補モジュールに対して正常と判定し、第2の妨害候補モジュールが第1の妨害候補モジュールに対して不正と判定する場合に、第1の妨害候補モジュールを、改竄された不正な更新モジュールであると特定してもよい。
4.3 ソフトウェア更新システム10db
 別の実施の形態としてのソフトウェア更新システム10dbについて、説明する。
 ソフトウェア更新システム10dbでは、実施の形態3における問題を解決するために、全ての監視対象の更新モジュールに対して、不正と判定する更新モジュール(以下、妨害候補モジュールと呼ぶ。)を抽出し、抽出した妨害候補モジュールの中から、真の妨害モジュールを特定し、特定した妨害モジュールを予め排除する。このように、改竄され不正動作を行っている妨害モジュールを予め排除することにより、残りの複数の更新モジュールの中から正常である更新モジュールを効果的に特定することができ、特定した正常な更新モジュールを用いて、保護制御モジュールを安全に更新できる。
 なお、ソフトウェア更新システム10dbでは、実施の形態2及び実施の形態3と同様に更新モジュールが7個の場合について、説明する。しかし、更新モジュールは、8個以上であってもよいし、6個以下であってもよい。
(1)ソフトウェア更新システム10dbの構成
 ソフトウェア更新システム10dbは、図53に示すように、更新サーバ200db及び機器100dbから構成されている。機器100dbは、実施の形態1の機器100と同一の構成を有している。また、更新サーバ200dbは、実施の形態1の更新サーバ200と類似の構成を有しており、判断部210db、更新用ソフトウェア配布部220、モジュール無効化部230、通信部240及び監視パターン更新部250から構成されている。
 更新用ソフトウェア配布部220、モジュール無効化部230及び通信部240は、更新サーバ200が有する更新用ソフトウェア配布部220、モジュール無効化部230及び通信部240と同一である。判断部210dbは、ソフトウェア更新システム10cbの更新サーバ200cbが有する判断部210cbと類似の構成を有している。
 ここでは、判断部210db及び監視パターン更新部250を中心として説明する。
(2)監視パターン更新部250の構成
 監視パターン更新部250は、機器100db内部の更新モジュール群130の監視パターンを更新する場合に、判断部210dbによる監視パターン更新の指示に応じて、更新モジュール群130内の各更新モジュールの監視パターンを更新するために、更新のための監視パターンを生成し、生成した監視パターンを各更新モジュールへ送信する。
 監視パターン更新部250は、図54に示すように、受信部901、送信部902、監視パターン生成部903、監視パターン分割部904及び制御部905から構成されている。
(a)受信部901
 受信部901は、判断部210dbから、監視パターンの生成を示す生成指示及び指示した時点での更新モジュールリストを受信する。更新モジュールリストは、機器100dbが有する更新モジュール群130に含まれる全ての更新モジュールをそれぞれ識別する識別番号を含んでいる。また、妨害候補モジュールが存在する場合には、全ての妨害候補モジュールを識別する識別番号を受信する。
 受信部901は、受信した監視パターンの生成指示を制御部905へ出力する。また、受信した更新モジュールリストを、制御部905を介して、監視パターン生成部903へ出力する。また、妨害候補モジュールを識別する識別番号を受信した場合には、受信した識別番号を、制御部905を介して、監視パターン生成部903へ出力する。
(b)監視パターン生成部903
 監視パターン生成部903は、受信部901から、制御部905を介して、更新モジュールリストを受信する。また、妨害候補モジュールが存在する場合には、全ての妨害候補モジュールを識別する識別番号を受信する。
 更新モジュールリストを受信すると、監視パターン生成部903は、受信した更新モジュールリストを用いて、どの更新モジュールがどの更新モジュールを監視するかを決定し、機器100dbが有する更新モジュール群130における全体の監視パターンを生成する。
 特に、監視パターン生成部903は、受信した妨害候補モジュールを識別する識別番号を用いて、複数の妨害候補モジュールの各々が、他の全ての妨害候補モジュールを監視するように、つまり、複数の妨害候補モジュール間での相互監視をするように、全体の監視パターンを生成する。
 なお、複数の妨害候補モジュール間での相互監視の監視パターンの具体例については、後述する。
 なお、監視パターン生成部903は、全体の監視パターンとして、例えば、すべての更新モジュールが他のすべての更新モジュールを監視するように、決定してもよい。
 監視パターン生成部903は、生成した全体の監視パターンを監視パターン分割部904へ出力する。
(c)監視パターン分割部904
 監視パターン分割部904は、監視パターン生成部903から、全体の監視パターンを受信する。
 全体の監視パターンを受信すると、監視パターン分割部904は、受信した全体の監視パターンを、それぞれの更新モジュール毎の監視パターンに分割する。次に、分割して得られた更新モジュール毎の監視パターンを、更新用の監視パターンとして、制御部905、送信部902、通信部240及びネットワーク5を介して、機器100dbのそれぞれの更新モジュールに送信する。
(d)送信部902
 送信部902は、通信部240及びネットワーク5を介して、機器100dbへ更新用の更新モジュール毎の監視パターンを送信する。また、判断部210dbへ更新用の監視パターンの生成及び送信の終了を通知する。
(e)制御部905
 制御部905は、受信部901から、監視パターンの生成指示を受信する。
 監視パターンの生成指示を受信すると、制御部905は、監視パターン生成部903及び監視パターン分割部904に対して、機器100dbが有する更新モジュール群130における全体の監視パターンを生成し、更新用の更新モジュール毎の監視パターンを生成し、機器100dbへ更新用の更新モジュール毎の監視パターンを送信して、機器100dbにおいて監視パターンの更新処理をさせるように、制御する。
(3)判断部210dbの構成
 判断部210dbは、図55に示すように、受信部601、送信部602、指示生成部603、モジュール特定部604db及び循環検出部606から構成されている。また、モジュール特定部604dbは、不正モジュール特定部605、正常モジュール特定部607及び妨害モジュール特定部608から構成されている。
 受信部601、送信部602、指示生成部603及び循環検出部606は、それぞれ、ソフトウェア更新システム10cbの更新サーバ200cbの判断部210cbが有する受信部601、送信部602、指示生成部603及び循環検出部606と同一である。
 指示生成部603は、監視パターンの生成を示す生成指示を、送信部602を介して、監視パターン更新部250へ送信する。
 また、不正モジュール特定部605及び正常モジュール特定部607は、それぞれ、ソフトウェア更新システム10cbの更新サーバ200cbの判断部210cbのモジュール特定部604cbが有する不正モジュール特定部605及び正常モジュール特定部607と同一である。
 次に、妨害モジュール特定部608について、説明する。
(4)妨害モジュール特定部608の構成
 妨害モジュール特定部608は、改竄され、不正動作を行っている可能性のある更新モジュールがいるか否かを判断する。
 妨害モジュール特定部608は、図56に示すように、特定指示受信部681、特定結果送信部682、検証結果判定部683、監視パターン更新指示生成部684及び検証結果受信部685から構成されている。
(a)特定指示受信部681
 特定指示受信部681は、指示生成部603から、正常モジュールの特定を妨害する更新モジュールを特定する指示を示す妨害特定指示及び機器100dbにおける更新モジュールの監視の結果を受信し、受信した監視の結果を検証結果判定部683へ送信する。
(b)検証結果受信部685
 検証結果受信部685は、指示生成部603から、機器100dbにおいて、更新モジュール群130の監視パターンが更新された後の監視の結果を受信し、受信した更新後の監視の結果を検証結果判定部683へ送信する。
(c)検証結果判定部683
 検証結果判定部683は、特定指示受信部681から監視の結果を受信し、受信した監視の結果を用いて、正常モジュールの特定を妨害する更新モジュールが存在する可能性があるか否かを判断する。つまり、妨害候補モジュールが存在するか否かを判断する。妨害候補モジュールは、その全ての監視対象の更新モジュールに対して、不正と判断する更新モジュールである。なお、妨害候補モジュールが存在するか否かの判断の詳細ついては、後述する。
 妨害候補モジュールが存在しないと判断した場合、検証結果判定部683は、妨害候補モジュールが存在しない旨を特定結果送信部682へ送信する。
 妨害候補モジュールが存在すると判断した場合、検証結果判定部683は、妨害候補モジュールが、真に妨害モジュールであるか否かを判断するため、監視パターン更新指示生成部684へ、全ての候補妨害モジュールの識別番号を送信し、監視パターンの更新を依頼する。これは、妨害候補モジュールが、不正に改竄され正常モジュールの特定を妨害しているのか、又は、正常な更新モジュールが不正な更新モジュールに対して、正常に監視しているのかを判断するためである。詳細については、後述する。
 機器100dbにおいて、更新モジュール群130の監視パターンが更新された後、検証結果判定部683は、検証結果受信部685から、監視パターンの更新後の監視の結果を受信し、不正の可能性があるとされた更新モジュールが、不正な更新モジュールであるか否かを判断する。判断した結果を特定結果送信部682に送信し、更新モジュール群130の監視パターンを更新するため、監視パターン更新指示生成部684へ監視パターンの更新を依頼する。
(d)監視パターン更新指示生成部684
 監視パターン更新指示生成部684は、検証結果判定部683から、不正の可能性があるとされた更新モジュールの識別情報と監視パターンの更新依頼を受信し、受信した識別情報により識別される各更新モジュールが、自更新モジュール以外の全ての更新モジュールを監視する監視パターンになるように、指示生成部603へ監視パターンの更新指示を送信する。また、監視パターンの更新の依頼のみを受信した場合は、指示生成部603へ監視パターンの更新指示を送信する。
(e)特定結果送信部682
 特定結果送信部682は、検証結果判定部683から正常モジュールの特定を妨害する更新モジュールの特定結果を受信し、特定結果を指示生成部603に送信する。
(4)ソフトウェア更新システム10dbにおける動作
 ここでは、ソフトウェア更新システム10dbにおける動作について、図58に示す動作図を用いて、説明する。特に、妨害モジュール特定処理から正常モジュール特定処理までの処理の遷移について説明する。
 正常な更新モジュールを特定するために、更新モジュール群130内の複数の更新モジュールが相互に監視を行い、機器100dbは、監視の結果を更新サーバ200dbへ送信する。更新サーバ200dbは、監視の結果を受信し、監視対象の全ての更新モジュールへの監視結果を全て不正とする更新モジュール(上述したように、このような更新モジュールを妨害候補モジュールと呼ぶ。)が存在するか否かを判断する(ステップS10001)。妨害候補モジュールが存在する場合に、更新サーバ200dbは、更新モジュール群130から、全ての妨害候補モジュールを抽出する(ステップS10002)。次に、更新サーバ200dbは、抽出した妨害候補モジュールが妨害モジュールであるか否かを判断するため、各妨害候補モジュールが他の全ての妨害候補モジュールを監視するように、新たな監視パターンを生成する。次に、機器100dbの各更新モジュールに対して新たな監視パターンを送信し、新たな監視パターンに更新するように、機器100dbを制御する(ステップS10003)。
 機器100dbの各更新モジュールは、新たな監視パターンを用いて、相互に監視を行う。特に、各妨害候補モジュールは、他の全ての妨害候補モジュールの監視を行う。更新サーバ200dbは、機器100dbから、新たな監視パターンによる監視の結果を受信し、受信した監視の結果を用いて、妨害候補モジュールが妨害モジュールであるか否かを判断する。妨害モジュールは、常に、監視対象の全ての更新モジュールに対して不正と判定するが、正常な更新モジュールは、正常な更新モジュールに対して正常と判定する。このため、妨害候補モジュール群内に正常な更新モジュールが複数存在している場合、正常な妨害候補モジュール間での相互監視の結果は正常となる。一方、妨害候補モジュールによる、正常な妨害候補モジュール以外の妨害候補モジュールへの監視結果は全て不正となる。よって、妨害候補モジュールが妨害モジュールであるかの判断においては、(i )2個の妨害候補モジュール間の相互監視の結果が正常であり、さらに、(ii)相互に正常と判定する当該2個の妨害候補モジュールにより、当該2個の妨害候補モジュール以外の妨害候補モジュールへの監視において、不正と判定する場合、当該2個の妨害候補モジュールは、妨害モジュールではないと決定する。この条件を満たさない妨害候補モジュールは、自妨害候補モジュール以外の妨害候補モジュールに対して、常に不正と判定するため、妨害モジュールと特定する(ステップS10004)。
 更新サーバ200dbは、上記の条件を満たす妨害候補モジュールが存在する場合に、条件を満たさない妨害候補モジュールを抽出して、妨害モジュールと特定し(ステップS10005)、モジュール無効化部230は、特定した妨害モジュールを無効化するように、機器100dbに対して指示を出力する(ステップS10006)。
 また、更新サーバ200dbのモジュール無効化部230は、上記の条件を満たす妨害候補モジュールが存在しない場合には、全ての妨害候補モジュールが妨害モジュールであるので、特定した妨害モジュールを無効化するように、機器100dbに対して指示を出力する(ステップS10006)。
 次に、更新サーバ200dbは、全ての更新モジュールの監視パターンを更新し(ステップS10007)、更新モジュール全体で相互監視を行う(ステップS10001)。更新サーバ200dbは、更新モジュール群130による監視の結果を受信し、妨害候補モジュールが存在しない場合には、正常モジュール特定処理を実行し(ステップS10008)、正常な更新モジュールを特定する(ステップS10009)。
 以上説明したように、正常モジュールの特定を妨害する妨害モジュールを無効化して排除することにより、正常モジュール特定処理において、正常な更新モジュールを特定するための効率が向上する。
 上記において、ステップS10001からステップS10006までが妨害モジュール特定処理である。
 (5)妨害モジュール特定処理及び正常モジュール特定処理のシーケンス
 ここでは、妨害モジュール特定処理及び正常モジュール特定処理のシーケンスについて、図59~図60に示すシーケンス図を用いて説明する。
 判断部210dbの指示生成部603は、監視パターン更新部250へ監視パターンの生成指示を送信し、監視パターン更新部250は、監視パターン生成指示を受信する(ステップS11001)。監視パターン更新部250の監視パターン生成部903は、全体の新たな監視パターンを生成し、監視パターン分割部904は、全体の新たな監視パターンを更新モジュール毎の監視パターンに分割する(ステップS11002)。監視パターン更新部250は、通信部240及びネットワーク5を介して、機器100dbの各更新モジュールへ、更新モジュール毎の監視パターンを送信し、機器100dbの更新モジュール群130内の各更新モジュールは、更新モジュール毎の監視パターンを受信する(ステップS11003)。
 更新モジュール群130内の各更新モジュールは、古い監視パターンを受信した新たな監視パターンに置き換えることにより、監視パターンを更新する(ステップS11004)。新たな監視パターンへ更新後、更新モジュール群130内の各更新モジュールは、新たな監視パターンにより、監視処理を実行し、実施の形態1の相互監視処理と同様に監視パターンに従って、改竄検出処理を行う(ステップS11005)。なお、実施の形態1の改竄された更新モジュールがあるか否かの判断(図19のステップS5004)は行わない。次に、機器100dbは、監視の結果を、ネットワーク5及び通信部240を介して、判断部210dbへ送信し、判断部210dbは、監視の結果を受信する(ステップS11006)。
 判断部210dbは、妨害モジュールの特定処理を行う(ステップS11007)。妨害モジュール特定処理の詳細については、後述する。妨害モジュール処理の特定において、妨害モジュールを特定した場合、判断部210dbは、特定した妨害モジュールを識別する識別番号とともに、モジュール無効化部230へ無効化指示を送信する(ステップS11008)。モジュール無効化部230は、特定した妨害モジュールを識別する識別番号とともに、更新モジュール群130内の更新モジュールへ無効化の依頼を送信する(ステップS11009)。無効化の依頼を受信した更新モジュールは、アクセス制御モジュール140と連携して、受信した妨害モジュールを識別する識別番号により、妨害モジュールを無効化する(ステップS11010)。なお、無効化処理の詳細は、実施の形態1の無効化処理と同様であるので省略する。妨害モジュールの特定処理において、判断部210dbは、監視パターンの生成指示を送信し、監視パターン更新部250は、監視パターンの生成指示を受信する(ステップS11011)。
 監視パターン更新部250の監視パターン生成部903は、受信した監視パターンの生成指示に基づいて、全体の新たな監視パターンを生成し、監視パターン分割部904は、全体の新たな監視パターンを更新モジュール毎の監視パターンに分割する(ステップS11012)。監視パターン更新部250は、通信部240及びネットワーク5を介して、機器100dbの各更新モジュールへ、更新モジュール毎の監視パターンを送信し、機器100dbの更新モジュール群130内の各更新モジュールは、更新モジュール毎の監視パターンを受信する(ステップS11013)。
 機器100dbの更新モジュール群130内の各更新モジュールは、新しい監視パターンへ更新する(ステップS11014)。新しい監視パターンへ更新後、各更新モジュールは、相互監視処理を実行する(ステップS11015)。機器100dbは、監視の結果を送信し、判断部210dbは、監視の結果を受信する(ステップS11016)。
 判断部210dbは、正常モジュールの特定処理を行う(ステップS11017)。なお、正常モジュールの特定処理の詳細は、実施の形態3と同様であるので省略する。
(6)相互監視の監視パターンの一例
 相互監視の監視パターンの一例について、図65に示す相互監視の監視パターンの例を用いて、説明する。
 4個の妨害候補モジュールにより相互に監視をする場合の例を図65に示している。この図に示すように、更新モジュール131、132、136及び137が、それぞれ、妨害候補モジュールとして抽出されたものとする。
 また、更新モジュール131、132、136及び137は、それぞれ、妨害候補モジュールとして抽出されているので、監視パターン更新部250により、更新モジュール131及び132は、相互に監視をし、更新モジュール132及び137は、相互に監視をし、更新モジュール137及び136は、相互に監視をし、更新モジュール136及び131は、相互に監視をし、更新モジュール137及び131は、相互に監視をするように、更新モジュール毎の監視パターンが生成されている。また、監視パターン更新部250により、更新モジュール毎の監視パターンが、更新モジュール131、132、136及び137に送信され、更新モジュール131、132、136及び137は、新たに受信した監視パターンにより、古い監視パターンを変更し、新たな監視パターンにより、相互の監視を行うものとする。
(7)相互監視の監視パターンによる相互監視の結果の例
 図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の例について、図66~図69を用いて説明する。
 なお、図65において説明したように、一例として、妨害候補モジュールである更新モジュール131、132、136及び137が、それぞれ、相互に監視している。
(a)相互監視の結果の第1の例
 図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第1の例を図66に示す。
 図66に示す第1の例においては、全ての監視の結果が不正である。つまり、更新モジュール131、132、136及び137は、それぞれ、監視相手の更新モジュールを全て不正と判定している。
(b)相互監視の結果の第2の例
 図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第2の例を図67に示す。
 図67に示す第2の例においては、更新モジュール131による更新モジュール132に対する監視の結果(4051)を除いて、その他の全ての監視の結果が不正である。
 つまり、更新モジュール131は、更新モジュール132に対して正常(4051)と判定し、更新モジュール132は、更新モジュール131に対して不正と判定している。また、更新モジュール131及び137の間の相互監視、更新モジュール132及び137の間の相互監視、更新モジュール132及び136の間の相互監視、更新モジュール131及び136の間の相互監視及び更新モジュール136及び137の間の相互監視において、不正と判定している。
(c)相互監視の結果の第3の例
 図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第3の例を図68に示す。
 図68に示す第3の例においては、更新モジュール131による更新モジュール132に対する監視の結果(4061)、更新モジュール131による更新モジュール137に対する監視の結果(4063)及び更新モジュール137による更新モジュール131に対する監視の結果(4062)を除いて、その他の全ての監視の結果が不正である。
 つまり、更新モジュール131は、更新モジュール132に対して正常(4061)と判定し、更新モジュール132は、更新モジュール131に対して不正と判定している。また、更新モジュール131は、更新モジュール137に対して正常(4063)と判定し、更新モジュール137は、更新モジュール131に対して正常(4062)と判定している。さらに、更新モジュール132及び137の間の相互監視、更新モジュール132及び136の間の相互監視、更新モジュール131及び136の間の相互監視及び更新モジュール136及び137の間の相互監視において、不正と判定している。
(d)相互監視の結果の第4の例
 図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第4の例を図69に示す。
 図69に示す第4の例においては、更新モジュール131による更新モジュール137に対する監視の結果(4072)及び更新モジュール137による更新モジュール131に対する監視の結果(4072)を除いて、その他の全ての監視の結果が不正である。
 つまり、更新モジュール131は、更新モジュール137に対して正常(4072)と判定し、更新モジュール137は、更新モジュール131に対して正常(4071)と判定している。また、更新モジュール131及び132の間の相互監視、更新モジュール132及び137の間の相互監視、更新モジュール132及び136の間の相互監視、更新モジュール131及び136の間の相互監視及び更新モジュール136及び137の間の相互監視において、不正と判定している。
(8)妨害モジュールの特定処理の詳細な動作
 次に、妨害モジュールの特定処理の動作について、図61~図63に示すフローチャートを用いて、説明する。
 判断部210dbは、以下に示すように、更新モジュール群130の各更新モジュールによる監視の結果をもとに、妨害モジュールの特定処理を行う。
 検証結果判定部683は、全ての監視対象の更新モジュールに対する監視結果を全て不正と判定する更新モジュールが存在するか否か、言い換えると、妨害候補モジュールが存在するか否かを判断する(ステップS12001)。
 妨害候補モジュールが存在しない場合には(ステップS12001でN)、検証結果判定部683は、妨害モジュールの特定処理を終了する。
 妨害候補モジュールが存在する場合には(ステップS12001でY)、検証結果判定部683は、全ての妨害候補モジュールをそれぞれ識別する識別番号を監視パターン更新部250へ出力する。監視パターン更新部250は、受信した全ての妨害候補モジュールをそれぞれ識別する識別番号を用いて、全ての妨害候補モジュールが相互に監視をするように、更新モジュール毎の監視パターンを生成する(ステップS12002)。
 一例として、更新モジュール群130のうちの、更新モジュール131、132、136及び137が、それぞれ、全ての監視の対象である更新モジュールに対して、不正と判定しているなら、更新モジュール131、132、136及び137は、それぞれ、妨害候補モジュールであり、更新モジュール131、132、136及び137が、相互に監視するように、監視パターンが生成される。この場合の監視パターンを図65に示している。
 次に、機器100dbが有する更新モジュールが相互監視を実行するように、生成した監視パターンを機器100dbへ送信し、機器100dbが有する更新モジュールに相互監視を実行させる。機器100dbは、監視パターンを受信する。更新モジュール群130の各更新モジュールは、受信した監視パターンにより、古い監視パターンを更新し、新たに更新された監視パターンを用いて、相互に監視を行う(ステップS12003)。機器100dbは、その監視の結果を、更新サーバ200dbへ送信する。更新サーバ200dbの判断部210dbの妨害モジュール特定部608の検証結果判定部683は、相互監視の結果を受信する(ステップS12004)。
 次に、検証結果判定部683は、妨害候補モジュール間の監視の結果に少なくとも1個の正常が存在するかを判断する(ステップS12005)。
 検証結果判定部683は、妨害候補モジュール間の全ての相互監視の結果が全て不正であり、相互監視の結果に全く正常が存在しない場合(ステップS12005でN)には、全ての妨害候補モジュールを妨害モジュールと特定する(ステップS12006)。図66に示す例の場合には、妨害候補モジュールである更新モジュール131、132、136及び137において、全ての相互監視の結果が全て不正(図66において、「×」)であり、相互監視の結果に正常(「○」)が存在しないので、検証結果判定部683は、更新モジュール131、132、136及び137を妨害モジュールと特定する。次に、ステップS12011へ制御を移す。
 妨害候補モジュールの監視の結果に少なくとも1個の正常が存在する場合(ステップS12005でY)、検証結果判定部683は、さらに、相互に正常と判定する2個の妨害候補モジュールが存在するかを判断する(ステップS12007)。
 図67、図68及び図69に示す例の場合には、それぞれ、妨害候補モジュールの監視の結果に少なくとも1個の正常が存在する。また、図67に示す例の場合には、相互に正常と判定する2個の妨害候補モジュールは存在しない。さらに、図68に示す例の場合には、更新モジュール131及び137は、相互に相手を正常と判定する妨害候補モジュールである。また、図69に示す例の場合にも、更新モジュール131及び137は、相互に相手を正常と判定する妨害候補モジュールである。
 従って、図67に示す例の場合には、ステップS12007の条件を満たさない。一方、図68及び図69に示す例の場合には、ステップS12007の条件を満たしている。
 相互に正常と判定する2個の妨害候補モジュールが存在しないと判断される場合(ステップS12007でN)、図67の例に示す更新モジュール131のように、監視結果を正常(4051「○」)と判定する妨害候補モジュールが存在すると、更新モジュール131による更新モジュール132に対する判定結果は、正常であるが、更新モジュール132による更新モジュール131に対する判定結果は、不正である。このように、監視結果に矛盾が発生する。よって、検証結果判定部683は、更新モジュール131を、不正な更新モジュールと特定する。ここで説明したケースは、相互に監視を行う2個の妨害候補モジュールのうち、第1の妨害候補モジュールが、第2の妨害候補モジュールに対して、正常と判定するが、第2の妨害候補モジュールが、第1の妨害候補モジュールに対して、不正と判定する場合である。このような場合に、相手の妨害候補モジュールを正常と判定する妨害候補モジュールを不正な更新モジュールと特定する(ステップS12008a)。
 次に、判断部210dbは、不正な更新モジュールと特定した更新モジュールを無効化するため、無効化指示を送信する(ステップS12008b)。
 次に、図67の例に示す場合において、更新モジュール132、136及び137は、妨害候補モジュールに対する全ての監視結果を不正(「×」)と判定しているため、検証結果判定部683は、更新モジュール132、136及び137を妨害モジュールであると特定する。つまり、検証結果判定部683は、全ての監視対象の妨害候補モジュールに対する全ての監視結果を不正と判定する妨害候補モジュールを、妨害モジュールと特定する(ステップS12008c)。
 次に、ステップS12011へ制御を移す。
 相互に正常と判定する2個の妨害候補モジュールが存在する場合(ステップS12007でY)、検証結果判定部683は、さらに、相互に正常(「○」)と判定する妨害候補モジュール群が、監視結果を全て不正とする妨害候補モジュール群の中で、相互に正常(「○」)と判定する妨害候補モジュール群以外の妨害候補モジュールへ不正(「×」)と判定しているかを判断する(ステップS12009)。相互に正常(「○」)と判定する更新モジュール群が、監視結果を全て不正とする更新モジュール群の中で更新モジュール群以外の更新モジュールへ不正(「×」)と判定している場合(ステップS12009でY)、図68に示す例の場合のように、更新モジュール131と更新モジュール137が相互に正常と(「○」)と判定しているが、更新モジュール131と更新モジュール132の相互監視の結果から、更新モジュール131の監視結果に矛盾が発生する(更新モジュール132は、更新モジュール131を不正と判定し、更新モジュール137は、更新モジュール131を正常と判定している)。さらに、更新モジュール137の監視結果にも矛盾が発生する。よって、更新モジュール131と更新モジュール137を不正な更新モジュールと特定する(ステップS12010a)。
 次に、判断部210dbは、不正な更新モジュールと特定した更新モジュール131と更新モジュール137を無効化するため、無効化指示を送信する(ステップS12010b)。
 次に、検証結果判定部683は、更新モジュール132及び136は、常に全ての監視結果を不正(「×」)と判定しているため、更新モジュール132及び136を妨害モジュールであると特定する(ステップS12010c)。
 次に、検証結果判定部683は、妨害候補モジュールが相互に正常(「○」)と判定する妨害候補モジュール群以外の更新モジュールが存在するかを判断する。つまり、妨害モジュールが存在するか否かを判断する(ステップS12011)。
 図69に示す例の場合のように、更新モジュール131と更新モジュール137が相互に正常(「○」)と判定する妨害候補モジュール群であり、それ以外に更新モジュール132と更新モジュール136が存在する。このとき、更新モジュール132と更新モジュール136は、常に全ての監視結果を不正(「×」)と判定しているため、検証結果判定部683は、妨害モジュールであると特定する。妨害モジュールが存在する場合(ステップS12011でY)、判断部210dbは、妨害モジュールを無効化する指示を送信する(ステップS12012)。妨害モジュールが存在しない場合(ステップS12011でN)又は無効化指示の送信後(ステップS12012)、判断部210dbは、監視パターン更新部250に対して、更新モジュール群130全体の新しい監視パターンを生成するように指示し、監視パターン更新部250は、更新モジュール群130全体の新しい監視パターンを生成し、新たな監視パターンを機器100dbに対して送信する(ステップS12013)。判断部210dbは、機器100dbの更新モジュール群130に対して、新しい監視パターンによる相互監視の指示を送信する(ステップS12014)。
 以上説明したように、妨害モジュールの特定処理では、監視パターンを変更しても、監視対象の更新モジュールを常に不正(「×」)と判定する更新モジュールを無効化することで、正常な更新モジュールの特定を妨害する更新モジュール(つまり、妨害モジュール)を積極的に排除する。妨害モジュールを排除した後に、正常な更新モジュールを特定し、特定した正常な更新モジュールを用いて、保護制御モジュールの更新を行うことにより、保護制御モジュールを一層効果的に救済でき、システムの安全性を一層高めることができる。
 また、正常な更新モジュールの特定を妨害する更新モジュールを積極的に排除することで、正常な更新モジュールの特定ができない可能性が少なくなり、正常な更新モジュールを特定し、特定した正常な更新モジュールを用いて、保護制御モジュールを可能な限り更新することができる。
 なお、上記において、更新モジュールは、監視モジュールであるとしてもよい。
5.その他の変形例
 なお、本発明を上記各実施の形態に基づいて説明してきたが、本発明は、上記各実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記各実施の形態では、保護制御モジュール120を更新するとしているが、これに限定するものではない。
 更新モジュールやアプリケーションプログラム等、保護制御モジュール120以外のモジュールを更新するとしてもよい。以下に、更新モジュール133を更新する場合を例に挙げ、更新モジュールの更新処理について説明する。
 更新モジュールの更新処理では、保護制御モジュールを更新する場合と同様に、更新用ソフトウェア配布部220は、更新モジュール133を更新するための更新用更新モジュールを複数の鍵を用いて多重に暗号化し、更新モジュール群130に含まれる更新モジュール(更新モジュール133を除く)を送信先として送信する。更新モジュール群130に含まれる更新モジュール(更新モジュール133を除く)は、更新モジュール133を更新用更新モジュールに更新する。
 このとき、多重に暗号化された更新用更新モジュールを復号するための複数の鍵を、更新モジュール群130に含まれる更新モジュールへ送信するタイミングを更新用ソフトウェア配布部220が制御することにより、攻撃者が暗号化されていない更新用更新モジュールを入手することを不可能にする。
(2)上記各実施の形態では、各更新モジュールは、受信部301、送信部302、制御部303、更新部304、検証部305、MAC値生成部306、MAC値テーブル更新部307、分散情報保持部308を含んで構成されるとしている。しかし、これに限定するものではない。
 各更新モジュールは、監視処理に必要な構成要素(制御部303、検証部305)のみで構成されるとしてもよい。また、各更新モジュールは、更新処理に必要な構成要素(制御部303、更新部304)のみで構成されるとしてもよい。また、各更新モジュールは、無効化処理に必要な構成要素(制御部303、更新部304)のみで構成されるとしてもよい。
 さらに、各更新モジュールは、上記の組み合わせから構成されるとしてもよい。
 この場合に、更新モジュール群130に含まれる複数の更新モジュールが、全体として、監視処理と更新処理に必要な構成要素を含むように、構成されていればよい。
(3)上記各実施の形態では、各更新モジュールの検証部305は、他の更新モジュールや保護制御モジュール120の改竄チェックを実行するとしているが、改竄チェックの対象は、当該モジュール全体に限定するものではない。
 改竄チェックの対象は、更新モジュール内の一部分、例えば、更新モジュールに含まれる特定の機能や関数、鍵等のデータであってもよい。また、一度に改竄対象全てを改竄チェックするのではなく、改竄対象の一部を改竄チェックするだけでもよい。このとき、改竄対象を一定のサイズに分割して得られた部分毎に改竄チェックしてもよいし、機能や関数単位で分割して得られた部分毎に改竄チェックしてもよい。さらに、改竄チェックの度に、改竄対象の複数の部分から一の部分を順番に選択し、選択した部分に対して改竄チェックするとしてもよい。また、改竄チェックの度に改竄チェックする部分をランダムに決定してもよい。また、他のモジュールや機器100の外部の装置から、どの部分を改竄チェックするかの指示が与えられ、この指示により示される部分に対して改竄チェックをしてもよい。
(4)上記各実施の形態では、各更新モジュールや保護制御モジュール120は、耐タンパ化された領域等、攻撃者による攻撃から保護されている領域で動作するとしてもよい。
 監視処理に必要な構成要素のみで構成される更新モジュールが、攻撃者による攻撃から保護されている領域で動作する場合、他の更新モジュールや判断部210は、その保護された領域に存在する更新モジュールから、他の更新モジュールや保護制御モジュール120が攻撃されたことを検知した旨の通知を受けたときに、その通知を無条件に受け入れ、更新処理や無効化処理を実施してもよいし、その通知を他のモジュールからの通知よりも重要な通知として扱い、更新処理や無効化処理の判断を行ってもよい。
 また、保護制御モジュールが保護モードで動作し、つまり、耐タンパ化された領域等に存在して動作する。また、更新モジュールが通常モードで動作し、つまり、耐タンパ化されていない領域等に存在して動作するとしてもよい。
(5)上記各実施の形態では、モジュール無効化部230は、更新サーバ内に存在し、アクセス制御モジュール140は、機器内に存在するとしているが、これに限定するものではない。
 モジュール無効化部230及びアクセス制御モジュール140は、それぞれ、機器内部に存在してもよいし、更新サーバに存在してもよい。また、各更新モジュール内に存在してもよい。
 また、モジュール無効化部230とアクセス制御モジュール140とは、別々のモジュールではなく、機器内部において、又は更新サーバ内部において、1つのモジュールであってもよい。
 モジュール無効化部230とアクセス制御モジュール140とが1つのモジュールである場合には、更新モジュールへアクセス情報取得鍵と暗号化アクセス情報とを送信するのではなく、アクセス情報を、無効化を実行する更新モジュールへ、直接送信してもよい。
 さらに、モジュール無効化部230やアクセス制御モジュール140が機器内に存在する場合には、耐タンパ化などにより、攻撃から保護される領域に存在するとしてもよい。
(6)各実施の形態では、更新サーバは、判断部、更新用ソフトウェア配布部、モジュール無効化部、通信部及び監視パターン更新部などから構成されるとしているが、これに限定するものではない。判断部、更新用ソフトウェア配布部、モジュール無効化部、通信部及び監視パターン更新部などが1個のモジュールにより構成されているとしてもよい。また、上記の部の組み合わせから構成されるとしてもよい。
(7)上記各実施の形態では、ソフトウェア更新システムは、機器の工場製造時に初期設定処理を行うとしているが、これに限定するものではない。販売後など工場出荷後のどこかで初期化処理を実施してもよい。また、初期化処理は1度だけでなく、2度以上実施してもよい。
(8)上記各実施の形態では、初期設定処理において、検証用証明書及び認証鍵証明書は、更新用ソフトウェア配布部220が保持する署名秘密鍵を用いて生成された証明書であるとしたが、これに限定するものではなく、それぞれ別の鍵を用いて生成されてもよいし、更新用ソフトウェア配布部220以外の証明書発行装置により発行された証明書でもよい。
(9)上記各実施の形態では、初期設定処理や次ラウンド準備処理の動作として、暗復号鍵から生成する分散情報を更新モジュール13xへ送信し、更新モジュール13xが分散情報を保持するとしているが、これに限定するものではない。
 更新モジュールの代わりに、アプリケーションプログラムが分散情報を保持するとしてもよいし、更新モジュール13xとアプリケーションプログラムとが分散情報を保持するとしてもよい。
(10)上記各実施の形態では、検知処理の動作として、更新モジュール13xが保護制御モジュール120の改竄検出を行うときに、検証鍵を使用して計算したMAC値を用いて改竄検出処理を行うとしている、これに限定するものではない。
 保護制御モジュール120の改竄検出用証明書を用いて検証するとしてもよい。また、MAC値や証明書のようにハッシュ値を利用した改竄検証を行うのではなく、ログをチェックすることで改竄検証を行うとしてもよい。
(11)上記各実施の形態では、検知処理の動作として、各更新モジュールが保護制御モジュール120の改竄を検出した場合、判断部210と他の更新モジュールへ通知するとしたが、これに限定するものではない。
 判断部210と他の更新モジュールのうち、どれか1つ以上のモジュールに通知するとしてもよい。また、保護制御モジュール120の改竄を検出した場合、更新モジュールを停止するとしてもよいし、機器100や保護制御モジュール120を停止するとしてもよい。更に、改竄された保護制御モジュールを消去するとしてもよい。
 さらに、各更新モジュールが保護制御モジュール120の改竄を検出しなかった場合、判断部210へ通知を行わないとしているが、これに限定するものではない。改竄検出処理を実施した結果として、改竄を検出しなかった旨を通知するとしてもよい。
(12)上記各実施の形態では、検知処理の動作として、各更新モジュールは、他の更新モジュールに保護制御モジュールの改竄検出結果を送信しないとしているが、それぞれの更新モジュールで検出結果を共有するとしてもよい。
 また、検出結果を共有しない更新モジュールがあった場合に、当該更新モジュールを不正な更新モジュールと判断して、無効化するとしてもよい。
(13)上記各実施の形態では、解析・判断処理の動作として、改竄情報に基づいて保護制御モジュール120を更新するかどうか判定するとしているが、これに限定するものではない。
 改竄されていると通知してきた更新モジュールの数によって更新するかどうかを判定してもよい。例えば、改竄されていると通知してきた更新モジュールの数が、所定の数よりも多いか等しい場合に、更新すると判定し、少ない場合に更新しないと判定してもよい。ここで、所定の数は、更新モジュール群に含まれる全ての更新モジュールの数である。
 また、解析・判断時の動作として、保護制御モジュール120を更新するか否か、及び保護制御モジュール120を無効化するか否かを判断したが、これに限定するものではなく、機器100を停止するか否かを判断するとしてもよい。
(14)上記各実施の形態では、相互認証処理の動作として、各更新モジュールが、更新用ソフトウェア配布部220を認証し、その後、更新用ソフトウェア配布部220が各更新モジュールを認証するとしているが、これに限定するものではない。
 更新用ソフトウェア配布部220が各更新モジュールを認証し、その後、各更新モジュールが、更新用ソフトウェア配布部220を認証してもよい。また、各更新モジュールと更新用ソフトウェア配布部220とが個別に認証処理を行ってもよい。
(15)上記各実施の形態では、相互認証処理の動作として、更新用ソフトウェア配布部220が各更新モジュールを認証する処理において、チャレンジデータをそれぞれの更新モジュールで異なる値にするとしているが、これに限定するものではない。チャレンジデータとして全ての更新モジュールで同じ値としてもよいし、全ての更新モジュールを複数のグループに分け、チャレンジデータをそれぞれのグループで異なる値にしてもよい。
(16)上記各実施の形態では、相互認証処理の動作として、各更新モジュールが、更新用ソフトウェア配布部220を認証する処理において、各更新モジュールが個別に更新用ソフトウェア配布部220を認証するとしているが、これに限定するものではない。
 署名検証した結果を他の更新モジュールへ通知し、更新モジュール間で検証結果を共有し、自更新モジュールの認証結果と他の更新モジュールから受信した認証結果とから、更新用ソフトウェア配布部220が正当かどうかをそれぞれ判定してもよい。
 判定方法としては、例えば、一定数(例えば、過半数等)の更新モジュールが認証に成功した場合には正当であると判定し、そうでない場合には、正当ではないと判定する方法がある。
(17)上記各実施の形態では、相互認証処理の動作として、更新サーバ200は署名秘密鍵と署名公開鍵とを使用して相互認証処理を実施するとしているが、これに限定するものではない。署名秘密鍵と署名公開鍵とは別に、相互認証に使用する認証鍵対を用いるとしてもよい。
 このとき、更新サーバの認証鍵対のうちの認証公開鍵は、予め1個の更新モジュールが保持するとしてもよいし、相互認証処理時に更新サーバから当該更新モジュールへ送信するとしてもよい。
(18)上記各実施の形態では、相互認証処理の動作として、正当なモジュールであると検証できた更新モジュールの数が、回復処理に必要な数以上あるかどうかで、その後の回復処理を実施するかどうかを判定しているが、これに限定するものではない。
 不正な更新モジュールの数が、予め設定されている許容数未満かどうかで回復処理を実施するかどうかを判定してもよい。
 また、相互認証処理において、回復処理に必要な数に満たないと判定された場合には、機器を停止するとしたが、この場合に、更新モジュールを無効化してもよい。
(19)上記各実施の形態では、相互認証処理の動作として、更新用ソフトウェア配布部220が各更新モジュールを認証する時に、各更新モジュールは、レスポンスデータと一緒に認証公開鍵と認証鍵証明書とを更新用ソフトウェア配布部220へ送信するとしているが、これに限定するものではない。
 各更新モジュールは、レスポンスデータと一緒に認証公開鍵と認証鍵証明書とをそれぞれ別のタイミングで送信してもよい。
 また、認証公開鍵や認証鍵証明書は、更新用ソフトウェア配布部220から要求があったときにのみそれぞれ送信するとしてもよい。このとき、更新用ソフトウェア配布部220は、全ての更新モジュールの認証公開鍵や認証鍵証明書を受信してもよいし、予め設定されており、回復処理に必要な数以上の数の更新モジュールの認証公開鍵や認証鍵証明書を受信してもよいし、また予め設定されており、不正な更新モジュールの許容数未満の更新モジュールの認証公開鍵と認証鍵証明書とを受信してもよい。
(20)上記各実施の形態では、回復処理の動作として、監視処理時を、1回の復号中(監視3-1、3-2、5-1、5-2)に2回実施するとしているが、これに限定するものではない。復号処理の時間にあわせて何回監視処理を行ってもよいし、復号処理以外であっても、鍵や更新用保護制御モジュールの受信処理時や検知処理時、相互認証処理時に監視処理を行ってもよい。
 また、監視処理を一定時間間隔で定期的に実施するとしているが、これに限定するものではない。更新処理を複数のブロックに分割し、そのブロックの処理が終わるごとに実施してもよいし、ランダムな時間間隔で実施してもよいし、更新サーバから指定された時間間隔で実施してもよい。
 また、各更新モジュールは、監視処理を実行するタイミングを示す同期情報を外部のサーバから取得し、取得した同期情報にしたがって監視処理を実行するとしてもよい。これにより、各更新モジュールは、他の更新モジュールと同じタイミングで監視処理を実行することができるので、不正な更新モジュールの検出精度を向上させることができる。
 さらに、通常時と回復処理時とにおける検知頻度を変更するとしてもよい。検知頻度の変更は、回復処理中であってもよい。
(21)上記実施の形態2や実施の形態3では、循環監視パターン内の更新モジュールの数が3個であるとして、説明をしているが、これに限定するものではない。4個以上の更新モジュールが一方向に循環して検証していてもよい。
(22)上記実施の形態2や実施の形態3では、一方向に循環検証する結果が全て正常である場合、循環監視パターン内の複数の更新モジュールを一群として扱うとしているが、これに限定するものではない。一組の更新モジュールが相互に監視しており、検証結果がともに正常である場合においても、一組の更新モジュールを一群として扱うとしてもよい。このとき、相互に監視している更新モジュールによる同一の更新モジュールへの検証結果が一致しない場合、一組の更新モジュールは全て不正な更新モジュールと特定する。
 図70に示す監視結果の例を用いて説明する。更新モジュール131と更新モジュール132の一組の更新モジュールが相互に監視しており、検証結果がともに正常(3101、3102)である。このとき、更新モジュール131による更新モジュール133に対する検証結果(3103)と、更新モジュール132による更新モジュール133に対する検証結果(3104)が一致しないため、更新モジュール131と更新モジュール132は、不正な更新モジュールであると特定される。
(23)上記実施の形態2や実施の形態3では、循環監視パターンの選択において、循環のサイズをもとに、選択をしているが、これに限定するものではない。
 循環監視パターン内の更新モジュールが同一の更新モジュールを検証する数が多い順に選択してもよい。例えば、第1、第2及び第3の循環監視パターンが存在し、第1の循環監視パターンにおいて、20個の更新モジュールにより、第1の更新モジュールに対する監視がされ、第2の循環監視パターンにおいて、10個の更新モジュールにより、第2の更新モジュールに対する監視がされ、第3の循環監視パターンにおいて、5個の更新モジュールにより、第3の更新モジュールに対する監視がされるとする。この場合に、第1、第2及び第3の循環監視パターンの順に、循環監視パターンを選択する。
 このようにすることにより、同一の更新モジュールを検証する数が多いほど矛盾があるか否かの検証を多く行うことができるため、矛盾が存在する場合、矛盾を速く見つけやすくなる。その結果、不正な更新モジュールを速く特定することができ、不正な更新モジュールを効率的かつ迅速に排除できる。
(24)上記実施の形態2や実施の形態3では、循環のサイズが同じ循環監視パターンが複数個存在する場合、循環監視パターン外の更新モジュールが循環監視パターン内の更新モジュールを検証する数をもとに、複数の循環監視パターンから循環監視パターンを選択するとしているが、これに限定するものではない。
 循環監視パターン内の更新モジュールが同一の更新モジュールを検証する数が多い順に選択してもよい。これにより、同一の更新モジュールを検証する数が多いほど矛盾があるか否かの検証を多く行うことができるため、矛盾が存在する場合、矛盾を速く見つけやすくなる。その結果、不正な更新モジュールを速く特定することができ、不正な更新モジュールを効率的かつ迅速に排除できる。
(25)上記実施の形態2では、一回の相互監視処理の監視結果において、不正な更新モジュールを特定しているが、これに限定するものではない。複数回の相互監視処理の監視結果をもとに、不正な更新モジュールを特定してもよい。
 図71及び図72に示す監視結果の例を用いて具体的に説明する。
 更新サーバ200bbは、相互監視処理において、図71の監視結果を受信し、さらに、次の相互監視処理において、図72の監視結果を受信するものとする。
 図71に示す例においては、更新モジュール137による更新モジュール136への監視結果は、不正(3112)であり、更新モジュール136による更新モジュール137への監視結果も、不正(3111)である。その他の監視結果は、正常である。
 また、図72に示す例においては、更新モジュール132による更新モジュール135への監視結果は、不正(3115)であり、更新モジュール133による更新モジュール135への監視結果も、不正(3114)である。また、更新モジュール137による更新モジュール133への監視結果は、不正(3113)である。さらに、更新モジュール137による更新モジュール136への監視結果は、不正(3112)であり、更新モジュール136による更新モジュール137への監視結果も、不正(3111)である。その他の監視結果は、正常である。
 図71に一例として示す監視結果において、不正モジュールの特定処理を実行すると、更新モジュール137が不正な更新モジュールであると特定できる。不正な更新モジュールは、無効化処理で機器100内から消去をしない限り、不正な更新モジュールとして存在し続ける。そのため、次の相互監視処理において、一度不正な更新モジュールと特定された更新モジュールを、正常な更新モジュールと判定する更新モジュールは、不正な更新モジュールである。よって、図72に示す更新モジュール135も不正な更新モジュールであると特定できる。更新モジュール135は、不正と特定された更新モジュール137を正常と判定しているからである。
(26)上記実施の形態2では、一回の相互監視処理の監視結果において、不正な更新モジュールを特定しているが、これに限定するものではない。
 複数回の相互監視処理の監視結果をもとに、不正な更新モジュールを特定してもよい。図73及び図74に示す監視結果の例を用いて具体的に説明する。
 更新サーバ200bbは、相互監視処理において、図73に示す監視結果を受信し、さらに、次の相互監視処理において、図74に示す監視結果を受信するものとする。
 図73に示す例においては、更新モジュール137による更新モジュール136への監視結果は、不正(3121)であり、更新モジュール136による更新モジュール137への監視結果も、不正(3122)である。また、更新モジュール135による更新モジュール137への監視結果は、不正(3126)であり、更新モジュール137による更新モジュール133への監視結果も、不正(3123)である。その他の監視結果は、正常である。
 図74に示す例においては、更新モジュール137による更新モジュール136への監視結果は、不正(3121)であり、更新モジュール136による更新モジュール137への監視結果も、不正(3122)である。また、更新モジュール133による更新モジュール135への監視結果は、不正(3124)であり、更新モジュール132による更新モジュール135への監視結果は、不正(3125)であり、更新モジュール137による更新モジュール133への監視結果も、不正(3123)である。その他の監視結果は、正常である。
 図73に示す例によると、更新モジュール135は、更新モジュール137を不正(3126)な更新モジュールと判定している。その後に、図74に示す例によると、更新モジュール135は、更新モジュール137を正常(3127)な更新モジュールと判定している。このように、図73に示す例と、図74に示す例とでは、更新モジュール135による更新モジュール137に対する判定結果が一致していない。従って、更新モジュール135が不正な更新モジュールであると特定できる。
(27)上記実施の形態2では、正常モジュール仮定部653は、更新モジュール群130内の更新モジュールをランダムに一つ選択しているが、これに限定するものではない。   
 正常モジュール仮定部653は、多くの他の更新モジュールを正常と判定する更新モジュールを選ぶとしてもよい。これにより、他の更新モジュールを正常と判定することで、仮正常更新モジュール群に含まれる更新モジュールが多くなり、矛盾があるか否かの検証を多くすることができるため、矛盾を速く見つけやすくなる。その結果、不正な更新モジュールを速く特定することができ、不正な更新モジュールを効率的かつ迅速に排除できる。
(28)上記実施の形態2では、図33に示すステップS8006で不正モジュール特定処理を終了し、他の更新モジュールを正常と仮定し、再度不正モジュール特定処理をする。このとき、不正モジュール特定処理において、正常モジュール仮定部653は、更新モジュール群130内の更新モジュールをランダムに一つ選択しているが、これに限定するものではない。
 前回の不正モジュール特定処理のステップS8003の仮正常更新モジュール群内の更新モジュール以外を選択するとしてもよい。前回の不正モジュール特定処理では、仮正常更新モジュール群内の更新モジュールに矛盾がないことがわかっているため、仮正常更新モジュール群内の更新モジュールをステップS8001で選択をしたとしても、不正な更新モジュールと特定できない。これにより、不正な更新モジュールと特定できない更新モジュールを選択しないことにより、処理効率を向上することができる。
(29)上記実施の形態3では、正常モジュールの特定処理において、循環監視パターンが存在するかを判断し、循環監視パターンに矛盾があるか否かを判定しているが、これに限定するものではない。循環監視パターンに矛盾があるか否かを判定する代わりに、及び、循環監視パターンに矛盾があるか否かを判定するとともに、不正モジュール特定処理を実行してもよい。不正モジュール特定処理を実行することで、不正な更新モジュールを特定するとしてもよい。
(30)上記実施の形態3では、不正モジュール仮定部673は、更新モジュール群130内の更新モジュールをランダムに一つ選択しているが、これに限定するものではない。不正モジュール仮定部673は、多くの他の更新モジュールから正常と判定される更新モジュールを選択するとしてもよい。他の更新モジュールから正常と判定されていることで、仮不正更新モジュール群に含まれる更新モジュールが多くなる。これにより、ステップS9014において、選択する更新モジュールの数が少なくなり、処理効率を向上することができる。
(31)上記実施の形態3では、ステップS9020で全ての更新モジュールを選択していない場合、ステップS9014で他の更新モジュールをランダムに一つ選択しているが、これに限定するものではない。前回の正常モジュール特定処理のステップS9016の仮不正更新モジュール群内の更新モジュール以外を選択するとしてもよい。前回の正常モジュール特定処理では、仮不正更新モジュール群内の更新モジュールにおいて、矛盾がないことがわかっているため、仮不正更新モジュール群内の更新モジュールをステップS9014で選択をしたとしても、正常な更新モジュールと特定できない。これにより、正常な更新モジュールと特定できない更新モジュールを選択しないことにより、処理効率を向上することができる。
(32)上記実施の形態3では、ステップS9005からステップS9013において、循環監視パターンが存在するかを判断し、不正な更新モジュールを特定してから、ステップS9014からステップS9016において、更新モジュールを選択し、仮不正更新モジュール群とするとしているが、これに限定するものではなく、ステップS9004のあと、ステップS9014からステップS9016の処理を行い、その後、ステップS9005からステップS9013の処理をしたうえで、ステップS9017の判断をおこなってもよい。また、この場合、正常な更新モジュールを特定できない場合は、ステップS9014に戻り、ステップS9005からステップS9013において、不正な更新モジュールと特定された更新モジュール以外の更新モジュールを選択する。
(33)上記実施の形態2及び実施の形態3では、相互監視処理において、各モジュールから監視結果を受信するが、更新モジュールが監視結果を送信しない場合、監視結果を送信しない更新モジュールを不正な更新モジュールと特定するとしてもよい。また、監視結果を送信しない更新モジュールを正常と判定する更新モジュールを不正な更新モジュールと特定するとしてもよい。これにより、不正モジュール特定処理を行う前に、不正な更新モジュールを特定でき、不正な更新モジュールを効率的かつ迅速に排除できる。
(34)上記実施の形態4では、ステップS11017において、実施の形態3の正常モジュール特定処理を行うとしているが、これに限定するものではなく、変形例(29)に記載の正常モジュール特定処理をするとしてもよい。
(35)上記実施の形態4では、対象の更新モジュールへの監視結果を全て不正と判定する更新モジュール(つまり、妨害候補モジュール)が存在した場合、ステップS12002において、監視パターンを更新する。監視パターンを更新後に、監視結果から妨害モジュールがいるか否かを判断するが、これに限定するものではない。対象の更新モジュールへの監視結果を全て不正と判定する更新モジュール(つまり、妨害候補モジュール)が複数存在した場合、対象の更新モジュールへの監視結果を全て不正と判定する更新モジュールが相互に不正と判定していれば、相互に不正と判定している更新モジュールの無効化指示を送信するとしてもよい。
 また、上記実施の形態4では、対象の更新モジュールへの監視結果を全て不正と判定する更新モジュール(つまり、妨害候補モジュール)が1個だけ存在した場合、この妨害候補モジュールの無効化指示を送信するとしてもよい。その後、この妨害候補モジュールを排除した後において、正常モジュール特定処理をするとしてもよい。
 また、改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であるとしてもよい。前記管理装置は、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信部と、受信した前記監視結果を用いて、前記監視モジュールから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定部と、1個の妨害候補モジュールのみが抽出された場合に、抽出された前記妨害候補モジュールを無効化するよう、前記情報セキュリティ装置を制御する無効化部と、1個の妨害候補モジュールのみが検出された場合に、当該妨害候補モジュールを除いて、新たに監視パターンを作成し、作成した監視パターンを前記情報セキュリティ装置へ送信し、新たな監視パターンに置き換えさせる更新部とを備える。前記受信部は、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、前記判定部は、さらに、受信した新たな監視結果を用いて、正常な監視モジュールを特定する。
(36)上記実施の形態4では、ステップS12007において、妨害候補モジュールである更新モジュールが相互に正常(「○」)と判定する妨害候補モジュール群が存在するかを判断する。相互に正常と判定する妨害候補モジュール群が存在した場合、相互に正常と判定する妨害候補モジュール群のステップS12001の監視結果において、相互に不正と判断していた場合、当該妨害候補モジュールを不正な更新モジュールと特定し、無効化指示を送信するとしてもよい。
 これは、一つの更新モジュールから他の一つの更新モジュールに対する監視結果において、ステップS12001では、監視対象の更新モジュールを不正と判定しており、ステップS12007では同じ監視対象の更新モジュールを正常と判定している場合、それぞれのステップにおける監視結果に矛盾が発生するため、判定した更新モジュールを不正な更新モジュールと特定できる。
(37)上記実施の形態4では、正常モジュールの特定を妨害する更新モジュールを特定するとしているが、これに限定するものではない。不正モジュールの特定を妨害する更新モジュールを特定するとしてもよい。
 このとき、図58に示す動作図のステップS10008において、正常モジュール特定処理に代えて、不正モジュール特定処理を行う。また、図64に示す例の場合において、不正モジュール特定処理を行ったとき、更新モジュール131、132、136及び137は、不正な更新モジュールであるとは特定されない。つまり、更新モジュール131、132、136及び137の各更新モジュールが自身の不正モジュール特定を妨害していることになる。この場合、妨害モジュール特定処理を行うことにより、不正モジュール特定処理では、特定できなかった不正モジュールを、妨害モジュールとして特定し、特定した妨害モジュールを予め排除し、その後に、不正モジュール特定処理を実行することで、不正な更新モジュールを効率的かつ迅速に排除できる。
(38)上記実施の形態4では、ステップS12002において、監視対象の更新モジュールへの監視結果を全て不正と判定する妨害候補モジュール群内で全ての妨害候補モジュールを監視する監視パターンを生成するとしているが、これに限定するものではない。更新モジュール群130の更新モジュール全てを監視する監視パターンを生成するとしてもよい。この場合、監視パターンを更新後に、妨害候補モジュールが全ての更新モジュールに対して不正と判定する場合、当該妨害モジュールを妨害モジュールと特定する。
(39)上記の各モジュールは、具体的には、それぞれ個別のコンピュータプログラムであってもよいし、オペレーティングシステムに組み込まれるコンピュータプログラムであってもよいし、オペレーティングシステムから呼ばれるドライバプログラムであってもよいし、アプリケーションプログラムであってもよい。
(40)各システムの適用例(1)
 上記の各実施の形態の各システムは、図75に示すように、コンテンツ再生システム10eであるとしてもよい。
 コンテンツ再生システム10eは、この図に示すように、BD再生装置100e、モニタ20e及びホームサーバ装置200eから構成され、BD再生装置100e、モニタ20e及びホームサーバ装置200eは、ホームネットワーク30eを介して、相互に接続されている。
 ホームサーバ装置200eは、インターネット40eを介して、インターネット40eに接続されているコンテンツサーバ装置(図示していない)からコンテンツを取得する。コンテンツは、一例として、映像データ及び音声データが圧縮され、さらに暗号化されて構成されたものである。ホームサーバ装置200eは、ホームネットワーク30eを介して、取得したコンテンツをBD再生装置100eへ送信する。
 BD再生装置100eは、ホームサーバ装置200eからコンテンツを受信し、受信したコンテンツをBD(Blu-ray Disc)に記録する。また、BD再生装置100eは、BDに記録されているコンテンツの暗号化され、圧縮された映像データ及び音声データを伸張して、映像信号及び音声信号を生成し、生成した映像信号及び音声信号をホームネットワーク30eを介して、モニタ20eへ出力する。モニタ20eは、映像信号及び音声信号を受信し、受信した映像信号及び音声信号により、映像を表示し、音声を出力する。
 BD再生装置100eは、上記の各実施の形態の各ソフトウェア更新システムの機器に相当し、又は、各改竄監視システムの情報セキュリティ装置に相当し、当該機器又は当該情報セキュリティ装置と同様の構成を有している。BD再生装置100eが有しているアプリケーションプログラムの一例は、暗号化されたデータを復号するためのコンピュータプログラムであり、また、他の一例は、圧縮された映像データ及び音声データを伸張するためのコンピュータプログラムである。
 また、ホームサーバ装置200eは、各ソフトウェア更新システムの更新サーバに相当し、又は、各改竄監視システムの管理装置に相当し、更新サーバ又は管理装置と同様の構成を有している。
(41)各システムの適用例(2)
 上記の各実施の形態の各システムは、図76に示すように、モバイルバンキングシステム10fであるとしてもよい。
 モバイルバンキングシステム10fは、この図に示すように、携帯電話100f、無線基地局50f、銀行サーバ装置40f及び更新サーバ装置200fから構成されている。携帯電話100fは、無線基地局50f、携帯電話網20f及びインターネット30fを介して、更新サーバ装置200f及び銀行サーバ装置40fに接続されている。
 銀行サーバ装置40fは、銀行の利用者の口座に相当する口座ファイルを記憶している。口座ファイルは、取引データを含む。取引データは、取引の種別、金額、日付、相手先の識別情報などを含む。
 携帯電話100fは、一例として、操作者の指示により、無線基地局50f、携帯電話網20f及びインターネット30fを介して、銀行サーバ装置40fに対して、操作者の口座から取引先の口座への振替えを要求する。銀行サーバ装置40fは、振替えの要求に従って、操作者の口座から取引先の口座への振替えを実行する。
 携帯電話100fは、銀行サーバ装置40fとの間でデータを送受信する際に、デジタル署名を用いた相互の機器認証を行う。また、データの暗号化を要求する。銀行サーバ装置40fは、振替えの要求に従って、操作者の口座から取引先の口座への振替えを実行する。
 携帯電話100fと銀行サーバ装置40fとの間で通信する際に、携帯電話100f及び銀行サーバ装置40fは、それぞれ、デジタル署名を用いた相互の機器認証を行う。また、携帯電話100fと銀行サーバ装置40fとの間でデータの送受信を行う際に、携帯電話100f及び銀行サーバ装置40fは、データの暗号化及び暗号化されたデータの復号を行う。
 携帯電話100fは、各実施の形態の各ソフトウェア更新システムの機器に相当し、又は、各改竄監視システムの情報セキュリティ装置に相当し、機器又は情報セキュリティ装置と同様の構成を有している。携帯電話100fが有しているアプリケーションプログラムの一例は、データを暗号化するためのコンピュータプログラム又は暗号化されたデータを復号するためのコンピュータプログラムであり、また、他の一例は、通信相手の装置との間で、デジタル署名を用いて機器認証をするためのコンピュータプログラムである。
 更新サーバ装置200fは、各実施の形態の各ソフトウェア更新システムの更新サーバに相当し、又は、各改竄監視システムの管理装置に相当する。
(42)上記の実施の形態1および実施の形態2で説明した更新サーバ200、200a、200bは、それぞれ、機器100、100a、100bの更新モジュール群が相互監視処理を行うときの監視パターンを生成する監視パターン生成部を有する構成であってもよい。そして、更新サーバ200、200a、200bは、生成した監視パターンを、機器100、100a、100bに送信し、機器100、100a、100bは、監視パターンを受信する。機器100、100a、100bは、受信した監視パターンに基づき相互監視処理を行う。
 特に、実施の形態2の更新サーバ200aおよび200bは、循環監視パターンを含む監視パターンを生成するとよい。機器100aおよび100bは、循環監視パターンを含む監視パターンを用いて相互監視処理を行うことにより、後に行なわれる更新サーバ200aおよび200bによる不正モジュール特定処理の処理効率を向上させることができる。
(43)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(44)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
 また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
 さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(45)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(46)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
 また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
 また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
 また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
 また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(47)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
<まとめ>
 本発明の一実施態様であるソフトウェア更新システムは、所定のアプリケーションを格納するソフトウェア更新装置と、このソフトウェア更新装置と接続される管理装置とを含み、前記ソフトウェア更新装置は、前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、前記保護制御モジュールを更新する複数の更新モジュールとを含み、前記複数の更新モジュールは、他の更新モジュールが不正動作を行わないかの検証を行って、前記検証結果を前記管理装置に送信し、前記管理装置は、前記複数の更新モジュールから前記検証結果を受信する通信部と、前記受信した検証結果に基づいて不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を前記ソフトウェア更新装置に送信する制御部と、を含み、前記制御部は、前記複数の更新モジュールの中の第1更新モジュールを判断対象とし、前記第1更新モジュールが正常であると仮定し、この仮定を前提に前記第1更新モジュールと前記第1更新モジュールが正常と検証した第2更新モジュールとが共通の第3更新モジュールを検証した場合であって、前記第1更新モジュールの検証結果と前記第2更新モジュールの検証結果とが一致しない場合、前記仮定を誤判断として前記第1更新モジュールは不正動作を行う可能性のあると判断する。
 この構成によると、保護制御モジュールを更新するための更新モジュールを複数の更新モジュールを含む更新モジュール群として、複数の更新モジュールが不正動作を行わないかを相互に検証することにより、前記更新モジュールの改ざんを前記更新モジュール群の内部で自己検証するので、前記更新モジュールの改ざんや前記更新モジュールの正常な動作が妨害されるのを防止できる。その結果、不正動作を行う更新モジュールを介して保護制御モジュールが不正な保護制御モジュールに更新されるのを防止し、前記不正な保護制御モジュールによって前記所定のアプリケーションが攻撃されるのを防止できる。
 また、前記管理装置は、前記複数の更新モジュールの各々から受信した検証結果を用いて、判断対象の更新モジュールを正常のものと仮定した上で、その仮定に矛盾がある場合に前記判断対象の更新モジュールを、不正動作を行う可能性のあると判断すること。そのため、改ざんされた更新モジュールが、改ざんされていない他の更新モジュールを「改ざんされている」と偽って管理装置に通知した場合でも、不正動作を行う可能性のある更新モジュールを適切に特定することができる。
 また、前記管理装置は、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を行うことにより、改ざんされていない更新モジュールを無効化することを防止し、また、改ざんされた更新モジュールを無効化しないまま更新モジュール群内に残すのを防止できる。
 また、本発明の一実施態様であるソフトウェア更新システムは、所定のアプリケーションを格納するソフトウェア更新装置と、このソフトウェア更新装置と接続される管理装置とを含み、前記ソフトウェア更新装置は、前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、前記保護制御モジュールを更新する複数の更新モジュールとを含み、前記複数の更新モジュールの各々は、他の更新モジュールが不正動作を行わないかの検証を行って、前記検証結果を前記管理装置に送信し、前記管理装置は、前記複数の更新モジュールから前記検証結果を受信する通信部と、前記受信した検証結果に基づいて不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を前記ソフトウェア更新装置に送信する制御部と、を含み、前記制御部は、前記複数の更新モジュールの間でどの更新モジュールについて検証を行うかの組合せを決め、この組合せを示した組合情報を前記ソフトウェア更新装置に送信し、前記組合せの中に、前記複数の更新モジュールの中の一部の複数の更新モジュールが一方向に循環して順次検証する所定の関係を含め、前記検証結果に基づいて前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断する。
 すなわち、前記管理装置は、複数の更新モジュールの間でどの更新モジュールの検証処理を行うかの組合せを決定するに際して、複数の更新モジュールの中の一部の更新モジュールが一方向に循環して順次検証する所定の関係を含めるようにする。
 そして、前記所定の関係に含まれる複数の更新モジュールが一方向に循環して検証した結果、前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断され、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合には、前記所定の関係にある複数の更新モジュールを一群として扱い、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断することができる。
 これにより、一つ一つの更新モジュールについて不正動作を行う可能性があるか否かを判断する場合に比較して、処理効率を格段に上げることができる。
 ここで、前記制御部は、前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果、いずれかの更新モジュールが不正動作を行う可能性があると判断した場合、前記所定の関係に含まれる複数の更新モジュールについては不正動作を行う可能性があるか否かの判断は行わない。
 この場合には、前記所定の関係に含まれる複数の更新モジュールを一群として扱うことができない。その後、他に前記所定の関係にある複数の更新モジュールが存在すれば、その複数の更新モジュールを一群として判断する処理に移行すればよい。
 ここで、前記制御部は、前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果、前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がない場合、前記所定の関係に含まれる複数の更新モジュールについては不正動作を行う可能性があるか否かの判断は行わない。
 この場合も、前記所定の関係にある複数の更新モジュールを一群として扱い、不正動作を行う可能性があるか否かの判断ができないものと捕らえることができる。その後、他に前記の所定の関係にある複数の更新モジュールが存在すれば、その複数の更新モジュールを一群として判断する処理に移行すればよい。
 ここで、前記所定の関係とは、第1更新モジュール、第2更新モジュール及び第3更新モジュールの3個の更新モジュールがある場合、第1更新モジュールが第2更新モジュールの改ざん検出を行い、第2更新モジュールが第3更新モジュールの改ざん検出を行い、第3更新モジュールが第1更新モジュールの改ざん検出を行う関係である。すなわち、第1更新モジュール、第2更新モジュール及び第3更新モジュールが、一方向に循環して順次改ざん検出処理を行う関係をいう。
 ここで、前記所定の関係に含まれる複数の更新モジュールの中の少なくとも2つの更新モジュールは、共通の他の更新モジュールを検証し、前記制御部は、前記2つの更新モジュールによる、前記共通の他の更新モジュールに対する検証結果が矛盾する場合に、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾があると判断する。
 このような場合に、前記所定の関係に含まれる複数の更新モジュールがした判断の矛盾を見つけることができる。
 ここで、前記共通の他の更新モジュールは、前記所定の関係に含まれる更新モジュールであってもよい。
 これにより、前記所定の関係に含まれる複数の更新モジュール以外に更新モジュールが存在しない場合であっても、前記所定の関係に含まれる複数の更新モジュールがした判断の矛盾を見つけることができる。
 ここで、前記共通の他の更新モジュールは、前記所定の関係に含まれない更新モジュールであってもよい。
 これにより、前記所定の関係に含まれる複数の更新モジュール以外の更新モジュールを用いて、前記所定の関係に含まれる複数の更新モジュールがした判断の矛盾を見つけることも可能である。
 ここで、前記所定の関係に含まれる複数の更新モジュールの中の少なくとも一組の更新モジュールは相互に検証し合い、前記制御部は、前記一組の更新モジュールの検証結果が相互に矛盾する場合に、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾があると判断する。
 このように、複数の更新モジュールがした判断の矛盾の検出に、一組の更新モジュールが相互に検証を行う関係を用いることもできる。そのため、前記所定の関係に含まれる複数の更新モジュール以外の更新モジュールが存在しない場合にも、前記所定の関係に含まれる複数の更新モジュールがした判断の矛盾を見つけることができる。
 ここで、前記管理装置の前記制御部は、前記所定の関係に含まれる更新モジュールの数が最小のものから順番に、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があるか否かを判断する。
 所定の関係に含まれる更新モジュールの数が少ない方が、そこに含まれるすべての更新モジュールが正常であると判断される可能性が高い。そこで、前記所定の関係に含まれる更新モジュールの数が最小のものから優先的に処理を行うことにより、不正動作を行う可能性のある更新モジュールを効率的に排除できる。
 ここで、前記管理装置の前記制御部は、前記所定の関係に含まれる複数の更新モジュールの数が同数のものが複数存在する場合、前記所定の関係に含まれない他の更新モジュールから監視される更新モジュールをより多く含むものから順番に、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があるか否かを判断する。
 この構成によると、所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断された後に、前記所定の関係に含まれない更新モジュールについて不正動作を行う可能性があるか否かを判断する際に、より多くの更新モジュールについて判断を行うことができる。
 ここで、前記管理装置は、前記所定の関係に含まれる複数の更新モジュールを示した関係リストを格納する記憶部を備え、前記制御部は、前記記憶部に格納された関係リストに基づいて、前記所定の関係に含まれる更新モジュールの数が最小のものを特定する。また、前記関係リストは、前記所定の関係に含まれる複数の更新モジュールを、前記所定の関係に含まれる複数の更新モジュールの数が少ない順番に配置してもよい。
 これにより、前記判断部は、前記所定の関係に含まれる更新モジュールの数が最小のものを迅速に特定することができる。
 ここで、前記ソフトウェア更新装置において、前記所定のアプリケーションは、所定の暗号鍵を用いて暗号化されており、前記所定の暗号鍵に対応する復号鍵は、所定の分散法に従って複数の分散鍵に分散され、前記複数の分散鍵の各々は前記更新モジュールに割り当てられ、前記複数の更新モジュールの各々は、仮想の多角形の端点になるように配置され、自更新モジュールに割り当てられた分散鍵を保有すると共に、隣接する他の2の更新モジュールに割り当てられた分散鍵を保有し、前記保護制御モジュールは、前記分散鍵の少なくとも3個を前記更新モジュールから取得して前記復号鍵を復元し、前記所定の関係に含まれる複数の更新モジュールは、3個の更新モジュールから構成され、前記所定の関係に含まれる3個の更新モジュールは、一の更新モジュールと前記一の更新モジュールが保有する分散鍵に対応する隣接する他の2の更新モジュールとからなる3個の更新モジュールとは別の3個の更新モジュールであることを特徴とする。
 この構成によると、前記復号鍵から生成された複数の分散鍵を、前記更新モジュールに割り当てるので、不正な解析者が前記保護制御モジュールを解析しても、前記復号鍵を取得することはできない。そこで、前記所定のアプリケーションの機密性を担保できる。
 また、前記複数の更新モジュールの各々を、仮想の多角形の端点になるように配置し、各更新モジュールは、自更新モジュールに割り当てられた分散鍵を保有すると共に隣接する他の2の更新モジュールに割り当てられた分散鍵を保有するので、一部の更新モジュールが無効化された場合であっても、復号鍵を再現することができる。
 また、前記所定の関係に含まれる3個の更新モジュールの全てが不正動作を行う可能性があると判断され、無効化された場合であっても、各分散鍵を保有する更新モジュールを確実に残すことができるので、前記保護制御モジュールは、復号鍵を復元することができる。
 また、本発明の一実施態様である管理装置は、所定のアプリケーションが改ざんされていないかを検証する保護制御モジュール及び前記保護制御モジュールを更新する複数の更新モジュールを格納し、前記複数の更新モジュールは他の更新モジュールが不正動作を行わないかの検証を行うソフトウェア更新装置と接続可能であり、前記ソフトウェア更新装置から前記検証結果を受信する通信部と、前記受信した検証結果に基づいて不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を前記ソフトウェア更新装置に送信する制御部とを含み、前記制御部は、前記複数の更新モジュールの間でどの更新モジュールについて検証を行うかの組合せを決め、この組合せを示した組合情報を前記ソフトウェア更新装置に送信し、前記組合せの中に、前記複数の更新モジュールの中の一部の複数の更新モジュールが一方向に循環して順次検証する所定の関係を含め、前記検証結果に基づいて前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断する。
 また、本発明の一実施態様である不正モジュール特定方法は、所定のアプリケーション、前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュール、及び前記保護制御モジュールを更新する複数の更新モジュールを格納する記憶手段と、前記複数の更新モジュールは他の更新モジュールが不正動作を行わないかの検証を行って、前記検証結果を前記管理装置に送信する制御を行う制御手段とを有するソフトウェア更新装置と、前記複数の更新モジュールから前記検証結果を受信する通信部と、前記受信した検証結果に基づいて不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を前記ソフトウェア更新装置に送信する制御部とを有する管理装置とを含むソフトウェア更新システムにおいて、前記管理装置で、前記複数の更新モジュールの中から不正動作を行う可能性がある更新モジュールを判断する方法であって、前記複数の更新モジュールの間でどの更新モジュールについて検証を行うかの組合せを決め、この組合せを示した組合情報を前記ソフトウェア更新装置に送信し、前記組合せの中に、前記複数の更新モジュールの中の一部の複数の更新モジュールが一方向に循環して順次検証する所定の関係を含め、前記検証結果に基づいて前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断する。
 また、本発明は、ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置であって、改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信手段と、前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断手段と、特定された不正モジュールの無効化指示を出力する無効化手段とを備えることを特徴とする不正モジュール特定装置。
 ここで、前記判断手段は、前記複数のモジュールから一つを選択し、正常モジュールと仮定する仮定手段と、前記仮定手段により最初に正常モジュールと仮定されたモジュールを起点とし、そのモジュールによる改ざん検出処理の結果、改ざんが検出されない検出先モジュールを正常モジュールと仮定し、続いて、この新たに正常と仮定されたモジュールによる改ざん検出処理の結果、改ざんが検出されない更に新たな検出先モジュールを正常モジュールと仮定し、以下、新たな検出先モジュールが正常でないモジュールと判定されるのを終点として、終点に至るまで、改ざん検出処理を行う側のモジュール、検出先のモジュールを順繰りにシフトして正常モジュールと仮定する処理を繰り返す繰り返し手段と、前記仮定手段および前記繰り返し手段が正常モジュールと仮定したモジュールの識別情報を記憶する仮正常モジュール記憶手段と、仮正常モジュール記憶手段に記憶された識別情報を参照して、起点から終点に至るまでのモジュールによる改ざん検出結果を照合し、矛盾があるか否かを検出する矛盾検出手段と、矛盾が検出された場合に、前記仮定手段が仮定したモジュールを不正モジュールと特定する特定手段とを備えることを特徴とする。
 ここで、前記判断手段は、前記繰り返し手段による処理において、終点のモジュールに至るまでのいずれかの検出先モジュールが起点のモジュールと一致することによって、一巡するモジュール間で一方向に改ざん検出処理を行っていると認められる場合、一巡するモジュールのすべてを一つの正常なモジュールに置き換える処理を行う置換手段をさらに備えることを特徴とする。
 本発明は、情報処理装置に対してソフトウェアを提供する更新サーバを製造および販売する産業において、前記更新サーバが、情報処理装置上で動作する不正なソフトウェアを特定し、安全にソフトウェアを更新する技術として利用することができる。
10、10a、10b   ソフトウェア更新システム
100、100b   機器
100a   情報処理装置
110、111   アプリ
120   保護制御モジュール
130、130b   更新モジュール群
131~137   更新モジュール
140   アクセス制御モジュール
200、200b   更新サーバ
200a   不正モジュール特定装置
210、210b   判断部
210a   判断手段
220   更新用ソフトウェア配布部
230   モジュール無効化部
240   通信部
301   受信部
302   送信部
303   制御部
304   更新部
305   検証部
306   値生成部
307   MAC値テーブル更新部
308   分散情報保持部
401   受信部
402   送信部
403   制御部
404   復号ロード部
405   検出部
406   解析ツール検出部
407   暗復号鍵保持部
408   暗復号鍵生成部
409   暗復号鍵分散部
410   証明書生成部
411   暗復号鍵復元部
501   受信部
502   送信部
503   アクセス情報保持部
561   特定指示受信部
601   受信部
602   送信部
603   指示生成部
604、604b   モジュール特定部
605   不正モジュール特定部
606   循環検出部
651   特定指示受信部
652   特定結果送信部
653   正常モジュール仮定部
654   検証結果判定部
654   証結果判定部
655   仮正常更新モジュール群抽出部
656   矛盾検出部
657   循環監視パターン取得部
661   取得指示受信部
662   循環監視パターン送信部
663   循環監視パターン取得部
664   取得済み循環監視パターン記憶部
665   監視パターン記憶部
666   循環監視パターン記憶部
701   受信部
702   送信部
703   暗号鍵生成部
704   暗号処理部
705   認証部
706   更新モジュール選択部
707   制御部
708   証明書生成部
709   署名秘密鍵保持部
710   更新用ソフトウェア保持部
711   暗号鍵保持部
801   受信部
802   送信部
803   アクセス情報取得鍵保持部
804   モジュール選択部
804   更新モジュール選択部
2320  無効化手段
2330  仮正常モジュール群記憶手段
2340  仮定手段
2350  仮正常モジュール群生成手段
2360  矛盾検出手段
2370  特定手段

Claims (19)

  1.  ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置であって、
     改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信手段と、
     前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断手段と、
     特定された不正モジュールの無効化指示を出力する無効化手段と
     を備えることを特徴とする不正モジュール特定装置。
  2.  前記判断手段は、
     正常モジュールと仮定したモジュールの識別情報を記憶する仮正常モジュール群記憶手段と、
     前記複数のモジュールから一つを選択し、正常モジュールと仮定し、識別情報を前記仮正常モジュール群記憶手段に記録する仮定手段と、
     前記仮定手段により正常モジュールと仮定された前記モジュールを起点として、改ざん検出処理の結果、改ざんが検出されないモジュールを正常モジュールと仮定し、識別情報を前記仮正常モジュール群記憶手段に記録する手順を繰り返す仮正常モジュール群生成手段と、
     前記仮正常モジュール群記憶手段に記憶されている識別情報に対応するモジュールによる改ざん検出結果に矛盾があるか否か判断する矛盾検出手段と、
     矛盾が検出された場合に、前記仮定手段において正常モジュールと仮定した前記モジュールを不正モジュールと特定する特定手段と
     を備えることを特徴とする請求項1に記載の不正モジュール特定装置。
  3.  前記仮定手段は、第1モジュールを前記正常モジュールと仮定し、
     前記矛盾検出手段は、前記第1モジュールと、前記第1モジュールによる改ざん検出結果が正常である第2モジュールとが改ざん検出を行なった第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、
     前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記第1モジュールを不正モジュールと特定する
     ことを特徴とする請求項2に記載の不正モジュール特定装置。
  4.  前記判断手段は、
     一方向に循環して改ざん検出を行うモジュール群である循環パターンに含まれる複数のモジュールの識別情報を記憶している循環記憶手段と、
     前記循環パターンに含まれる複数のモジュールが一方向に循環して改ざん検出を行った結果がすべて正常である場合に、前記循環パターンに含まれる複数のモジュールを正常モジュールと仮定する仮定手段と、
     前記循環パターンに含まれる2以上のモジュールによる他のモジュールへの改ざん検出結果に矛盾があるか否か判断する矛盾検出手段と、
     矛盾がある場合、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定する特定手段と
     を備えることを特徴とする請求項1に記載の不正モジュール特定装置。
  5.  前記矛盾検出手段は、
     前記循環パターンに含まれる第1モジュールと第2モジュールとが改ざん検出を行った前記循環パターンに含まれない第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、
     前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定する
     ことを特徴とする請求項4に記載の不正モジュール特定装置。
  6.  前記矛盾検出手段は、
     前記循環パターンに含まれる第1モジュールと第2モジュールとが改ざん検出を行った前記循環パターンに含まれる第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、
     前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定する
     ことを特徴とする請求項4に記載の不正モジュール特定装置。
  7.  前記矛盾検出手段は、
     前記循環パターンに含まれる第1モジュールと第2モジュールとが相互に改ざん検出を行った結果が矛盾するか否か判断し、
     相互に改ざん検出を行った結果が矛盾する場合、前記特定手段は、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定する
     ことを特徴とする請求項4に記載の不正モジュール特定装置。
  8.  前記不正モジュール特定装置は、さらに、
     検証元のモジュールと検証先のモジュールとの組み合わせである監視パターンを記憶している監視パターン記憶手段を備え、
     前記循環記憶手段は、前記監視パターン記憶手段に記憶されている監視パターンから、一方向に循環して改ざん検出を行うモジュール群である循環パターンを検出し、検出した前記循環パターンに含まれる複数のモジュールの識別情報を記憶する
     ことを特徴とする請求項4に記載の不正モジュール特定装置。
  9.  前記判断手段は、
     前記循環記憶手段に複数の循環パターンが記憶されている場合、循環パターンに含まれるモジュール数が少ない循環パターンから順に、前記仮定手段、前記矛盾検出手段、および前記特定手段の処理を行う
     こと特徴とする請求項4に記載の不正モジュール特定装置。
  10.  前記判断手段は、
     前記循環記憶手段に複数の循環パターンが記憶されており、かつ、各循環パターンに含まれるモジュール数が同数である場合、各循環パターンに含まれるモジュールに対する改ざん検出処理を行う当該循環パターンに含まれないモジュールの数が多い循環パターンから順に、前記仮定手段、前記矛盾検出手段、および前記特定手段の処理を行う
     こと特徴とする請求項9に記載の不正モジュール特定装置。
  11.  前記循環記憶手段は、さらに、
     循環パターン毎に、各循環パターンに含まれるモジュール数、および、当該循環パターンに含まれるモジュールに対する改ざん検出処理を行う当該循環パターンに含まれないモジュールの数を含む循環パターンリストを記憶しており、
     前記判断手段は、前記循環パターンリストを参照して、前記仮定手段、前記矛盾検出手段、および前記特定手段により処理を行う循環パターンの順序を決定する
     ことを特徴とする請求項10記載の不正モジュール特定装置。
  12.  前記循環記憶手段に記憶されている前記循環パターンリストは、各循環パターンに含まれるモジュール数が少ない順に、各循環パターンに含まれるモジュール数、および、当該循環パターンに含まれるモジュールに対する改ざん検出処理を行う当該循環パターンに含まれないモジュールの数を配置している
     ことを特徴とする請求項11に記載の不正モジュール特定装置。
  13.  前記不正モジュール特定装置は、さらに、
     前記情報処理装置で動作し、相互に改ざん検出処理を行う複数のモジュールについて、検証元のモジュールと検証先のモジュールとの組み合わせである監視パターンを生成する監視パターン生成手段と、
     生成した前記監視パターンを、前記情報処理装置へ送信する監視パターン送信手段とを備え、
     前記監視パターン生成手段は、複数のモジュールが一方向に循環して改ざん検出を行う循環パターンを含む前記監視パターンを生成する
     こと特徴とする請求項1に記載の不正モジュール特定装置。
  14.  秘匿データを含み、且つ、暗号化されているアプリケーションプログラムと、
     前記秘匿データを保護する機能を有する保護制御モジュールと、
     ソフトウェアを更新する機能を有し、相互に改ざんの有無を検証し合い、前記暗号化されているアプリケーションプログラムを復号するための復号鍵から所定の鍵分散法に従って生成された複数の分散鍵のうち、自身に割り当てられた分散鍵を保持する複数のモジュールとを備える情報処理装置であって、
     前記複数のモジュールが一方向に循環して改ざん検出を行うモジュール群である循環パターンを含む場合、前記循環パターンに含まれるモジュールに割り当てられる分散情報は、前記循環パターンに含まれないモジュールにも重複して割り当てられる
     ことを特徴とする情報処理装置。
  15.  ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置で用いられる不正モジュール特定方法であって、
     改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信ステップと、
     前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断ステップと、
     特定された不正モジュールの無効化指示を出力する無効化ステップと
     を含むことを特徴とする不正モジュール特定装置。
  16.  ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定プログラムであって、
     不正モジュール特定装置に、
     改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信ステップと、
     前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断ステップと、
     特定された不正モジュールの無効化指示を出力する無効化ステップと
     を実行させることを特徴とする不正モジュール特定プログラム。
  17.  ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置で用いられる集積回路であって、
     改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信手段と、
     前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断手段と、
     特定された不正モジュールの無効化指示を出力する無効化手段と
     を備えることを特徴とする集積回路。
  18.  情報処理装置と、前記情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置とから構成される不正モジュール無効化システムであって、
     前記情報処理装置は、
     秘匿データを含み、且つ、暗号化されているアプリケーションプログラムと、
     前記秘匿データを保護する機能を有する保護制御モジュールと、
     ソフトウェアを更新する機能を有し、相互に改ざんの有無を検証する複数の更新モジュールと、
     前記不正モジュール特定装置は、
     前記複数の更新モジュールから、改ざん検出結果を受信する受信手段と、
     前記複数の更新モジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記更新モジュールを不正モジュールと特定する判断手段と、
     特定された不正モジュールの無効化指示を前記情報処理装置へ出力する無効化手段とを備える
     ことを特徴とする不正モジュール無効化システム。
  19.  情報処理装置と、前記情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置とから構成される不正モジュール無効化システムで用いられる不正モジュール無効化方法であって、
     前記情報処理装置は、
     秘匿データを含み、且つ、暗号化されているアプリケーションプログラムと、
     前記秘匿データを保護する機能を有する保護制御モジュールと、
     ソフトウェアを更新する機能を有し、相互に改ざんの有無を検証する複数の更新モジュールとを備え、
     前記不正モジュール無効化方法は、
     前記複数の更新モジュールにより、相互に改ざん検出を行う改ざん検出ステップと、
     前記複数の更新モジュールから、改ざん検出結果を受信する受信ステップと、
     前記複数の更新モジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記更新モジュールを不正モジュールと特定する判断ステップと、
     特定された不正モジュールの無効化指示を出力する無効化ステップと
     を含むことを特徴とする不正モジュール無効化方法。
PCT/JP2010/000906 2009-02-16 2010-02-15 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 WO2010092832A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP10741112.6A EP2397964A4 (en) 2009-02-16 2010-02-15 DEVICE FOR IDENTIFYING ILLEGAL MODULES, INFORMATION PROCESSING DEVICE, METHOD FOR IDENTIFYING ILLEGAL MODULES, IDENTIFICATION PROGRAM FOR ILLEGAL MODULES, INTEGRATED CIRCUIT, ILLEGAL MODULES DEACTIVATION SYSTEM, AND ILLEGAL MODULES DEACTIVATION DEVICE
JP2010550475A JP5453324B2 (ja) 2009-02-16 2010-02-15 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法
CN201080006212.0A CN102301374B (zh) 2009-02-16 2010-02-15 非法模块确定装置、信息处理装置、非法模块确定方法、非法模块无效化系统及非法模块无效化方法
US13/143,594 US8544093B2 (en) 2009-02-16 2010-02-15 Illegal module identifying device, information processing device, illegal module identifying method, illegal module identifying program, integrated circuit, illegal module disabling system, and illegal module disabling method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009032372 2009-02-16
JP2009-032372 2009-02-16

Publications (1)

Publication Number Publication Date
WO2010092832A1 true WO2010092832A1 (ja) 2010-08-19

Family

ID=42561680

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/000906 WO2010092832A1 (ja) 2009-02-16 2010-02-15 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法

Country Status (5)

Country Link
US (1) US8544093B2 (ja)
EP (1) EP2397964A4 (ja)
JP (1) JP5453324B2 (ja)
CN (1) CN102301374B (ja)
WO (1) WO2010092832A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012124270A1 (ja) * 2011-03-15 2012-09-20 パナソニック株式会社 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール
EP2634718A4 (en) * 2010-10-28 2016-06-15 Panasonic Corp FALSIFICATION MONITORING SYSTEM, PROTECTION CONTROL MODULE, AND DETECTION MODULE
US11190647B2 (en) 2018-07-18 2021-11-30 Canon Kabushiki Kaisha Information processing apparatus stopping power supply to hardware connected to a socket

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101888311B (zh) * 2009-05-11 2013-02-06 北京神州绿盟信息安全科技股份有限公司 一种防止网络内容被篡改的设备、方法和系统
JP2011165134A (ja) * 2010-02-15 2011-08-25 Sony Corp コンテンツ再生装置、携帯機器、及び異常検知方法
US9003519B2 (en) * 2011-05-16 2015-04-07 At&T Intellectual Property I, L.P. Verifying transactions using out-of-band devices
US9419994B2 (en) * 2012-05-25 2016-08-16 Nec Corporation Method for identifying potentially malicious network elements within a network using cross-domain collaborative data sharing
US9208325B2 (en) * 2012-07-26 2015-12-08 International Business Machines Corporation Protecting data on a mobile device
WO2015013474A2 (en) * 2013-07-25 2015-01-29 Siemens Healthcare Diagnostics Inc. Anti-piracy protection for software
KR101519845B1 (ko) * 2013-11-14 2015-05-13 (주)잉카엔트웍스 안티디버깅 방법
US9909333B2 (en) 2015-01-26 2018-03-06 Hayward Industries, Inc. Swimming pool cleaner with hydrocyclonic particle separator and/or six-roller drive system
US9885196B2 (en) 2015-01-26 2018-02-06 Hayward Industries, Inc. Pool cleaner power coupling
JP2017022654A (ja) * 2015-07-14 2017-01-26 株式会社東芝 記憶装置及び方法
JP6741559B2 (ja) * 2016-01-18 2020-08-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 評価装置、評価システム及び評価方法
EP3274825B1 (de) * 2016-02-09 2018-11-07 Siemens Aktiengesellschaft Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
US10241847B2 (en) 2016-07-19 2019-03-26 2236008 Ontario Inc. Anomaly detection using sequences of system calls
US10156083B2 (en) 2017-05-11 2018-12-18 Hayward Industries, Inc. Pool cleaner power coupling
US9885194B1 (en) 2017-05-11 2018-02-06 Hayward Industries, Inc. Pool cleaner impeller subassembly
US9896858B1 (en) 2017-05-11 2018-02-20 Hayward Industries, Inc. Hydrocyclonic pool cleaner
EP3742665A4 (en) * 2018-01-19 2021-08-18 Renesas Electronics Corporation SEMICONDUCTOR COMPONENT, UPDATE DATA PROVISION PROCEDURE, UPDATE DATA RECEIVE PROCEDURE AND PROGRAM
JP7321795B2 (ja) * 2019-06-27 2023-08-07 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
CN112541186B (zh) * 2020-12-21 2022-03-18 中国电子科技集团公司第三十研究所 一种基于运动状态感知的密码抗失控系统及方法
US11196558B1 (en) * 2021-03-09 2021-12-07 Technology Innovation Institute Systems, methods, and computer-readable media for protecting cryptographic keys
US11087017B1 (en) 2021-03-09 2021-08-10 Technology Innovation Institute Systems, methods, and computer-readable media for utilizing anonymous sharding techniques to protect distributed data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293370A (ja) * 1999-04-09 2000-10-20 Konami Co Ltd コンピュータシステム、コンピュータプログラムの実行方法及びコンピュータプログラム記録媒体
WO2008099682A1 (ja) 2007-02-16 2008-08-21 Panasonic Corporation 分散情報配布装置、保持装置、認証局装置及びシステム
JP2009003853A (ja) * 2007-06-25 2009-01-08 Panasonic Corp 複数のソフトウェアを正しい順番で起動する情報端末およびセキュリティモジュール

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3964841B2 (ja) * 2003-08-29 2007-08-22 株式会社東芝 半導体集積回路装置
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US20090249085A1 (en) * 2004-06-29 2009-10-01 Nagracard S.A. Security module and personalization method for such a security module
US7770785B2 (en) * 2005-06-13 2010-08-10 Qualcomm Incorporated Apparatus and methods for detection and management of unauthorized executable instructions on a wireless device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293370A (ja) * 1999-04-09 2000-10-20 Konami Co Ltd コンピュータシステム、コンピュータプログラムの実行方法及びコンピュータプログラム記録媒体
WO2008099682A1 (ja) 2007-02-16 2008-08-21 Panasonic Corporation 分散情報配布装置、保持装置、認証局装置及びシステム
JP2009003853A (ja) * 2007-06-25 2009-01-08 Panasonic Corp 複数のソフトウェアを正しい順番で起動する情報端末およびセキュリティモジュール

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
F. PREPARATA, G. METZE, R.T. CHIEN: "On The Connection Assignment Problem of Diagnosable Systems", IEEE TRANS. ELECTRONIC COMPUTERS, vol. 16, 1968, pages 848 - 854
See also references of EP2397964A4
TATSUAKI OKAMOTO, HIROSUKE YAMAMOTO: "Gendai Ango", 1997, SANGYO TOSHO

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2634718A4 (en) * 2010-10-28 2016-06-15 Panasonic Corp FALSIFICATION MONITORING SYSTEM, PROTECTION CONTROL MODULE, AND DETECTION MODULE
WO2012124270A1 (ja) * 2011-03-15 2012-09-20 パナソニック株式会社 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール
US9311487B2 (en) 2011-03-15 2016-04-12 Panasonic Corporation Tampering monitoring system, management device, protection control module, and detection module
JP5960678B2 (ja) * 2011-03-15 2016-08-02 パナソニック株式会社 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール
US11190647B2 (en) 2018-07-18 2021-11-30 Canon Kabushiki Kaisha Information processing apparatus stopping power supply to hardware connected to a socket

Also Published As

Publication number Publication date
CN102301374A (zh) 2011-12-28
JP5453324B2 (ja) 2014-03-26
EP2397964A1 (en) 2011-12-21
US8544093B2 (en) 2013-09-24
EP2397964A4 (en) 2014-08-13
JPWO2010092832A1 (ja) 2012-08-16
US20110271344A1 (en) 2011-11-03
CN102301374B (zh) 2014-06-25

Similar Documents

Publication Publication Date Title
JP5453324B2 (ja) 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法
JP5405986B2 (ja) ソフトウェア更新システム、管理装置、記録媒体及び集積回路
JP5390532B2 (ja) 監視システム、プログラム実行装置、監視プログラム、記録媒体及び集積回路
JP5453323B2 (ja) 改竄監視システム、管理装置及び改竄管理方法
JP5681028B2 (ja) 改ざん監視システム、管理装置及び管理方法
JP5744855B2 (ja) 改ざん監視システム、管理装置及び改ざん管理方法
US9594909B2 (en) Software updating apparatus, software updating system, invalidation method, and invalidation program
US8683214B2 (en) Method and device that verifies application program modules
US8438402B2 (en) Electronic terminal, control method, computer program and integrated circuit
US8464347B2 (en) Software updating apparatus, software updating system, alteration verification method and alteration verification program
US8769312B2 (en) Tampering monitoring system, protection control module, and detection module

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080006212.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10741112

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13143594

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2010550475

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2010741112

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE