WO2013145026A1 - ネットワークシステム、ノード、検証ノードおよび通信方法 - Google Patents

ネットワークシステム、ノード、検証ノードおよび通信方法 Download PDF

Info

Publication number
WO2013145026A1
WO2013145026A1 PCT/JP2012/002237 JP2012002237W WO2013145026A1 WO 2013145026 A1 WO2013145026 A1 WO 2013145026A1 JP 2012002237 W JP2012002237 W JP 2012002237W WO 2013145026 A1 WO2013145026 A1 WO 2013145026A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
packet
verification
nodes
value
Prior art date
Application number
PCT/JP2012/002237
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/JP2012/002237 priority Critical patent/WO2013145026A1/ja
Publication of WO2013145026A1 publication Critical patent/WO2013145026A1/ja
Priority to US14/456,117 priority patent/US20140348000A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/108Source integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Definitions

  • the technology disclosed in this specification relates to a technology for transmitting and receiving packets in an ad hoc network.
  • Ad hoc network is a type of self-configuring network that is linked by wireless communication.
  • An ad hoc network is composed of a plurality of devices having a communication function.
  • a device having a communication function in an ad hoc network is called a node.
  • each node in the ad hoc network transmits and receives packets by multi-hop communication via nodes other than the communication target node, so that the communication target can be transmitted without going through a relay station such as an access point or a base station. Communication with the other node becomes possible.
  • Multi-hop communication is a technology that enables nodes that do not exist within the communication range of each other to communicate via another node that exists within the communication range of each node.
  • a meter-reading system that collects the power consumption of each home via the ad hoc network by incorporating a node capable of wireless communication into the power meter of each home.
  • a packet including the power consumption amount of each home detected by each electric meter is transferred from each node included in each home electric meter to the server of the electric power company.
  • it is required to perform secure communication from the viewpoint of confidentiality and prevention of tampering.
  • the node receiving the packet verifies the integrity of the data in the packet and the validity of the packet source.
  • the integrity of data in a packet means that the data set in the packet is not falsified or lost.
  • the validity of the packet transmission source means that a node that normally participates in the ad hoc network is the transmission source.
  • each node detects an illegal packet transmitted from an illegal node by executing a message authentication code (MAC) verification on the received packet.
  • MAC message authentication code
  • each node When each node performs a process of verifying a packet, a load due to the verification process occurs in each node in addition to the packet transmission / reception process. Especially when the processing capability of each node is not high, it is necessary to suppress processing loads other than transmission / reception processing as much as possible.
  • an object of the present invention is to effectively verify packets flowing in the network.
  • a transmission route of a second packet is established by exchanging a first packet between a plurality of nodes, and the processing capability is higher than that of the plurality of nodes and the plurality of nodes.
  • the verification node transmits, to at least a part of the plurality of nodes, a communication unit that transmits a third packet including an identifier indicating that the verification node is a verification node;
  • a verification unit that verifies the validity of the second packet, and each of the plurality of nodes
  • a communication unit that receives the first packet from another node of the plurality of nodes and receives the third packet from the verification node; and Based on the fine said third packet, from among the verification node and the other nodes, and a control unit for determining the destination of the second packet.
  • FIG. 1 is an explanatory diagram for comparing an ad hoc network system according to the present embodiment with a conventional ad hoc network system.
  • FIG. 2 is a diagram illustrating a data configuration example of the management packet.
  • FIG. 3 is a diagram illustrating a data configuration example of a data packet.
  • FIG. 4 is a functional block diagram of the node Nx.
  • FIG. 5 is a diagram for comparing a data configuration example of a conventional routing table with a data configuration example of a routing table according to the present embodiment.
  • FIG. 6 is a diagram for explaining a route through which a time packet arrives from the sink node SN to the node Nb.
  • FIG. 7 is a diagram for explaining exchange of hello packets between nodes.
  • FIG. 1 is an explanatory diagram for comparing an ad hoc network system according to the present embodiment with a conventional ad hoc network system.
  • FIG. 2 is a diagram illustrating a data configuration example of the management packet.
  • FIG. 8 shows an example of data stored in the key information storage unit 132.
  • FIG. 9 is a functional block diagram of the node Ntest.
  • FIG. 10 is a flowchart of the routing table generation process.
  • FIG. 11 is a flowchart of the transfer process in the node Nx.
  • FIG. 12 is a flowchart of the transfer process in the node Ntest.
  • FIG. 13 is a hardware configuration example of the node Nx.
  • FIG. 14 is a hardware configuration example of the verification node Ntest.
  • FIG. 1 is an explanatory diagram for comparing an ad hoc network system according to the present embodiment with a conventional ad hoc network system.
  • the conventional ad hoc network system includes a plurality of nodes Nx, a sink node SN, and a server S.
  • the server S and the sink node SN are connected via a normal network 101 such as the Internet, LAN, or WAN.
  • the sink node SN and the node Nx are connected via the ad hoc network 100.
  • nodes Na to Nh are shown as representatives. When it is not necessary to distinguish the nodes Na to Nh, they are denoted as a node Nx.
  • the sink node SN is a relay device that connects the ad hoc network 100 and the normal network 101.
  • the sink node SN can transmit and receive both the protocol format information of the ad hoc network 100 and the protocol format information of the normal network 101.
  • the sink node SN performs communication by protocol-converting information between the ad hoc network 100 and the normal network 101. For example, a packet transmitted from any of the nodes Nx in the ad hoc network 100 to the server S is subjected to protocol conversion at the sink node SN. Thereafter, the sink node SN transmits the packet to the normal network 101, so that the packet reaches the server S.
  • Each node Nx is a device capable of multi-hop communication with another node Nx or sink node SN. Note that the other node Nx or the sink node SN needs to exist within a communicable area. In the ad hoc network 100, it is not necessary that all the nodes Na to Nh can directly communicate with the sink node SN, and each node Na to Nh communicates with the sink node SN by passing through other nodes.
  • Each node Nx generates a routing table. Each node Nx transmits a packet according to the routing table.
  • FIG. 1 when a packet is transmitted to a sink node, it is assumed that the conventional ad hoc system follows a route indicated by a white arrow and a hatched arrow.
  • the packet passes through the node Nb and the node Na. Further, in the process of transmitting the packet to the sink node SN, the node Nb and the node Na included in the path verify the integrity of the data in the packet and the validity of the packet transmission source. For example, the node Nb and the node Na perform verification using the MAC value.
  • the ad hoc network system includes a plurality of nodes Nx, a sink node SN, a server S, and a verification node Ntest.
  • the Ntest is a device having a higher processing capability than the node Nx.
  • the verification node Ntest is a device capable of multihop communication with the node Nx.
  • the node Nx can perform multi-hop communication with the verification node Ntest in addition to the other node Nx or the sink node SN. Note that the other node Nx, the sink node SN, and the verification node Ntest need to exist within a communicable area.
  • any one of the node Na to the node Nh may fulfill the Ntest function. In that case, the processing capability is required to be higher than that of other nodes.
  • packets are transferred according to the routing table according to this embodiment.
  • the ad hoc system according to the present embodiment follows a route indicated by a white arrow and a black arrow.
  • the packet passes through the nodes Nb, Ntest, and Na. Further, in the process of transmitting the packet to the sink node SN, the node Ntest included in the path verifies the integrity of the data in the packet and the validity of the transmission source of the packet. For example, the node Ntest performs verification using the MAC value.
  • Nodes Nb and Na do not have to perform MAC verification. However, if there is a margin in processing capacity, the other nodes Nb and Na may also perform MAC verification. In the following description, it is assumed that verification using the MAC value is performed only by Ntest, and that the node Nx does not perform MAC verification.
  • the ad hoc network system according to the embodiment of the present invention is different from the conventional ad hoc network system in that the packet transmission path includes a path passing through the verification node Ntest.
  • a packet flowing through an ad hoc network includes a plurality of types of packets. For example, there are a management packet and a data packet.
  • the management packet is a packet to be broadcast, and is a packet for sharing information necessary for each node Nx or verification node Nx to communicate with other nodes or sink node packets SN.
  • the management packet includes a hello packet for each node to distribute a session key to surrounding nodes and a time packet for a sink node to distribute time information to each node.
  • a data packet is a packet that is unicast and includes data that is to be transmitted to a specified destination.
  • FIG. 2 is a diagram illustrating a data configuration example of the management packet.
  • the management packet shown in FIG. 2 is exchanged between the broadcasting device and other devices existing in the communicable range by broadcasting each of the sink node, each node Nx, and the verification node Ntest.
  • the management packet 1 is assigned a header information storage unit 2 and a payload data storage unit 3 respectively.
  • the header information storage unit 2 stores header information.
  • the header information includes a destination address, a local source address, a global source address, a packet type, and additional information.
  • the payload data storage unit 3 stores payload data.
  • the destination address is a special address dedicated to broadcasting.
  • the destination address is an address “255.255.255.255” prepared in advance.
  • Each node receives a packet transmitted to an address set individually, but also receives a packet transmitted to the special address. That is, a packet in which a special address is set is received by all nodes that are in a range where communication with the node that transmitted the packet is possible.
  • the local transmission source address is information relating to the address of the device that transmits the management packet 1. In other words, the local transmission source address is rewritten to the address of the main device that transmits data each time a management packet is transmitted once during multi-hop communication.
  • the global transmission source address is information regarding the address of the device that generated the payload data. That is, the global transmission source address is information regarding the address of the device that is the starting point in multihop communication.
  • the packet type is information indicating the type of the packet. For example, “0” is set for a time packet that is a management packet, and “1” is set for a hello packet that is a management packet. In the case of a data packet, “2” is set.
  • Each node that has received the broadcast management packet determines whether or not to forward the received management packet to another node according to the packet type. For example, when the node Nx receives a management packet in which a special address is set as the destination address, and the packet type is “0”, the received management packet is transferred to another node Nx. That is, the time packet is transferred through the network as a target of multihop communication.
  • the node Nx receives a management packet in which a special address is set as the destination address and the packet type is “1”, the received management packet is not transferred to another node Nx. That is, the hello packet is excluded from the target of multi-hop communication, and the packet transfer converges at a certain node Nx.
  • the header information in the hello packet includes the local transmission source address and the global transmission source address.
  • the same address is set for the local source address and the global source address in the hello packet, only the local source address may be included in the header information of the hello packet.
  • the additional information is header information other than the above address and packet type, and is information according to the type of packet. For example, when the packet is a time packet, the additional information is information regarding the number of hops. The number of hops is stored as additional information in the header information storage unit 2 of the packet 1. The number of hops is the number of times that the packet has been subjected to multi-hop communication. For example, when the node Nc receives the time packet transmitted by the sink node SN via the node Na and the node Nb, “3” is set as the hop number in the management packet received by the node Nc. Yes.
  • the additional information is node type information.
  • the node type is stored in the header information storage unit 2 of the packet 1 as additional information.
  • the node type is information indicating the type of the node that generated the hello packet, and is an identifier for identifying the type of the node. For example, when the node that generated the hello packet is the verification node Ntest, the node type is “3”. When the node that generated the hello packet is not the verification node Ntest, the node type is “4”.
  • Payload data is information excluding header information. Also, the content of payload data varies depending on the type of packet. For example, when the packet is a time packet, time information is stored in the payload data storage unit 3 of the packet 1 as payload data. Each node Nx or verification node Ntest that has received the time packet acquires time information from the payload data storage unit and sets the time of each node Nx or verification node Ntest.
  • the payload data is information including a session key.
  • the session key is a key used for communication between two nodes of each node Nx and the verification node Ntest.
  • the session key is used when the payload data is encrypted.
  • each node When encrypting payload data with a session key, each node encrypts payload data with a session key corresponding to the destination. Therefore, the node that transfers the data packet decrypts the payload data in the received data packet with its own session key, and then re-encrypts it with the session key of the next transmission destination. By decoding the payload data, it is possible to verify the legitimacy of the transmission source.
  • Each node Nx or verification node Ntest that has received the hello packet acquires session key information from the payload data storage unit, and associates it with the local transmission source address in the key information storage unit of each node Nx or verification node Ntest.
  • the payload data may be encrypted with a server key shared with the sink node SN or the server S instead of the session key.
  • the server key is used for encryption of payload data, each node does not need to perform decryption and re-encryption.
  • the sink node SN is designated as the global destination address, the payload data is decoded when the sink node SN receives the packet.
  • each node Nx does not need to perform decryption and re-encryption processing, the processing load is reduced compared to the case where payload data is encrypted using a session key.
  • the payload data storage unit of the hello packet may be empty. In the present embodiment, description will be made assuming that a server key is used for encryption.
  • FIG. 3 is a diagram illustrating a data configuration example of a data packet.
  • a header information storage unit 5, a payload data storage unit 6, and a value storage unit 7 are allocated to the data packet 4, respectively.
  • the header information storage unit 5 stores header information.
  • the header information includes a local transmission source address, a local transmission destination address, a global transmission source address, a global transmission destination address, a packet type, and attached information.
  • Payload data is stored in the payload data storage unit 6.
  • the value storage unit 7 stores a value calculated for predetermined data in the packet.
  • the local source address, global source address, and packet type are the same information as the management packet 1. However, in the case of a data packet, “2” is set as the packet type.
  • the local transmission destination address is information related to the address of the device that is the transmission destination of the data packet 4 in one communication forming the multi-hop communication.
  • the global transmission destination address is information related to the address of the device that finally receives the payload data described in the payload data storage unit 6. That is, the global transmission destination address is information related to the address of a device that is an end point in multihop communication.
  • Supplied information is header information other than various addresses and packet types. For example, information relating to the number of hops, transmission date and time, and the like is stored as attached information.
  • Payload data is information excluding header information and values.
  • the payload data is, for example, data acquired from the sensor by each node Nx.
  • the power consumption data acquired by the node Nc is set in the payload data storage unit 6.
  • the value is a value having a predetermined logical relationship with predetermined data in the data packet.
  • the MAC value is calculated for the payload data, the global transmission destination address, and the global transmission source address.
  • the data packet shown in FIG. 3 flows in the ad hoc network according to the routing table of each node Nx and the verification node Ntest.
  • the integrity of the data is verified with respect to the payload data in the data packet, and the validity of the global transmission source is verified.
  • FIG. 4 is a functional block diagram of the node Nx.
  • the node Nx includes a communication unit 11, a control unit 12, a storage unit 13, and an acquisition unit 14.
  • the communication unit 11 is a processing unit that wirelessly communicates with another node Nx, the verification node Ntest, or the sink node SN. For example, the communication unit 11 transmits / receives a hello packet or a data packet to / from another node Nx existing in a communicable range. When the communication unit 11 can communicate with the verification node Ntest, the communication unit 11 transmits the data packet to the verification node Ntest.
  • the control unit 12 is a processing unit that controls various processes of the node Nx. For example, when the node Nx is a global transmission source, the control unit 12 generates various packets. Moreover, the control part 12 produces
  • the storage unit 13 stores various information.
  • the storage unit 13 stores an encryption key used for encryption processing, a routing table, and the like.
  • the storage unit 13 includes a routing table storage unit 131 and a key information storage unit 132.
  • the acquisition unit 14 is a processing unit that acquires data. For example, the acquisition unit 14 acquires data such as power consumption and temperature from a sensor that can communicate with the node Nx. The acquired data is transmitted as payload data of a data packet to another node Nx, verification node Ntest, or sink node.
  • the control unit 12 includes a packet generation unit 121, a calculation unit 122, an encryption unit 123, a route generation unit 124, and a decryption unit 125.
  • the packet generator 121 is a processor that generates data packets and hello packets. For example, when the node Nx is the global transmission source, the packet generation unit 121 sets the address of the own node as the global transmission source address and the local transmission source address in the header information storage unit. Furthermore, the global destination address is determined, and the determined global destination address is set in the header information storage unit.
  • the packet generation unit 121 sets the data acquired by the acquisition unit 14 in the payload data storage unit. Further, the packet generation unit 121 refers to the routing table stored in the storage unit 13 and determines the local transmission destination address of the data packet. The packet generation unit 121 sets the determined address as the local transmission destination address in the header information storage unit. Further, the packet generation unit 121 sets the packet type “2” indicating the data packet in the header information storage unit.
  • the packet generation unit 121 performs a process of updating the data packet when transferring the received data packet. That is, the local transmission source address and the local transmission destination address are updated. Details will be described later.
  • the packet generation unit 121 when generating a hello packet, sets the address of its own node as the global transmission source address and local transmission source address in the header information storage unit.
  • the packet generator 121 sets “1” as the packet type of the hello packet and sets “4” as the node type in the additional information of the hello packet.
  • the node type “4” indicates that the node Nx is not the verification node Ntest. Further, the packet generation unit 121 sets predetermined information such as session key information in the payload data storage unit.
  • the calculation unit 122 is a processing unit that calculates a value having a predetermined logical relationship with respect to predetermined data in a data packet when the node Nx is a global transmission source.
  • the calculation unit 122 calculates the MAC value for the payload data, the global transmission destination address, and the global transmission source address using the MAC key.
  • the MAC key is a key shared in advance by the node Nx, the verification node Ntest, and the sink node SN. Further, a different MAC key may be used for each node Nx.
  • the encryption unit 123 executes payload data encryption processing as necessary. For example, the encryption unit 123 encrypts the payload data using the encryption key stored in the key information storage unit 132.
  • the route generation unit 124 generates a routing table based on the management packet received by the communication unit 11. Then, the route generation unit 124 stores the generated routing table in the routing table storage unit 131. The route generation unit 124 updates the routing table every time a management packet is received or periodically.
  • the decryption unit 125 decrypts the encrypted payload data as necessary.
  • the decoding unit 125 refers to the header information storage unit in the packet, and determines whether the global transmission destination address is the address of its own node. When the global transmission destination address is the address of its own node, the decryption unit 125 decrypts the payload data.
  • control unit 12 of the node Nx may further include a verification unit. Then, the control unit may cause the verification unit to function when the processing load is less than or equal to the processing capacity of the node Nx.
  • the verification unit verifies the integrity of the payload data and the validity of the global transmission source using the value stored in the received packet. Specifically, the same processing as that of the verification unit 223 of the verification node Ntest described later is performed.
  • FIG. 5 is a diagram for comparing a data configuration example of a conventional routing table with a data configuration example of a routing table according to the present embodiment.
  • FIG. 5A is a diagram illustrating a data configuration example of the routing table according to the present embodiment.
  • FIG. 5B is a diagram illustrating a data configuration example of a conventional routing table.
  • the routing table stored in the routing table storage unit 131 in this embodiment stores the global transmission destination address, the local transmission destination address, the communication strength, the number of hops, the node type, and the evaluation value in association with each other.
  • FIG. 5A shows the routing table of the node Nb.
  • the conventional routing table stores a global destination address, a local destination address, communication strength, the number of hops, and an evaluation value in association with each other. That is, the conventional routing table has no information regarding the node type.
  • the routing table shown in FIG. 5A shows the communication strength, the number of hops, and the node type in order to explain the difference between the two, but the communication strength, the number of hops, and the node type are different from the routing table. May be managed.
  • the calculated evaluation value is stored in association with the global destination address and the local destination address based on the communication strength, the number of hops, and the node type.
  • only a combination of a global transmission destination address with a predetermined evaluation value or more and a local transmission destination address may be stored in the routing table.
  • the global destination address is information on the address of a device corresponding to the end point in multihop communication.
  • the local transmission destination address is information on an address of a device that is a transmission destination of one communication in the multi-hop communication.
  • the local transmission destination address stores information on the address of another node with which the node Nx storing the routing table can communicate.
  • the communication strength is a value indicating the strength of stability in communication between the node corresponding to each local destination address and the own node. For example, the communication strength is calculated based on the number of management packets and the number of data packets received from the node corresponding to the signal reception strength and the local transmission destination address. Further, the communication strength may be calculated based on a communication success probability, an error rate, a received electric field strength, and the like. In this embodiment, the communication strength is the sum of the number of management packets and the number of data packets received from the node corresponding to the local transmission destination address.
  • the number of hops is a value indicating how many times the management packet transmitted by the node corresponding to the global transmission destination address has been transferred by the own node. For example, the number of hops set as additional information in the time packet is stored in the item “number of hops” in the routing table.
  • the node type is information indicating the type of node corresponding to the local transmission source address.
  • Information corresponding to the node type set in the hello packet is stored in the item “node type” in the routing table.
  • the evaluation value is a value indicating which address is preferable as the local destination of the data packet for each combination of the global destination address and the local destination address. That is, the evaluation value indicates the possibility of the data packet being transmitted to each local transmission destination address.
  • the evaluation value is calculated based on the communication strength, the number of hops, and the node type.
  • the evaluation value is calculated as a larger value as the communication strength increases and the number of hops decreases. Furthermore, the evaluation value is calculated as a large value when the node type indicates that the node corresponding to the local transmission destination address is a verification node. For example, it is calculated based on Equation 1.
  • the evaluation value is X
  • the communication strength is A
  • the hop count is B
  • the constant is ⁇
  • the evaluation coefficient is ⁇ .
  • the constant is a value for correcting the evaluation value so as to be in an appropriate range.
  • is “6”.
  • the evaluation coefficient is a value for weighting according to the node type. That is, the value is changed according to the node type. For example, when the node type is “3” indicating that the node is a verification node, ⁇ is “2”. On the other hand, when the node type is “4” indicating that the node is not a verification node, ⁇ is “1”.
  • the conventional routing table cannot manage the node type. Therefore, the evaluation value is calculated without considering the node type. Therefore, according to the conventional method, the higher the communication strength and the smaller the hop count, the higher the evaluation value. For example, the evaluation value shown in FIG. 5B is calculated. Therefore, when the global transmission destination address is the address of the sink node SN, the node Nb determines the node Na having the highest evaluation value as the local transmission destination.
  • the verification node Ntest is added to the ad hoc network, and the node type is further added in the calculation of the evaluation value. Therefore, the evaluation value corresponding to Ntest is weighted as compared with the evaluation values of other nodes Nx. For example, when the node type is “3”, the route generation unit 124 in the node Nx adopts “2” as the evaluation coefficient, thereby doubling the evaluation value compared to the case of the node Nx. can do.
  • the node Nb determines the node Ntest having the highest evaluation value as the local transmission destination. Therefore, the data packet that needs to be verified can be transferred to the verification node Ntest.
  • the evaluation value having the verification node as the local transmission destination Ntest is weighted, so that the data packet is sent to the verification node Ntest.
  • the possibility of being transferred increases.
  • FIG. 6 is a diagram for explaining a path through which a time packet is transferred from the sink node SN to the node Nb. Note that the route generation unit 124 of the node Nx generates a routing table.
  • a plurality of routes are conceivable until the time packet is transmitted from the sink node SN and received by the node Nb.
  • FIG. 6 three routes among a plurality of routes are shown.
  • the node Na, the node Nb, the node Nd, the node Nf, the verification node Ntest, and the sink node SN are illustrated in order to explain a partial route.
  • time packets flow in the ad hoc network even in the route not shown in FIG. 6 due to multi-hop communication. Further, for the nodes other than the node Nb, a routing table is generated in response to the reception of the time packet.
  • the nodes Nx that can communicate with the sink node SN are the node Na and the node Nd.
  • the node Na can communicate with the node Ntest and the node Nb.
  • the node Nb can communicate with the node Na, the node Nc, the node Nf, and the verification node Ntest.
  • the node Nd can communicate with the sink node SN, the node Ne, and the node Nf.
  • the node Nf can communicate with the node Nb, the node Nd, the node Ng, the node Nh, and the verification node Ntest.
  • the verification node Ntest can communicate with the node Na, the node Nb, and the node Nf.
  • the sink node SN sets a special address for broadcasting as the destination address of the time packet. Furthermore, the sink node SN sets the address of the sink node SN as the local transmission source address and the global transmission source address. Furthermore, the sink node SN sets “0” indicating that it is a time packet to the packet type. Then, the sink node SN sets the hop number “1” as additional information. Further, the sink node SN stores information on time in the payload data storage unit. Then, the sink node SN broadcasts a time packet.
  • the sink node SN when the power is turned on, the sink node SN broadcasts a time packet (1001). If the nodes that can communicate with the sink node SN are Na and Nd, the time packet broadcast in 1001 is received by Na and Nb. Here, the node Na and the node Nb recognize that the received packet is a packet addressed to the own node because the address set as the destination address is a special address.
  • the time packet transmitted by the sink node is received by the node Na that can communicate with the sink node (1001). Since the packet type is “0”, the node Na further transfers the received packet.
  • the node Na updates the local source address of the time packet and the hop number as additional information. Specifically, the address of the node Na is set as the local transmission source address, and 1 is added to the hop count. Therefore, the additional information is updated to the hop count “2”.
  • the generation process of the routing table is also performed in the node Na when the time packet is received.
  • the node Na broadcasts the updated time packet (1002).
  • the broadcast time packet is received by the node Nb that can communicate with the node Na.
  • the broadcast time packet is also received by the node Ntest that can communicate with the node Na.
  • the global source address is “sink node SN address”
  • the local source address is “node Na address”
  • the additional information is the number of hops “2”. "Is set.
  • the node Nb adds a new record to the routing table (1003). Specifically, the global transmission source address “address of sink node SN” of the time packet is set as the global transmission destination address. The node Nb sets the local transmission source address “node Na address” of the time packet as the local transmission destination address in the routing table. The node Nb sets the additional information “2” of the time packet as the number of hops in the routing table. Note that the node Nb further transfers the received time packet in the same manner as other nodes.
  • the global transmission source address is “sink node SN address”
  • the local transmission source address is “node Ntest address”
  • the additional information is the hop count “3”. "Is set.
  • the node Nb that has received the time packet transferred through the route 2 adds a new record to the routing table (1005). Specifically, the global transmission source address “address of sink node SN” of the time packet is set as the global transmission destination address. The node Nb sets the local transmission source address “address of the node Ntest” of the time packet as the local transmission destination address in the routing table. The node Nb sets the additional information “3” of the time packet as the number of hops in the routing table.
  • the “sink node SN address” is the global source address
  • the “node Nf address” is the local source address
  • the hop number “3” is the additional information. "Is set.
  • the node Nb that has received the time packet transferred through the path 3 adds a new record to the routing table (1008). Specifically, the global transmission source address “address of sink node SN” of the time packet is set as the global transmission destination address. The node Nb sets the local transmission source address “address of the node Nf” of the time packet as the local transmission destination address in the routing table. The node Nb sets the additional information “3” of the time packet as the number of hops in the routing table.
  • initial values may be set for the communication strength and the node type. For example, “10” is set as the communication strength and “4” is set as the node type.
  • FIG. 7 is a diagram for explaining exchange of hello packets between nodes. Note that the route generation unit 124 of the node Nx updates the routing table.
  • the packet generator 121 in each node Nx generates a hello packet.
  • the node Na sets a broadcast address as the destination address. Further, the node Na sets the address of the node Na as the global transmission source address and the local transmission source address.
  • the packet type “1” indicating a hello packet is set.
  • “4” indicating that the node is not a verification node is set in the node type as additional information.
  • Node Na broadcasts the packet (2001).
  • the node Nb that can communicate with the node Na receives the packet.
  • other nodes that can communicate with the node Na also receive the packet.
  • the node Nb updates the routing table (2002).
  • the node Nb converges the transfer of the received hello packet because the packet type is “1”.
  • the node Nb acquires the local transmission source address in the received packet. Then, the routing table stored in the storage unit 13 is referred to, and a record having the local transmission source “node Na address” in the local transmission destination address is specified.
  • the node Nb updates the communication strength of the specified record. For example, when using the number of packets received from the node Na as the communication strength, the node Nb adds a predetermined number to the communication strength every time a hello packet is received. For example, 5 is added every time a hello packet or a data packet is received. The node Nb can also calculate the number of received packets per unit time and store it in the communication strength.
  • the node Nb updates the node type in the routing table.
  • the node type “4” is set in the hello packet received from the node Na, the node type in the routing table is not updated.
  • the node Nb calculates an evaluation value based on the communication strength, the number of hops, and the node type each time various packets are received or periodically. Then, the newly calculated evaluation value is re-registered in the routing table.
  • the node type in the routing table is also updated (2004, 2006). .
  • the node type “3” is set in the hello packet received from the verification node Ntest, the node type in the routing table is updated to “3”. Therefore, in the process of updating the routing table (2004), the node type is also updated, and the evaluation value is also updated according to the updated node type.
  • FIG. 7 is an example of the order of receiving hello packets from each node Na or the verification node Ntest. Further, the node Nb also broadcasts a hello packet.
  • FIG. 8 shows an example of data stored in the key information storage unit 132.
  • the key information storage unit 132 stores information on the MAC key shown in FIG. 8A. Further, the key information storage unit 132 stores information on the encryption key shown in FIG. 8B. In this embodiment, a common MAC key and encryption key are used in all nodes.
  • the MAC key or encryption key, or both keys may be different for each node.
  • the node Nx corresponding to the global transmission source address may calculate the MAC by using a different MAC key for each node. Then, the calculated MAC value is set in the value storage unit of the data packet.
  • the verification node Ntest when the verification node Ntest receives the data packet, it verifies using the MAC key corresponding to the global transmission source address.
  • the node Nx corresponding to the global transmission source address may encrypt the information stored in the payload data storage unit by using a different encryption key for each node Nx.
  • the device serving as the global transmission destination needs to grasp the encryption key of each node Nx in advance. For example, when the global transmission destination is the sink node SN, after receiving the data packet, the sink node SN decrypts the data using the encryption key corresponding to the node Nx of the global transmission source address.
  • FIG. 9 is a functional block diagram of the node Ntest.
  • the verification node Ntest includes a communication unit 21, a control unit 22, and a storage unit 23.
  • the verification node Ntest may include an acquisition unit that acquires the detection value detected by the sensor, like the node Nx.
  • the communication unit 21 is a processing unit that performs wireless communication with the node Nx. For example, the communication unit 21 exchanges hello packets with the node Nx. The communication unit 21 receives the data packet from the node Nx and transfers the data packet to another node Nx.
  • the control unit 22 is a processing unit that controls various processes of the verification node Ntest. For example, the control unit 22 verifies the data packet. Further, the control unit 22 generates a hello packet in which the node type “3” is set.
  • the storage unit 23 stores various information.
  • the storage unit 23 stores an encryption key used for encryption processing, a routing table, and the like.
  • the storage unit 23 includes a routing table storage unit 231 and a key information storage unit 232. Note that the data configurations of the routing table storage unit 231 and the key information storage unit 232 are the same as those of the node Nx.
  • control unit 22 includes a packet generation unit 221, a verification unit 222, and a route generation unit 223.
  • the control unit 22 in the verification node Ntest may further include an encryption unit and a decryption unit.
  • the packet generation unit 221 is a processing unit that generates a hello packet and updates a data packet. For example, the packet generation unit 221 generates a hello packet in which “1” is set as the packet type and “3” is set as the node type in the additional information of the hello packet.
  • the verification unit 222 is a processing unit that verifies the packet.
  • the verification unit 222 calculates a value having a predetermined logical relationship with the received packet. Then, the verification unit 222 verifies the integrity of the received packet and the validity of the node that generated the packet by comparing the calculated value with the value stored in the value storage unit 7 of the received packet. To do.
  • the verification unit 222 uses a MAC value as a value.
  • the route generation unit 223 generates a routing table based on the management packet. Then, the route generation unit 223 stores the generated routing table in the routing table storage unit 231. The route generation unit 223 updates the routing table every time a management packet is received or periodically.
  • FIG. 10 is a flowchart of the routing table generation process.
  • the routing table generation process when the node Nx is the main will be described, but the same process is executed also in the verification node Ntest.
  • the communication unit 11 is replaced with the communication unit 21
  • the route generation unit 124 is replaced with the route generation unit 223
  • the routing storage unit 131 is replaced with the routing storage unit 231.
  • the communication unit 11 receives the packet (Op. 1). Then, the route generation unit 124 determines whether the packet type set in the received packet is “0” (Op. 2). When the packet type is “0” (Op. YES), the received packet is a time packet.
  • the control unit 12 determines whether the time set in the timing unit of the node Nx has been synchronized with the time packet. Note that the timing unit is a processing unit included in the node Nx in addition to the processing units illustrated in FIG. When not synchronized (Op. 3 NO), the control unit 12 synchronizes the time (Op. 4).
  • the route generation unit 124 refers to the header information storage unit in the received packet. Then, the route generation unit 124 determines whether there is a record in which the combination of the global transmission source address and the local transmission source address stored in the header information storage unit is a combination of the global transmission destination address and the local transmission destination address in the routing table. It is determined whether or not (Op.4). That is, the route generation unit 124 determines whether it is necessary to add a new record. Judge at 4.
  • the route generation unit 124 adds a new record to the routing table (Op. 6). Specifically, the route generation unit 124 acquires a global transmission source address from the received packet and sets it as the global transmission destination address in the routing table. In addition, the route generation unit 124 acquires a local transmission source address from the received packet, and sets the local transmission source address in the routing table. The route generation unit 124 acquires additional information from the received packet and sets it to the number of hops in the routing table.
  • the route generation unit 124 sets “4” as an initial value, for example, to the node type in the routing table. Further, the route generation unit 124 sets “10” as the initial value for the communication strength, for example.
  • the route generation unit 124 calculates an evaluation value based on the communication strength, the number of hops, and the node type (Op. 7).
  • the calculated evaluation value is Op. 6 is stored in the record added.
  • the route generation unit 124 identifies a record that uses the local source address set in the received packet as the local destination address in the routing table. . Then, the route generation unit 124 updates the communication strength in the identified record. For example, the route generation unit 124 adds 5 to the communication strength.
  • the route generation unit 124 updates the evaluation value based on the updated communication strength (Op.8).
  • the evaluation value of each record is updated.
  • the route generation unit 124 adds a predetermined number to the communication strength every time a new packet is received. However, Op. In 8, it is good also as updating only communication strength. Then, the route generation unit 124 may calculate the evaluation value periodically.
  • the communication unit 11 transfers the time packet (Op. 9). Specifically, after the local source address and the hop number of the time packet are updated by the packet control unit 121, the communication unit 11 broadcasts the time packet. Then, the series of processing ends, but when a new packet is received, the node Nx repeats the series of processing.
  • the route generation unit 124 specifies a record having the local transmission source address set in the packet as the local transmission destination address in the routing table. Then, the route generation unit 124 updates the communication strength of the identified record (Op. 10).
  • the route generation unit 124 determines whether the packet type set in the received packet is “1” (Op. 11). If the packet type is “1” (Op. 11 YES), it is understood that the received packet is a hello packet. When the packet type is “1”, the information acquired from the additional information is updated to “node type” in the routing table (Op.12).
  • information related to the node type is set in the additional information in the hello packet. Therefore, when the node that transmitted the hello packet is the verification node Ntest, the node type in the routing table is updated to “3”.
  • the received packet is a data packet, so that the transfer process described later is executed (Op. 13).
  • the route generation unit 124 calculates an evaluation value based on the communication strength, the number of hops, and the node type in the routing table (Op.14). The evaluation value may be calculated at regular time intervals. Then, the control unit 12 discards the hello packet or the data packet (Op.15).
  • each node Nx can generate and update the routing table. Also, by receiving a packet including the node type, each node Nx can grasp whether or not the verification node test is included in a node that can communicate with each node Nx. Each node Nx can weight the evaluation value for the verification node Ntest in the routing table so that the data packet is preferentially transferred to the verification node Ntest.
  • FIG. 11 is a flowchart of the transfer process in the node Nx.
  • the control unit 12 determines whether or not the global transmission destination address in the data packet matches the own address (Op.20). If they match, it can be seen that the node designated as the global destination of the received data packet is its own node.
  • the decoding unit 125 decodes the payload data in the data packet (Op. 24).
  • the encryption key stored in the key information storage unit 132 is used for decryption.
  • the forwarding address is determined with reference to the routing table (Op, 21). Specifically, the packet generation unit 121 specifies a record having the highest evaluation value among records including the same global destination address as the global destination address set in the data packet in the routing table. Then, the packet generation unit 121 determines the local transmission destination address included in the identified record as the transfer destination address of the data packet.
  • the local destination address in the record having the highest evaluation value matches the local source address of the received data packet
  • the local destination address in the record having the next highest evaluation value is set as the transfer destination address. To do. This is to prevent a situation where a data packet is sent back to the local transmission source node.
  • the packet generation unit 121 rewrites the local transmission destination address of the received data packet to the determined transfer destination address, and rewrites the local transmission source address to the address of its own node (Op.22). Then, the communication unit 11 transfers the updated data packet to the local transmission destination address (Op.23).
  • the data packet is transferred to the transfer destination address having the highest evaluation value in the routing table. For example, since the evaluation value is weighted, there is a high possibility that the evaluation value is transferred to the verification node Ntest. In addition to weighting the evaluation value, for example, the local transmission destination address of the node type “3” may be determined as the transfer destination.
  • FIG. 12 is a flowchart of the transfer process in the node Ntest.
  • the transfer process in FIG. 10 is the transfer process in the verification node Ntest shown in FIG. 12, naturally, the subject of each process in FIG. 10 is also each processing unit of the verification node Ntest.
  • the verification unit 222 calculates the MAC value for the payload data, the global transmission source address, and the global transmission destination address in the data packet (Op.30).
  • the MAC key stored in the key information storage unit 232 is used when calculating the MAC value.
  • the verification unit 222 compares the MAC value stored in the value storage unit in the data packet with the calculated MAC value (Op.31).
  • Op. 20 to Op. 24 is the same as the transfer process in the node Nx.
  • the communication unit 11 is replaced with the communication unit 21
  • the route generation unit 124 is replaced with the route generation unit 223
  • the routing storage unit 131 is replaced with the routing storage unit 231.
  • the verification node Ntest ends the transfer process. That is, the data packet is not transferred. Then, as shown in FIG. At 15, the data packet is discarded.
  • the data packet received by the verification node Nx can verify the integrity of the data and the validity of the node that generated the data packet. Therefore, data packets whose data has been tampered with or data packets generated by an unauthorized node can be excluded from transfer targets.
  • the node Nx can reduce verification processing.
  • the evaluation value can be weighted so as to give priority to the transfer to the verification node Ntest. Therefore, since there is a high possibility that the data packet is transferred to the verification node Ntest, the data packet flowing in the ad hoc network is effectively verified by the verification node Ntest.
  • the sink node SN in the ad hoc network system transfers the payload data of the data packet to the server S when receiving the data packet.
  • the verification process is performed prior to the transfer process to the server S by the sink node SN, thereby preventing the server S from transmitting data whose data integrity and the validity of the node that generated the data packet are not guaranteed. be able to.
  • a large verification load may be generated in the sink node SN.
  • the verification node Ntest at least a part of a large number of packets is verified and discarded, so that the load caused by the verification processing at the sink node SN is reduced.
  • the ad hoc network system disclosed in the present embodiment is effective in verifying a data packet in which data is not complete or a data packet generated by a node not sharing a MAC key by verification by a verification node. Can be discarded. Furthermore, a conventional method for discarding a packet due to a retransmission attack may be adopted in the ad hoc network system of the present example together with the present embodiment.
  • the retransmission attack is performed as follows. For example, an unauthorized node illegally joins an ad hoc network and captures regular data packets flowing through the ad hoc network. An unauthorized node replicates a large number of captured packets. That is, data in the data packet is complete, and a large number of packets including a MAC value calculated with a properly shared MAC key are duplicated. Then, the unauthorized node causes the ad hoc network to be congested by flowing a large amount of replicated data packets to the ad hoc network.
  • each node Na and verification node Ntest updates the MAC key according to a predetermined rule.
  • the MAC keys updated individually at each node are the same. Therefore, the MAC value in the data packet copied by the unauthorized node is discarded by the MAC verification using the updated MAC key.
  • FIG. 13 is a hardware configuration example of the node Nx.
  • the node Nx includes a CPU (Central Processing Unit) 101, a RAM (Random Access Memory) 102, a flash memory 103, an interface (I / F) 104, an encryption circuit 105, a sensor 106, and a bus 107. I have.
  • the CPU 101 to the sensor 106 are connected by a bus 107, respectively.
  • the CPU 101 governs overall control of the node Nx.
  • the CPU 101 functions as the control unit 12, the acquisition unit 14, and the like by executing the program expanded in the RAM 102.
  • the RAM 102 is used as a work area for the CPU 101.
  • the flash memory 103 stores a program, various key information, and a routing table.
  • the flash memory 103 is an example of the storage device 13.
  • the program includes, for example, a program for executing each process shown in the flowchart. For example, a control program for causing the node Nx to execute the routing table generation process and the packet transfer process is stored in the flash memory 103.
  • the program stored in the flash memory 103 is expanded in the RAM 102 and executed by the CPU 101, whereby the node Nx functions as various processing units illustrated in FIG. Further, the node Nx executes the processes of FIGS. 10 and 11.
  • the I / F 104 transmits and receives packets by multi-hop communication.
  • the I / F 104 is an example of the communication unit 11.
  • the encryption circuit 105 is a circuit that encrypts data with an encryption key when encrypting the data. For example, when encrypting and transmitting a packet, the encryption circuit 105 functions. When encryption is executed by software, the encryption circuit 105 is unnecessary by storing a program corresponding to the encryption circuit 105 in the flash memory 103.
  • the sensor 106 detects data unique to the sensor 106. For example, data suitable for the measurement target is detected, such as temperature, humidity, water level, precipitation, air volume, volume, power consumption, time, time, and acceleration. Note that when the CPU 101 functions as the acquisition unit 14, data is acquired from the sensor.
  • FIG. 14 is a hardware configuration example of the verification node Ntest.
  • the verification node Ntest includes a CPU (Central Processing Unit) 201, a RAM (Random Access Memory) 202, a flash memory 203, an interface (I / F) 204, and a bus 205.
  • the CPU 201 to the I / F 204 are connected to each other via a bus 205.
  • the verification node Ntest may further include an encryption circuit and a sensor.
  • the CPU 201 governs overall control of the verification node Ntest.
  • the CPU 201 functions as the control unit 22 and the like by executing a program expanded in the RAM 202.
  • the RAM 202 is used as a work area for the CPU 201.
  • the flash memory 203 stores a program, various key information, and a routing table.
  • the flash memory 203 is an example of the storage device 23.
  • the program includes, for example, a program for executing each process shown in the flowchart. For example, a control program for causing the verification node Ntest to execute a routing table generation process and a packet transfer process is stored in the flash memory 203.
  • the program stored in the flash memory 203 is expanded in the RAM 202 and executed by the CPU 201, whereby the verification node Ntest functions as various processing units illustrated in FIG. Further, the verification node Ntest executes the processes of FIGS. 10 and 12.
  • the I / F 204 transmits and receives packets by multi-hop communication.
  • the I / F 204 is an example of the communication unit 21.
  • the verification node Ntest may be a general-purpose computer.
  • the communication control program describing the routing table generation process and the packet transfer process shown in the flowchart is recorded on a computer-readable recording medium.
  • the computer-readable recording medium include a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory.
  • the magnetic recording device include an HDD, a flexible disk (FD), and a magnetic tape (MT).
  • Optical discs include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc-Read Only Memory), CD-R (Recordable) / RW (ReWriteable), and the like.
  • Magneto-optical recording media include MO (Magneto-Optical disk).
  • the medium reading device reads the program from the recording medium on which the control program is recorded.
  • the CPU in the general-purpose computer stores the read program in the HDD, ROM, or RAM.

Abstract

【課題】ネットワーク内を流れるパケットを効果的に検証する事を課題とする。 【解決手段】 複数のノード間で第一のパケットを授受する事で第二のパケットの送信ルートが構築され、複数のノードと複数のノードよりも処理能力が高い検証ノードとを含むネットワークシステムにおいて、検証ノードは、複数のノードの少なくとも一部に、自身が検証ノードであることを示す識別子を含む第三のパケットを送信する通信部と、通信部により複数のノードから第二のパケットが受信された場合には、第二のパケットの正当性を検証する検証部とを有し、複数のノードは各々、他のノードから第一のパケットを受信し、検証ノードから第三のパケットを受信する通信部と、第一のパケットおよび第三のパケットに基づいて、検証ノードおよび他のノードの中から、第二のパケットの送信先を決定する制御部とを有する。

Description

ネットワークシステム、ノード、検証ノードおよび通信方法
 本明細書に開示する技術は、アドホックネットワークにおいて、パケットを送受信する技術に関する。
 アドホックネットワークとは、無線通信によってリンクする自己構成型のネットワークの一種である。アドホックネットワークは、通信機能を有する複数の装置により構成される。なお、アドホックネットワークにおける、通信機能を有する装置は、ノードと呼ばれる。また、アドホックネットワーク内の各ノードは、通信対象のノード以外の他のノードを経由してマルチホップ通信によりパケットを送受信することで、アクセスポイントや基地局などの中継局を経由すること無く通信対象のノードとの通信が可能となる。マルチホップ通信は、互いの通信圏内に存在しないノード同士が、各ノードの通信圏内に存在する別のノードを介して通信を可能にする技術である。
 例えば、アドホックネットワークを利用したシステムとして、各家庭の電力メータに無線通信可能なノードを組み込むことにより、アドホックネットワーク経由で各家庭の消費電力量などを収集する検針システムがある。検針システムでは、各電気メータが検出した各家庭の消費電力量を含むパケットが、各家庭の電気メータが備える各ノードから電力会社のサーバまで転送される。このようなシステムでは、アドホックネットワークにおいて各家庭の電力の使用量などの個人情報を扱うため、秘匿性、改ざん防止などの観点からセキュアな通信を行うことが要求される。
 アドホックネットワーク内のノード間で送受信されるパケットを暗号化することで、パケットに含まれる情報の秘匿性を確保する技術がある。
 さらに、パケット内のデータの完全性と、パケットの送信元の正当性を、パケットを受信したノードが検証する。なお、パケット内のデータの完全性とは、パケットに設定されたデータに、改ざんや欠落がないことをいう。また、パケットの送信元の正当性とは、アドホックネットワークに正規に参加するノードが送信元であることをいう。
 例えば、各ノードが、受信したパケットに対して、メッセージ認証符号(MAC)の検証を実行することで、不正ノードから送信された不正パケットを検出する技術がある。当該技術は、不正パケットを検出した場合は、当該パケットを破棄する(特許文献1)。
国際公開WO2011/121713公報
 各ノードが、パケットを検証する処理を行う場合、各ノードにはパケットの送受信処理以外に、検証処理による負荷が生じる。各ノードの処理能力が高くないような場合は特に、送受信処理以外の処理負荷をできるだけ抑える必要がある。
 さらに、不正ノードから大量のパケットがネットワークに送り込まれた場合などには、ネットワーク全体に対する検証処理の負荷が増大する。つまり、大量のパケットを各ノードで検証することになるため、検証処理による処理負荷によって、ネットワークにおけるパケットの転送速度の低下などを招く。
 そこで、検証処理を行うことに適した装置に検証処理を行わせることで、通常のノードにおける検証処理による処理負荷を軽減することが考えられる。しかし、従来の技術では、ネットワーク内を流れるパケットを、適宜、検証処理を行うことに適した装置に転送し、ネットワークを流れるパケットを効果的に検証することができなかった。
 そこで、本発明は、ネットワーク内を流れるパケットを効果的に検証することを目的とする。
 本発明の一観点によれば、複数のノード間で第一のパケットを授受する事で、第二のパケットの送信ルートが構築されるとともに、該複数のノードと該複数のノードよりも処理能力が高い検証ノードとを含むネットワークシステムにおいて、前記検証ノードは、前記複数のノードの少なくとも一部に、自身が検証ノードであることを示す識別子を含む第三のパケットを送信する通信部と、前記通信部により前記複数のノードのうちのいずれかから前記第二のパケットが受信された場合には、該第二のパケットの正当性を検証する検証部とを有し、前記複数のノードは各々、前記複数のノードの内の他のノードから前記第一のパケットを受信するとともに、前記検証ノードから前記第三のパケットを受信する通信部と、前記第一のパケットおよび前記第三のパケットに基づいて、前記検証ノードおよび前記他のノードの中から、前記第二のパケットの送信先を決定する制御部とを有する。
 本発明の一観点によれば、ネットワーク内を流れるパケットについて、パケット内のデータの完全性と、パケットの送信元の正当性を効果的に検証することが可能になる。
図1は、本実施例に係るアドホックネットワークシステムと従来のアドホックネットワークシステムとを比較する為の説明図である。 図2は、管理パケットのデータ構成例を示す図である。 図3は、データパケットのデータ構成例を示す図である。 図4は、ノードNxの機能ブロック図である。 図5は、従来のルーティングテーブルのデータ構成例と本実施例に係るルーティングテーブルのデータ構成例とを比較する為の図である。 図6は、シンクノードSNからノードNbに時刻パケットが到達する経路を説明する為の図である。 図7は、ノード間でのハローパケットの授受を説明する為の図である。 図8は、鍵情報記憶部132が記憶するデータ例である。 図9は、ノードNtestの機能ブロック図である。 図10は、ルーティングテーブル生成処理のフローチャートである。 図11は、ノードNxにおける転送処理のフローチャートである。 図12は、ノードNtestにおける転送処理のフローチャートである。 図13は、ノードNxのハードウェア構成例である。 図14は、検証ノードNtestのハードウェア構成例である。
 以下に添付図面を参照して、この発明にかかる通信装置、通信方法、およびシステムの実施の形態を詳細に説明する。
 図1は、本実施例に係るアドホックネットワークシステムと従来のアドホックネットワークシステムとを比較する為の説明図である。
 従来のアドホックネットワークシステムは、複数のノードNxと、シンクノードSNと、サーバSとを含む。サーバSとシンクノードSNとはインターネット、LAN、WANなどの通常ネットワーク101を介して接続されている。シンクノードSNとノードNxとは、アドホックネットワーク100を介して接続されている。
 アドホックネットワーク100内には、複数のノードNxが設けられている。図1では、代表としてノードNa~Nhを示している。ノードNa乃至Nhを区別する必要がない場合は、ノードNxと記す。
 シンクノードSNは、アドホックネットワーク100と通常ネットワーク101とを接続する中継機器である。シンクノードSNは、アドホックネットワーク100のプロトコルの形式の情報と通常ネットワーク101のプロトコルの形式の情報の両方を送受信可能である。
 また、シンクノードSNは、アドホックネットワーク100と通常ネットワーク101との間で情報をプロトコル変換することにより、通信を行う。例えば、アドホックネットワーク100内のノードNxのいずれかからサーバS宛に送信されたパケットは、シンクノードSNにてプロトコル変換される。その後、シンクノードSNが、パケットを、通常ネットワーク101に送信することで、パケットはサーバSに到達する。
 各ノードNxは、他ノードNxまたはシンクノードSNとマルチホップ通信が可能な装置である。なお、他ノードNxまたはシンクノードSNは、通信可能圏内に存在する必要がある。アドホックネットワーク100では、すべてのノードNa~Nhが直接シンクノードSNと通信できる必要はなく、他のノードを経由する事で、各ノードNa~Nhは、シンクノードSNと通信する。
 各ノードNxは、ルーティングテーブルを生成する。そして、各ノードNxは、ルーティングテーブルに従って、パケットを送信する。図1においては、シンクノードにパケットを送信する場合には、従来のアドホックシステムでは、白抜き矢印および斜線矢印で示された経路に従うものとする。
 例えば、ノードNcからシンクノードSNへ向けてパケットが送信される場合には、パケットは、ノードNbおよびノードNaを経由する。また、パケットがシンクノードSNへ送信される過程で、経路に含まれるノードNbやノードNaは、パケット内のデータの完全性と、パケットの送信元の正当性を検証する。例えば、ノードNbやノードNaは、MAC値を利用して、検証を実行する。
 一方、本実施例に係るアドホックネットワークシステムは、複数のノードNxと、シンクノードSNと、サーバSと、さらに検証ノードNtestを含む。
 Ntestは、ノードNxと比較して、処理能力が高い装置である。そして、検証ノードNtestは、ノードNxとマルチホップ通信が可能な装置である。なお、本実施の形態においては、ノードNxは、他ノードNxまたはシンクノードSN以外に、検証ノードNtestともマルチホップ通信が可能である。なお、他ノードNxまたはシンクノードSN、検証ノードNtestは、通信可能圏内に存在する必要がある。
 ただし、ノードNa~ノードNhのいずれかが、Ntestの機能を果たしてもよい。その場合は、他のノードよりも処理能力が高いことが要される。
 本実施例においては、本実施例に係るルーティングテーブルに従って、パケットが転送される。図1においては、シンクノードにパケットを送信する場合には、本実施例におけるアドホックシステムでは、白抜き矢印および黒色矢印で示された経路に従うものとする。
 例えば、ノードNcからシンクノードSNへ向けてパケットが送信される場合には、パケットは、ノードNb、Ntest、ノードNaを経由する。また、パケットがシンクノードSNへ送信される過程で、経路に含まれるノードNtestが、パケット内のデータの完全性と、パケットの送信元の正当性を検証する。例えば、ノードNtestは、MAC値を利用して、検証を実行する。
 ノードNbおよびNaは、MAC検証を実行しなくても良い。しかし、処理能力に余裕がある場合には、他のノードNbおよびNaもMAC検証を実行してもよい。以下では、MAC値を利用した検証は、Ntestのみが行い、ノードNxは、MAC検証を実施しないとして説明を行う。
 図1からわかる様に、従来のアドホックネットワークシステムに対して、本願実施例のアドホックネットワークシステムは、パケットの送信経路に、検証ノードNtestを経由する経路を含む点が異なる。
 次に、アドホックネットワークを流れるパケットについて、説明する。アドホックネットワークを流れるパケットには、複数種類のパケットが含まれる。例えば、管理パケット、データパケットがある。管理パケットとは、ブロードキャストされるパケットであって、各ノードNxまたは検証ノードNxが他のノードまたはシンクノードパケットSNと通信するために必要な情報を共有するためのパケットである。例えば、各ノードがセッション鍵を周囲のノードに配布する為のハローパケットや、シンクノードが時刻情報を各ノードに配布する為の時刻パケットが、管理パケットに含まれる。
 また、データパケットとは、ユニキャストされるパケットであって、指定された送信先に送信したいデータを含むパケットである。
 図2は、管理パケットのデータ構成例を示す図である。なお、図2に示す管理パケットは、シンクノード、各ノードNx、および検証ノードNtestの各々がブロードキャストすることで、ブロードキャストした装置と通信可能範囲に存在する他の装置との間で授受される。
 管理パケット1には、ヘッダ情報格納部2、ペイロードデータ格納部3が、それぞれ割り当てられる。ヘッダ情報格納部2には、ヘッダ情報が格納される。ヘッダ情報は、宛先アドレス、ローカル送信元アドレス、グローバル送信元アドレス、パケットタイプ、付加情報を含む。ペイロードデータ格納部3には、ペイロードデータが格納される。
 宛先アドレスは、ブロードキャスト専用の特別なアドレスである。例えば、宛先アドレスは、予め用意されたアドレス「255.255.255.255」である。各ノードは、個別に設定されたアドレス宛に送信されたパケットを受信するが、当該特別なアドレス宛に送信されたパケットも受信する。つまり、特別なアドレスが設定されたパケットは、当該パケットを送信したノードと通信可能な範囲に存在する全てのノードにより受信される。
 ローカル送信元アドレスは、管理パケット1を送信する装置のアドレスに関する情報である。つまり、ローカル送信元アドレスは、マルチホップ通信の途中で、管理パケットが一回送信される毎に、送信する主体となる装置のアドレスに書きかわる。グローバル送信元アドレスは、ペイロードデータを生成した装置のアドレスに関する情報である。つまり、グローバル送信元アドレスは、マルチホップ通信において、始点となった装置のアドレスに関する情報である。
 パケットタイプは、当該パケットの種別を示す情報である。例えば、管理パケットである時刻パケットである場合には「0」が、管理パケットであるハローパケットである場合には「1」が設定される。また、データパケットの場合には、「2」が設定される。
 ブロードキャストされた管理パケットを受信した各ノードは、パケットタイプに応じて、受信した管理パケットを他のノードへ転送するか否かを判定する。例えば、ノードNxが、宛先アドレスに特別なアドレスが設定された管理パケットを受信した場合に、パケットタイプが「0」である場合は、受信した管理パケットを、他のノードNxへ転送する。つまり、時刻パケットは、マルチホップ通信の対象として、ネットワークを転送される。
 一方、ノードNxが、宛先アドレスに特別なアドレスが設定された管理パケットを受信した場合に、パケットタイプが「1」である場合は、受信した管理パケットを、他のノードNxへ転送しない。つまり、ハローパケットは、マルチホップ通信の対象から除外され、パケットの転送は、あるノードNxで収束する。
 なお、本実施例においては、管理パケットのデータ構成を、ハローパケットと、時刻パケットで統一する為に、ハローパケットにおけるヘッダ情報には、ローカル送信元アドレスとグローバル送信元アドレスが含まれるとした。しかし、ハローパケットには、ローカル送信元アドレスとグローバル送信元アドレスには、同一のアドレスが設定されるため、ハローパケットのヘッダ情報には、ローカル送信元アドレスのみが含まれるとしても良い。
 付加情報は、上記アドレスおよびパケットタイプ以外のヘッダ情報であって、パケットの種別に応じた情報である。例えば、パケットが時刻パケットである場合には、付加情報は、ホップ数に関する情報である。そして、ホップ数が、付加情報としてパケット1のヘッダ情報格納部2に格納される。ホップ数は、パケットがマルチホップ通信された回数である。例えば、シンクノードSNが送信した時刻パケットを、ノードNaおよびノードNbを経由して、ノードNcが受信した場合は、ノードNcが受信した管理パケットには、ホップ数として「3」が設定されている。
 また、パケットがハローパケットである場合には、付加情報は、ノード種別の情報である。そして、ノード種別が、付加情報としてパケット1のヘッダ情報格納部2に格納される。ノード種別は、ハローパケットを生成したノードの種別を示す情報であって、ノードの種別を識別する為の識別子である。例えば、ハローパケットを生成したノードが、検証ノードNtestである場合には、ノード種別は「3」である。また、ハローパケットを生成したノードが、検証ノードNtestでない場合には、ノード種別は「4」である。
 ペイロードデータは、ヘッダ情報を除く情報である。また、ペイロードデータは、パケットの種別に応じて、内容が異なる。例えば、パケットが時刻パケットである場合には、時刻の情報がペイロードデータとして、パケット1のペイロードデータ格納部3に格納される。なお、時刻パケットを受信した各ノードNxまたは検証ノードNtestは、ペイロードデータ格納部から時刻の情報を取得し、各ノードNxまたは検証ノードNtestの時刻を設定する。
 また、例えば、パケットがハローパケットである場合には、ペイロードデータは、セッション鍵を含む情報である。セッション鍵は、各ノードNxおよび検証ノードNtestの内、2つのノードで通信を行う為に用いられる鍵である。セッション鍵は、ペイロードデータを暗号化する場合などに利用される。
 セッション鍵でペイロードデータを暗号化する場合は、各ノードは、送信先に応じたセッション鍵で、ペイロードデータを暗号化する。よって、データパケットを転送するノードは、受信したデータパケット内のペイロードデータを、自身のセッション鍵で復号したのち、次の送信先のセッション鍵で再暗号化する。ペイロードデータを復号することで、送信元の正当性を検証することができる。
 ハローパケットを受信した各ノードNxまたは検証ノードNtestは、ペイロードデータ格納部からセッション鍵の情報を取得し、各ノードNxまたは検証ノードNtestの鍵情報記憶部に、ローカル送信元アドレスと対応付けて、記憶する。
 一方、ペイロードデータは、セッション鍵ではなく、シンクノードSNまたはサーバSと共有しているサーバ鍵で、暗号化されてもよい。サーバ鍵をペイロードデータの暗号化に利用する場合は、各ノードは、復号化および再暗号化を行う必要はない。グローバル送信先アドレスとしてシンクノードSNが指定されている場合に、シンクノードSNがパケットを受信した時点で、ペイロードデータは復号される。
 このように、各ノードNxは、復号化および再暗号化の処理を行う必要がない為、セッション鍵を利用してペイロードデータを暗号化する場合と比較して、処理負荷が低減される。なお、暗号化にサーバ鍵を利用する場合は、ハローパケットのペイロードデータ格納部は、空であっても構わない。本実施例においては、暗号化にサーバ鍵を利用するとして説明を行う。
 図3は、データパケットのデータ構成例を示す図である。データパケット4には、ヘッダ情報格納部5、ペイロードデータ格納部6、値格納部7がそれぞれ割り当てられる。ヘッダ情報格納部5には、ヘッダ情報が格納される。ヘッダ情報は、ローカル送信元アドレス、ローカル送信先アドレス、グローバル送信元アドレス、グローバル送信先アドレス、パケットタイプ、付属情報を含む。ペイロードデータ格納部6には、ペイロードデータが格納される。値格納部7には、パケット内の所定のデータを対象として算出された値が格納される。
 ローカル送信元アドレス、グローバル送信元アドレス、パケットタイプは、管理パケット1と同様の情報である。ただし、データパケットの場合には、パケットタイプとして「2」が設定される。
 ローカル送信先アドレスは、マルチホップ通信を形成する一つの通信において、データパケット4の送信先となる装置のアドレスに関する情報である。グローバル送信先アドレスは、ペイロードデータ格納部6に記述されるペイロードデータを最終的に受信する装置のアドレスに関する情報である。つまり、グローバル送信先アドレスは、マルチホップ通信における終点となる装置のアドレスに関する情報である。
 付属情報は、各種アドレスおよびパケットタイプ以外のヘッダ情報である。例えば、付属情報として、ホップ数や送信日時などに関する情報が格納される。
 ペイロードデータは、ヘッダ情報および値を除く情報である。ペイロードデータは、例えば、各ノードNxがセンサから取得したデータである。例えば、ノードNcにより取得された消費電力量のデータを、ペイロードデータ格納部6に設定する。
 値は、データパケット内の所定のデータに対して所定の論理関係を有する値である。例えば、ペイロードデータ、グローバル送信先アドレス、およびグローバル送信元アドレスを対象として、算出されたMAC値である。
 図3に示すデータパケットは、各ノードNxおよび検証ノードNtestが有するルーティングテーブルに従って、アドホックネットワーク内を流れる。そして、本実施例においては、データパケット内のペイロードデータに対してデータの完全性が検証されるとともに、グローバル送信元の正当性が検証される。
 次に、図4を利用して、ノードNxの処理部を説明する。図4は、ノードNxの機能ブロック図である。
 ノードNxは、通信部11、制御部12、記憶部13、取得部14を含む。通信部11は、他のノードNx,検証ノードNtest、またはシンクノードSNと無線通信する処理部である。例えば、通信部11は、通信可能な範囲に存在する他のノードNxと、ハローパケットやデータパケットを送受信する。通信部11は、検証ノードNtestと通信可能な場合に、データパケットを検証ノードNtestに送信する。
 制御部12は、ノードNxの各種処理を制御する処理部である。例えば、ノードNxがグローバル送信元となる場合に、制御部12は各種パケットを生成する。また、制御部12は、管理パケットに基づいて、ルーティングテーブルを生成する。また、制御部12は、ルーティングテーブルに基づいて、データパケットのローカル送信先となるノードを決定する。
 記憶部13は、各種情報を記憶する。例えば、記憶部13は、暗号化処理に用いられる暗号鍵、ルーティングテーブルなどを記憶する。記憶部13は、ルーティングテーブル記憶部131と、鍵情報記憶部132を含む。
 取得部14は、データを取得する処理部である。例えば、取得部14は、ノードNxと通信可能なセンサから、消費電力量や温度等のデータを取得する。なお、取得されたデータは、データパケットのペイロードデータとして、他のノードNx、検証ノードNtestまたはシンクノードへ送信される。
 また、制御部12は、パケット生成部121、算出部122、暗号化部123、ルート生成部124、復号化部125を含む。
 パケット生成部121は、データパケット、ハローパケットを生成する処理部である。例えば、ノードNxがグローバル送信元となる場合には、パケット生成部121は、ヘッダ情報格納部におけるグローバル送信元アドレスおよびローカル送信元アドレスに、自ノードのアドレスを設定する。さらに、グローバル送信先アドレスを決定するとともに、決定したグローバル送信先アドレスをヘッダ情報格納部に設定する。
 そして、パケット生成部121は、取得部14が取得したデータを、ペイロードデータ格納部に設定する。また、パケット生成部121は、記憶部13に記憶されたルーティングテーブルを参照し、データパケットのローカル送信先アドレスを決定する。パケット生成部121は、決定したアドレスをヘッダ情報格納部におけるローカル送信先アドレスに設定する。さらに、パケット生成部121は、データパケットを示すパケットタイプ「2」を、ヘッダ情報格納部に設定する。
 パケット生成部121は、受信したデータパケットを転送する場合には、データパケットを更新する処理を行う。つまり、ローカル送信元アドレス、ローカル送信先アドレスが更新される。詳細については、後述する。
 一方、ハローパケットを生成する際には、パケット生成部121は、ヘッダ情報格納部におけるグローバル送信元アドレスおよびローカル送信元アドレスに、自ノードのアドレスを設定する。パケット生成部121は、ハローパケットのパケットタイプに「1」を設定するとともに、ハローパケットの付加情報に、ノード種別として「4」を設定する。ノード種別「4」は、ノードNxは、検証ノードNtestではないことを示す。また、パケット生成部121は、セッション鍵の情報など、所定の情報をペイロードデータ格納部に設定する。
 算出部122は、ノードNxがグローバル送信元となる場合に、データパケット内の所定のデータに対して所定の論理関係を有する値を算出する処理部である。本実施例においては、例えば、算出部122は、MAC鍵を用いて、ペイロードデータ、グローバル送信先アドレス、およびグローバル送信元アドレスに対するMAC値を算出する。MAC鍵は、ノードNxと、検証ノードNtestと、シンクノードSNとで事前に共有された鍵である。また、ノードNxごとに、異なるMAC鍵であってもよい。
 暗号化部123は、必要に応じて、ペイロードデータの暗号化処理を実行する。例えば、暗号化部123は、鍵情報記憶部132に記憶された暗号鍵を用いて、ペイロードデータを暗号化する。
 ルート生成部124は、通信部11が受信した管理パケットに基づいて、ルーティングテーブルを生成する。そして、ルート生成部124は、生成したルーティングテーブルを、ルーティングテーブル記憶部131に格納する。なお、ルート生成部124は、管理パケットを受信するたびに、または定期的に、ルーティングテーブルを更新する。
 次に、復号化部125は、必要に応じて、暗号化されたペイロードデータを復号する。例えば、復号化部125は、パケット内のヘッダ情報記憶部を参照し、グローバル送信先アドレスが自ノードのアドレスであるか判定する。グローバル送信先アドレスが自ノードのアドレスである場合は、復号化部125は、ペイロードデータを復号する。
 なお、ノードNxの制御部12は、さらに検証部を備えてもよい。そして、制御部は、ノードNxの処理能力に対して、処理負荷が所定以下である場合は、検証部を機能させるとしてもよい。検証部は、受信したパケットに格納された値を用いて、ペイロードデータの完全性およびグローバル送信元の正当性を検証する。具体的には、後述する検証ノードNtestの検証部223と同様の処理を行う。
 図5は、従来のルーティングテーブルのデータ構成例と本実施例に係るルーティングテーブルのデータ構成例とを比較する為の図である。図5Aは、本実施例に係るルーティングテーブルのデータ構成例を示す図である。図5Bは、従来のルーティングテーブルのデータ構成例を示す図である。
 本実施例におけるルーティングテーブル記憶部131が記憶するルーティングテーブルは、グローバル送信先アドレスと、ローカル送信先アドレスと、通信強度と、ホップ数と、ノード種別と、評価値とを対応付けて記憶する。なお、図5Aは、ノードNbが有するルーティングテーブルを示している。
 一方、従来のルーティングテーブルは、グローバル送信先アドレスと、ローカル送信先アドレスと、通信強度と、ホップ数と、評価値とを対応付けて記憶する。つまり、従来のルーティングテーブルは、ノード種別に関する情報を有さない。
 ここで、図5Aに示すルーティングテーブルは、両者の差異を説明する為に、通信強度、ホップ数、ノード種別を示したが、ルーティングテーブルとは異なるテーブルで、通信強度、ホップ数、ノード種別を管理してもよい。この場合は、通信強度、ホップ数、ノード種別に基づいて、算出された評価値が、グローバル送信先アドレスとローカル送信先アドレスに対応付けて記憶される。さらに、評価値が所定以上のグローバル送信先アドレスと、ローカル送信先アドレスとの組み合わせのみを、ルーティングテーブルに記憶するとしても良い。
 グローバル送信先アドレスは、マルチホップ通信における終点に相当する装置のアドレスの情報である。ローカル送信先アドレスは、マルチホップ通信内の一つの通信の送信先となる装置のアドレスの情報である。なお、ローカル送信先アドレスには、ルーティングテーブルを記憶するノードNxが通信可能な他のノードのアドレスの情報が記憶される。
 通信強度は、各ローカル送信先アドレスに対応するノードと、自ノードとの通信における安定性の強弱を示す値である。例えば、通信強度は、信号受信強度やローカル送信先アドレスに対応するノードから受信した管理パケットの数およびデータパケットの数に基づいて、算出される。また、通信強度は、通信成功確率、誤り率、受信電界強度などに基づいて、算出されても良い。本実施例においては、通信強度は、ローカル送信先アドレスに対応するノードから受信した管理パケットの数およびデータパケットの数の和である。
 ホップ数は、グローバル送信先アドレスに対応するノードにより送信された管理パケットを、自ノードで受信するまでに、何度転送されたかを示す値である。例えば、時刻パケット内の付加情報として設定された、ホップ数が、ルーティングテーブルにおける項目「ホップ数」に記憶される。
 ノード種別は、ローカル送信元アドレスに対応するノードの種類を示す情報である。ハローパケットに設定されたノード種別に対応する情報が、ルーティングテーブルにおける項目「ノード種別」に記憶される。
 評価値は、グローバル送信先アドレスとローカル送信先アドレスとの組み合わせごとに、データパケットのローカル送信先を、いずれのアドレスとすることが好ましいかを示す値である。つまり、評価値は、データパケットが、各ローカル送信先アドレスに送信される可能性の大小を示す。評価値は、通信強度、ホップ数、ノード種別に基づいて算出される。
 評価値は、通信強度が多くなるほど、ホップ数が小さくなるほど、大きな値として算出される。さらに、評価値は、ノード種別が、ローカル送信先アドレスに相当するノードが、検証ノードであることを示す場合に、大きな値として算出される。例えば、数1に基づいて、算出される。
Figure JPOXMLDOC01-appb-M000001
 なお、数1においては、評価値がX、通信強度がA、ホップ数がB、定数がα、評価係数がβであらわされる。なお、定数は、評価値を適切な範囲とするために補正する為の値である。例えば、αは「6」である。また、評価係数は、ノード種別に応じた重みづけを行う為の値である。つまり、ノード種別に応じて、値が変更される。例えば、ノード種別が検証ノードであることを示す「3」である場合は、βは「2」である。一方、ノード種別が検証ノードでないことを示す「4」である場合は、βは「1」である。
 ここで、図5Bに示すように、従来のルーティングテーブルは、ノード種別を管理することができない。したがって、評価値は、ノード種別を加味することなく算出される。よって、従来の手法に従って、通信強度が高いほど、さらにホップ数が小さいほど、評価値が高くなる。例えば、図5Bに示す評価値が算出される。よって、グローバル送信先アドレスを、シンクノードSNのアドレスとした場合に、ノードNbは、もっとも評価値が高いノードNaをローカル送信先として決定する。
 一方、本実施例によれば、検証ノードNtestがアドホックネットワークに加わるとともに、評価値の算出において、さらにノード種別が加味される。したがって、Ntestに対応する評価値が、他のノードNxの評価値と比較して、重みづけされる。例えば、ノードNxにおけるルート生成部124は、ノード種別が「3」である場合には、評価係数に「2」を採用することで、評価値をノードNxである場合と比べて、2倍にすることができる。
 したがって、本実施例においては、グローバル送信先アドレスを、シンクノードSNのアドレスとした場合に、ノードNbは、もっとも評価値が高いノードNtestをローカル送信先として決定する。よって、検証ノードNtestに、検証する必要があるデータパケットを転送することができる。
 なお、ノードNb以外のノードNxにおいても、検証ノードNtestと通信可能である場合には、検証ノードをローカル送信先Ntestとする評価値に重みづけがなされる為、データパケットが、検証ノードNtestに転送される可能性が高くなる。ひいては、アドホックネットワークシステム全体において、検証ノードNtestを経由して、パケットが転送される可能性が高くなり、不正なパケットは、アドホックネットワークから効果的に破棄される。
 次に、図6および図7を利用して、管理パケットの送受信によるルーティングテーブルの生成について、詳細に説明する。まずは、時刻パケットを、ノードNxが受信した場合の、ルーティングテーブルの生成について、説明する。図6は、シンクノードSNからノードNbに時刻パケットが転送される経路を説明する為の図である。なお、ノードNxのルート生成部124が、ルーティングテーブルを生成する。
 時刻パケットが、シンクノードSNから送信されてノードNbにより受信されるまでに、複数の経路が考えられる。なお、図6では、複数の経路のうち、3つの経路を示す。図6では、一部経路を説明する為に、図1に示すノードNxのうち、ノードNa、ノードNb、ノードNd、ノードNf、検証ノードNtestおよびシンクノードSNを示す。
 なお、図6に示さない経路でも、マルチホップ通信により、時刻パケットはアドホックネットワーク内を流れている。さらに、ノードNb以外のノードについても、時刻パケットの受信に応じて、ルーティングテーブルを生成する。
 シンクノードSNと通信可能なノードNxは、ノードNaとノードNdであるとする。また、ノードNaは、ノードNtestとノードNbと通信可能であるとする。ノードNbは、ノードNa、ノードNc、ノードNf、検証ノードNtestと通信可能であるとする。ノードNdは、シンクノードSN、ノードNe、ノードNfと通信可能であるとする。ノードNfは、ノードNb、ノードNd、ノードNg、ノードNh、検証ノードNtestと通信可能であるとする。検証ノードNtestは、ノードNa、ノードNb、ノードNfと通信可能であるとする。
 まず、シンクノードSNは、時刻パケットの、宛先アドレスに、ブロードキャスト用の特別なアドレスを設定する。さらに、シンクノードSNは、ローカル送信元アドレスおよびグローバル送信元アドレスに、シンクノードSNのアドレスを設定する。さらに、シンクノードSNは、パケットタイプに、時刻パケットであることを示す「0」を設定する。そして、シンクノードSNは、付加情報として、ホップ数「1」を設定する。また、シンクノードSNは、ペイロードデータ格納部に、時刻に関する情報を格納する。そして、シンクノードSNは、時刻パケットをブロードキャストする。
 シンクノードSNは、例えば、電源がオンになった場合に、時刻パケットをブロードキャストする(1001)。なお、シンクノードSNと通信可能なノードは、NaとNdであるとすると、1001でブロードキャストされた時刻パケットは、NaおよびNbにより受信される。ここで、ノードNaとノードNbは、宛先アドレスに設定されたアドレスが特別なアドレスであることから、受信したパケットは、自ノード宛のパケットであると認識する。
 ここで、複数の経路の内、シンクノードSNから、ノードNaを経由して、ノードNbに時刻パケットが到達する経路1がある。経路1においては、シンクノードが送信した時刻パケットは、シンクノードと通信可能なノードNaにより受信される(1001)。そして、ノードNaは、パケットタイプが「0」であることから、受信したパケットをさらに、転送する。
 なお、転送する前に、ノードNaは、時刻パケットのローカル送信元アドレスと、付加情報であるホップ数とを更新する。具体的には、ローカル送信元アドレスに、ノードNaのアドレスを設定するとともに、ホップ数に1を加える。よって、付加情報は、ホップ数「2」に更新される。また、ここでは、ノードNaにおけるルーティングテーブルの生成については、詳細は説明しないが、ノードNaでも、時刻パケットを受信した場合に、ルーティングテーブルの生成処理が行われる。
 そして、更新された時刻パケットを、ノードNaはブロードキャストする(1002)。そして、ブロードキャストされた時刻パケットは、ノードNaと通信可能なノードNbにより受信される。なお、図6の例では、ブロードキャストされた時刻パケットは、ノードNaと通信可能なノードNtestにも受信される。
 経路1を経て、ノードNbに到達した時刻パケットには、グローバル送信元アドレスに「シンクノードSNのアドレス」が、ローカル送信元アドレスに「ノードNaのアドレス」が、付加情報にはホップ数「2」という情報が設定されている。
 次に、ノードNbは、ルーティングテーブルに、新たにレコードを追加する(1003)。具体的には、グローバル送信先アドレスに、時刻パケットのグローバル送信元アドレス「シンクノードSNのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるローカル送信先アドレスに、時刻パケットのローカル送信元アドレス「ノードNaのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるホップ数に、時刻パケットの付加情報「2」を設定する。なお、ノードNbは、受信した時刻パケットを、他のノードと同様に、さらに転送する。
 一方、シンクノードSNから、ノードNa、さらにNtestを経由して、ノードNbに時刻パケットが到達する経路2がある。経路2は、図6における、1001および1002、1004で各々ブロードキャストされた時刻パケットが、Nbにより受信されることとなる。
 経路2を経て、ノードNbに到達した時刻パケットには、グローバル送信元アドレスに「シンクノードSNのアドレス」が、ローカル送信元アドレスに「ノードNtestのアドレス」が、付加情報にはホップ数「3」という情報が設定されている。
 経路2で転送された時刻パケットを受信したノードNbは、ルーティングテーブルに、新たにレコードを追加する(1005)。具体的には、おけるグローバル送信先アドレスに、時刻パケットのグローバル送信元アドレス「シンクノードSNのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるローカル送信先アドレスに、時刻パケットのローカル送信元アドレス「ノードNtestのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるホップ数に、時刻パケットの付加情報「3」を設定する。
 また、シンクノードSNから、ノードNd、Nfを経由して、ノードNbに到達する経路3がある。経路3は、図6における、1001および1006、1007で各々ブロードキャストされた時刻パケットは、Nbにより受信されることとなる。
 経路3を経て、ノードNbに到達した時刻パケットには、グローバル送信元アドレスに「シンクノードSNのアドレス」が、ローカル送信元アドレスに「ノードNfのアドレス」が、付加情報にはホップ数「3」という情報が設定されている。
 経路3で転送された時刻パケットを受信したノードNbは、ルーティングテーブルに、新たにレコードを追加する(1008)。具体的には、おけるグローバル送信先アドレスに、時刻パケットのグローバル送信元アドレス「シンクノードSNのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるローカル送信先アドレスに、時刻パケットのローカル送信元アドレス「ノードNfのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるホップ数に、時刻パケットの付加情報「3」を設定する。
 なお、図6には示していないが、シンクノードSNから、ノードNa、ノードNtest、ノードNfを経由してノードNbに到達する時刻パケットもある。この場合は、ルーティングテーブルのグローバル送信先アドレスに「SNのアドレス」を、ローカル送信先アドレスに「Nfのアドレス」を、ホップ数に「4」が設定されることとなる。しかし、グローバル送信アドレスとローカル送信先アドレスの組み合わせが同一のレコードが、すでにルーティングテーブルに存在する場合は、ホップ数がより小さなレコードのみを採用し、他方を破棄するとしてもよい。
 以下の説明においては、グローバル送信アドレスとローカル送信先アドレスの組み合わせが同一のレコードがルーティングテーブルに存在する場合は、ホップ数がより小さなレコードのみを採用するとして説明を行う。
 また、グローバル送信先アドレス、ローカル送信先アドレス、ホップ数がルーティングテーブルに追加された時点で、通信強度およびノード種別に初期値を設定するとしてもよい。例えば、通信強度に「10」、ノード種別に「4」が設定される。
 次に、図7を用いて、ハローパケットを、ノードNxが受信した場合の、ルーティングテーブルの更新について、説明する。図7は、ノード間でのハローパケットの授受を説明する為の図である。なお、ノードNxのルート生成部124が、ルーティングテーブルを更新する。
 各ノードNxにおけるパケット生成部121は、ハローパケットを生成する。例えば、ノードNaは、宛先アドレスにブロードキャスト用のアドレスを設定する。さらに、ノードNaは、グローバル送信元アドレスおよびローカル送信元アドレスに、ノードNaのアドレスを設定する。そして、パケットタイプには、ハローパケットであることを示す「1」が設定される。また、付加情報であるノード種別には、検証ノードではないことを示す「4」が設定される。
 ノードNaは、パケットをブロードキャストする(2001)。ノードNaと通信可能なノードNbは、パケットを受信する。なお、図7には示さないが、ノードNaと通信可能な他のノードも、パケットを受信する。ノードNbは、ルーティングテーブルを更新する(2002)。なお、ノードNbは、パケットタイプが「1」であるため、受信したハローパケットの転送を収束させる。
 具体的には、ノードNbは、受信したパケット内のローカル送信元アドレスを取得する。そして、記憶部13に記憶されたルーティングテーブルを参照し、ローカル送信元「ノードNaのアドレス」を、ローカル送信先アドレスに有するレコードを特定する。
 そして、ノードNbは、特定したレコードの通信強度を更新する。例えば、ノードNbは、通信強度として、ノードNaからパケットを受信した数を利用する場合は、ハローパケットを受信するたびに、通信強度に所定数を加算する。例えば、ハローパケットまたはデータパケットを受信するたびに、5が加算される。なお、ノードNbは、単位時間当たりの受信パケット数などを算出し、通信強度に格納することもできる。
 また、ノードNbは、ルーティングテーブルにおけるノード種別と、ハローパケット内に付加情報として設定されているノード種別とが、一致しなければ、ルーティングテーブルにおけるノード種別を更新する。ただし、ノードNaから受信したハローパケットには、ノード種別「4」が設定されている為、ルーティングテーブルにおけるノード種別は更新されない。
 次に、ノードNbは、各種パケットを受信するたびに、または定期的に、通信強度、ホップ数、ノード種別に基づいて、評価値を算出する。そして、新たに算出した評価値を、ルーティングテーブルに再登録する。
 また、図7に示すとおり、Ntestからハローパケットがブロードキャストされた場合(2003)、ノードNfからハローパケットがブロードキャストされた場合(2005)も同様にルーティングテーブルにおけるノード種別を更新する(2004、2006)。ただし、検証ノードNtestから受信したハローパケットには、ノード種別「3」が設定されている為、ルーティングテーブルにおけるノード種別は「3」に更新される。したがって、ルーティングテーブルを更新する処理(2004)において、ノード種別も更新され、更新されたノード種別に応じて評価値も更新される。
 なお、各ノードNaまたは検証ノードNtestからハローパケットを受信する順序については、図7は一例である。さらに、ノードNbも、ハローパケットをブロードキャストする。
 図8は、鍵情報記憶部132が記憶するデータ例である。鍵情報記憶部132は、図8Aに示すMAC鍵の情報を記憶する。また、鍵情報記憶部132は、図8Bに示す暗号鍵の情報を記憶する。なお、本実施の形態では、全ノードで共通のMAC鍵と暗号鍵を利用する。
 また、各ノード毎にMAC鍵もしくは暗号鍵、または両方の鍵が異なっても構わない。例えば、グローバル送信元アドレスに対応するノードNxは、ノードごとに異なるMAC鍵を利用して、MACを算出してもよい。そして、算出したMAC値を、データパケットの値格納部に設定する。
 一方、検証ノードNtestが、データパケットを受信した場合には、グローバル送信元アドレスに対応するMAC鍵を利用して、検証を行う。
 さらに、グローバル送信元アドレスに対応するノードNxは、ノードNxごとに異なる暗号鍵を利用して、ペイロードデータ格納部に格納する情報を暗号化してもよい。この場合は、グローバル送信先となる装置は、各ノードNxの暗号鍵を事前に把握する必要がある。例えば、グローバル送信先がシンクノードSNである場合には、データパケットを受信した後、シンクノードSNは、グローバル送信元アドレスのノードNxに応じた暗号鍵を用いて、データを復号する。
 次に、図9を利用して、検証ノードNtestの処理部を説明する。図9は、ノードNtestの機能ブロック図である。
 検証ノードNtestは、通信部21、制御部22、記憶部23を含む。なお、検証ノードNtestは、ノードNxと同様に、センサにより検出された検出値を取得する取得部を有してもよい。
 通信部21は、ノードNxと無線通信する処理部である。例えば、通信部21は、ノードNxとハローパケットの授受を行う。また、通信部21は、ノードNxからデータパケットを受信するとともに、他のノードNxへデータパケットを転送する。
 制御部22は、検証ノードNtestの各種処理を制御する処理部である。例えば、制御部22は、データパケットを検証する。また、制御部22は、ノード種別「3」が設定されたハローパケットを生成する。
 記憶部23は、各種情報を記憶する。例えば、記憶部23は、暗号化処理に用いられる暗号鍵、ルーティングテーブルなどを記憶する。記憶部23は、ルーティングテーブル記憶部231と、鍵情報記憶部232を含む。なお、ルーティングテーブル記憶部231と、鍵情報記憶部232のデータ構成は、ノードNxと同様である。
 さらに、制御部22は、パケット生成部221、検証部222、ルート生成部223を含む。検証ノードNtestにおける制御部22は、ノードNxと同様に、さらに暗号化部や復号化部を有してもよい。
 パケット生成部221は、ハローパケットを生成するとともに、データパケットを更新する処理部である。例えば、パケット生成部221は、パケットタイプに「1」が、ハローパケットの付加情報に、ノード種別として「3」が設定されたハローパケットを生成する。
 検証部222は、パケットを検証する処理部である。なお、検証部222は、受信したパケットに対して所定の論理関係を有する値を算出する。そして、検証部222は、算出した値と、受信したパケットの値格納部7に格納された値とを比較することで、受信したパケットの完全性および、パケットを生成したノードの正当性を検証する。本実施例においては、例えば、検証部222は、値として、MAC値を利用する。
 ルート生成部223は、管理パケットに基づいて、ルーティングテーブルを生成する。そして、ルート生成部223は、生成したルーティングテーブルを、ルーティングテーブル記憶部231に格納する。なお、ルート生成部223は、管理パケットを受信するたびに、または定期的にルーティングテーブルを更新する。
 ここで、本実施の形態に係る、ノードNxおよび検証ノードNtestによるルーティングテーブル生成処理について、説明する。図10は、ルーティングテーブル生成処理のフローチャートである。
 なお、以下、ノードNxが主体となった場合のルーティングテーブル生成処理を説明するが、検証ノードNtestにおいても同様の処理が実行される。ただし、主体が検証ノードNtestである場合は、以下の説明において、通信部11は通信部21に、ルート生成部124はルート生成部223に、ルーティング記憶部131はルーティング記憶部231に読みかえられる。
 通信部11は、パケットを受信する(Op.1)。そして、ルート生成部124は受信したパケット内に設定されたパケットタイプが、「0」であるか判定する(Op.2)。パケットタイプが「0」である場合は(Op.YES)、受信したパケットが時刻パケットである。
 制御部12は、ノードNxの計時部に設定された時刻が、時刻パケットと同期済みであるか判定する。なお、計時部は、図4に示した各処理部に加えて、ノードNxが有する処理部である。同期済みでない場合(Op.3 NO)は、制御部12は、時刻を同期する(Op.4)。
 一方、同期済みの場合は(Op.3 YES)、ルート生成部124は、受信したパケット内のヘッダ情報格納部を参照する。そして、ルート生成部124は、ヘッダ情報格納部に格納されたグローバル送信元アドレスとローカル送信元アドレスの組み合わせを、ルーティングテーブルにおけるグローバル送信先アドレスとローカル送信先アドレスの組み合わせとするレコードが存在するか否かを判定する(Op.4)。つまり、ルート生成部124は、新たにレコードを追加する必要があるか否かを、Op.4にて判定する。
 レコードを追加する必要がある場合(Op.4 YES)は、ルート生成部124は、ルーティングテーブルに新たにレコードを追加する(Op.6)。具体的には、ルート生成部124は、受信したパケットからグローバル送信元アドレスを取得し、ルーティングテーブルのグローバル送信先アドレスに設定する。また、ルート生成部124は、受信したパケットからローカル送信元アドレスを取得し、ルーティングテーブルのローカル送信先アドレスに設定する。ルート生成部124は、受信したパケットから付加情報を取得し、ルーティングテーブルのホップ数に設定する。
 なお、Op.6の時点では、ルート生成部124は、ルーティングテーブルにおけるノード種別に、例えば、初期値として、「4」を設定する。また、ルート生成部124は、通信強度に、例えば、初期値として「10」が設定される。
 そして、ルート生成部124は、通信強度、ホップ数、ノード種別に基づいて、評価値を算出する(Op.7)。算出された評価値は、Op.6にて追加されたレコードに格納される。
 一方、レコードを追加する必要がない場合(Op.4 NO)は、ルート生成部124は、受信したパケットに設定されたローカル送信元アドレスを、ルーティングテーブルにおけるローカル送信先アドレスとするレコードを特定する。そして、ルート生成部124は、特定したレコードにおける通信強度を更新する。例えば、ルート生成部124は、通信強度に、5を加算する。
 そして、ルート生成部124は、更新した通信強度に基づいて評価値を更新する(Op.8)。なお、受信したパケットに設定されたローカル送信元アドレスを、ルーティングテーブルにおけるローカル送信先アドレスとするレコードが複数ある場合は、各々のレコードの評価値を更新する。
 例えば、図10のフローにおいては、ルート生成部124は、新たにパケットを受信するたびに、通信強度に所定数を加算する。しかし、Op.8においては、通信強度のみを更新することとしてもよい。そして、ルート生成部124は、定期的に、評価値を算出するとしてもよい。
 次に、通信部11は、時刻パケットを転送する(Op.9)。具体的には、パケット制御部121により時刻パケットのローカル送信元アドレスおよびホップ数が更新された後、通信部11は、時刻パケットをブロードキャストする。そして、一連の処理を終了するが、新たにパケットを受信した場合は、ノードNxは、一連の処理を繰り返す。
 一方、パケットタイプが「0」でない場合は(Op.2)、ルート生成部124は、パケット内に設定されたローカル送信元アドレスを、ルーティングテーブルにおけるローカル送信先アドレスとするレコードを特定する。そして、ルート生成部124は、特定したレコードの通信強度を更新する(Op.10)。
 次に、ルート生成部124は、受信したパケットに設定されたパケットタイプが「1」であるか判定する(Op.11)。パケットタイプが「1」であれば(Op.11 YES)、受信したパケットはハローパケットであることが分かる。パケットタイプが「1」である場合は、付加情報から取得した情報を、ルーティングテーブルの「ノード種別」に更新する(Op.12)。
 ここで、ハローパケットにおける付加情報には、ノード種別に関する情報が設定されている。したがって、ハローパケットを送信したノードが検証ノードNtestである場合には、ルーティングテーブルにおけるノード種別は「3」に更新される。
 一方、パケットタイプが「1」でない場合は(Op.11 NO)、受信したパケットはデータパケットであるため、後述する転送処理を実行する(Op.13)。
 次に、ルート生成部124は、ルーティングテーブルにおける、通信強度、ホップ数、ノード種別に基づいて、評価値を算出する(Op.14)。なお、評価値は、一定時間ごとに算出する事としてもよい。そして、制御部12は、ハローパケットもしくは、データパケットを破棄する(Op.15)。
 以上の処理によって、各ノードNxは、ルーティングテーブルを生成および更新することができる。また、ノード種別を含むパケットを受信することで、各ノードNxは、各ノードNxと通信可能なノードに、検証ノードtestが含まれるか否かを、把握することができる。そして、各ノードNxは、検証ノードNtestにデータパケットを優先的に転送するように、ルーティングテーブルにおける検証ノードNtestに対する評価値を重みづけすることができる。
 次に、本実施の形態に係る、ノードNxにおける転送処理について、説明する。図11は、ノードNxにおける転送処理のフローチャートである。
 制御部12は、データパケット内のグローバル送信先アドレスが、自アドレスと一致するか否かを判定する(Op.20)。一致する場合は、受信したデータパケットのグローバル送信先として指定されたノードは、自ノードであることが分かる。
 グローバル送信先が自ノードである場合は(Op.20 YES)、復号化部125は、データパケット内のペイロードデータを復号する(Op.24)。なお、鍵情報記憶部132に格納された暗号鍵が、復号化に利用される。
 一方、グローバル送信先が自ノードでない場合は(Op.20 NO)、ルーティングテーブルを参照し、転送先アドレスを決定する(Op,21)。具体的には、パケット生成部121は、ルーティングテーブルにおいて、データパケットに設定されたグローバル送信先アドレスと同一のグローバル送信先アドレスを含むレコードの内、もっとも評価値が高いレコードを特定する。そして、パケット生成部121は、特定したレコードに含まれるローカル送信先アドレスを、データパケットの転送先アドレスとして決定する。
 ここで、もっとも評価値が高いレコードにおけるローカル送信先アドレスが、受信したデータパケットのローカル送信元アドレスと一致した場合は、次に高い評価値を有するレコードにおけるローカル送信先アドレスを、転送先アドレスとする。これは、ローカル送信元のノードに、データパケットを送り返される事態を防ぐためである。
 続いて、パケット生成部121は、受信したデータパケットのローカル送信先アドレスを、決定した転送先アドレスに書きかえるとともに、ローカル送信元アドレスを自ノードのアドレスに書きかえる(Op.22)。そして、通信部11は、更新したデータパケットを、ローカル送信先アドレスに転送する(Op.23)。
 以上の処理によって、ルーティングテーブルにおいて最も評価値が高い転送先アドレスに、データパケットは転送される。例えば、評価値に重みづけがなされている為、検証ノードNtestに転送される可能性が高くなる。なお、評価値に重みを付ける以外にも、例えば、ノード種別「3」のローカル送信先アドレスを、転送先として決定するようにしても良い。
 次に、検証ノードNtestにおける転送処理について説明する。図12は、ノードNtestにおける転送処理のフローチャートである。なお、図10における転送処理が、図12に示す検証ノードNtestにおける転送処理である場合は、当然、図10における各処理の主体も、検証ノードNtestの各処理部である。
 検証部222は、データパケット内のペイロードデータおよびグローバル送信元アドレス、グローバル送信先アドレスに対して、MAC値を算出する(Op.30)。なお、鍵情報記憶部232に格納されたMAC鍵が、MAC値を算出する際に利用される。そして、検証部222は、データパケット内の値格納部に格納されているMAC値と、算出したMAC値とを比較する(Op.31)。
 両者が一致した場合は(Op.31 YES)、Op.20へ進む。Op.20乃至Op.24は、ノードNxにおける転送処理と同様である。ただし、検証ノードNtestが実行する転送処理においては、通信部11は、通信部21に、ルート生成部124は、ルート生成部223に、ルーティング記憶部131は、ルーティング記憶部231に読みかえられる。
 一方、両者が一致しなかった場合には(Op.31 NO)、検証ノードNtestは、転送処理を終了する。つまり、データパケットは転送されない。そして、図10に示したように、転送処理終了後に、Op.15において、データパケットは破棄される。
 以上の処理によって、検証ノードNxが受信したデータパケットは、データの完全性およびデータパケットを生成したノードの正当性を検証することができる。したがって、データが改ざんされたデータパケットや、不正なノードが生成したデータパケットを、転送の対象から除外することができる。
 本実施例によれは、ノードNxよりも処理能力が高い検証ノードNtestをアドホックネットワークシステムに導入することで、ノードNxは、検証処理を削減できる。また、各ノードNxによるルーティングテーブル生成処理において、検証ノードNtestへの転送を優先するように、評価値を重みづけすることができる。したがって、検証ノードNtestにデータパケットが転送される可能性が高くなるため、アドホックネットワーク内を流れるデータパケットは、検証ノードNtestにより効果的に検証される。
 ここで、アドホックネットワークシステムにおけるシンクノードSNは、データパケットを受信した場合に、データパケットのペイロードデータをサーバSへ転送する。シンクノードSNによるサーバSへの転送処理に先駆けて、検証処理を行う事で、サーバSへ、データの完全性およびデータパケットを生成したノードの正当性が保証されないデータを、送信することを防ぐことができる。
 しかし、例えば、不正なノードが、大量のパケットをアドホックネットワークに送信してきた場合に、シンクノードSNに、大きな検証負荷が発生することが考えられる。本実施例によれば、検証ノードNtestにおいても、大量のパケットの少なくとも一部が検証されて、破棄されるため、シンクノードSNにおける検証処理に起因する負荷は軽減される。
 上述のとおり、本実施例に開示のアドホックネットワークシステムは、データが完全ではないデータパケット、もしくは、MAC鍵を共有していないノードにより生成されたデータパケットを、検証ノードによる検証によって、効果的に破棄することができる。さらに、再送攻撃によるパケットを破棄する為の従来の方式を、本実施の形態と併せて、本実施例のアドホックネットワークシステムに採用してもよい。
 再送攻撃とは、次のようにして行われる。例えば、不正なノードが、不正にアドホックネットワークに参加し、アドホックネットワークを流れる正規のデータパケットをキャプチャする。そして、不正なノードは、キャプチャしたパケットを大量に複製する。つまり、データパケット内のデータが完全であって、さらに、正規に共有されたMAC鍵で算出されたMAC値を含むパケットが大量に複製される。そして、不正なノードは、大量に複製されたデータパケットを、アドホックネットワークに流すことで、アドホックネットワークを輻輳させる。
 アドホックネットワークシステムに対する再送攻撃によるパケットを破棄する方法のひとつとして、例えば、MAC鍵を、一定時間ごとに更新する手法がある。各ノードNaおよび検証ノードNtestは、所定のルールに従って、MAC鍵を各自更新する。なお、所定のルールを、正規なノード間で事前に統一することで、各ノードで個別に更新されるMAC鍵は、同一のものとなる。したがって、不正ノードにより複製されたデータパケット内のMAC値は、更新されたMAC鍵によりMAC検証で、破棄される。
 図13は、ノードNxのハードウェア構成例である。ノードNxは、CPU(Central Processing Unit)101と、RAM(Random Access Memory)102と、フラッシュメモリ103と、インターフェース(I/F)104と、暗号化回路105と、センサ106と、バス107とを備えている。CPU101乃至センサ106は、バス107よってそれぞれ接続されている。
 CPU101は、ノードNxの全体の制御を司る。CPU101は、RAM102に展開されたプログラムを実行することにより、制御部12、取得部14などとして機能する。
 RAM102は、CPU101のワークエリアとして使用される。フラッシュメモリ103は、プログラムや、各種鍵情報、ルーティングテーブルを記憶している。なお、フラッシュメモリ103は、記憶装置13の一例である。プログラムには、例えば、フローチャートに示した各処理を実行させる為のプログラムが含まれる。例えば、ルーティングテーブル生成処理およびパケット転送処理を、ノードNxに実行させる為の制御プログラムが、フラッシュメモリ103に記憶される。
 フラッシュメモリ103に記憶されたプログラムを、RAM102に展開し、CPU101が実行することで、ノードNxは、図4に記載した各種処理部として機能する。また、ノードNxは、図10および図11の処理を実行する。
 I/F104は、マルチホップ通信によりパケットを送受信する。I/F104は、通信部11の一例である。
 暗号化回路105は、データを暗号化する場合に暗号鍵によりデータを暗号化する回路である。例えば、パケットを暗号化して送信する場合は、暗号化回路105が機能する。暗号化をソフトウェア的に実行する場合は、暗号化回路105に相当するプログラムをフラッシュメモリ103に記憶させておくことで、暗号化回路105は不要となる。
 センサ106は、センサ106固有のデータを検出する。たとえば、温度、湿度、水位、降水量、風量、音量、電力使用量、時間、時刻、加速度など、測定対象にあったデータを検出する。なお、CPU101が、取得部14として機能する際には、センサからデータを取得する。
 図14は、検証ノードNtestのハードウェア構成例である。検証ノードNtestは、CPU(Central Processing Unit)201と、RAM(Random Access Memory)202と、フラッシュメモリ203と、インターフェース(I/F)204と、バス205とを備えている。CPU201乃至I/F204は、バス205よってそれぞれ接続されている。なお、検証ノードNtestは、暗号化回路と、センサとを、さらに備えてもよい。
 CPU201は、検証ノードNtestの全体の制御を司る。CPU201は、RAM202に展開されたプログラムを実行することにより、制御部22などとして機能する。
 RAM202は、CPU201のワークエリアとして使用される。フラッシュメモリ203は、プログラムや、各種鍵情報、ルーティングテーブルを記憶している。なお、フラッシュメモリ203は、記憶装置23の一例である。プログラムには、例えば、フローチャートに示した各処理を実行させる為のプログラムが含まれる。例えば、ルーティングテーブル生成処理およびパケット転送処理を、検証ノードNtestに実行させる為の制御プログラムが、フラッシュメモリ203に記憶される。
 フラッシュメモリ203に記憶されたプログラムを、RAM202に展開し、CPU201が実行することで、検証ノードNtestは、図9に記載した各種処理部として機能する。また、検証ノードNtestは、図10および図12の処理を実行する。
 I/F204は、マルチホップ通信によりパケットを送受信する。I/F204は、通信部21の一例である。
 また、検証ノードNtestは、汎用コンピュータであってもよい。この場合は、フローチャートに示したルーティングテーブル生成処理およびパケット転送処理を記述した通信制御プログラムは、コンピュータが読み取り可能な記録媒体に記録される。コンピュータが読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。
 光ディスクには、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc - Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto - Optical disk)などがある。通信制御プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売されることが考えられる。
 そして通信制御プログラムを実行するコンピュータは、例えば媒体読取装置が、制御プログラムを記録した記録媒体から、該プログラムを読み出す。なお、汎用コンピュータにおけるCPUは、読み出されたプログラムをHDD若しくはROM、RAMに格納する。
Nx   ノード
Ntest 検証ノード
11   通信部
12   制御部
13   記憶部
14   取得部
21   通信部
22   制御部
23   記憶部
 

Claims (13)

  1.  複数のノード間で第一のパケットを授受する事で、第二のパケットの送信ルートが構築されるとともに、該複数のノードと該複数のノードよりも処理能力が高い検証ノードとを含むネットワークシステムであって、
     前記検証ノードは、
      前記複数のノードの少なくとも一部に、自身が検証ノードであることを示す識別子を含む第三のパケットを送信する通信部と、
      前記通信部により前記複数のノードのうちのいずれかから前記第二のパケットが受信された場合には、該第二のパケットの正当性を検証する検証部とを有し、
     前記複数のノードは各々、
      前記複数のノードの内の他のノードから前記第一のパケットを受信するとともに、前記検証ノードから前記第三のパケットを受信する通信部と、
      前記第一のパケットおよび前記第三のパケットに基づいて、前記検証ノードおよび前記他のノードの中から、前記第二のパケットの送信先を決定する制御部とを有することを特徴とするネットワークシステム。
  2.  前記前記複数のノードが各々有する前記制御部は、
     前記他のノードおよび前記検証ノードの各々に対して、前記第二のパケットを送信する可能性の大小を示す評価値を、前記第一のパケット、前記第三のパケット、前記識別子に基づいて、算出し、
     前記評価値の大小に基づいて、前記送信先を決定することを特徴とする請求項1記載のネットワークシステム。
  3.  前記前記複数のノードが各々有する前記制御部は、
     前記識別子に基づいて、前記検証ノードに対する評価値を、前記他のノードに対する評価値よりも、重みづけすることを特徴とする請求項2記載のネットワークシステム。
  4.  前記第二のパケットは、該第二のパケットに含まれる少なくとも一部のデータに対して、特定の論理関係を有する第一の値を含み、
     前記検証ノードが有する前記検証部は、
     前記第二のパケットを受信した場合に、該第二のパケットに含まれる少なくとも一部のデータに対して、特定の論理関係を有する第二の値を算出し、前記第一の値と該第二の値とを比較することを特徴とする請求項1乃至請求項3のいずれか一項に記載のネットワークシステム。
  5.  前記検証ノードが有する前記通信部は、
     前記検証部により前記第一の値と前記第二の値とが一致すると判定された場合は、前記第二のパケットを、前記複数のノードのうち、いずれかのノードへ送信するとともに、
     前記検証部により前記第一の値と前記第二の値とが一致しないと判定された場合は、前記第二のパケットを、破棄することを特徴とする請求項4に記載のネットワークシステム。
  6.  ネットワークシステムを構成する複数ノードのうち、少なくとも一部と通信可能な検証ノードであって、
     通信可能なノードに、自装置が検証ノードであることを示す識別子を含む第一のパケットを送信するとともに、該通信可能なノードから、第二のパケットを受信する通信部と、
      前記第二のパケットの正当性を検証するとともに、検証した結果に基づいて、他の通信可能なノードに対して、該第二のパケットの送信を制御する検証部とを有する検証ノード。
  7.  前記第二のパケットは、該第二のパケットに含まれる少なくとも一部のデータに対して、特定の論理関係を有する第一の値を含み、
     前記検証部は、
     前記第二のパケットを受信した場合に、該第二のパケットに含まれる少なくとも一部のデータに対して、特定の論理関係を有する第二の値を算出し、前記第一の値と該第二の値とを比較することを特徴とする請求項6に記載の検証ノード。
  8.  前記通信部は、
     前記検証部により前記第一の値と前記第二の値とが一致すると判定された場合は、前記第二のパケットを、前記他の通信可能なノードへ送信するとともに、
     前記検証部により前記第一の値と前記第二の値とが一致しないと判定された場合は、前記第二のパケットを、破棄することを特徴とする請求項7に記載の検証ノード。
  9.  ネットワークシステムを構成する複数ノードの中の一つであり、該複数ノード間で送受信される第一のパケットを検証する検証ノードと通信するノードであって、
     前記ネットワークシステムに含まれる他のノードから第二のパケットを受信するとともに、該検証ノードから、自身が検証ノードであることを示す識別子を含む第三のパケットを受信する通信部と、
      前記第二のパケットおよび前記第三のパケットに基づいて、前記検証ノードおよび前記他のノードのうち前記第一のパケットの送信先を決定する制御部とを有することを特徴とするノード。
  10.  前記制御部は、
     前記他のノードおよび前記検証ノードの各々に対して、前記第一のパケットを送信する可能性の大小を示す評価値を、前記第二のパケット、前記第三のパケット、前記識別子に基づいて、算出し、
     前記評価値の大小に基づいて、前記送信先を決定することを特徴とする請求項9記載のノード。
  11.  前記制御部は、
     前記識別子に基づいて、前記検証ノードに対する評価値を、前記他のノードに対する評価値よりも、重みづけすることを特徴とする請求項10記載のノード。
  12.  ネットワークシステムを構成する複数ノードのうち、少なくとも一部と通信可能な検証ノードが、
     通信可能なノードに、自装置が検証ノードであることを示す識別子を含む第一のパケットを送信し、
     前記通信可能なノードから、第二のパケットを受信し、
     前記第二のパケットの正当性を検証し、
     検証した結果に基づいて、他の通信可能なノードに対して、該第二のパケットの送信を制御する処理を実行することを特徴とする通信方法。
  13.  ネットワークシステムを構成する複数ノードの中の一つであり、該複数ノード間で送受信される第一のパケットを検証する検証ノードと通信するノードが、
     前記ネットワークシステムに含まれる他のノードから第二のパケットを受信し、
     前記検証ノードから、自身が検証ノードであることを示す識別子を含む第三のパケットを受信し、
      前記第二のパケットおよび前記第三のパケットに基づいて、前記検証ノードおよび前記他のノードのうち前記第一のパケットの送信先を決定する処理を実行することを特徴とする通信方法。
     
PCT/JP2012/002237 2012-03-30 2012-03-30 ネットワークシステム、ノード、検証ノードおよび通信方法 WO2013145026A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2012/002237 WO2013145026A1 (ja) 2012-03-30 2012-03-30 ネットワークシステム、ノード、検証ノードおよび通信方法
US14/456,117 US20140348000A1 (en) 2012-03-30 2014-08-11 Network system, method of controlling network system, and node device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/002237 WO2013145026A1 (ja) 2012-03-30 2012-03-30 ネットワークシステム、ノード、検証ノードおよび通信方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/456,117 Continuation US20140348000A1 (en) 2012-03-30 2014-08-11 Network system, method of controlling network system, and node device

Publications (1)

Publication Number Publication Date
WO2013145026A1 true WO2013145026A1 (ja) 2013-10-03

Family

ID=49258398

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/002237 WO2013145026A1 (ja) 2012-03-30 2012-03-30 ネットワークシステム、ノード、検証ノードおよび通信方法

Country Status (2)

Country Link
US (1) US20140348000A1 (ja)
WO (1) WO2013145026A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101796690B1 (ko) * 2016-06-28 2017-11-10 상명대학교 천안산학협력단 블록체인 기반의 펌웨어 무결성 검증 시스템 및 그 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6237770B2 (ja) * 2013-05-31 2017-11-29 富士通株式会社 無線端末、重要度生成方法及び無線通信システム
US11595367B2 (en) * 2020-09-30 2023-02-28 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Selectively disclosing content of data center interconnect encrypted links

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003069581A (ja) * 2001-08-28 2003-03-07 Nippon Telegr & Teleph Corp <Ntt> 無線マルチホップネットワークの不正パケット防止方法及び防止装置
JP2006203723A (ja) * 2005-01-24 2006-08-03 Toshiba Corp 無線アクセスポイント及びその経路決定方法又はその通信方法、無線通信システム及びその通信方法
WO2011121713A1 (ja) * 2010-03-29 2011-10-06 富士通株式会社 ノード、転送方法、および転送プログラム
JP2012015733A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 通信端末、経路選択方法及び通信方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040025018A1 (en) * 2002-01-23 2004-02-05 Haas Zygmunt J. Secure end-to-end communication in mobile ad hoc networks
JP4329656B2 (ja) * 2004-09-13 2009-09-09 沖電気工業株式会社 メッセージ受信確認方法、通信端末装置及びメッセージ受信確認システム
JP4810289B2 (ja) * 2006-04-17 2011-11-09 ルネサスエレクトロニクス株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム
US20090146839A1 (en) * 2006-05-17 2009-06-11 Tanla Solutions Limited Automated meter reading system and method thereof
US8695089B2 (en) * 2007-03-30 2014-04-08 International Business Machines Corporation Method and system for resilient packet traceback in wireless mesh and sensor networks
US9398046B2 (en) * 2008-03-06 2016-07-19 Qualcomm Incorporated Image-based man-in-the-middle protection in numeric comparison association models
US8942377B2 (en) * 2010-02-12 2015-01-27 Telefonaktiebolaget L M Ericsson (Publ) Trust discovery in a communications network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003069581A (ja) * 2001-08-28 2003-03-07 Nippon Telegr & Teleph Corp <Ntt> 無線マルチホップネットワークの不正パケット防止方法及び防止装置
JP2006203723A (ja) * 2005-01-24 2006-08-03 Toshiba Corp 無線アクセスポイント及びその経路決定方法又はその通信方法、無線通信システム及びその通信方法
WO2011121713A1 (ja) * 2010-03-29 2011-10-06 富士通株式会社 ノード、転送方法、および転送プログラム
JP2012015733A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 通信端末、経路選択方法及び通信方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101796690B1 (ko) * 2016-06-28 2017-11-10 상명대학교 천안산학협력단 블록체인 기반의 펌웨어 무결성 검증 시스템 및 그 방법

Also Published As

Publication number Publication date
US20140348000A1 (en) 2014-11-27

Similar Documents

Publication Publication Date Title
JP5652556B2 (ja) 通信ノード、通信制御方法、および通信ノードの制御プログラム
JP5240404B2 (ja) ノード、転送方法、および転送プログラム
Liu et al. Security for wireless sensor networks
JPWO2011114373A1 (ja) 通信装置、プログラムおよび方法
Song et al. Secure position-based routing protocol for mobile ad hoc networks
WO2013145026A1 (ja) ネットワークシステム、ノード、検証ノードおよび通信方法
JPWO2014030186A1 (ja) 中継装置、中継方法、中継プログラムおよび中継システム
JP5839125B2 (ja) ノードおよび通信方法
JP2012204895A (ja) 情報処理装置
JP6804026B2 (ja) 暗号化通信システム
JP5962750B2 (ja) アドホックネットワークシステム、ノード、および通信方法
JP6098322B2 (ja) パケット転送方法、ノード装置およびプログラム
US20120216036A1 (en) Encryption methods and systems
JP5949909B2 (ja) ゲートウェイおよび地震検知方法
JP5874823B2 (ja) ネットワークシステム、ノード、および通信方法。
JPWO2013145026A1 (ja) ネットワークシステム、ノード、検証ノードおよび通信方法
JP4181951B2 (ja) コンテンツ配信システム
JP5839124B2 (ja) ノードおよび通信方法
Rajanarayanan et al. Wireless sensor network based detection of malicious packets drops and cluster performance study using energy with security aware LEACH (ES-LEACH)
PATIL et al. Multimedia Data Transmission in MANETs Using the ACO-GWO Based AOMDV Protocol.
KR100916909B1 (ko) 센서 네트워크 통신을 위한 데이터 전송 방법
RAJESH et al. Efficient Secure Scheme for Identifying Provenance and Packet Dropping Attacks in Wireless Sensor Networks
JP2021141390A (ja) 通信装置、攻撃判定プログラム、及び攻撃判定方法
Mahmood Routing and Security in Mobile Ad Hoc Networks
Ibriq Secure routing in wireless sensor networks

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: 12873114

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014507017

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12873114

Country of ref document: EP

Kind code of ref document: A1