Detection system, detection method, and detection program
A detection system includes a node and a verification server, wherein the node includes first processing circuitry configured to generate a plurality of random values based on a seed received from the verification server, and generate a response based on information on an area of a first storage content specified by the plurality of generated random values, and transmit the generated response to the verification server, and the verification server includes second processing circuitry configured to generate a plurality of random values based on the seed, generate a verification response based on information on an area of a second storage content specified by the plurality of generated random values, determine whether the response received from the node matches the verification response, and output a determination result.
1 . A detection system comprising:
a node; and
a verification server, wherein
the node includes first processing circuitry configured to:
generate a plurality of random values based on a seed received from the verification server, and
generate a response based on information on an area of a first storage content specified by the plurality of generated random values, and transmit the generated response to the verification server, and
the verification server includes second processing circuitry configured to:
generate a plurality of random values based on the seed,
generate a verification response based on information on an area of a second storage content specified by the plurality of generated random values,
determine whether the response received from the node matches the verification response, and
output a determination result,
wherein the first processing circuitry is further configured to execute processing of gradually narrowing a range that a next random value can take, each time a random value is generated, to preemptively exclude invalid values.
2 . The detection system according to claim 1 , wherein the first processing circuitry is further configured to set a seed received from the verification server to a random number generator to calculate a random value, update the seed based on information on an area of the first storage content specified by the calculated random value, and calculate a next random value.
3 . The detection system according to claim 1 , wherein the first processing circuitry is further configured to generate an array corresponding to the first storage content, exchange information on a first area of the array specified by a random value with information on a second area of the array specified by a variable value based on a memory size of the first storage content, and generate the response based on the second area after exchange.
4 . The detection system according to claim 1 , wherein the second processing circuitry is further configured to output a warning in a case where the response received from the node does not match the verification response.
5 . The detection system according to claim 1 , wherein:
the first processing circuitry is further configured to generate an array s corresponding to memory cells of the first storage content, and wherein the random values are used to exchange a value of the array s at a randomly selected index j with a value of the array s at a current index i.
6 . The detection system according to claim 5 , wherein:
the first processing circuitry is further configured to decrement the current index i after each exchange, thereby gradually narrowing the range for the next random value.
7 . The detection system according to claim 5 , wherein:
the first processing circuitry is further configured to generate a checksum or hash digest of a memory cell corresponding to the value of the array s at the current index i after the exchange.
8 . The detection system according to claim 1 , wherein:
the first processing circuitry includes a random number generator, and the first processing circuitry is configured to acquire a random integer value from 0 to a current variable i or less from the random number generator.
9 . The detection system according to claim 1 , wherein:
the first processing circuitry is configured to generate the response information based on information on the area of the first storage content as a time-series list of checksums or hash digests generated during a random scan of the first storage content.
10 . The detection system according to claim 1 , wherein:
the node comprises communication circuitry configured to receive challenge information containing the seed from the verification server and transmit the response to the verification server.
11 . The detection system according to claim 1 , wherein:
the node comprises a storage including a flash memory or a Random Access Memory (RAM) storing the first storage content.
12 . The detection system according to claim 1 , wherein:
the second processing circuitry of the verification server is configured to set a first random number seed in a random number generator based on a nonce value included in challenge information sent to the node.
13 . A detection method of a detection system including a node and a verification server, the method comprising:
in the node,
generating a plurality of random values based on a seed received from the verification server, generating a response based on information on an area of a first storage content specified by the plurality of generated random values, and transmitting the generated response to the verification server; and
gradually narrowing a range that a next random value can take, each time a random value is generated, to preemptively exclude invalid values, and
in the verification server,
generating a plurality of random values based on the seed and generating a verification response based on information on an area of a second storage content specified by the plurality of generated random values, and
determining whether the response received from the node matches the verification response, and outputting a determination result.
14 . The detection method according to claim 13 , further comprising:
generating an array corresponding to memory cells of the first storage content;
acquiring a random integer value j; and
exchanging a value of the array at the random integer value j with a value of the array at a current index i.
15 . The detection method according to claim 14 , further comprising:
generating a checksum or hash digest of a memory cell corresponding to the value of the array at the current index i; and
updating the seed based on the checksum or hash digest.
16 . The detection method according to claim 13 , wherein:
the gradually narrowing the range comprises decrementing a variable representing a current size of a selectable range of the first storage content after each generation of a random value.
17 . A non-transitory computer-readable recording medium storing therein a detection program that causes a computer to execute a process comprising:
transmitting a seed to a node, causing the node to execute a first random scan for a first storage content based on the seed and acquiring a response resulting from the first random scan from the node;
generating a plurality of random values based on the seed and generating a verification response based on information on an area of the second storage content specified by the plurality of generated random values; and
determining whether the response received from the node and the verification response match, and outputting a determination result,
wherein the generating includes gradually narrowing a range that a next random value can take, each time a random value is generated, to preemptively exclude invalid values.
18 . The non-transitory computer-readable recording medium according to claim 17 , wherein the process further comprises:
generating an array corresponding to the first storage content; and
exchanging a value in the array specified by one of the plurality of random values with a value in the array specified by a loop variable that decreases with each iteration of the first random scan.
19 . The non-transitory computer-readable recording medium according to claim 17 , wherein the process further comprises:
generating response information in which a checksum or hash digest generated from each memory cell of the first storage content is set as a time-series list.