WO2023105744A1 - 検知システム、検知装置、検知方法および検知プログラム - Google Patents

検知システム、検知装置、検知方法および検知プログラム Download PDF

Info

Publication number
WO2023105744A1
WO2023105744A1 PCT/JP2021/045499 JP2021045499W WO2023105744A1 WO 2023105744 A1 WO2023105744 A1 WO 2023105744A1 JP 2021045499 W JP2021045499 W JP 2021045499W WO 2023105744 A1 WO2023105744 A1 WO 2023105744A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
unit
response
hash
challenge
Prior art date
Application number
PCT/JP2021/045499
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 PCT/JP2021/045499 priority Critical patent/WO2023105744A1/ja
Priority to AU2021477492A priority patent/AU2021477492A1/en
Publication of WO2023105744A1 publication Critical patent/WO2023105744A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Definitions

  • the present invention relates to a detection system, a detection device, a detection method, and a detection program.
  • Attestation technology that detects system tampering is attracting attention.
  • digests such as hash values and checksums are periodically acquired at a point in time when the entire storage of the monitored node can be considered normal. Then, by comparing the acquired digest with the digest of the current storage of the node being monitored, the integrity of the node being monitored, that is, checking whether tampering has occurred within the node.
  • Software-based attestation technology which performs all of these processes in software, is premised on the ability to safely hold the secret information of each node on a constantly reliable verification server. Therefore, if the verification server is infected, it will not be able to detect tampering correctly, and many models will fail.
  • Non-Patent Document 1 a technology has been disclosed that eliminates the need for a verification server by distributing secret information and performing majority voting among nodes.
  • the present invention has been made in view of the above, and aims to efficiently verify the integrity of all devices existing in a network.
  • the detection system is a detection system having two or more nodes and a base station holding information about each node, the base station , a search unit that searches for a circuit that passes through all nodes in the network only once; a calculation unit that sequentially calculates hash values as many as the number of nodes in the network; and a notifying unit that notifies a hash value corresponding to the order among the calculated hash values, and a node at a later stage in the loop, wherein the node receives the order notified from the notifying unit.
  • the sending unit that sends the notified hash value and the challenge to the subsequent node match a hash verification unit for verifying whether the hash value matches, a return unit for returning a response to the sent challenge when the hash values match, and a response verification unit for verifying the returned response.
  • FIG. 1 is a diagram for explaining the outline of the detection system.
  • FIG. 2 is a diagram for explaining the outline of the detection system.
  • FIG. 3 is a diagram for explaining the outline of the detection system.
  • FIG. 4 is a schematic diagram illustrating a schematic configuration of the detection system.
  • FIG. 5 is a diagram for explaining the processing of the base station.
  • FIG. 6 is a sequence diagram showing a detection processing procedure.
  • FIG. 7 is a diagram illustrating a computer that executes a detection program.
  • FIG. 1 illustrates one-to-one integrity verification of nodes.
  • one node functions as a verifier and the other node functions as a provider, and the challenge-response procedure thoroughly discovers that the information on the provider has been tampered with.
  • the detection system includes node 1, node 2, and a base station, which are configured to be able to communicate securely with each other using common key cryptography or the like.
  • node 1 which is a verifier, sends a random value (nonce) as a challenge to node 2, which is a provider.
  • node 1 expects a correct response from node 2 within the time limit.
  • Node 2 sets the random value received as the challenge as the seed of its own random number generator.
  • node 2 accesses its own storage, performs a random scan using a seed, generates a checksum or hash digest as a response, Send back to 1.
  • node 1 verifies the response. If node 2 is infected, node 1 can detect that node 2 is infected because it cannot generate a correct response. Then, the node 1 notifies the base station of the verification result as shown in FIG. 1(5). This enables the base station to confirm the integrity of the node 2 under its control.
  • Fig. 2 illustrates integrity confirmation between three or more nodes.
  • each node computes multiple sets of challenges sent to itself and responses to the challenges and stores them in memory before deployment.
  • FIG. 2(a) when a node is placed in the network, it distributes the challenge/response pair held by itself to neighboring nodes, and distributes the distributed challenge/response pair to itself. Delete from memory.
  • secret information is shared, keeping the challenges and corresponding responses that neighboring nodes send to the target node.
  • a node that has been elected as a Prover using an appropriate voting algorithm receives challenges from all neighboring nodes, calculates responses for each, and replies.
  • the adjacent node compares the returned response with the expected response it holds, and if there is a discrepancy between the two, it notifies the base station that this Prover node is infected.
  • each of a plurality of adjacent nodes holds a different set of challenge/response, and the integrity of the Prover node is confirmed, for example, the presence or absence of tampering is determined by majority vote. judge. In this case, as many challenge/response communications and calculations as there are adjacent nodes occur for integrity confirmation of one node that is a Prover.
  • the detection system of this embodiment checks whether there is even one infected node in the network instead of performing integrity confirmation of one node as a Prover. Specifically, the detection system 1, as shown in FIG. 3, calculates a Hamilton cycle, which is a circular circuit that passes through all nodes in the network only once, and verifier is the previous node, and verifier is the latter node. is a Prover, and one-to-one integrity confirmation is performed in order.
  • a Hamilton cycle which is a circular circuit that passes through all nodes in the network only once, and verifier is the previous node, and verifier is the latter node. is a Prover, and one-to-one integrity confirmation is performed in order.
  • the detection system can perform integrity confirmation in one process for the entire node group without performing integrity confirmation N times for each of the N nodes. This makes it possible to significantly reduce communication overhead and the like, suppress the number of communications and calculation costs, and perform integrity confirmation.
  • FIG. 4 is a schematic diagram illustrating a schematic configuration of the detection system.
  • the detection system 1 includes a base station 10 and two or more nodes 20, and is configured to be able to communicate securely with each other using common key cryptography or the like.
  • the base station 10 holds information such as which node's communication range each node 20 in the network is within, which node's secret information is held by each node 20, and other information. control the completeness of the That is, it computes the Hamiltonian cycle for the nodes 20 in the network and directs the nodes 20 to perform one-to-one integrity checks in the order of the Hamiltonian cycle. Each node 20 then performs a one-to-one integrity check with each other as a detector. The base station 10 then aggregates the results of integrity checks between the nodes 20 .
  • the base station 10 is implemented by a CPU (Central Processing Unit), NP (Network Processor), FPGA (Field Programmable Gate Array), or the like, and functions as a control unit 11 by executing a processing program stored in memory.
  • the base station 10 also has a storage unit 12 implemented by a semiconductor memory device such as (random access memory) or flash memory.
  • the base station 10 also includes a communication control unit (not shown), and communicates with the node 20 and other network devices through the communication control unit.
  • the storage unit 12 pre-stores processing programs for operating the base station 10, data used during execution of the processing programs, etc., or temporarily stores them each time processing is performed. Note that the storage unit 12 may be configured to communicate with the control unit 11 via the communication control unit.
  • the storage unit 12 stores node information 12a used in detection processing, which will be described later.
  • the node information 12a includes information such as which node's communication range each node in the network is within, and which node's secret information each node holds.
  • the control unit 11 By executing the processing programs stored in the memory, the control unit 11 functions as a search unit 11a, a calculation unit 11b, a notification unit 11c, and an aggregating unit 11d, as illustrated in FIG. It should be noted that these functional units may be implemented in different hardware, respectively or partially. For example, the search unit 11a and the calculation unit 11b, and the notification unit 11c and the aggregation unit 11d may be implemented in separate devices. Also, the control unit 11 may include other functional units.
  • the search unit 11a searches for a loop that passes through all nodes in the network only once. Specifically, the search unit 11a calculates the Hamilton cycle for all nodes in the network. The searching unit 11a calculates a Hamilton cycle by referring to the communication status of the node 20 in the node information 12a and the sharing status of challenge/response, which will be described later.
  • the detection system 1 performs one-to-one integrity confirmation with the preceding node 20 as the Verifier and the subsequent node 20 as the Prover so as to make one round in the order of the Hamilton cycle.
  • the calculation unit 11b sequentially calculates hash values equal to the number N of nodes 20 in the network.
  • the notification unit 11c sends to each node 20 the order i in the Hamilton cycle, the (N ⁇ i)-th hash value corresponding to the calculated hash value among the calculated hash values, and the subsequent (i+1) hash value in the Hamilton cycle. )-th node 20.
  • the notification unit 11c notifies each node 20 of the Hamilton cycle of the calculated hash values in descending order of calculation in ascending order of the Hamilton cycle. That is, the notification unit 11c notifies the i-th node 20 of the Hamilton cycle of the (N ⁇ i)-th calculated hash value.
  • FIG. 5 is a diagram for explaining the processing of the base station.
  • the calculation unit 11b applies a hash function to the initial value X to calculate a hash value X'. Also, a hash value X'' is calculated by applying a hash function to the hash value X'. As illustrated in FIG. 5A, the calculation unit 11b repeats this process to generate a hash chain composed of the same number of hash values as the number of nodes 20 in the network.
  • the notification unit 11c reverses the hash chain generated by the calculation unit 11b (reverse hash chain), and rearranges the hash values in descending order of calculation. Then, the notification unit 11c sends hash values to each node 20 so that the order of the Hamilton cycle corresponds to the rearranged order as shown in FIG. 5(b), as illustrated in FIG. Notice.
  • the hash verification unit 21b of the node 20 uses the hash value sent from the preceding node 20 and the hash value of which the node 20 itself has been notified to verify that the preceding node 20 is the node expected by the base station 10. 20 or not can be verified.
  • the hash verification unit 12b applies a hash function to the hash value (for example, X'') sent from the preceding node 20 and the hash value (for example, X') notified to itself, and calculates the hash value ( X'') matches the expected node 20.
  • the aggregation unit 11d aggregates verification results of the hash verification unit 21b or the response verification unit 21d of the node 20, which will be described later. As a result, the base station 10 can aggregate verification results, which will be described later, at each node 20 . For example, if even one abnormal result different from the expected value is included in the verification results of each node 20, the aggregating unit 11d assumes that there is an infected node 20 in the network. , to issue an alert.
  • the node 20 is implemented by a CPU, NP, FPGA, or the like, and functions as a control unit 21 by executing a processing program stored in memory. Also, the node 20 has a storage unit 22 implemented by a semiconductor memory device such as RAM, flash memory, or the like.
  • the node 20 also includes a communication control unit (not shown), and communicates with the base station 10, other network devices, etc. via the communication control unit.
  • the storage unit 22 pre-stores the processing program that causes the node 20 to operate, data used during the execution of the processing program, etc., or temporarily stores it each time processing is performed. Note that the storage unit 22 may be configured to communicate with the control unit 21 via the communication control unit.
  • the storage unit 22 stores storage content information 22a, challenge/response information 22b, and the like.
  • the storage content information 22a is referred to when the returning unit 21c generates a response to the challenge sent from the preceding node 20 in detection processing described later.
  • the challenge/response information 22b is a combination of a challenge sent to each node in the network and a normal response to the challenge.
  • the node 20 calculates in advance a plurality of challenges to be sent to itself and responses to the challenges before being deployed.
  • each neighboring node 20 holds challenge/response information 22b as a response corresponding to the challenge sent to the Prover node. This causes each node in the network to share secret information.
  • control unit 21 By executing the processing program stored in the memory, the control unit 21 functions as a sending unit 21a, a hash verification unit 21b, a return unit 21c, and a response verification unit 21d, as illustrated in FIG. Note that the control unit 11 may include other functional units.
  • the sending unit 21a sends the notified hash value and challenge to the subsequent node 20 according to the order i notified from the notification unit 11c. Specifically, the sending unit 21a of the i-th node 20 sends the (i+1)-th node 20 the (Ni)-th hash value notified from the notification unit 11c and the (i+1)-th node 20 send a challenge to
  • the sending unit 21a refers to the challenge/response information 22b of the storage unit 22 and sends a challenge corresponding to the (i+1)th node in the latter stage as a challenge to the (i+1)th node in the latter stage.
  • the hash verification unit 21b verifies whether the hash value sent from the i-th node 20 in the previous stage matches the value calculated by a predetermined method from the notified hash value. Specifically, the hash verification unit 21b verifies whether or not the hash value sent from the i-th node 20 in the previous stage matches the hash value calculated from the notified hash value.
  • the hash verification unit 21b of the (i+1)-th node 20 receives the (N ⁇ i)-th hash value sent from the i-th node 20 in the previous stage and the hash value of itself (N ⁇ (i+1)) It verifies whether or not the hash value obtained by applying the hash function to the second hash value matches. If they match, it can be confirmed that the preceding node 20 is the i-th node 20 expected by the base station 10 .
  • the hash verification unit 21b shifts the processing to the return unit 12c described below when they match. Further, if the hash verification unit 21b does not match, the hash verification unit 21b may notify the verification result to the aggregation unit 11d of the base station 10, for example.
  • the return unit 21c returns a response to the sent challenge when the hash values match in the hash verification unit 21b. Specifically, the return unit 21c extracts the nonce included in the challenge and sets it as a seed. Then, the return unit 12c generates a response by referring to the storage content information 22a, and returns it to the node 20 in the previous stage.
  • the response verification unit 21d verifies the returned response. Specifically, the response verification unit 21d refers to the challenge/response information 22b in the storage unit 22 and verifies whether or not the returned response matches a normal response. The response verification unit 21d determines that the subsequent node 20 is normal when they match, and determines that the latter node 20 is infected when they do not match.
  • the response verification unit 21d notifies the aggregation unit 11d of the base station 10 of the verification result.
  • the base station 10 can aggregate the results of response verification at each node 20 . For example, if even one of the response verification results of each node 20 includes a determination result indicating that the subsequent node 20 is infected, the aggregating unit 11d Issue an alert as it exists.
  • the aggregating unit 11d issues an alert assuming that the processing that does not depend on the order of the Hamilton cycle expected by the base station 10 has been executed.
  • FIG. 6 is a sequence diagram showing a detection processing procedure.
  • the sequence of FIG. 6 is started, for example, when an operation input instructing the start of detection processing is performed.
  • the notification unit 11c of the base station 10 sends to each node 20 the order i in the Hamilton cycle, the (Ni)th hash value corresponding to the order among the calculated hash values, and the The (i+1)th node 20 in the latter stage is notified (step S1).
  • the sending unit 21a sends the (N-1)th hash value notified from the notifying unit 11c and the challenge to the second node 20 to the second node 20. (Step S10).
  • the sending unit 21a refers to the challenge/response information 22b of the storage unit 22 and sends a challenge corresponding to the second node as a challenge to the second node in the latter stage.
  • the hash verification unit 21b of the second node 20 hashes the (N-1)-th hash value sent from the first node 20 in the previous stage and the (N-2)-th hash value notified by itself. It is verified whether or not the hash value on which the function is applied matches (step S11).
  • the return unit 21c of the second node 20 returns a response to the sent challenge (step S12). Specifically, the return unit 21c extracts the nonce included in the challenge and sets it as a seed. Then, the returning unit 21 c generates a response by referring to the storage content information 22 a and returns it to the first node 20 .
  • the response verification unit 21d of the first node 20 verifies the returned response (step S13). Specifically, the response verification unit 21d refers to the challenge/response information 22b in the storage unit 22 and verifies whether or not the returned response matches a normal response. The response verification unit 21d determines that the second node 20 is normal when they match, and determines that the second node 20 is infected when they do not match.
  • the response verification unit 21d notifies the verification result to the aggregation unit 11d of the base station 10 (step S14).
  • the sending unit 21a sends the (N-2)th hash value notified from the notifying unit 11c and the challenge to the third node 20 to the third node 20. (step S20).
  • the hash verification unit 21b of the third node 20 hashes the (N-2)-th hash value sent from the second node 20 in the previous stage and the (N-3)-th hash value notified by itself. It is verified whether or not the hash value on which the function is applied matches (step S21).
  • the return unit 21c of the third node 20 returns a response to the sent challenge (step S22).
  • the response verification unit 21d of the second node 20 verifies whether the returned response matches a normal response (step S23).
  • the response verification unit 21d determines that the third node 20 is normal when they match, and determines that the third node 20 is infected when they do not match.
  • the response verification unit 21d notifies the verification result to the aggregation unit 11d of the base station 10 (step S24).
  • the sending unit 21a sends the (i+1)-th node 20 the (Ni)-th hash value notified from the notification unit 11c and the (i+1)-th node 20 Send a challenge.
  • the sending unit 21a refers to the challenge/response information 22b of the storage unit 22 and sends a challenge corresponding to the (i+1)th node in the latter stage as a challenge to the (i+1)th node in the latter stage. send.
  • the hash verification unit 21b of the (i+1)-th node 20 combines the (N ⁇ i)-th hash value sent from the i-th node 20 in the preceding stage with the (N ⁇ (i+1))-th hash value notified by itself. It is verified whether or not the hash value obtained by applying the hash function to the hash value matches.
  • the return unit 21c of the (i+1)-th node 20 returns a response to the sent challenge.
  • the response verification unit 21d refers to the challenge/response information 22b in the storage unit 22 and verifies whether the returned response matches a normal response.
  • the response verification unit 21d determines that the subsequent node 20 is normal when they match, and determines that the latter node 20 is infected when they do not match. Also, the response verification unit 21d notifies the aggregation unit 11d of the base station 10 of the verification result.
  • the detection system 1 repeats the same process as above until the process between the Nth node 20 and the first node 20 is reached.
  • the aggregating unit 11d determines that the infected node 20 is present in the network. Issue an alert, for example, as it exists. This completes a series of detection processes.
  • the searching unit 11a searches for a loop that passes through all the nodes in the network only once.
  • the calculation unit 11b sequentially calculates the same number of hash values as the number of nodes in the network.
  • the notification unit 11c notifies each node of the order in the loop, the hash value corresponding to the order among the calculated hash values, and the subsequent nodes in the loop.
  • the sending unit 21a sends the notified hash value and challenge to subsequent nodes in the order notified from the notification unit 11c.
  • the hash verification unit 21b verifies whether or not the hash value sent from the preceding node matches the value calculated from the notified hash value by a predetermined method.
  • the return unit 21c returns a response to the sent challenge when the hash values match.
  • the response verification unit 21d verifies the returned response.
  • the detection system 1 can confirm the integrity of the entire node group with a single process. This makes it possible to significantly reduce communication overhead and the like, suppress the number of communications and calculation costs, and perform integrity confirmation. In this way, it is possible to efficiently check the integrity of all the devices existing in the network without requiring a verification server that can safely hold the secret information of each node.
  • the storage unit 22 of the node 20 stores a combination of a challenge sent to each node in the network and a normal response to the challenge.
  • the sending unit 21a refers to the storage unit 22 and sends a challenge corresponding to the latter node as a challenge to the latter node.
  • the response verification unit 21d refers to the storage unit 22 and verifies whether or not the returned response matches a normal response.
  • the notification unit 11c notifies each node of the loop of the calculated hash values in descending order of calculation in ascending order of the loop.
  • the hash verification unit 21b verifies whether or not the sent hash value matches the hash value calculated from the notified hash value. As a result, it is possible to efficiently confirm the integrity of the node 20 according to the predetermined circuit.
  • the aggregation unit 11d aggregates the verification results of the hash verification unit 21b or the response verification unit 21d. This makes it possible to determine that at least one subsequent node 20 is infected. Therefore, the detection system 1 can easily confirm whether or not there is an infected node 20 in the network.
  • the base station 10 and the node 20 can be implemented by installing a detection program that executes the above detection processing as package software or online software on a desired computer.
  • the information processing device can function as the base station 10 and the node 20 by causing the information processing device to execute the detection program.
  • information processing devices include mobile communication terminals such as smartphones, mobile phones and PHS (Personal Handyphone Systems), and slate terminals such as PDAs (Personal Digital Assistants).
  • the functions of the base station 10 and the node 20 may be implemented in a cloud server.
  • FIG. 7 is a diagram showing an example of a computer that executes a detection program.
  • Computer 1000 includes, for example, memory 1010 , CPU 1020 , hard disk drive interface 1030 , disk drive interface 1040 , serial port interface 1050 , video adapter 1060 and network interface 1070 . These units are connected by a bus 1080 .
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012 .
  • the ROM 1011 stores a boot program such as BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • Hard disk drive interface 1030 is connected to hard disk drive 1031 .
  • Disk drive interface 1040 is connected to disk drive 1041 .
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1041, for example.
  • a mouse 1051 and a keyboard 1052 are connected to the serial port interface 1050, for example.
  • a display 1061 is connected to the video adapter 1060 .
  • the hard disk drive 1031 stores an OS 1091, application programs 1092, program modules 1093 and program data 1094, for example. Each piece of information described in the above embodiment is stored in the hard disk drive 1031 or the memory 1010, for example.
  • the detection program is stored in the hard disk drive 1031, for example, as a program module 1093 in which commands to be executed by the computer 1000 are described.
  • the hard disk drive 1031 stores a program module 1093 that describes each process executed by the base station 10 and the node 20 described in the above embodiment.
  • Data used for information processing by the detection program is stored as program data 1094 in the hard disk drive 1031, for example. Then, the CPU 1020 reads out the program module 1093 and the program data 1094 stored in the hard disk drive 1031 to the RAM 1012 as necessary, and executes each procedure described above.
  • program module 1093 and program data 1094 related to the detection program are not limited to being stored in the hard disk drive 1031.
  • they are stored in a removable storage medium and read by the CPU 1020 via the disk drive 1041 or the like.
  • the program module 1093 and program data 1094 related to the detection program are stored in another computer connected via a network such as LAN (Local Area Network) or WAN (Wide Area Network), and via network interface 1070 It may be read by CPU 1020 .
  • LAN Local Area Network
  • WAN Wide Area Network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

ベースステーション(10)では、探索部(11a)が、ネットワーク内の全てのノードを1度だけ通る周回路を探索する。算出部(11b)が、ネットワーク内のノードの数と同数のハッシュ値を順に算出する。通知部(11c)が、各ノードに対し、周回路における順番と、算出されたハッシュ値のうち該順番に応じたハッシュ値と、周回路における後段のノードとを通知する。ノード(20)では、送付部(21a)が、通知部(11c)から通知された順番に従って、後段のノードに、通知されたハッシュ値とチャレンジとを送付する。ハッシュ検証部(21b)が、前段のノードから送付されたハッシュ値と、通知されたハッシュ値から所定の方法で算出した値とが一致するか否かを検証する。返送部(21c)が、ハッシュ値が一致した場合に、送付されたチャレンジに対するレスポンスを返送する。レスポンス検証部(21d)が、返送されたレスポンスを検証する。

Description

検知システム、検知装置、検知方法および検知プログラム
 本発明は、検知システム、検知装置、検知方法および検知プログラムに関する。
 システムの改ざんを検知するアテステーション技術が注目されている。アテステーション技術では、監視対象のノードのストレージ全体が正常とみなせるある時点でのハッシュ値やチェックサム等のダイジェストを定期的に取得しておく。そして、取得しておいたダイジェストと、監視対象のノードの現在のストレージのダイジェストとを比較することにより、監視対象のノードの完全性確認つまりノード内で改ざんが発生していないかをチェックする。
 このような処理を全てソフトウェアで行うソフトウェアベース・アテステーション技術においては、常に信頼できる検証サーバーに安全に各ノードの秘密情報を保持できることが前提となっている。したがって、検証サーバーが感染すると改ざんを正しく検知することができなくなり、破綻してしまうモデルが多い。
 そこで従来、秘密情報の分散を行い、ノード同士で多数決を行うことにより、検証サーバーを不要とする技術が開示されている(非特許文献1参照)。
Yi Yang, Xinran Wang, Sencun Zhu, and Guohong Cao, "Distributed Software-based Attestation for Node Compromise Detection in Sensor Networks", 26th IEEE International Symposium on Reliable Distributed Systems
 しかしながら、従来の技術では、ネットワーク内に存在する全ての機器の完全性確認が困難であった。例えば、ネットワーク内に存在する全ての機器の完全性確認を行うためには、大量の通信回数と計算コストとを必要とした。
 本発明は、上記に鑑みてなされたものであって、ネットワーク内に存在する全ての機器の完全性確認を効率よく行うことを目的とする。
 上述した課題を解決し、目的を達成するために、本発明に係る検知システムは、2以上のノードと、各ノードに関する情報を保持するベースステーションとを有する検知システムであって、前記ベースステーションは、ネットワーク内の全てのノードを1度だけ通る周回路を探索する探索部と、ネットワーク内のノードの数と同数のハッシュ値を順に算出する算出部と、各ノードに対し、前記周回路における順番と、算出された前記ハッシュ値のうち該順番に応じたハッシュ値と、前記周回路における後段のノードとを通知する通知部と、を有し、前記ノードは、前記通知部から通知された順番に従って、後段のノードに、通知されたハッシュ値とチャレンジとを送付する送付部と、送付された前記ハッシュ値と、通知された前記ハッシュ値から所定の方法で算出した値とが一致するか否かを検証するハッシュ検証部と、前記ハッシュ値が一致した場合に、送付された前記チャレンジに対するレスポンスを返送する返送部と、返送された前記レスポンスを検証するレスポンス検証部と、を有することを特徴とする。
 本発明によれば、ネットワーク内に存在する全ての機器の完全性確認を効率よく行うことが可能となる。
図1は、検知システムの概要を説明するための図である。 図2は、検知システムの概要を説明するための図である。 図3は、検知システムの概要を説明するための図である。 図4は、検知システムの概略構成を例示する模式図である。 図5は、ベースステーションの処理を説明するための図である。 図6は、検知処理手順を示すシーケンス図である。 図7は、検知プログラムを実行するコンピュータを例示する図である。
 以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[検知システムの概要]
 図1~図3は、検知システムの概要を説明するための図である。まず、図1には、ノードの1対1の完全性確認について例示されている。1対1の完全性確認では、一方のノードをVerifier、他方のノードをProverとして機能させて、チャレンジ・レスポンスの手続きでProver上の情報に改ざんが発生したことを漏れなく発見する。
 図1に示す例では、検知システムは、ノード1、ノード2およびベースステーションを含み、共通鍵暗号等により相互に安全に通信可能に構成されている。まず、図1(1)に示すように、Verifierであるノード1が、Proverであるノード2に対するチャレンジとしてランダム値(Nonce)を送付する。このとき、ノード1は、制限時間内にノード2から正しいレスポンスが返却されることを期待する。ノード2は、チャレンジとして受け取ったランダム値を、自身の持つ乱数生成器のシードとしてセットする。
 また、図1(2)~(3)に示すように、ノード2は、自身のストレージにアクセスして、シードを用いたランダムスキャンを行って、チェックサムまたはハッシュダイジェストをレスポンスとして生成し、ノード1に返送する。
 図1(4)に示すように、ノード1は、レスポンスを検証する。仮にノード2が感染していた場合には、正しいレスポンスを生成することができないため、ノード1はノード2が感染していることを検知できる。そして、ノード1は、図1(5)に示すように、ベースステーションに検証結果を通知する。これにより、ベースステーションが配下のノード2についての完全性確認を行うことが可能となる。
 次に、図2には、3以上のノード間での完全性確認について例示されている。図2に示す例では、各ノードはデプロイの前に、自身に対して送付されるチャレンジと、そのチャレンジに対するレスポンスとの複数の組を計算してメモリ上に保持しておく。そして、図2(a)に示すように、ノードがネットワークに配置された際には、自身の保持するチャレンジ/レスポンスの組を近隣のノードに配布し、配布したチャレンジ/レスポンスの組を自身のメモリ上から削除する。その結果、近隣ノードが対象ノードに送付するチャレンジと対応するレスポンスとを保持して、秘密情報が共有されることになる。
 そして、図2(b)に示すように、例えば、適当な投票アルゴリズムを用いてProverとして選出されたノードは、全ての隣接ノードからチャレンジを受け取り、それぞれに対してレスポンスを算出して返答する。隣接ノードは、返答されたレスポンスと自身が保持する、期待されるレスポンスとを比較して、両者に齟齬があった場合に、このProverであるノードが感染したものとしてベースステーションに通知する。
 図2に示す例では、●で示すProverのノードについて、複数の隣接ノードのそれぞれが異なるチャレンジ/レスポンスの組を保持し、Proverのノードの完全性確認を行って、例えば多数決で改ざんの有無を判定する。この場合には、Proverである1つのノードの完全性確認について、隣接ノードの数だけのチャレンジ/レスポンスの通信と計算が発生する。
 そこで、本実施形態の検知システムは、Proverとして1つのノードの完全性確認を行う代わりに、ネットワーク内に感染したノードが1つでもあるか否かをチェックする。具体的には、検知システム1は、図3に示すように、ネットワーク内の全ノードを1度だけ通って1周する周回路であるHamilton閉路を計算し、前段のノードをVerifier、後段のノードをProverとして順に1対1の完全性確認を行う。
 この場合には、全ノードが正常である場合か、あるいは全ノードが感染している場合にのみ、全ての完全性確認が成功する。全ノードが感染しているケースは稀で無視できるものと考えられる。したがって、検知システムは、N個のノードのそれぞれに対してN回の完全性確認を行うことなく、ノード群の全体に対する1回の処理で完全性確認を行うことが可能となる。これにより、通信オーバヘッド等を大幅に削減して、通信回数と計算コストとを抑制して完全性確認を行うことが可能となる。
[検知システムの構成]
 図4は、検知システムの概略構成を例示する模式図である。図4に例示するように、検知システム1は、ベースステーション10および2以上のノード20を含み、相互に共通鍵暗号等により安全に通信可能に構成される。
 ベースステーション10は、ネットワーク内の各ノード20がどのノードの通信範囲内にいるか、各ノード20がどのノードの秘密情報を保持しているか等の情報を保持して、ノード20間の1対1の完全性確認を統制する。つまり、ネットワーク内のノード20についてHamilton閉路を計算し、Hamilton閉路の順番に、ノード20で1対1の完全性確認の実行を指示する。そして、各ノード20は、検知装置として、相互に1対1の完全性確認を行う。その後、ベースステーション10は、ノード20間の完全性確認の結果を集約する。
[ベースステーションの構成]
 ベースステーション10は、CPU(Central Processing Unit)やNP(Network Processor)やFPGA(Field Programmable Gate Array)等で実現され、メモリに記憶された処理プログラムを実行して、制御部11として機能する。また、ベースステーション10は、(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子で実現される記憶部12を有する。また、ベースステーション10は、図示しない通信制御部を備え、通信制御部を介してノード20や他のネットワーク装置等と通信する。
 記憶部12には、ベースステーション10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。なお、記憶部12は、通信制御部を介して制御部11と通信する構成でもよい。
 本実施形態において、記憶部12には、後述する検知処理で用いられるノード情報12aを記憶する。ノード情報12aは、ネットワーク内の各ノードがどのノードの通信範囲内にいるか、各ノードがどのノードの秘密情報を保持しているか等の情報を含む。
 制御部11は、メモリに記憶された処理プログラムを実行することにより、図4に例示するように、探索部11a、算出部11b、通知部11cおよび集約部11dとして機能する。なお、これらの機能部は、それぞれあるいは一部が異なるハードウェアに実装されてもよい。例えば、探索部11aおよび算出部11bと、通知部11cおよび集約部11dとは、別々の装置に実装されてもよい。また、制御部11は、その他の機能部を備えてもよい。
 探索部11aは、ネットワーク内の全てのノードを1度だけ通る周回路を探索する。具体的には、探索部11aは、ネットワーク内のすべてのノードを対象にHamilton閉路を計算する。探索部11aは、ノード情報12aのノード20の通信状況や、後述するチャレンジ・レスポンスの共有状況を参照して、Hamilton閉路を計算する。
 検知システム1では、後述する検知処理において、Hamilton閉路の順番に1周するように、前段のノード20をVerifier、後段のノード20をProverとする1対1の完全性確認を行う。
 ここで、正常なノード20から感染したノード20に対してチャレンジが送付された場合には、正しいレスポンスが生成されない。したがって、1周して全てのノード20で完全性確認が成功するのは、全てのノード20が正常であるか、あるいは全てのノード20が感染しているかのいずれかに限られる。全てのノード20が感染している場合は稀であると考えられることから、後述する検知処理により、全てのノード20の完全性確認が可能となる。
 算出部11bは、ネットワーク内のノード20の数Nと同数のハッシュ値を順に算出する。また、通知部11cは、各ノード20に対し、Hamilton閉路における順番iと、算出されたハッシュ値のうち該順番に応じた(N-i)番目のハッシュ値と、Hamilton閉路における後段の(i+1)番目のノード20とを通知する。具体的には、通知部11cは、Hamilton閉路の各ノード20に、該Hamilton閉路における順番の昇順に、算出されたハッシュ値を算出された順番の降順に通知する。すなわち、通知部11cは、Hamilton閉路のi番目のノード20に、(N-i)番目に算出されたハッシュ値を通知する。
 ここで、図5は、ベースステーションの処理を説明するための図である。算出部11bは、初期値Xにハッシュ関数を作用させてハッシュ値X’を算出する。また、ハッシュ値X’にハッシュ関数を作用させてハッシュ値X’’を算出する。算出部11bは、図5(a)に例示するように、この処理を繰り返すことにより、ネットワーク内のノード20の数と同数のハッシュ値からなるハッシュチェインを生成する。
 そして、通知部11cは、図5(b)に例示するように、算出部11bが生成したハッシュチェインをひっくり返し(リバースハッシュチェイン)、各ハッシュ値を算出された順番の降順に並べ変える。そして、通知部11cは、図5(c)に例示するように、Hamilton閉路の順番と、図5(b)のように並べ変えた順番とが対応するように、各ノード20にハッシュ値を通知する。
 これにより、後述するノード20のハッシュ検証部21bは、前段のノード20から送付されたハッシュ値と自身が通知されたハッシュ値とを用いて、前段のノード20が、ベースステーション10が期待したノード20か否かを検証することができる。例えば、ハッシュ検証部12bは、前段のノード20から送付されたハッシュ値(例えばX’’)と、自身が通知されたハッシュ値(例えばX’)にハッシュ関数を作用させて算出したハッシュ値(X’’)とが一致する場合に、期待されたノード20と確認できる。
 図4の説明に戻る。集約部11dは、後述するノード20のハッシュ検証部21bまたはレスポンス検証部21dの検証の結果を集約する。これにより、ベースステーション10は、各ノード20での後述する検証結果を集約することが可能となる。例えば、各ノード20の検証結果のうちに、1つでも期待される値と異なる異常の結果が含まれている場合には、集約部11dは、ネットワーク内に感染したノード20が存在するものとして、アラートを発出する。
[ノードの構成]
 ノード20は、CPUやNPやFPGA等で実現され、メモリに記憶された処理プログラムを実行して、制御部21として機能する。また、ノード20は、RAM、フラッシュメモリ等の半導体メモリ素子で実現される記憶部22を有する。また、ノード20は、図示しない通信制御部を備え、通信制御部を介してベースステーション10や他のネットワーク装置等と通信する。
 記憶部22には、ノード20を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。なお、記憶部22は、通信制御部を介して制御部21と通信する構成でもよい。
 本実施形態において、記憶部22は、ストレージコンテンツ情報22a、チャレンジ/レスポンス情報22b等を記憶する。ストレージコンテンツ情報22aは、後述する検知処理において、返送部21cが前段のノード20から送付されたチャレンジに対するレスポンスを生成する際に参照される。
 また、チャレンジ/レスポンス情報22bは、ネットワーク内の各ノードに対して送付するチャレンジと該チャレンジに対する正常なレスポンスとの組み合わせである。ノード20は、上記したように、デプロイされる前に予め、自身に対して送付されるべき複数のチャレンジとそのチャレンジに対するレスポンスとを算出しておく。
 そして、ノード20がネットワークに配置された際には、自身の保持するチャレンジ/レスポンスの組を近隣のノード20に配布し、配布したチャレンジ/レスポンスの組を自身のメモリ上から削除する。その結果、近隣のノード20がそれぞれ、Proverのノードに送付するチャレンジと対応するレスポンスとして、チャレンジ/レスポンス情報22bを保持することになる。これによりネットワーク内の各ノードが秘密情報を共有することになる。
 制御部21は、メモリに記憶された処理プログラムを実行することにより、図4に例示するように、送付部21a、ハッシュ検証部21b、返送部21cおよびレスポンス検証部21dとして機能する。なお、制御部11は、その他の機能部を備えてもよい。
 送付部21aは、通知部11cから通知された順番iに従って、後段のノード20に、通知されたハッシュ値とチャレンジとを送付する。具体的には、i番目のノード20の送付部21aは、(i+1)番目のノード20に、通知部11cから通知された(N-i)番目のハッシュ値と、(i+1)番目のノード20に対するチャレンジとを送付する。
 送付部21aは、後段の(i+1)番目のノードに、チャレンジとして、記憶部22のチャレンジ/レスポンス情報22bを参照して該後段の(i+1)番目のノードに対応するチャレンジを送付する。
 ハッシュ検証部21bは、前段のi番目のノード20から送付されたハッシュ値と、通知されたハッシュ値から所定の方法で算出した値とが一致するか否かを検証する。具体的には、ハッシュ検証部21bは、前段のi番目のノード20から送付されたハッシュ値と、通知されたハッシュ値から算出したハッシュ値とが一致するか否かを検証する。
 例えば、(i+1)番目のノード20のハッシュ検証部21bは、前段のi番目のノード20から送付された(N-i)番目のハッシュ値と、自身が通知された(N-(i+1))番目のハッシュ値にハッシュ関数を作用させたハッシュ値とが一致するか否かを検証する。一致する場合には、前段のノード20が、ベースステーション10が期待したi番目のノード20であることが確認できたことになる。
 そこで、ハッシュ検証部21bは、一致した場合には、以下に示す返送部12cに処理を移行させる。また、ハッシュ検証部21bは、一致しない場合には、例えば、ベースステーション10の集約部11dにこの検証結果を通知してもよい。
 返送部21cは、ハッシュ検証部21bにおいてハッシュ値が一致した場合に、送付されたチャレンジに対するレスポンスを返送する。具体的には、返送部21cは、チャレンジに含まれるNonceを取り出してシードとしてセットする。そして、返送部12cは、ストレージコンテンツ情報22aを参照してレスポンスを生成し、前段のノード20に返送する。
 レスポンス検証部21dは、返送されたレスポンスを検証する。具体的には、レスポンス検証部21dは、記憶部22のチャレンジ/レスポンス情報22bを参照し、返送されたレスポンスが正常なレスポンスと一致するか否かを検証する。レスポンス検証部21dは、一致する場合には、後段のノード20が正常と判定し、一致しない場合には、後段のノード20が感染していると判定する。
 また、レスポンス検証部21dは、検証結果をベースステーション10の集約部11dに通知する。これにより、上述したように、ベースステーション10は、各ノード20でレスポンス検証の結果を集約することが可能となる。例えば、各ノード20のレスポンス検証の結果のうち、1つでも後段のノード20が感染していると判定結果が含まれている場合には、集約部11dは、ネットワーク内に感染したノード20が存在するものとして、アラートを発出する。
 なお、集約部11dは、ハッシュ検証部21bが検証結果を通知した場合にも、ベースステーション10が期待したHamilton閉路の順番に依らない処理が実行されたものとして、アラートを発出する。
[検知処理]
 次に、図6を参照して、本実施形態に係る検知システム1による検知処理について説明する。図6は、検知処理手順を示すシーケンス図である。図6のシーケンスは、例えば、検知処理の開始を指示する操作入力があったタイミングで開始される。
 まず、ベースステーション10の通知部11cが、各ノード20に対し、Hamilton閉路における順番iと、算出されたハッシュ値のうち該順番に応じた(N-i)番目のハッシュ値と、Hamilton閉路における後段の(i+1)番目のノード20とを通知する(ステップS1)。
 まず、1番目のノード20では、送付部21aが、2番目のノード20に、通知部11cから通知された(N-1)番目のハッシュ値と、2番目のノード20に対するチャレンジとを送付する(ステップS10)。
 具体的には、送付部21aは、後段の2番目のノードに、チャレンジとして、記憶部22のチャレンジ/レスポンス情報22bを参照して2番目のノードに対応するチャレンジを送付する。
 2番目のノード20のハッシュ検証部21bは、前段の1番目のノード20から送付された(N-1)番目のハッシュ値と、自身が通知された(N-2)番目のハッシュ値にハッシュ関数を作用させたハッシュ値とが一致するか否かを検証する(ステップS11)。
 ハッシュ検証部21bにおいてハッシュ値が一致した場合に、2番目のノード20の返送部21cは、送付されたチャレンジに対するレスポンスを返送する(ステップS12)。具体的には、返送部21cは、チャレンジに含まれるNonceを取り出してシードとしてセットする。そして、返送部21cは、ストレージコンテンツ情報22aを参照してレスポンスを生成し、1番目のノード20に返送する。
 1番目のノード20のレスポンス検証部21dは、返送されたレスポンスを検証する(ステップS13)。具体的には、レスポンス検証部21dは、記憶部22のチャレンジ/レスポンス情報22bを参照し、返送されたレスポンスが正常なレスポンスと一致するか否かを検証する。レスポンス検証部21dは、一致する場合には、2番目のノード20が正常と判定し、一致しない場合には、2番目のノード20が感染していると判定する。
 また、レスポンス検証部21dは、検証結果をベースステーション10の集約部11dに通知する(ステップS14)。
 同様に、2番目のノード20では、送付部21aが、3番目のノード20に、通知部11cから通知された(N-2)番目のハッシュ値と、3番目のノード20に対するチャレンジとを送付する(ステップS20)。
 3番目のノード20のハッシュ検証部21bは、前段の2番目のノード20から送付された(N-2)番目のハッシュ値と、自身が通知された(N-3)番目のハッシュ値にハッシュ関数を作用させたハッシュ値とが一致するか否かを検証する(ステップS21)。
 ハッシュ検証部21bにおいてハッシュ値が一致した場合に、3番目のノード20の返送部21cは、送付されたチャレンジに対するレスポンスを返送する(ステップS22)。
 2番目のノード20のレスポンス検証部21dは、返送されたレスポンスが正常なレスポンスと一致するか否かを検証する(ステップS23)。レスポンス検証部21dは、一致する場合には、3番目のノード20が正常と判定し、一致しない場合には、3番目のノード20が感染していると判定する。
 また、レスポンス検証部21dは、検証結果をベースステーション10の集約部11dに通知する(ステップS24)。
 同様に、i番目のノード20では、送付部21aが、(i+1)番目のノード20に、通知部11cから通知された(N-i)番目のハッシュ値と、(i+1)番目のノード20に対するチャレンジとを送付する。
 具体的には、送付部21aは、後段の(i+1)番目のノードに、チャレンジとして、記憶部22のチャレンジ/レスポンス情報22bを参照して該後段の(i+1)番目のノードに対応するチャレンジを送付する。
 (i+1)番目のノード20のハッシュ検証部21bは、前段のi番目のノード20から送付された(N-i)番目のハッシュ値と、自身が通知された(N-(i+1))番目のハッシュ値にハッシュ関数を作用させたハッシュ値とが一致するか否かを検証する。
 ハッシュ検証部21bにおいてハッシュ値が一致した場合に、(i+1)番目のノード20の返送部21cは、送付されたチャレンジに対するレスポンスを返送する。
 レスポンス検証部21dは、記憶部22のチャレンジ/レスポンス情報22bを参照し、返送されたレスポンスが正常なレスポンスと一致するか否かを検証する。レスポンス検証部21dは、一致する場合には、後段のノード20が正常と判定し、一致しない場合には、後段のノード20が感染していると判定する。また、レスポンス検証部21dは、検証結果をベースステーション10の集約部11dに通知する。
 検知システム1では、N番目のノード20と1番目のノード20との間の処理に達するまで、上記と同様の処理を繰り返す。
 そして、集約部11dは、各ノード20のレスポンス検証の結果のうち、1つでも後段のノード20が感染していると判定結果が含まれている場合には、ネットワーク内に感染したノード20が存在するものとして、例えばアラートを発出する。これにより、一連の検知処理が完了する。
[効果]
 以上、説明したように、検知システム1において、ベースステーション10では、探索部11aが、ネットワーク内の全てのノードを1度だけ通る周回路を探索する。算出部11bが、ネットワーク内のノードの数と同数のハッシュ値を順に算出する。また、通知部11cが、各ノードに対し、周回路における順番と、算出されたハッシュ値のうち該順番に応じたハッシュ値と、周回路における後段のノードとを通知する。ノード20では、送付部21aが、通知部11cから通知された順番に従って、後段のノードに、通知されたハッシュ値とチャレンジとを送付する。また、ハッシュ検証部21bが、前段のノードから送付されたハッシュ値と、通知されたハッシュ値から所定の方法で算出した値とが一致するか否かを検証する。また、返送部21cが、ハッシュ値が一致した場合に、送付されたチャレンジに対するレスポンスを返送する。また、レスポンス検証部21dが、返送されたレスポンスを検証する。
 これにより、検知システム1は、ノード群の全体に対する1回の処理で完全性確認を行うことが可能となる。これにより、通信オーバヘッド等を大幅に削減して、通信回数と計算コストとを抑制して完全性確認を行うことが可能となる。このように、安全に各ノードの秘密情報を保持できる検証サーバーを不要として、ネットワーク内に存在する全ての機器の完全性確認を効率よく行うことが可能となる。
 また、ノード20の記憶部22は、ネットワーク内の各ノードに対して送付するチャレンジと該チャレンジに対する正常なレスポンスとの組み合わせを記憶する。この場合に、送付部21aは、後段のノードに、チャレンジとして、記憶部22を参照して該後段のノードに対応するチャレンジを送付する。また、レスポンス検証部21dは、記憶部22を参照し、返送されたレスポンスが正常なレスポンスと一致するか否かを検証する。これにより、検知装置としてのノード20が、安全に各ノードの秘密情報を保持できる検証サーバーを不要として、ネットワーク内に存在する全てのノード20の完全性確認を高精度かつ効率よく行うことが可能となる。
 また、通知部11cが、周回路の各ノードに、該周回路における順番の昇順に、算出された前記ハッシュ値を算出された順番の降順に通知する。この場合に、ハッシュ検証部21bは、送付されたハッシュ値と、通知されたハッシュ値から算出したハッシュ値とが一致するか否かを検証する。これにより、所定の周回路どおりに効率よくノード20の完全性確認を行うことが可能となる。
 また、ベースステーション10において、集約部11dが、ハッシュ検証部21bまたはレスポンス検証部21dの検証の結果を集約する。これにより、1つでも後段のノード20が感染していると判定することが可能となる。したがって、検知システム1は、ネットワーク内に感染したノード20が存在するか否かを容易に確認することが可能となる。
[プログラム]
 上記実施形態に係る検知システム1が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、ベースステーション10およびノード20は、パッケージソフトウェアやオンラインソフトウェアとして上記の検知処理を実行する検知プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の検知プログラムを情報処理装置に実行させることにより、情報処理装置をベースステーション10およびノード20として機能させることができる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。また、ベースステーション10およびノード20の機能を、クラウドサーバーに実装してもよい。
 図7は、検知プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
 ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
 また、検知プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明したベースステーション10およびノード20が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
 また、検知プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
 なお、検知プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、検知プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
 1 検知システム
 10 ベースステーション
 11、21 制御部
 11a 探索部
 11b 算出部
 11c 通知部
 11d 集約部
 12、22 記憶部
 12a ノード情報
 20 ノード(検知装置)
 21a 送付部
 21b ハッシュ検証部
 21c 返送部
 21d レスポンス検証部
 22a ストレージコンテンツ情報
 22b チャレンジ/レスポンス情報

Claims (7)

  1.  2以上のノードと、各ノードに関する情報を保持するベースステーションとを有する検知システムであって、
     前記ベースステーションは、
     ネットワーク内の全てのノードを1度だけ通る周回路を探索する探索部と、
     ネットワーク内のノードの数と同数のハッシュ値を順に算出する算出部と、
     各ノードに対し、前記周回路における順番と、算出された前記ハッシュ値のうち該順番に応じたハッシュ値と、前記周回路における後段のノードとを通知する通知部と、を有し、
     前記ノードは、
     前記通知部から通知された順番に従って、後段のノードに、通知されたハッシュ値とチャレンジとを送付する送付部と、
     送付された前記ハッシュ値と、通知された前記ハッシュ値から所定の方法で算出した値とが一致するか否かを検証するハッシュ検証部と、
     前記ハッシュ値が一致した場合に、送付された前記チャレンジに対するレスポンスを返送する返送部と、
     返送された前記レスポンスを検証するレスポンス検証部と、
     を有することを特徴とする検知システム。
  2.  前記ノードは、ネットワーク内の各ノードに対して送付するチャレンジと該チャレンジに対する正常なレスポンスとの組み合わせを記憶する記憶部をさらに有し、
     前記送付部は、前記後段のノードに、前記チャレンジとして、前記記憶部を参照して該後段のノードに対応するチャレンジを送付し、
     前記レスポンス検証部は、前記記憶部を参照し、返送された前記レスポンスが正常なレスポンスと一致するか否かを検証する
     ことを特徴とする請求項1に記載の検知システム。
  3.  前記通知部は、前記周回路の各ノードに、該周回路における順番の昇順に、算出された前記ハッシュ値を算出された順番の降順に通知し、
     前記ハッシュ認証部は、送付された前記ハッシュ値と、通知された前記ハッシュ値から算出したハッシュ値とが一致するか否かを検証する
     ことを特徴とする請求項1に記載の検知システム。
  4.  前記ベースステーションが、前記ハッシュ検証部または前記レスポンス検証部の検証の結果を集約する集約部をさらに有することを特徴とする請求項1に記載の検知システム。
  5.  ネットワーク内の各検知装置に対して送付するチャレンジと該チャレンジに対する正常なレスポンスとの組み合わせを記憶する記憶部と、
     ネットワーク内の全ての検知装置を1度だけ通る所定の周回路の順番に従って、後段の検知装置に、前記記憶部を参照して該後段の検知装置に対応するチャレンジを送付する送付部と、
     送付された前記チャレンジに対するレスポンスを返送する返送部と、
     前記記憶部を参照し、返送された前記レスポンスが正常なレスポンスと一致するか否かを検証するレスポンス検証部と、
     を有することを特徴とする検知装置。
  6.  2以上のノードと、各ノードに関する情報を保持するベースステーションとを有する検知システムが実行する検知方法であって、
     ネットワーク内の全てのノードを1度だけ通る周回路を探索する探索工程と、
     ネットワーク内のノードの数と同数のハッシュ値を順に算出する算出工程と、
     各ノードに対し、前記周回路における順番と、算出された前記ハッシュ値のうち該順番に応じたハッシュ値と、前記周回路における後段のノードとを通知する通知工程と、
     前記通知工程で通知された順番に従って、後段のノードに、通知されたハッシュ値とチャレンジとを送付する送付工程と、
     送付された前記ハッシュ値と、通知された前記ハッシュ値から所定の方法で算出した値とが一致するか否かを検証するハッシュ検証工程と、
     前記ハッシュ値が一致した場合に、送付された前記チャレンジに対するレスポンスを返送する返送工程と、
     返送された前記レスポンスを検証するレスポンス検証工程と、
     を含んだことを特徴とする検知方法。
  7.  ネットワーク内の全てのノードを1度だけ通る周回路を探索する探索ステップと、
     ネットワーク内のノードの数と同数のハッシュ値を順に算出する算出ステップと、
     各ノードに対し、前記周回路における順番と、算出された前記ハッシュ値のうち該順番に応じたハッシュ値と、前記周回路における後段のノードとを通知する通知ステップと、
     前記通知ステップで通知された順番に従って、後段のノードに、通知されたハッシュ値とチャレンジとを送付する送付ステップと、
     送付された前記ハッシュ値と、通知された前記ハッシュ値から所定の方法で算出した値とが一致するか否かを検証するハッシュ検証ステップと、
     前記ハッシュ値が一致した場合に、送付された前記チャレンジに対するレスポンスを返送する返送ステップと、
     返送された前記レスポンスを検証するレスポンス検証ステップと、
     をコンピュータに実行させるための検知プログラム。
PCT/JP2021/045499 2021-12-10 2021-12-10 検知システム、検知装置、検知方法および検知プログラム WO2023105744A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2021/045499 WO2023105744A1 (ja) 2021-12-10 2021-12-10 検知システム、検知装置、検知方法および検知プログラム
AU2021477492A AU2021477492A1 (en) 2021-12-10 2021-12-10 Detection system, detection device, detection method and detection program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/045499 WO2023105744A1 (ja) 2021-12-10 2021-12-10 検知システム、検知装置、検知方法および検知プログラム

Publications (1)

Publication Number Publication Date
WO2023105744A1 true WO2023105744A1 (ja) 2023-06-15

Family

ID=86729892

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/045499 WO2023105744A1 (ja) 2021-12-10 2021-12-10 検知システム、検知装置、検知方法および検知プログラム

Country Status (2)

Country Link
AU (1) AU2021477492A1 (ja)
WO (1) WO2023105744A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013219710A (ja) * 2012-04-12 2013-10-24 Toyota Motor Corp 車載制御装置の認証システム及び車載制御装置の認証方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013219710A (ja) * 2012-04-12 2013-10-24 Toyota Motor Corp 車載制御装置の認証システム及び車載制御装置の認証方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
AMBROSIN, M. ET AL.: "Collective Remote Attestation at the Internet of Things Scale: State-of- the-Art and Future Challenges", IEEE COMMUNICATIONS SURVEYS & TUTOLIALS, vol. 22, no. 4, 2020, pages 2447 - 2461, XP011821400, DOI: 10.1109/COMST.2020.3008879 *
CONTI, M. DUSHKU ET AL.: "L. V. RADIS: Remote Attestation of Distributed IoT Services", 2019 SIXTH INTERNATIONAL CONFERENCE ON SOFTWARE DEFINED SYSTEMS (SDS, June 2019 (2019-06-01), pages 25 - 32, XP033580001, DOI: 10.1109/SDS.2019.8768670 *
KUANG, B. ET AL.: "ESDRA: An Efficient and Secure Distributed Remote Attestation Scheme for IoT Swarms", IEEE INTERNET OF THINGS JOURNAL, vol. 6, no. 5, October 2019 (2019-10-01), pages 8372 - 8383, XP011749761, DOI: 10.1109/JIOT.2019.2917223 *
YI YANGXINRAN WANGSENCUN ZHUGUOHONG CAO: "Distributed Software-based Attestation for Node Compromise Detection in Sensor Networks", IEEE INTERNATIONAL SYMPOSIUM ON RELIABLE DISTRIBUTED SYSTEMS

Also Published As

Publication number Publication date
AU2021477492A1 (en) 2024-06-06

Similar Documents

Publication Publication Date Title
JP7398000B2 (ja) ブロックチェーンに基づくデータ検出方法及び装置並びにコンピュータ装置及びプログラム
US9747450B2 (en) Attestation using a combined measurement and its constituent measurements
US9444806B2 (en) Method, apparatus and server for identity authentication
US20220027970A1 (en) Method and apparatus for agreement of block in blockchain network
CN109634615B (zh) 应用安装包的发布方法、验证方法和装置
CN113127569A (zh) 用于区块链系统的共识方法、装置、电子设备及存储介质
CN112714158A (zh) 事务处理方法、中继网络、跨链网关、系统、介质和设备
CN106936768B (zh) 基于可信芯片的白名单网络管控系统及方法
CN110688428A (zh) 用于发布智能合约的方法和装置
WO2018179293A1 (ja) 検証情報付与装置、検証装置、情報管理システム、方法およびプログラム
US20200401317A1 (en) Method, device, and computer program product for managing data placement
US20220100493A1 (en) METHOD FOR UPGRADING IoT TERMINAL DEVICE AND ELECTRONIC DEVICE THEREOF
WO2023105744A1 (ja) 検知システム、検知装置、検知方法および検知プログラム
CN115964721A (zh) 一种程序验证方法及电子设备
US11940888B2 (en) Technology to provide fault tolerance for elliptic curve digital signature algorithm engines
US20220200807A1 (en) Device attestation
CN107229860A (zh) 在集中环境中安全管理桌面应用的方法及系统
Shivraj et al. A novel multi verifier device attestation scheme for swarm of devices
CN113132330A (zh) 可信状态证明的方法和相关设备
Veronese et al. Highly-resilient services for critical infrastructures
CN115941184B (zh) 加密模块故障处理方法、装置、电子设备、系统及芯片
CN113872923B (zh) 基于区块链系统的交易方法、更新方法、装置、设备及存储介质
Mondal et al. PReFeR: P hysically Re lated F unction bas ed R emote Attestation Protocol
AU2019464433B2 (en) Verification device, verification system, verification method, and verification program
KR102205779B1 (ko) 적은 자원을 활용한 무결성 상호 검증 방법 및 시스템

Legal Events

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

Ref document number: 21967238

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023565833

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2021477492

Country of ref document: AU

Ref document number: AU2021477492

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 2021967238

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2021477492

Country of ref document: AU

Date of ref document: 20211210

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2021967238

Country of ref document: EP

Effective date: 20240604