WO2017104122A1 - 通信装置、通信方法、及び通信プログラム - Google Patents

通信装置、通信方法、及び通信プログラム Download PDF

Info

Publication number
WO2017104122A1
WO2017104122A1 PCT/JP2016/005094 JP2016005094W WO2017104122A1 WO 2017104122 A1 WO2017104122 A1 WO 2017104122A1 JP 2016005094 W JP2016005094 W JP 2016005094W WO 2017104122 A1 WO2017104122 A1 WO 2017104122A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
reference range
value
range
frame
Prior art date
Application number
PCT/JP2016/005094
Other languages
English (en)
French (fr)
Inventor
正人 田邉
安齋 潤
前田 学
良浩 氏家
剛 岸川
Original Assignee
パナソニックIpマネジメント株式会社
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
Priority claimed from JP2016125991A external-priority patent/JP6566400B2/ja
Application filed by パナソニックIpマネジメント株式会社 filed Critical パナソニックIpマネジメント株式会社
Priority to EP16875111.3A priority Critical patent/EP3361677B1/en
Priority to US15/770,182 priority patent/US10713106B2/en
Publication of WO2017104122A1 publication Critical patent/WO2017104122A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks

Definitions

  • the present invention relates to a communication device, a communication method, and a communication program in a communication system connected by a bus.
  • CAN Controller Area Network
  • CAN Controller Area Network
  • prevention of malfunction of equipment is strongly demanded. Therefore, it is necessary to sufficiently protect a device connected to the CAN from an unauthorized attack via the CAN.
  • a method of detecting a fraudulent message by checking the periodicity of messages on the CAN (see, for example, Patent Document 1).
  • the detection method it is necessary to prevent the regular message from being erroneously detected as an illegal message due to a slight transmission timing shift or a slight transmission delay of the regular message. Therefore, it is conceivable to provide a margin for the determination parameter.
  • An object of the present invention is to provide a technique for reducing erroneous detection and detection omission in a balanced manner in the unauthorized detection of a message in an in-vehicle network.
  • a communication device detects a value of a plurality of first monitoring items from a communication unit that transmits and receives a message in a network, and a message received by the communication unit, and each of the plurality of first monitoring items
  • a first fraud detector that determines whether or not the detected value is within a corresponding reference range and detects a fraudulent message; For each of the plurality of first monitoring items, a first reference range and a second reference range that is narrower than the first reference range are set, and the first fraud detection unit detects that one of the detected values is the first reference range. When the value is outside, the message is determined to be an invalid message. When any of the detected values is a value within the first reference range and outside the second reference range, the message is determined to be an illegal message when a predetermined rule is satisfied.
  • the flowchart which shows the fraud detection process of a gateway apparatus The flowchart which shows the subroutine of the fraud detection process which concerns on FIG.8 S12.
  • the flowchart which shows the subroutine of the fraud detection process which concerns on FIG.8 S15 The flowchart which shows the modification of the subroutine of the fraud detection process which concerns on FIG.8 S15.
  • the flowchart which shows the modification of the fraud detection process of a gateway apparatus The figure which shows the structure of ECU which mounts the fraud detection part
  • the embodiment of the present invention relates to an in-vehicle network system.
  • ECU Electronic Control Unit
  • the in-vehicle network system connects these many ECUs to communicate with each other.
  • a communication path is composed of two buses, and an ECU connected to the bus is called a node.
  • Each node connected to the bus transmits and receives a message called a frame.
  • the transmission node adds an ID called a message ID for each frame and transmits (that is, sends a signal to the bus).
  • Each receiving node receives a frame transmitted to the bus (that is, reads a signal from the bus), and processes only a necessary frame based on an ID added to the frame.
  • each ECU operates while exchanging various messages with each other via the CAN.
  • an unauthorized message can be transmitted by impersonating another ECU.
  • the ECU can transmit an attack message to the CAN.
  • an unauthorized device is connected to the OBD-II port, which is a diagnostic port, or CAN in the vehicle, an attack message may be transmitted to the CAN. Since the vehicle is illegally controlled by such an attack, defense against these attacks is important.
  • FIG. 1 is a diagram showing a configuration of an in-vehicle network system 5 constructed in a vehicle 1 according to an embodiment of the present invention.
  • the in-vehicle network system 5 includes a plurality of ECUs 10 and gateway devices 30 connected to various devices or auxiliary machines, and these are connected by a bus 20.
  • the first ECU 10a is connected to the engine 41
  • the second ECU 10b is connected to the brake 42
  • the third ECU 10c is connected to the door opening / closing sensor 43
  • the fourth ECU 10d is connected to the window opening / closing sensor 44.
  • the first ECU 10a to the fourth ECU 10d acquire data indicating the respective states, and periodically transmit a frame including the data onto the bus 20.
  • the first ECU 10a and the second ECU 10b are connected to the first bus 20a, and the third ECU 10c and the fourth ECU 10d are connected to the second bus 20b.
  • the first bus 20a and the second bus 20b constitute a sub network system.
  • the gateway device 30 relays the first subnetwork system configured by the first bus 20a and the second subnetwork system configured by the second bus 20b.
  • the gateway device 30 has a function of transferring a frame received from the bus 20 of one subnetwork system to the bus 20 of the other subnetwork system.
  • FIG. 2 is a diagram showing a data frame format defined by the CAN protocol.
  • FIG. 2 shows a data frame in a standard ID format defined by the CAN protocol.
  • the data frame includes SOF (Start Of Frame), ID field, RTR (Remote Transmission Request), IDE (Identifier Extension Code), reserved bit “r”, DLC (Data Length Code), data field, CRC (Cyclic sequence). , A CRC delimiter “DEL”, an ACK (Acknowledgement) slot, an ACK delimiter “DEL”, and an EOF (End Of Frame).
  • SOF is composed of 1-bit dominant. When the bus is in an idle state, it is recessive, and the start of frame transmission is notified by changing to dominant by SOF.
  • the ID field is a field for storing an ID (message ID) that is a value indicating the type of data, which is composed of 11 bits.
  • ID message ID
  • a frame having a small ID is designed to have a high priority in order to perform communication arbitration in this ID field.
  • RTR is a value for identifying a data frame and a remote frame, and is composed of a dominant 1 bit in the data frame.
  • Both IDE and reserved bit “r” are composed of dominant 1 bit.
  • the DLC is composed of 4 bits and is a value indicating the length of the data field.
  • IDE, reserved bit “r”, and DLC are collectively referred to as a control field.
  • the data field is a value indicating transmission data composed of a maximum of 64 bits.
  • the length of the data field can be adjusted every 8 bits.
  • the specification of the transmission data is not defined by the CAN protocol, but is defined in the in-vehicle network system 5. Therefore, the specification of the transmission data depends on the vehicle type, manufacturer (manufacturer), and the like.
  • the CRC sequence is composed of 15 bits and is calculated from the transmission values of the SOF, ID field, control field, and data field.
  • the CRC delimiter is a delimiter representing the end of a CRC sequence composed of 1-bit recessive.
  • the CRC sequence and the CRC delimiter are collectively referred to as a CRC field.
  • the transmitting node performs transmission with the ACK slot being recessive.
  • the receiving node When the receiving node has successfully received the CRC sequence, it transmits the ACK slot as a dominant. Since dominant is given priority over recessive, if the ACK slot is dominant after transmission, the transmitting node can confirm that any receiving node has received normally.
  • ACK delimiter is a delimiter representing the end of ACK composed of 1-bit recessive.
  • the EOF is composed of 7 bits recessive and indicates the end of the data frame.
  • FIG. 3 is a diagram showing the configuration of the gateway device 30.
  • the gateway device 30 includes a processing unit 31, a storage unit 32, a communication control unit 33, and a frame transmission / reception unit 34.
  • the processing unit 31 includes a frame processing unit 311 and a fraud detection unit 312.
  • the storage unit 32 includes a reception ID list storage unit 321, a transfer rule storage unit 322, and a fraud detection parameter storage unit 323.
  • the processing unit 31 can be realized by cooperation of hardware resources and software resources, or only by hardware resources.
  • a microcomputer, DSP (Digital Signal Processor), FPGA (Field Programmable Gate Array), and other LSI (Large Scale Integration circuit) can be used as hardware resources.
  • Programs such as an operating system, applications, and firmware can be used as software resources.
  • a volatile memory and a nonvolatile memory can be used for the storage unit 32.
  • a CAN controller that is dedicated hardware can be used for the communication control unit 33.
  • a CAN transceiver which is dedicated hardware, can be used for the frame transmission / reception unit 34.
  • the frame transmission / reception unit 34 transmits / receives a frame according to the CAN protocol to each of the first bus 20a and the second bus 20b.
  • the frame transmission / reception unit 34 receives a frame from the bus 20 one bit at a time and transfers the frame to the communication control unit 33.
  • the frame transmission / reception unit 34 transmits the frame to the bus 20 one bit at a time according to the bus information acquired from the communication control unit 33.
  • the communication control unit 33 interprets the frame acquired from the frame transmitting / receiving unit 34 and maps each value constituting the frame to each field in the CAN protocol.
  • the communication control unit 33 transfers the mapped frame value to the frame processing unit 311.
  • the frame processing unit 311 acquires the value (message ID) of the ID field acquired from the communication control unit 33, receives the frame by referring to the list of message IDs held in the reception ID list storage unit 321. It is determined whether or not. If the value of the ID field is included in the list, it is determined to be received, and if it is not included, it is determined not to be received. If it is determined to be received, the frame processing unit 311 transfers the value of the field after the ID field to the fraud detection unit 312.
  • the communication control unit 33 determines that the frame acquired from the frame transmission / reception unit 34 does not comply with the CAN protocol, the communication control unit 33 generates an error frame and transfers the error frame to the frame transmission / reception unit 34.
  • the frame transmission / reception unit 34 sends the error frame acquired from the communication control unit 33 to the bus 20.
  • the frame processing unit 311 transfers the value (message) of the field after the ID field acquired from the communication control unit 33 to the fraud detection unit 312 and determines whether the acquired message is an attack message or not. To ask.
  • the frame processing unit 311 determines a bus for transferring the frame according to the transfer rule held in the transfer rule storage unit 322 and the message ID acquired from the communication control unit 33.
  • the frame processing unit 311 notifies the communication control unit 33 of the determined bus information to be transferred (bus information), the message ID, and the data.
  • the communication control unit 33 generates a frame based on the message ID and data acquired from the frame processing unit 311, and transfers the bus information and the generated frame to the frame transmission / reception unit 34.
  • the frame transmission / reception unit 34 sends the frame acquired from the communication control unit 33 to the bus 20 defined by the bus information.
  • the fraud detection unit 312 includes a reference value comparison unit 312a and a range determination unit 312b, and determines whether or not the received message is an illegal message. Details of the fraud detector 312 will be described later.
  • the reception ID list storage unit 321 holds a list of message IDs received by the gateway device 30.
  • the transfer rule storage unit 322 holds a rule to be transferred for each bus.
  • the fraud detection parameter storage unit 323 holds parameters used in fraud detection processing in the fraud detection unit 312.
  • FIG. 4A is a diagram illustrating an example of a message ID list received by the gateway device 30.
  • the message ID list table 321a illustrated in FIG. 4A includes a setting in which the gateway device 30 receives frames having message IDs “1”, “2”, “3”, and “4”.
  • FIG. 4B is a diagram illustrating an example of a transfer rule held by the gateway device 30.
  • the transfer rule table 322b shown in FIG. 4B includes a setting (ID is indicated by *) for transferring a frame received from the first bus 20a to the second bus 20b regardless of the message ID. Also included is a setting (ID is indicated by 3) in which only a frame having a message ID “3” among frames received from the second bus 20b is transferred to the first bus 20a.
  • FIG. 5 is a flowchart showing frame transfer processing in the gateway device 30.
  • FIG. 5 illustrates a process in which the gateway device 30 transfers a frame received from the first bus 20a to the second bus 20b.
  • the process for transferring the frame received from the second bus 20b to the first bus 20a is the same, and the description thereof is omitted.
  • the frame transmitting / receiving unit 34 receives a frame from the first bus 20a (S1).
  • the frame transmission / reception unit 34 transfers the ID field value (message ID) of the received frame to the communication control unit 33.
  • the communication control unit 33 cooperates with the frame processing unit 311 to determine whether the frame needs to be received based on the message ID of the received frame (S2).
  • the communication control unit 33 transfers the value of each field in the frame to the frame processing unit 311.
  • the frame processing unit 311 determines a transfer destination bus of the frame according to the transfer rule held in the transfer rule storage unit 322 (S3).
  • the frame processing unit 311 notifies the fraud detection unit 312 of the value of each field in the frame and requests to determine whether or not it is an attack message (illegal message).
  • the fraud detector 312 determines whether or not the frame is an attack message from the acquired values of each field, and reports the determination result to the frame processor 311 (S4).
  • the frame processing unit 311 When it is determined that the received frame is a normal message (Y in S4), the frame processing unit 311 requests the communication control unit 33 to transfer the frame onto the transfer destination bus determined in step S3. To do.
  • the communication control unit 33 receives the request from the frame processing unit 311 and transfers the frame to the designated transfer destination (S5). More specifically, the frame processing unit 311 transfers the value of each field of the frame to the communication control unit 33, the communication control unit 33 generates a frame, and transfers the frame to the frame transmission / reception unit 34.
  • the frame transmitting / receiving unit 34 sends the acquired frame to the designated bus 20.
  • step S2 If it is determined in step S2 that the frame does not need to be received (N in S2), or if it is determined in step S4 that the received frame is an attack message (N in S4), Transfer is not performed.
  • step S4 After determining whether the message is an attack message (step S4), it is determined whether the message is an attack message (step S4), but the order is not limited to this. After determining whether the message is an attack message (step S4), the transfer destination may be determined (step S3), or the transfer destination determination (step S3) and whether the message is an attack message (step S3). S4) may be performed simultaneously.
  • the reference value comparison unit 312a determines whether it is illegal by comparing the target value with the reference parameter value.
  • the range determination unit 312b determines whether or not the target value falls within the reference parameter range.
  • the correct value of the target value is uniquely determined.
  • the pass / fail of the monitoring item can be uniquely determined formally. That is, if the detected value of the monitoring item matches the reference parameter value of the monitoring item, it is determined to pass, and if it does not match, it is determined to fail.
  • the monitoring item used for the determination in the range determination unit 312b corresponds to a monitoring item whose value varies, such as a transmission cycle, with a range of acceptance criteria for the target value.
  • the value of the transmission cycle slightly changes depending on factors such as the amount of bus traffic and disturbance noise.
  • the first reference parameter range has a wider range than the second reference parameter range.
  • the second reference parameter range is set to a range determined for each monitoring item in consideration of the model and destination based on the specifications of the automobile manufacturer.
  • the first reference parameter range is set to a range having a predetermined margin before and / or after the second reference parameter range.
  • the range determination unit 312b determines that the value detected based on the received frame deviates from the first reference parameter range, and determines that the value is acceptable if it falls within the second reference parameter range. . Further, when the detected value falls within the first reference parameter range but deviates from the second reference parameter range, it is determined as gray.
  • FIG. 6 is a diagram illustrating an example of the fraud detection parameter table 323a held in the fraud detection parameter storage unit 323.
  • the table shown in FIG. 6 is classified into monitoring items that are targets of determination processing by the reference value comparison unit 312a and monitoring items that are targets of determination processing by the range determination unit 312b.
  • FIG. 6 shows an example in which both are constructed using the same table, both may be constructed using different tables.
  • three items “ID”, “data length”, and “payload (fixed)” are defined as monitoring items to be subjected to determination processing by the reference value comparison unit 312a.
  • ID is an item for determining whether or not the ID of the received frame is registered in the ID list in which the ID of the frame transmitted and received by the gateway device 30 is registered. If the frame ID is registered in the ID list, it is determined to be acceptable, and if not registered, it is determined to be unacceptable. In this monitoring item, it is necessary to collate the detected value (ID) with a plurality of reference parameter values (registered ID) included in the list.
  • the ID registered in the ID list may be an ID of a frame transmitted / received in the in-vehicle network system 5.
  • Data length is an item for determining whether or not the data length of the received frame is a regular value defined for each ID. If the data length matches the normal value, it is determined to pass, and if it does not match, it is determined to fail. In this monitoring item, the detected value (data length) is compared with one reference parameter value (specified data length).
  • Payment (fixed) is an item for determining whether or not the value (bit string) at a predetermined position in the data field is the same as the value (bit string) defined in advance by the specifications of the automobile manufacturer. If both values (bit strings) match, it passes, and if they do not match, it fails. In this monitoring item, the detected value (bit string) is compared with one reference parameter value (bit string). When comparing bit strings at a plurality of locations in the data field, the values (bit sequences) at the respective locations are compared.
  • Transmission cycle is an item for determining whether or not the cycle of the received frame is within the specified cycle range.
  • the first reference parameter range (first cycle range) is 80 to 120 ms (margin 20 ms (20%))
  • the second reference parameter range is 95 to 105 ms. (Margin 5 ms (5%)).
  • the range determination unit 312b determines that the received frame is not acceptable when the period of the received frame is outside the first period range, and determines that the frame is acceptable when the period is within the second period range, and is within the first period range and the second period range. If the cycle is outside, it is determined as gray.
  • the cycle of the frame is specified based on the time difference between the currently received frame and the previously received frame having the same message ID as the received frame.
  • Transmission frequency is an item for determining whether or not the transmission frequency of the received frame is within the specified transmission frequency range. For example, when the prescribed transmission frequency is 100 frames per second, the first reference parameter range (first transmission frequency) is 0 to 110 (margin 10 frames (10%)), the second reference parameter range (second transmission frequency) ) Is set to 0 to 105 (margin 5 frames (5%)) per second.
  • the range determination unit 312b determines that the transmission frequency of the received frame is unacceptable when the transmission frequency is outside the first transmission frequency, and determines that the frame is acceptable when the transmission frequency is within the second transmission frequency range. If the transmission frequency is outside the two transmission frequency range, it is determined as gray.
  • the frame transmission frequency is detected for each message ID.
  • Payment (change amount) is the change amount (absolute value) between the data field data value in the received frame and the data field data value in the previously received frame having the same message ID as the received frame. Is an item in which it is determined whether or not it falls within the specified range of change (absolute value). For example, when the data included in the data field is the engine speed, the first reference parameter range (first change range) is set to 0 to 100 rms, and the second reference parameter range (second change range) is set to 0 to 80 rms. . The range determination unit 312b determines that the data change amount of the data field of the received frame exceeds the first change range, determines that the data is not acceptable, and determines that the data change amount is less than the second change range. If it is greater than or equal to the second change range, it is determined as gray. Note that different ranges are set for the target change data for the first change range and the second change range.
  • a single data field may contain a plurality of data (engine speed, vehicle speed, etc.).
  • the range determination unit 312b performs the above-described change amount determination for each of a plurality of data with respect to one received frame. If any of the data included in the data field of the frame and subjected to payload (change amount) determination fails, the range determination unit 312b rejects the message. If all data passes, the message is determined to pass, and if any of the target data is determined to be gray and there is no rejected data, the message is Judge as gray.
  • Payment (range) is an item for determining whether or not the data value of the data field of the received frame falls within the specified data value range. For example, when the data included in the data field is the engine speed, the first reference parameter range (first data range) is set to 0 rpm to 7000 rpm, and the second reference parameter range (second data range) is set to 0 rpm to 6000 rpm. .
  • the range determination unit 312b determines that the data field of the data field of the received frame exceeds the first data range, determines that it is unacceptable, and determines that it is acceptable if it is less than the second data range. If the second data range is exceeded, it is determined as gray. Note that the first data range and the second data range are set to different ranges for each target data. Each data range may be changed according to the situation.
  • a single data field may contain a plurality of data (engine speed, vehicle speed, etc.).
  • the range determination unit 312b performs the above data range determination for each of a plurality of data with respect to one received frame. In any of the data included in the data field of the frame and subject to determination of payload (range), the range determination unit 312b determines that the determination is failed when the change amount determination fails, If the data is passed, the message is determined to be passed, and any of the target data is determined to be gray, and if there is no failed data, the message is determined to be gray.
  • FIG. 7 is a diagram schematically showing the relationship between the first reference parameter range and the second reference parameter range.
  • the range determination unit 312b uses an additional determination criterion to determine whether the finally received message is an invalid message. Additional criteria will be described later.
  • FIG. 8 is a flowchart showing fraud detection processing of the gateway device 30.
  • the frame transmission / reception unit 34 receives a frame from the bus 20 (S10).
  • the frame transmission / reception unit 34 transfers the value of each field of the received frame to the frame processing unit 311 via the communication control unit 33.
  • the message ID of the frame is an ID included in the message ID list table 321a of the reception ID list storage unit 321.
  • the frame processing unit 311 requests the fraud detection unit 312 to perform fraud detection processing on the frame.
  • the reference value comparison unit 312a detects the value of the monitoring item for reference value comparison from the frame (S11).
  • the reference value comparison unit 312a performs fraud detection processing using the detection value of the monitoring item and the reference parameter value of the monitoring item (S12).
  • FIG. 9 is a flowchart showing a fraud detection subroutine according to step S12 of FIG.
  • the reference value comparison unit 312a sets 1 as an initial value to the parameter n used in this subroutine (S121), and sets the constant T as the number of monitoring items for comparison of the reference value (the above-mentioned “ID”, “data length”, In the example of “payload (fixed)”, 3) is set (S122).
  • the reference value comparison unit 312a compares the detected value of the monitoring item (n) with the reference parameter value of the monitoring item (n) (S123). If the two do not match (no match in S123), the reference value comparison unit 312a sets “abnormal” in the item determination result (n) (S124). If the two match (match in S123), the reference value comparison unit 312a sets “normal” in the item determination result (n) (S125).
  • the reference value comparison unit 312a increments the parameter n (S126), and determines whether the parameter n exceeds a constant T (S127). If the parameter n does not exceed the constant T (N in S127), the process returns to step S123. When the parameter n exceeds the constant T (Y in S127), the reference value comparison unit 312a determines whether “abnormal” is included in the n item determination results (S128). If even one abnormality is included (Y in S128), the reference value comparison unit 312a determines that the received message is an invalid message (S129). When “abnormal” is not included in the n item determination results (N in S128), the reference value comparison unit 312a does not determine that the received message is an invalid message (that is, determines that the received message is a normal message). ).
  • the fraud detection unit 312 indicates that the received message is an illegal message.
  • the data is reported to the processing unit 311 (S18), and the process ends.
  • the range determination unit 312b detects the value of the monitoring item for range determination from the frame (S14). .
  • the range determination unit 312b performs fraud detection processing using the detection value of the monitoring item and the reference parameter range of the monitoring item (S15).
  • FIG. 10 is a flowchart showing a fraud detection subroutine according to step S15 of FIG.
  • the range determination unit 312b sets 1 as an initial value to the parameter n used in this subroutine (S151), and sets the number of monitoring items for the range determination (the above-mentioned “transmission cycle”, “transmission frequency”, “ In the example of “payload (change amount)” and “payload (range)”, 4) is set (S152).
  • the range determination unit 312b determines whether or not the detected value of the monitoring item (n) falls within the first reference parameter range of the monitoring item (n) (S153). When it does not fall within the first reference parameter range (outside the range of S153), the range determination unit 312b sets “abnormal” as the item determination result (n) (S154). When falling within the first reference parameter range (within the range of S153), the range determination unit 312b determines whether or not the detection value of the monitoring item (n) falls within the second reference parameter range of the monitoring item (n). (S155). When falling within the second reference parameter range (within the range of S155), the range determination unit 312b sets “normal” to the item determination result (n) (S156). If it does not fall within the second reference parameter range (outside the range of S155), the range determination unit 312b sets “gray” as the item determination result (n) (S157).
  • the range determination unit 312b increments the parameter n (S158), and determines whether the parameter n exceeds a constant T (S159). When the parameter n does not exceed the constant T (N in S159), the process returns to step S153. When the parameter n exceeds the constant T (Y in S159), the range determination unit 312b determines whether “abnormal” is included in the n item determination results (S1510). If even one “abnormal” is included (Y in S1510), the range determination unit 312b determines that the received message is an unauthorized message (S1512).
  • the range determination unit 312b determines whether or not “gray” is included in the n item determination results more than the set number (additional determination). (Corresponding to the reference) is determined (S1511). When “gray” is included in the set number (an integer greater than or equal to 2 and less than or equal to T) (Y in S1511), the range determination unit 312b determines that the received message is an unauthorized message (S1512). When “gray” is not included in the set number or more (N in S1511), the range determination unit 312b does not determine the received message as an invalid message (that is, determines the received message as a normal message).
  • the fraud detection unit 312 when the determination result by the range determination unit 312b is a determination result that the message is an unauthorized message (Y in S16), the fraud detection unit 312 performs frame processing to indicate that the received message is an unauthorized message. Report to the unit 311 (S18), and the process ends. If the determination result by the range determination unit 312b is a determination result that is not an unauthorized message (N in S16), the fraud detection unit 312 reports to the frame processing unit 311 that the received message is a normal message ( S17), the process is terminated.
  • the gray determination may be weighted for each monitoring item.
  • the range determination unit 312b sets “weight” to the item determination result (n) in order to weight each monitoring item when the gray determination is made in S155 in FIG. Then, in S1511 in FIG. 10, instead of comparing the number of “gray” included in the n item determination results with the set number, the total score obtained by adding the item determination results is compared with the threshold value. .
  • the range determination unit 312b determines that the message is an unauthorized message when the total score exceeds the threshold value, and does not determine that the message is an unauthorized message.
  • the above setting number, weight of each monitoring item and threshold value are set based on the results of experiments and / or simulations, the knowledge of the designer, and the like. The designer can adjust the determination sensitivity by adjusting these values.
  • FIG. 11 is a flowchart showing a modification of the subroutine of fraud detection processing according to step S15 in FIG.
  • the range determination unit 312b sets 1 as an initial value to the parameter n used in this subroutine (S151), and sets the number of monitoring items for range determination (4 in the above example) to the constant T (S152).
  • the range determination unit 312b determines whether or not the detection value of the monitoring item (n) falls within the first reference parameter range of the monitoring item (n) (S153). When the detected value of the monitoring item (n) does not fall within the first reference parameter range (outside the range of S153), the range determination unit 312b sets “abnormal” as the item determination result (n) (S154). In this case, the range determination unit 312b determines that the received message is a fraud message (S1512), and ends the fraud detection process in the range determination unit 312b.
  • the range determination unit 312b determines that the detection value of the monitoring item (n) is the second reference parameter of the monitoring item (n). It is determined whether it falls within the range (S155). When the detected value of the monitoring item (n) does not fall within the second reference parameter range (outside the range of S155), the range determination unit 312b sets “gray” as the item determination result (n) (S157).
  • the range determination unit 312b determines the item determination result (n ) Is set to “normal” (S156). If n item determination results (before the item determination result (n)) include “normal” or more in the second set number (an integer equal to or greater than 1 and equal to or less than T) (Y in S1513), the range determination unit 312b receives The fraud detection process in the range determination unit 312b is terminated without determining that the received message is a fraudulent message.
  • the range determination unit 312b increments the parameter n (S158), It is determined whether n exceeds a constant T (S159). When the parameter n does not exceed the constant T (N in S159), the process returns to step S153.
  • the range determination unit 312b determines whether or not “gray” is included in the n item determination results by the first set number or more (corresponding to an additional determination criterion). Determination is made (S1511). When “gray” is included in the first set number (an integer equal to or greater than 2 and equal to or less than T) (Y in S1511), the range determination unit 312b determines that the received message is an unauthorized message (S1512). When “gray” is not included in the set number or more (N in S1511), the range determination unit 312b does not determine that the received message is an unauthorized message.
  • the number of monitoring items (n) applied to the received message and the order in which the monitoring items (n) are applied are changed according to the type of the received message, thereby improving the accuracy of detecting illegal messages. Is possible.
  • the range determination unit 312b An example of performing fraud determination processing was shown. That is, if the determination result of the fraud determination process by the reference value comparison unit 312a is a fraud message, the fraud determination process by the range determination unit 312b is skipped.
  • the processing of the reference value comparison unit 312a and the range determination unit 312b may be executed in parallel as described in detail below.
  • FIG. 12 is a flowchart showing a modification of the fraud detection process of the gateway device 30.
  • the frame transmission / reception unit 34 receives a frame from the bus 20 (S10).
  • the frame transmission / reception unit 34 transfers the value of each field of the received frame to the frame processing unit 311 via the communication control unit 33.
  • the message ID of the frame is an ID included in the message ID list table 321a of the reception ID list storage unit 321.
  • the frame processing unit 311 requests the fraud detection unit 312 to perform fraud detection processing on the frame.
  • the reference value comparison unit 312a detects the value of the monitoring item for reference value comparison from the frame (S11).
  • the reference value comparison unit 312a performs fraud detection processing using the detection value of the monitoring item and the reference parameter value of the monitoring item (S12).
  • the range determination unit 312b detects the value of the monitoring item for range determination from the frame (S14).
  • the range determination unit 312b performs fraud detection processing using the detection value of the monitoring item and the reference parameter range of the monitoring item (S15).
  • the processes according to steps S11 and S12 and the processes according to steps S14 and S15 are executed in parallel.
  • the fraud detection unit 312 determines whether or not at least one of the determination result by the reference value comparison unit 312a and the determination result by the range determination unit 312b is a determination result that the message is an unauthorized message (S16a). If at least one of the determination results is a determination result that is a fraudulent message (Y in S16a), the fraud detection unit 312 reports to the frame processing unit 311 that the received message is a fraud message (S18). ), The process is terminated. If both determination results are determination results that are not illegal messages (N in S16a), the fraud detection unit 312 reports to the frame processing unit 311 that the received message is a normal message (S17), and the processing Exit.
  • the fraud detection process by the range determination unit 312b since the fraud detection process by the range determination unit 312b is always executed, the total calculation amount is larger than the algorithm shown in FIG. 8 in which the process may be skipped.
  • the target frame is not determined to be a fraud message by the fraud detection process by the reference value comparison unit 312a, but is determined to be a fraud message by the fraud detection process by the range determination unit 312b, the case illustrated in FIG. Compared to the algorithm, the time until the final determination can be shortened.
  • the fraud detection unit 312 is mounted on the gateway device 30
  • the fraud detection unit may be mounted on the ECU 10.
  • FIG. 13 is a diagram illustrating a configuration of the ECU 10 on which the fraud detection unit 112 is mounted.
  • the ECU 10 includes a processing unit 11, a storage unit 12, a communication control unit 13, and a frame transmission / reception unit 14.
  • the processing unit 11 includes a frame processing unit 111, a fraud detection unit 112, and an application execution unit 113.
  • the storage unit 12 includes a reception ID list storage unit 121 and a fraud detection parameter storage unit 123.
  • the processing unit 11 can be realized by cooperation of hardware resources and software resources, or only by hardware resources.
  • a microcomputer, DSP, FPGA, or other LSI can be used as a hardware resource.
  • Programs such as an operating system, applications, and firmware can be used as software resources.
  • a volatile memory and a nonvolatile memory can be used for the storage unit 12.
  • the communication control unit 13 can use a CAN controller that is dedicated hardware.
  • the structure which integrates the function of the communication control part 13 in the process part 11 is also possible.
  • a CAN transceiver which is dedicated hardware, can be used for the frame transmission / reception unit 14.
  • the frame transmission / reception unit 14 transmits / receives a frame according to the CAN protocol on the bus 20.
  • the frame transmitting / receiving unit 14 receives a frame from the bus 20 one bit at a time and transfers the frame to the communication control unit 13.
  • the frame transmission / reception unit 14 transmits the frame acquired from the communication control unit 13 to the bus 20 bit by bit.
  • the communication control unit 13 interprets the frame acquired from the frame transmission / reception unit 14 and maps each value constituting the frame to each field in the CAN protocol.
  • the communication control unit 13 transfers the mapped frame value to the frame processing unit 111.
  • the frame processing unit 111 acquires the value of the ID field (message ID) acquired from the communication control unit 13 and receives the frame by referring to the list of message IDs held in the reception ID list storage unit 121. It is determined whether or not. If the value of the ID field is included in the list, it is determined to be received, and if it is not included, it is determined not to be received. If it is determined to be received, the frame processing unit 111 transfers the value of the field after the ID field to the fraud detection unit 112.
  • the ID field messages ID
  • the communication control unit 13 determines that the frame acquired from the frame transmission / reception unit 14 does not comply with the CAN protocol, the communication control unit 13 generates an error frame and transfers the error frame to the frame transmission / reception unit 14.
  • the frame transmission / reception unit 14 sends the error frame acquired from the communication control unit 13 to the bus 20.
  • the frame processing unit 111 transfers the value (message) of the field after the ID field acquired from the communication control unit 13 to the fraud detection unit 112, and determines whether the acquired message is an attack message or not. To ask.
  • a specific fraud detection method is the same as the method described with reference to FIGS.
  • the frame processing unit 111 transfers the received frame data to the application execution unit 113.
  • the application execution unit 113 executes predetermined processing according to the data. The content of the process differs for each ECU 10.
  • the first ECU 10a in FIG. 1 has a function of sounding an alarm sound when the door is opened with the speed exceeding 30 km.
  • the third ECU 100c has a function of sounding an alarm sound when the door is opened with no brake applied.
  • the application execution unit 113 acquires the state of the connected device or sensor and notifies the frame processing unit 111 of the acquired state.
  • the frame processing unit 111 notifies the communication control unit 13 of the message ID and the data acquired from the application execution unit 113.
  • the communication control unit 13 generates a frame based on the message ID and data acquired from the frame processing unit 111, and transfers the generated frame to the frame transmission / reception unit 14.
  • the frame transmission / reception unit 14 sends the frame acquired from the communication control unit 13 to the bus 20.
  • the fraud detection unit 112 in FIG. 13 is omitted. Further, in the configuration in which reception restriction by the message ID of the frame received in the ECU 10 is not performed, the reception ID list storage unit 121 of FIG. 13 is omitted.
  • FIG. 13 illustrates an example in which the fraud detection unit 112 performs fraud detection processing on a message received by the ECU 10.
  • the fraud detector 112 may determine whether the data acquired from the connected device is fraudulent. For example, when the ECU 10 is an ECU that cooperates with the car navigation system, the fraud detector 112 determines whether or not the message transmitted from the car navigation system is an attack message. If the fraud detection unit 112 determines that the message is an attack message, the fraud detection unit 112 stops sending the message from the ECU 10 to the bus 20.
  • the range determination unit 112b when the detected value is within the first reference parameter range but outside the second reference parameter range, it is determined as gray and determined as gray. It is determined whether the message is normal or invalid according to the number of monitored items. As a result, it is possible to accurately determine whether the message having the gray zone detection value is normal or illegal, and it is possible to reduce erroneous detection and detection omission in a balanced manner. That is, the detection accuracy of the CAN filter can be improved.
  • the gateway device 30 performs the fraud detection process on the frame to be transferred to the other bus 20 has been described.
  • the fraud detection process may be performed on all frames received by the gateway device 30.
  • the reference value comparison unit 312a (112a) and the range determination unit 312b (112b) are described separately.
  • the reference value comparison unit 312a (112a) and the range determination unit 312b are described.
  • (112b) may be configured as one fraud detection unit. In that case, a total final determination is made by combining the results of all fraud detection processes. For example, normal / incorrect may be determined based on “ID” and the number of gray determinations of the monitoring items for range determination.
  • the reference value comparison unit 312a (112a) has described the determination method based on comparison with a reference parameter value that is a fixed value. In this regard, the reference value comparison unit 312a (112a) may also adopt range determination using the reference parameter range.
  • the in-vehicle network is shown as an example of the network communication system that performs communication according to the CAN protocol.
  • the technology according to the present invention is not limited to use in an in-vehicle network, but may be used in a network such as a robot and an industrial device, a network communication system that communicates according to a CAN protocol other than the in-vehicle network, and the like.
  • CANOpen used for an embedded system in an automation system
  • TTCAN Time-Triggered CAN
  • CANFD CAN with Flexible Data
  • It may be a protocol derived from CAN such as “Rate”, or another communication protocol used in the in-vehicle network (for example, Ethernet (registered trademark), MOST, FlexRay, etc.).
  • a first fraud detector (312b) for detecting fraudulent messages, For each of the plurality of first monitoring items, a first reference range and a second reference range that is narrower than the first reference range are set, The first fraud detector (312b) When any of the detected values is outside the first reference range, the message is determined to be an unauthorized message, When any of the detected values is a value within the first reference range and outside the second reference range, the message is determined to be an unauthorized message when a predetermined rule is satisfied.
  • the first fraud detector (312b) has a predetermined number of first monitoring items in which the detection value is a value within the first reference range and outside the second reference range as the predetermined rule.
  • the first fraud detector (312b) When the detected value is outside the first reference range, the first fraud detector (312b) skips the determination whether the detected value is within the second reference range and sends the message as an unauthorized message. And when the detected value is a value within the first reference range, it is determined whether or not the detected value is within the second reference range.
  • Item 3. The communication device (30) according to item 1 or 2.
  • the entire processing amount can be reduced.
  • the first fraud detection unit (312b) determines whether or not the detection value is within the second reference range when the detection value is within the first reference range. When determined to be within the second reference range, When the number of the first monitoring items within the second reference range satisfies a predetermined number m (m is an integer not less than 1 and not more than the number of the plurality of first monitoring items), at least for the next detection value Skip the decision, When the number of first monitoring items within the second reference range satisfies a predetermined number m, the determination for the next detection value is continued.
  • the communication device (30) according to any one of items 1 to 3.
  • a value of at least one second monitoring item different from the monitoring item determined by the first fraud detection unit (312b) is detected, and each detected value of the at least one second monitoring item is A second fraud detection unit (312a) for detecting a fraudulent message by comparing with a corresponding reference value;
  • the second fraud detector (312a) determines the message as a fraud message when each detected value of the at least one second monitoring item does not match the corresponding reference value.
  • Communication device (30) in any one of items 1 to 4.
  • the entire processing amount can be reduced.
  • [Item 7] Detecting a value of a plurality of monitoring items from a message received from the network, determining whether or not each detection value of the plurality of monitoring items is within a corresponding reference range, and detecting a fraudulent message; For each of the plurality of monitoring items, a first reference range and a second reference range that is narrower than the first reference range are set, When any of the detected values is outside the first reference range, the message is determined to be an unauthorized message, When any of the detected values is a value within the first reference range and outside the second reference range, the message is determined to be an unauthorized message when a predetermined rule is satisfied.
  • a communication method in a communication device When any of the detected values is a value within the first reference range and outside the second reference range, the message is determined to be an unauthorized message when a predetermined rule is satisfied.
  • a process for detecting a fraudulent message by detecting values of a plurality of monitoring items from a message received from a network, determining whether or not each detection value of the plurality of monitoring items is within a corresponding reference range A communication program to be executed by For each of the plurality of monitoring items, a first reference range and a second reference range that is narrower than the first reference range are set, The process of detecting the unauthorized message is as follows: When any of the detected values is outside the first reference range, the message is determined to be an unauthorized message, When any of the detected values is a value within the first reference range and outside the second reference range, the message is determined to be an invalid message when a predetermined rule is satisfied. Communication program.
  • the present invention is useful not only for in-vehicle networks but also for detecting unauthorized messages in other networks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

通信部は、ネットワークにおけるメッセージを送受信する。第1不正検知部は、通信部において受信されたメッセージから複数の監視項目の値を検出し、複数の監視項目の各検出値が対応する基準範囲に収まっているか否かを判定して、不正メッセージを検知する。複数の監視項目ごとに、第1基準範囲と、第1基準範囲より範囲が狭い第2基準範囲とが設定されている。第1不正検知部は、検出値のいずれかが第1基準範囲外の値であるとき、メッセージを不正メッセージと判定し、検出値のいずれかが第1基準範囲内でかつ第2基準範囲外の値であるとき、所定の規則を満たす場合にメッセージを不正メッセージと判定する。

Description

通信装置、通信方法、及び通信プログラム
 本発明は、バスで接続された通信システムにおける通信装置、通信方法、及び通信プログラムに関する。
 車載ネットワークとしてCAN(Controller Area Network)が普及している。車載用途では機器の誤動作の防止がより強く求められる。従ってCANに接続された機器を、CANを介した不正な攻撃から十分に防御する必要がある。例えば、CAN上のメッセージの周期性をチェックすることで、不正メッセージを検知する方法がある(例えば、特許文献1参照)。当該検知方法において、正規メッセージの若干の送信タイミングのずれまたは若干の伝送遅延により、正規メッセージを不正メッセージとして誤検知することを防止する必要がある。そこで、判定用のパラメータにマージンを持たせることが考えられる。
国際公開第2014/115455号
 本発明の目的は、車載ネットワークにおけるメッセージの不正検知において、誤検知と検知漏れをバランス良く低減する技術を提供することにある。
 本発明の一態様の通信装置は、ネットワークにおけるメッセージを送受信する通信部と、通信部において受信されたメッセージから複数の第一の監視項目の値を検出し、複数の第一の監視項目の各検出値が対応する基準範囲に収まっているか否かを判定して、不正メッセージを検知する第1不正検知部と、を備える。複数の第一の監視項目ごとに、第1基準範囲と、第1基準範囲より範囲が狭い第2基準範囲とが設定され、第1不正検知部は、検出値のいずれかが第1基準範囲外の値であるとき、メッセージを不正メッセージと判定する。検出値のいずれかが第1基準範囲内でかつ第2基準範囲外の値であるとき、所定の規則を満たす場合にメッセージを不正メッセージと判定する。
 なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
 本発明によれば、車載ネットワークにおけるメッセージの不正検知において、誤検知と検知漏れをバランス良く低減することができる。
本発明の実施の形態に係る、車両内に構築される車載ネットワークシステムの構成を示す図 CANプロトコルで規定されるデータフレームのフォーマットを示す図 ゲートウェイ装置の構成を示す図 ゲートウェイ装置が受信するメッセージIDリストの一例を示す図 ゲートウェイ装置が保有する転送ルールの一例を示す図 ゲートウェイ装置のフレーム転送処理を示すフローチャート 不正検知パラメータ記憶部に保持される不正検知パラメータテーブルの一例を示す図 第1基準パラメータ範囲と第2基準パラメータ範囲の関係を模式的に描いた図 ゲートウェイ装置の不正検知処理を示すフローチャート 図8のステップS12に係る不正検知処理のサブルーチンを示すフローチャート 図8のステップS15に係る不正検知処理のサブルーチンを示すフローチャート 図8のステップS15に係る不正検知処理のサブルーチンの変形例を示すフローチャート ゲートウェイ装置の不正検知処理の変形例を示すフローチャート 不正検知部を搭載したECUの構成を示す図
 本発明の実施の形態の説明に先立ち、従来の装置における問題点を簡単に説明する。不正メッセージを検知するための判定用のパラメータにマージンを持たせると、正規メッセージと近い周期、頻度、またはデータを持つ不正メッセージを正規メッセージとして見逃す可能性が増大する。車載ネットワークにおけるメッセージの不正検知において、正規メッセージを不正メッセージと判定する誤検知と、不正メッセージを正規メッセージと判定する検知漏れの両方を低減する必要がある。
 本発明の実施の形態は車載ネットワークシステムに関する。近年、車両内に多数の電子制御ユニット(ECU:Electronic Control Unit)が搭載されるようになってきている。車載ネットワークシステムは、これら多数のECUを接続し、相互通信する。車載ネットワークに関する多数の規格が存在するが、代表的な車載ネットワーク規格の一つに、ISO11898-1で規定されたCANがある。
 CANでは、通信路は2本のバスで構成され、バスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。またCANでは、送信先または送信元を指す識別子は存在せず、送信ノードはフレーム毎にメッセージIDと呼ばれるIDを付加して送信する(つまりバスに信号を送出する)。各受信ノードはバスに送信されたフレームを受信し(つまりバスから信号を読み取り)、フレームに付加されたIDに基づいて必要なフレームに対してのみ処理を行う。
 上述の通り、車両内には多数のECUが配置され、それぞれがバスによって接続される。各ECUはCANを介して、様々なメッセージを互いにやりとりしながら動作している。ここで、外部と通信機能を持つECUが外部から攻撃され、CANに対して攻撃メッセージを送信できるようになった場合、他のECUになりすまして不正メッセージを送信することができる。また、あるECU内のファームウェア内に、不正プログラムが忍び込まれている場合も、そのECUはCANに対して攻撃メッセージを送信することができる。また、診断用ポートであるOBD-IIポートまたは車両内のCANに不正な機器を接続された場合も、CANに対して攻撃メッセージが送信されることがある。このような攻撃によって車両が不正に制御されてしまうため、これらの攻撃に対する防御が重要となる。
 図1は、本発明の実施の形態に係る、車両1内に構築される車載ネットワークシステム5の構成を示す図である。車載ネットワークシステム5は、各種の機器または補機に接続された複数のECU10、ゲートウェイ装置30を備え、それらはバス20で接続されている。
 図1に示す例では、第1ECU10aはエンジン41に、第2ECU10bはブレーキ42に、第3ECU10cはドア開閉センサ43に、第4ECU10dはウインドウ開閉センサ44にそれぞれ接続されている。第1ECU10a-第4ECU10dは、それぞれの状態を示すデータを取得し、当該データを含むフレームを定期的にバス20上に送信している。
 第1ECU10a及び第2ECU10bは第1バス20aに接続され、第3ECU10c及び第4ECU10dは第2バス20bに接続されている。第1バス20a及び第2バス20bによって、それぞれサブネットワークシステムが構成されている。ゲートウェイ装置30は、第1バス20aによって構成された第1サブネットワークシステムと、第2バス20bによって構成された第2サブネットワークシステムとを中継する。ゲートウェイ装置30は、一方のサブネットワークシステムのバス20から受信したフレームを、他方のサブネットワークシステムのバス20に転送する機能を持つ。以下では、車載ネットワークシステム5として、CANプロトコルに従ったネットワークシステムを用いる例を示す。
 図2は、CANプロトコルで規定されるデータフレームのフォーマットを示す図である。図2には、CANプロトコルで規定される標準IDフォーマットにおけるデータフレームが示されている。データフレームは、SOF(Start Of Frame)、IDフィールド、RTR(Remote Transmission Request)、IDE(Identifier Extension)、予約ビット「r」、DLC(Data Length Code)、データフィールド、CRC(Cyclic Redundancy Check)シーケンス、CRCデリミタ「DEL」、ACK(Acknowledgement)スロット、ACKデリミタ「DEL」、及びEOF(End Of Frame)で構成される。
 SOFは、1bitのドミナント(dominant)で構成される。バスがアイドルの状態ではレセシブ(recessive)になっており、SOFによりドミナントへ変更することでフレームの送信開始を通知する。
 IDフィールドは、11bitで構成される、データの種類を示す値であるID(メッセージID)を格納するフィールドである。複数のノードが同時に送信を開始した場合、このIDフィールドで通信調停を行うために、IDが小さい値を持つフレームが高い優先度となるよう設計されている。
 RTRは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント1bitで構成される。
 IDEと予約ビット「r」は、両方ドミナント1bitで構成される。DLCは、4bitで構成され、データフィールドの長さを示す値である。なお、IDE、予約ビット「r」及びDLCを合わせてコントロールフィールドと称する。
 データフィールドは、最大64bitで構成される送信データを示す値である。データフィールドは、8bit毎に長さを調整することができる。送信データの仕様については、CANプロトコルで規定されておらず、車載ネットワークシステム5において定められる。従って、送信データの仕様は、車種、製造者(製造メーカ)等に依存する。
 CRCシーケンスは、15bitで構成され、SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。なお、CRCシーケンス及びCRCデリミタを合わせてCRCフィールドと称する。
 ACKスロットは、1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができたとき、ACKスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが正常に受信したことを確認できる。
 ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。
 図3は、ゲートウェイ装置30の構成を示す図である。ゲートウェイ装置30は、処理部31、記憶部32、通信制御部33及びフレーム送受信部34を備える。処理部31は、フレーム処理部311及び不正検知部312を含む。記憶部32は、受信IDリスト記憶部321、転送ルール記憶部322及び不正検知パラメータ記憶部323を含む。
 処理部31は、ハードウェア資源とソフトウェア資源の協働、またはハードウェア資源のみにより実現できる。ハードウェア資源としてマイクロコンピュータ、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、その他のLSI(Large Scale Integration circuit)が利用できる。ソフトウェア資源としてオペレーティングシステム、アプリケーション、ファームウェア等のプログラムが利用できる。記憶部32には揮発性メモリ及び不揮発性メモリが利用できる。通信制御部33には、専用のハードウェアであるCANコントローラが利用できる。なお、通信制御部33の機能を処理部31に統合する構成も可能である。フレーム送受信部34には、専用のハードウェアであるCANトランシーバが利用できる。
 フレーム送受信部34は、第1バス20a及び第2バス20bのそれぞれに、CANプロトコルに従ったフレームを送受信する。フレーム送受信部34は、バス20からフレームを1bitずつ受信して、通信制御部33にフレームを転送する。また、フレーム送受信部34は、通信制御部33から取得したバス情報に応じて、フレームをバス20に1bitずつ送信する。
 通信制御部33は、フレーム送受信部34から取得したフレームを解釈し、フレームを構成する各値を、CANプロトコルにおける各フィールドにマッピングする。通信制御部33は、マッピングされたフレームの値をフレーム処理部311に転送する。
 フレーム処理部311は、通信制御部33から取得したIDフィールドの値(メッセージID)を取得し、受信IDリスト記憶部321に保持されているメッセージIDのリストを参照して、当該フレームを受信するか否かを判定する。IDフィールドの値が当該リストに含まれている場合は受信すると判定し、含まれていない場合は受信しないと判定する。受信すると判定した場合、フレーム処理部311はIDフィールド以降のフィールドの値を不正検知部312に転送する。
 また通信制御部33は、フレーム送受信部34から取得したフレームがCANプロトコルに則していないと判断した場合、エラーフレームを生成し、フレーム送受信部34にエラーフレームを転送する。フレーム送受信部34は、通信制御部33から取得したエラーフレームをバス20に送出する。
 フレーム処理部311は、通信制御部33から取得したIDフィールド以降のフィールドの値(メッセージ)を不正検知部312に転送し、取得したメッセージが攻撃メッセージであるか否かの判定を不正検知部312に依頼する。
 またフレーム処理部311は、転送ルール記憶部322に保持される転送ルールと通信制御部33から取得したメッセージIDとに従い、当該フレームを転送するバスを決定する。フレーム処理部311は、決定された転送するバスの情報(バス情報)と当該メッセージIDとデータを通信制御部33に通知する。
 通信制御部33は、フレーム処理部311から取得したメッセージIDとデータをもとにフレームを生成し、バス情報と生成されたフレームをフレーム送受信部34に転送する。フレーム送受信部34は、通信制御部33から取得したフレームを、バス情報に規定されたバス20に送出する。
 不正検知部312は、基準値比較部312a及びレンジ判定部312bを含み、受信したメッセージが不正なメッセージであるか否かを判定する。不正検知部312の詳細は後述する。
 受信IDリスト記憶部321は、ゲートウェイ装置30が受信するメッセージIDのリストを保持する。転送ルール記憶部322は、転送するルールをバス毎に保持する。不正検知パラメータ記憶部323は、不正検知部312における不正検知処理で使用されるパラメータを保持する。
 図4Aは、ゲートウェイ装置30が受信するメッセージIDリストの一例を示す図である。図4Aに示すメッセージIDリストテーブル321aは、メッセージIDが「1」、「2」、「3」、「4」のフレームをゲートウェイ装置30が受信する設定を含む。
 図4Bは、ゲートウェイ装置30が保有する転送ルールの一例を示す図である。図4Bに示す転送ルールテーブル322bは、第1バス20aから受信するフレームはメッセージIDに関わらず、第2バス20bに転送する設定(IDは*で示される)を含む。また、第2バス20bから受信するフレームのうち、メッセージIDが「3」のフレームのみを第1バス20aに転送する設定(IDは3で示される)を含む。
 図5は、ゲートウェイ装置30におけるフレーム転送処理を示すフローチャートである。図5では、ゲートウェイ装置30が、第1バス20aから受信したフレームを第2バス20bに転送する処理を説明する。なお、第2バス20bから受信したフレームを第1バス20aに転送する処理も同様であるため、説明を省略する。
 まず、フレーム送受信部34は、第1バス20aからフレームを受信する(S1)。フレーム送受信部34は、受信したフレームのIDフィールドの値(メッセージID)を通信制御部33へ転送する。通信制御部33は、フレーム処理部311と連携して、受信したフレームのメッセージIDに基づいて、受信処理する必要があるフレームであるか否かを判定する(S2)。
 受信処理する必要があるフレームであると判定された場合(S2のY)、通信制御部33は、フレーム処理部311にフレーム内の各フィールドの値を転送する。フレーム処理部311は、転送ルール記憶部322に保持される転送ルールに従って、当該フレームの転送先のバスを決定する(S3)。
 フレーム処理部311は、フレーム内の各フィールドの値を不正検知部312に通知し、攻撃メッセージ(不正メッセージ)であるか否かの判定を依頼する。不正検知部312は、取得した各フィールドの値から、当該フレームが攻撃メッセージであるか否かを判定し、その判定結果をフレーム処理部311に報告する(S4)。
 受信したフレームが正常メッセージであると判定された場合(S4のY)、フレーム処理部311は、ステップS3で決定された転送先のバス上に当該フレームを転送するよう、通信制御部33に依頼する。通信制御部33は、フレーム処理部311からの依頼を受けて、指定された転送先へフレームを転送する(S5)。より具体的には、フレーム処理部311は、フレームの各フィールドの値を通信制御部33へ転送し、通信制御部33がフレームを生成し、フレーム送受信部34にフレームを転送する。フレーム送受信部34は、取得したフレームを指定されたバス20に送出する。
 ステップS2において、受信処理する必要がないフレームであると判定された場合(S2のN)、またはステップS4において、受信したフレームが攻撃メッセージであると判定された場合(S4のN)、フレームの転送は実施されない。
 なお、上述のフローチャートでは、転送先を決定した(ステップS3)後、攻撃メッセージであるか否かを判断した(ステップS4)が、この順番に限定されるものではない。攻撃メッセージであるか否かを判断した(ステップS4)後、転送先を決定(ステップS3)してもよいし、転送先の決定(ステップS3)と攻撃メッセージであるか否かの判断(ステップS4)を同時に行ってもよい。
 以下、不正検知部312における不正検知処理の詳細を説明する。基準値比較部312aは、受信したメッセージが不正であるか否かを判定する際、対象となる値と基準パラメータ値との比較により不正であるか否かを判定する。レンジ判定部312bは、受信したメッセージが不正であるか否かを判定する際、対象となる値が基準パラメータ範囲に収まるか否かを判定する。
 基準値比較部312aにおける判定に用いられる監視項目は、対象となる値の正解値が一意的に定まっている。当該監視項目の検出値と当該監視項目の基準パラメータ値(固定値)とを比較することにより、当該監視項目の合否を形式的に一意に判定できる。即ち、監視項目の検出値が監視項目の基準パラメータ値と一致していれば合格、不一致であれば不合格と判定される。
 一方、レンジ判定部312bにおける判定に用いられる監視項目は、対象となる値の合格基準に幅があり、送信周期など値が変動する監視項目が該当する。例えば、送信周期はバスのトラフィック量、外乱ノイズ等の要因により値が微小に変化する。
 レンジ判定部312bにおける判定処理では、2つの基準パラメータ範囲を使用する。第1基準パラメータ範囲は、第2基準パラメータ範囲より広い範囲を持つ。例えば、第2基準パラメータ範囲は、自動車メーカの仕様に基づき、モデル、仕向地を考慮して監視項目ごとに決定された範囲に設定される。第1基準パラメータ範囲は、第2基準パラメータの範囲の前および/または後に所定のマージンを持たせた範囲に設定される。
 レンジ判定部312bは、受信したフレームをもとに検出した値が第1基準パラメータ範囲を逸脱している場合は不合格と判定し、第2基準パラメータ範囲に収まっている場合は合格と判定する。また、当該検出値が、第1基準パラメータ範囲には収まるが第2基準パラメータ範囲を逸脱している場合はグレーと判定する。
 図6は、不正検知パラメータ記憶部323に保持される不正検知パラメータテーブル323aの一例を示す図である。図6に示すテーブルでは、基準値比較部312aによる判定処理の対象となる監視項目と、レンジ判定部312bによる判定処理の対象となる監視項目に分類されている。なお、図6では両者を同一テーブルで構築する例を示しているが、両者を別のテーブルで構築してもよい。
 図6に示す例では、基準値比較部312aによる判定処理の対象となる監視項目として、「ID」、「データ長」、「ペイロード(固定)」の3項目を規定している。
 「ID」は、ゲートウェイ装置30が送受信するフレームのIDが登録されているIDリスト中に、受信したフレームのIDが登録されているか否かが判定される項目である。フレームのIDがIDリストに登録されていれば合格、登録されていなければ不合格と判定される。この監視項目においては、検出された値(ID)と、リストに含まれる複数の基準パラメータ値(登録ID)とを照合する必要がある。なお、IDリストに登録されているIDは、車載ネットワークシステム5において送受信されるフレームのIDであってもよい。
 「データ長」は、受信したフレームのデータ長が、IDごとに規定された正規の値であるか否かが判定される項目である。データ長が正規の値に一致すれば合格、一致しなければ不合格と判定される。この監視項目においては、検出された値(データ長)と、1つの基準パラメータ値(規定のデータ長)とが比較される。
 「ペイロード(固定)」は、データフィールドの所定の位置の値(ビット列)が、あらかじめ自動車メーカの仕様によって規定された値(ビット列)と同じ値であるか否かが判定される項目である。両者の値(ビット列)が一致すれば合格、一致しなければ不合格となる。この監視項目においては、検出された値(ビット列)と、1つの基準パラメータ値(ビット列)とが比較される。なお、データフィールドの複数の箇所のビット列を比較する場合は、各箇所の値(ビット列)が比較される。
 また、図6に示す例では、レンジ判定部312bによる判定処理の対象となる監視項目として、「送信周期」、「送信頻度」、「ペイロード(変化量)」、「ペイロード(範囲)」の4項目を規定している。
 「送信周期」は、受信したフレームの周期が、規定された周期の範囲に収まっているか否かが判定される項目である。例えば、規定された周期が100msの場合、第1基準パラメータ範囲(第1周期範囲)が80~120ms(マージン20ms(20%))、第2基準パラメータ範囲(第2周期範囲)が95~105ms(マージン5ms(5%))に設定される。レンジ判定部312bは、受信したフレームの周期が第1周期範囲外の場合は不合格と判定し、第2周期範囲内の場合は合格と判定し、第1周期範囲内でかつ第2周期範囲外の周期の場合はグレーと判定する。なお、フレームの周期は、今回受信したフレームと、当該受信したフレームと同じメッセージIDを持つ前回受信したフレームとの時間差に基づいて特定される。
 「送信頻度」は、受信したフレームの送信頻度が、規定された送信頻度の範囲に収まっているか否かが判定される項目である。例えば、規定された送信頻度が毎秒100フレームの場合、第1基準パラメータ範囲(第1送信頻度)が毎秒0~110(マージン10フレーム(10%))、第2基準パラメータ範囲(第2送信頻度)が毎秒0~105(マージン5フレーム(5%))に設定される。レンジ判定部312bは、受信したフレームの送信頻度が第1送信頻度外の場合は不合格と判定し、第2送信頻度範囲内の場合は合格と判定し、第1送信頻度範囲内でかつ第2送信頻度範囲外の送信頻度の場合はグレーと判定する。なお、フレームの送信頻度は、メッセージIDごとに検出される。
 「ペイロード(変化量)」は、受信したフレームにおけるデータフィールドのデータの値と、当該受信したフレームと同じメッセージIDを持つ前回受信したフレームにおけるデータフィールドのデータの値との変化量(絶対値)が、規定された変化量(絶対値)の範囲に収まっているか否かが判定される項目である。例えば、データフィールドに含まれるデータがエンジン回転数の場合、第1基準パラメータ範囲(第1変化範囲)が0~100rms、第2基準パラメータ範囲(第2変化範囲)が0~80rmsに設定される。レンジ判定部312bは、受信したフレームのデータフィールドのデータ変化量が第1変化範囲を超える場合は不合格と判定し、第2変化範囲未満の場合は合格と判定し、第1変化範囲以下で第2変化範囲以上の場合はグレーと判定する。なお、第1変化範囲および第2変化範囲は、対象となるデータごとに異なる範囲が設定される。
 また、一つのデータフィールドには、複数のデータ(エンジン回転数、車速など)が含まれる場合がある。その場合、レンジ判定部312bは、1つの受信フレームに対して、複数のデータのそれぞれにおいて上記の変化量の判定を行う。当該フレームのデータフィールドに含まれ、ペイロード(変化量)の判定対象となるデータのいずれかにおいて、上記変化量の判定で不合格となった場合は、レンジ判定部312bは、当該メッセージを不合格と判定し、すべてのデータが合格となった場合は当該メッセージを合格と判定し、対象となるデータのいずれかがグレーと判定され、かつ不合格となったデータが存在しない場合は当該メッセージをグレーと判定する。
 「ペイロード(範囲)」は、受信したフレームのデータフィールドのデータの値が、規定されたデータの値の範囲に収まっているか否かが判定される項目である。例えば、データフィールドに含まれるデータがエンジン回転数の場合、第1基準パラメータ範囲(第1データ範囲)が0rpm~7000rpm、第2基準パラメータ範囲(第2データ範囲)が0rpm~6000rpmに設定される。レンジ判定部312bは、受信したフレームのデータフィールドのデータの範囲が第1データ範囲を超える場合は不合格と判定し、第2データ範囲未満の場合は合格と判定し、第1データ範囲以下で第2データ範囲以上の場合はグレーと判定する。なお、第1データ範囲および第2データ範囲は、対象となるデータごとに異なる範囲が設定される。また、各データ範囲は、状況に応じて変化するようにしてもよい。
 また、一つのデータフィールドには、複数のデータ(エンジン回転数、車速など)が含まれる場合がある。その場合、レンジ判定部312bは、1つの受信フレームに対して、複数のデータのそれぞれにおいて上記のデータ範囲の判定を行う。当該フレームのデータフィールドに含まれ、ペイロード(範囲)の判定対象となるデータのいずれかにおいて、レンジ判定部312bは、上記変化量の判定に不合格となった場合は不合格と判定し、すべてのデータが合格となった場合は当該メッセージを合格と判定し、対象となるデータのいずれかがグレーと判定され、かつ不合格となったデータが存在しない場合は当該メッセージをグレーと判定する。
 図7は、第1基準パラメータ範囲と第2基準パラメータ範囲の関係を模式的に描いた図である。レンジ判定部312bは、検出値がマージンの範囲に位置する場合、追加の判定基準を用いて、最終的に受信したメッセージが不正なメッセージであるか否かを判定する。追加の判定基準については後述する。
 図8は、ゲートウェイ装置30の不正検知処理を示すフローチャートである。フレーム送受信部34は、バス20からフレームを受信する(S10)。フレーム送受信部34は、通信制御部33を介して、受信したフレームの各フィールドの値をフレーム処理部311に転送する。図8の例では、当該フレームのメッセージIDが、受信IDリスト記憶部321のメッセージIDリストテーブル321aに含まれているIDであることを前提とする。フレーム処理部311は、当該フレームに対する不正検知処理を不正検知部312に依頼する。
 基準値比較部312aは、当該フレームから、基準値比較用の監視項目の値を検出する(S11)。基準値比較部312aは、当該監視項目の検出値と、当該監視項目の基準パラメータ値とを用いて不正検知処理を行う(S12)。
 図9は、図8のステップS12に係る不正検知処理のサブルーチンを示すフローチャートである。基準値比較部312aは本サブルーチンで使用するパラメータnに初期値として1を設定し(S121)、定数Tとして当該基準値比較用の監視項目の数(上述の「ID」、「データ長」、「ペイロード(固定)」の例では3)を設定する(S122)。
 基準値比較部312aは、監視項目(n)の検出値と、監視項目(n)の基準パラメータ値とを比較する(S123)。両者が一致しない場合(S123の不一致)、基準値比較部312aは項目判定結果(n)に「異常」を設定する(S124)。両者が一致する場合(S123の一致)、基準値比較部312aは項目判定結果(n)に「正常」を設定する(S125)。
 基準値比較部312aはパラメータnをインクリメントし(S126)、パラメータnが定数Tを超えるか否かを判定する(S127)。パラメータnが定数Tを超えない場合(S127のN)、ステップS123に戻る。パラメータnが定数Tを超えた場合(S127のY)、基準値比較部312aは、n個の項目判定結果に「異常」が含まれるか否かを判定する(S128)。一つでも異常が含まれる場合(S128のY)、基準値比較部312aは、受信したメッセージを不正メッセージと判定する(S129)。n個の項目判定結果に「異常」が含まれない場合(S128のN)、基準値比較部312aは、受信したメッセージを不正メッセージと判定しない(つまり、受信したメッセージを正常なメッセージと判定する)。
 図8に戻り、基準値比較部312aによる判定結果が、不正メッセージであるとの判定結果であった場合(S13のY)、不正検知部312は、受信したメッセージが不正メッセージであることをフレーム処理部311に報告し(S18)、処理を終了する。
 基準値比較部312aによる判定結果が、不正メッセージでないとの判定結果であった場合(S13のN)、レンジ判定部312bは、当該フレームからレンジ判定用の監視項目の値を検出する(S14)。レンジ判定部312bは、当該監視項目の検出値と、当該監視項目の基準パラメータ範囲とを用いて不正検知処理を行う(S15)。
 図10は、図8のステップS15に係る不正検知処理のサブルーチンを示すフローチャートである。レンジ判定部312bは本サブルーチンで使用するパラメータnに初期値として1を設定し(S151)、定数Tに当該レンジ判定用の監視項目の数(上述の「送信周期」、「送信頻度」、「ペイロード(変化量)」、「ペイロード(範囲)」の例では4)を設定する(S152)。
 レンジ判定部312bは、監視項目(n)の検出値が、監視項目(n)の第1基準パラメータ範囲に収まるか否かを判定する(S153)。第1基準パラメータ範囲に収まらない場合(S153の範囲外)、レンジ判定部312bは項目判定結果(n)に「異常」を設定する(S154)。第1基準パラメータ範囲に収まる場合(S153の範囲内)、レンジ判定部312bは、監視項目(n)の検出値が、監視項目(n)の第2基準パラメータ範囲に収まるか否かを判定する(S155)。第2基準パラメータ範囲に収まる場合(S155の範囲内)、レンジ判定部312bは項目判定結果(n)に「正常」を設定する(S156)。第2基準パラメータ範囲に収まらない場合(S155の範囲外)、レンジ判定部312bは項目判定結果(n)に「グレー」を設定する(S157)。
 レンジ判定部312bはパラメータnをインクリメントし(S158)、パラメータnが定数Tを超えるか否かを判定する(S159)。パラメータnが定数Tを超えない場合(S159のN)、ステップS153に戻る。パラメータnが定数Tを超えた場合(S159のY)、レンジ判定部312bは、n個の項目判定結果に「異常」が含まれるか否かを判定する(S1510)。一つでも「異常」を含む場合(S1510のY)、レンジ判定部312bは、受信したメッセージを不正メッセージと判定する(S1512)。
 n個の項目判定結果に「異常」が含まれない場合(S1510のN)、レンジ判定部312bは、n個の項目判定結果に「グレー」が設定数以上含まれるか否か(追加の判定基準に相当)を判定する(S1511)。「グレー」が設定数(2以上でかつT以下の整数)以上含まれる場合(S1511のY)、レンジ判定部312bは、受信したメッセージを不正メッセージと判定する(S1512)。「グレー」が設定数以上含まれない場合(S1511のN)、レンジ判定部312bは、受信したメッセージを不正メッセージと判定しない(つまり、受信したメッセージを正常なメッセージと判定する)。
 図8に戻り、レンジ判定部312bによる判定結果が、不正メッセージであるとの判定結果であった場合(S16のY)、不正検知部312は、受信したメッセージが不正メッセージであることをフレーム処理部311に報告し(S18)、処理を終了する。レンジ判定部312bによる判定結果が、不正メッセージでないとの判定結果であった場合(S16のN)、不正検知部312は、受信したメッセージが正常メッセージであることをフレーム処理部311に報告し(S17)、処理を終了する。
 上述の説明では、レンジ判定部312bによる不正検知処理において、異常と判定された監視項目がない場合であっても、「グレー」と判定された監視項目の数が設定数を超えた場合、不正メッセージと判定した。この点、監視項目ごとにグレー判定に重み付けを行ってもよい。
 レンジ判定部312bは、図10中のS155においてグレー判定となった場合、監視項目ごとに重み付けするために、項目判定結果(n)に「重み」を設定する。そして、図10中のS1511において、n個の項目判定結果に含まれる「グレー」の数と設定数との比較の代わりに、それぞれの項目判定結果を合算した合計スコアと閾値とが比較される。レンジ判定部312bは、合計スコアが閾値を超えた場合は不正メッセージと判定し、超えない場合は不正メッセージと判定しない。
 例えば、「送信周期」の重みを0.8に、「送信頻度」の重みを1.7に、「ペイロード(変化量)」の重みを0.7に、閾値を1.6に設定した場合、「送信周期」と「ペイロード(変化量)」が「グレー」と判定された(合計スコア=1.5)としても閾値を超えない(合計スコア<1.6)ため、不正メッセージとは判定されない。一方、「送信頻度」のみが「グレー」と判定された(合計スコア=1.7)場合でも閾値を超える(合計スコア>1.6)ため、不正メッセージと判定される。
 上記の設定数、各監視項目の重み及び閾値は、実験および/またはシミュレーションの結果、設計者の知見などに基づいて設定される。設計者は、これらの値を調整することにより、判定感度を調整することができる。
 上記図10に示したフローチャートでは、レンジ判定部312bにおける不正検知処理として、監視項目(n)の項目判定結果に関わらず、全てのレンジ判定用の監視項目(監視項目の数=T)の判定を実行した後に、受信したメッセージが不正であるか否かを判定し、フレーム処理部311に報告した。
 この点、レンジ判定用の監視項目の数と同じ数の項目判定結果が出ていない場合であっても、監視項目(n)の項目判定結果に応じて、受信したメッセージが不正メッセージであるかどうかを判定し、レンジ判定部312bにおける不正検知処理を終了してもよい。
 図11は、図8のステップS15に係る不正検知処理のサブルーチンの変形例を示すフローチャートである。レンジ判定部312bは本サブルーチンで使用するパラメータnに初期値として1を設定し(S151)、定数Tに当該レンジ判定用の監視項目の数(上述の例では4)を設定する(S152)。
 レンジ判定部312bは、監視項目(n)の検出値が、監視項目(n)の第1基準パラメータ範囲に収まるか否か判定する(S153)。監視項目(n)の検出値が第1基準パラメータ範囲に収まらない場合(S153の範囲外)、レンジ判定部312bは項目判定結果(n)に「異常」を設定する(S154)。この場合、レンジ判定部312bは、受信したメッセージを不正メッセージと判定し(S1512)、レンジ判定部312bにおける不正検知処理を終了する。
 監視項目(n)の検出値が第1基準パラメータ範囲に収まる場合(S153の範囲内)、レンジ判定部312bは、監視項目(n)の検出値が、監視項目(n)の第2基準パラメータ範囲に収まるか否か判定する(S155)。監視項目(n)の検出値が第2基準パラメータ範囲に収まらない場合(S155の範囲外)、レンジ判定部312bは項目判定結果(n)に「グレー」を設定する(S157)。
 監視項目(n)の検出値が、第1基準パラメータ範囲に収まり(S153の範囲内)かつ第2基準パラメータ範囲に収まる場合(S155の範囲内)、レンジ判定部312bは、項目判定結果(n)に「正常」を設定する(S156)。n個の項目判定結果(項目判定結果(n)以前)に「正常」が第2設定数(1以上のT以下の整数)以上含まれる場合(S1513のY)、レンジ判定部312bは、受信したメッセージを不正メッセージと判定せず、レンジ判定部312bにおける不正検知処理を終了する。
 n個の項目判定結果(項目判定結果(n)以前)に「正常」が第2設定数以上含まれない場合(S1513のN)、レンジ判定部312bはパラメータnをインクリメントし(S158)、パラメータnが定数Tを超えるか否か判定する(S159)。パラメータnが定数Tを超えない場合(S159のN)、ステップS153に戻る。
 パラメータnが定数Tを超えた場合(S159のY)、レンジ判定部312bは、n個の項目判定結果に「グレー」が第1設定数以上含まれるか否か(追加の判定基準に相当)判定する(S1511)。「グレー」が第1設定数(2以上のT以下の整数)以上含まれる場合(S1511のY)、レンジ判定部312bは、受信したメッセージを不正メッセージと判定する(S1512)。「グレー」が設定数以上含まれない場合(S1511のN)、レンジ判定部312bは、受信したメッセージを不正メッセージと判定しない。
 当該変形例では、監視項目(n)までの項目判定結果が所定の数(第2設定数)だけ正常であった場合に、監視項目(n+1)以降の不正検知処理をスキップすることにより、正常メッセージが送受信されている環境において、不正検知処理における処理負荷を低減することが可能となる。特に、上述の例において、第2設定数=1とした場合、最初の項目判定結果(1)が正常の場合、即時不正検知処理をスキップし、最初の項目判定結果(1)がグレーの場合、以降の判定処理を続ける。
 また、受信したメッセージに適用する監視項目(n)の数および、監視項目(n)を適用する順番を、受信したメッセージの種別に応じて変更することで、不正メッセージの検知精度を向上させることが可能となる。
 上記図8に示したフローチャートでは、先に基準値比較部312aによる不正判定処理を実行し、当該不正判定処理の判定結果が不正メッセージでないとの判定結果であった場合に、レンジ判定部312bによる不正判定処理を行う例を示した。即ち、基準値比較部312aによる不正判定処理の判定結果が不正メッセージであるとの判定結果であった場合、レンジ判定部312bによる不正判定処理はスキップされた。
 この点、CPUが複数のコアを持つなどハードウェア資源の仕様が高い場合、以下に詳述するように、基準値比較部312a及びレンジ判定部312bの処理を並列に実行してもよい。
 図12は、ゲートウェイ装置30の不正検知処理の変形例を示すフローチャートである。フレーム送受信部34は、バス20からフレームを受信する(S10)。フレーム送受信部34は、通信制御部33を介して、受信したフレームの各フィールドの値をフレーム処理部311に転送する。図12の例でも、当該フレームのメッセージIDが、受信IDリスト記憶部321のメッセージIDリストテーブル321aに含まれているIDであることを前提とする。フレーム処理部311は、当該フレームに対する不正検知処理を不正検知部312に依頼する。
 基準値比較部312aは当該フレームから、基準値比較用の監視項目の値を検出する(S11)。基準値比較部312aは、当該監視項目の検出値と、当該監視項目の基準パラメータ値とを用いて不正検知処理を行う(S12)。レンジ判定部312bは当該フレームから、レンジ判定用の監視項目の値を検出する(S14)。レンジ判定部312bは、当該監視項目の検出値と、当該監視項目の基準パラメータ範囲を用いて不正検知処理を行う(S15)。変形例ではステップS11、S12に係る処理と、ステップS14、S15に係る処理を並行して実行する。
 不正検知部312は、基準値比較部312aによる判定結果とレンジ判定部312bによる判定結果の少なくとも一方の判定結果が、不正メッセージであるとの判定結果であるか否かを判定する(S16a)。少なくとも一方の判定結果が、不正メッセージであるとの判定結果であった場合(S16aのY)、不正検知部312は、受信したメッセージが不正メッセージであることをフレーム処理部311に報告し(S18)、処理を終了する。両方の判定結果が不正メッセージでないとの判定結果であった場合(S16aのN)、不正検知部312は、受信したメッセージが正常メッセージであることをフレーム処理部311に報告し(S17)、処理を終了する。
 当該変形例では、レンジ判定部312bによる不正検知処理を常に実行することになるため、当該処理をスキップできる可能性がある図8に示したアルゴリズムよりもトータルの演算量は多くなる。しかしながら、対象となるフレームが、基準値比較部312aによる不正検知処理では不正メッセージと判定されなかったが、レンジ判定部312bによる不正検知処理では不正メッセージと判定されるケースでは、図8に示したアルゴリズムよりも最終的な判定を行うまでの時間を短縮することができる。
 以上の説明では、不正検知部312がゲートウェイ装置30に搭載される例を説明した。この点、不正検知部がECU10に搭載されてもよい。
 図13は、不正検知部112を搭載したECU10の構成を示す図である。ECU10は、処理部11、記憶部12、通信制御部13及びフレーム送受信部14を備える。処理部11は、フレーム処理部111、不正検知部112及びアプリケーション実行部113を含む。記憶部12は、受信IDリスト記憶部121、不正検知パラメータ記憶部123を含む。
 処理部11は、ハードウェア資源とソフトウェア資源の協働、またはハードウェア資源のみにより実現できる。ハードウェア資源としてマイクロコンピュータ、DSP、FPGA、その他のLSIが利用できる。ソフトウェア資源としてオペレーティングシステム、アプリケーション、ファームウェア等のプログラムが利用できる。記憶部12には揮発性メモリ及び不揮発性メモリが利用できる。通信制御部13には、専用のハードウェアであるCANコントローラが利用できる。なお、通信制御部13の機能を処理部11に統合する構成も可能である。フレーム送受信部14には、専用のハードウェアであるCANトランシーバが利用できる。
 フレーム送受信部14は、バス20上に、CANプロトコルに従ったフレームを送受信する。フレーム送受信部14は、バス20からフレームを1bitずつ受信して、通信制御部13にフレームを転送する。また、フレーム送受信部14は、通信制御部13から取得したフレームをバス20に1bitずつ送信する。
 通信制御部13は、フレーム送受信部14から取得したフレームを解釈し、フレームを構成する各値を、CANプロトコルにおける各フィールドにマッピングする。通信制御部13は、マッピングされたフレームの値をフレーム処理部111に転送する。
 フレーム処理部111は、通信制御部13から取得したIDフィールドの値(メッセージID)を取得し、受信IDリスト記憶部121に保持されているメッセージIDのリストを参照して、当該フレームを受信するか否かを判定する。IDフィールドの値が当該リストに含まれている場合は受信すると判定し、含まれていない場合は受信しないと判定する。受信すると判定した場合、フレーム処理部111はIDフィールド以降のフィールドの値を不正検知部112に転送する。
 また通信制御部13は、フレーム送受信部14から取得したフレームがCANプロトコルに則していないと判断した場合、エラーフレームを生成し、フレーム送受信部14にエラーフレームを転送する。フレーム送受信部14は、通信制御部13から取得したエラーフレームをバス20に送出する。
 フレーム処理部111は、通信制御部13から取得したIDフィールド以降のフィールドの値(メッセージ)を不正検知部112に転送し、取得したメッセージが攻撃メッセージであるか否かの判定を不正検知部112に依頼する。具体的な不正検知方法は、図8~図12で説明した方法と同様である。
 フレーム処理部111は、不正検知部112により正常メッセージと判定された場合、受信したフレームのデータをアプリケーション実行部113に転送する。アプリケーション実行部113は、当該データに応じて所定の処理を実行する。当該処理の内容は、ECU10ごとに異なる。
 例えば、図1の第1ECU10aは、時速が30kmを超えた状態でドアが開いている場合、アラーム音を鳴らす機能を備える。第3ECU100cは、ブレーキがかかっていない状態でドアが開いた場合、アラーム音を鳴らす機能を備える。
 アプリケーション実行部113は、接続されている機器またはセンサの状態を取得し、フレーム処理部111に通知する。フレーム処理部111は、メッセージIDと、アプリケーション実行部113から取得したデータを通信制御部13に通知する。通信制御部13は、フレーム処理部111から取得したメッセージIDとデータをもとにフレームを生成し、フレーム送受信部14に生成したフレームを転送する。フレーム送受信部14は、通信制御部13から取得したフレームをバス20に送出する。
 なお、ECU10でメッセージの不正検知処理を行わない構成では、図13の不正検知部112が省略される。また、ECU10において受信したフレームのメッセージIDによる受信制限を行わない構成では、図13の受信IDリスト記憶部121が省略される。
 また、図13では、不正検知部112が、ECU10において受信したメッセージの不正検知処理を行う例を説明した。この点、不正検知部112は、接続されている機器から取得したデータが不正であるか否かを判定してもよい。例えば、ECU10がカーナビゲーションシステムと連携したECUである場合、不正検知部112は、カーナビゲーションシステムから送信されたメッセージが攻撃メッセージであるか否かを判定する。不正検知部112は、攻撃メッセージと判定した場合、ECU10からの当該メッセージのバス20への送出を中止する。
 以上説明したように本実施の形態によれば、レンジ判定部112bにおいて、検出値が第1基準パラメータ範囲内であるが、第2基準パラメータ範囲外である場合、グレーと判定し、グレーと判定された監視項目の数に応じてメッセージが正常であるか不正であるかを判定する。これにより、グレーゾーンの検出値を持つメッセージの正常/不正を的確に判定することができ、誤検知と検知漏れをバランス良く低減することができる。即ち、CANフィルタの検知精度を向上させることができる。
 以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素または各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 例えば、上述の実施の形態では、ゲートウェイ装置30において、他のバス20への転送対象となるフレームに対して、不正検知処理を実施する例を説明した。この点、ゲートウェイ装置30で受信した全てのフレームに対して不正検知処理を実施してもよい。
 また、上述の実施の形態では、基準値比較部312a(112a)とレンジ判定部312b(112b)が分離された状態で説明を行ったが、基準値比較部312a(112a)とレンジ判定部312b(112b)とが一つの不正検知部として構成されていてもよい。その場合、すべての不正検知処理の結果を併せたトータルの最終判定を行う。例えば、「ID」とレンジ判定用の監視項目のグレー判定の数とによって正常/不正を判断してもよい。
 また、上述の実施の形態では、基準値比較部312a(112a)が、固定値である基準パラメータ値との比較による判定方法を説明した。この点、基準値比較部312a(112a)においても、基準パラメータ範囲を用いたレンジ判定を取り入れてもよい。
 また、上述の実施の形態では、CANプロトコルに従って通信するネットワーク通信システムの例として車載ネットワークを示した。本発明に係る技術は、車載ネットワークでの利用に限定されるものではなく、ロボット、産業機器等のネットワーク、車載ネットワーク以外のCANプロトコルに従って通信するネットワーク通信システムなどに利用してもよい。
 また、CANプロトコルでの実施例を示したが、これに限定されるものではなく、オートメーションシステム内の組み込みシステム等に用いられるCANOpen、或いは、TTCAN(Time-Triggered CAN)、CANFD(CAN with Flexible Data Rate)等のCANの派生的なプロトコルであってもよいし、車載ネットワークで用いられる別の通信プロトコル(例えば、Ethernet(登録商標)、MOST、FlexRay等)であってもよい。
 なお、実施の形態は、以下の項目によって特定されてもよい。
 [項目1]
 ネットワーク(5)におけるメッセージを送受信する通信部(34)と、
 前記通信部(34)において受信されたメッセージから複数の第一の監視項目の値を検出し、前記複数の第一の監視項目の各検出値が対応する基準範囲に収まっているか否かを判定して、不正メッセージを検知する第1不正検知部(312b)と、を備え、
 前記複数の第一の監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲とが設定され、
 前記第1不正検知部(312b)は、
 前記検出値のいずれかが前記第1基準範囲外の値であるとき、前記メッセージを不正メッセージと判定し、
 前記検出値のいずれかが前記第1基準範囲内でかつ前記第2基準範囲外の値であるとき、所定の規則を満たす場合に前記メッセージを不正メッセージと判定する、
 通信装置(30)。
 これによれば、グレーゾーンの検出値を持つフレームの正常/不正を的確に判定することができ、誤検知と検知漏れをバランス良く低減することができる。
 [項目2]
 前記第1不正検知部(312b)は、前記所定の規則として、前記検出値が前記第1基準範囲内でかつ前記第2基準範囲外の値である第一の監視項目の数が、所定数n(nは2以上かつ前記複数の第一の監視項目の数以下の整数)以上を満たすとき、前記メッセージを不正メッセージと判定する、項目1に記載の通信装置(30)。
 これによれば、グレーゾーンの検出値を監視項目の数を考慮することにより、グレーゾーンの検出値を持つフレームの正常/不正を的確に判定することができる。
 [項目3]
 前記第1不正検知部(312b)は、前記検出値が前記第1基準範囲外の値であるとき前記検出値が前記第2基準範囲内か否かの判定をスキップして前記メッセージを不正メッセージと判定し、前記検出値が前記第1基準範囲内の値であるとき前記検出値が前記第2基準範囲内か否かの判定を行う、
 項目1または2に記載の通信装置(30)。
 これによれば、全体の処理量を低減することができる。
 [項目4]
 前記第1不正検知部(312b)は、前記検出値が前記第1基準範囲内の値であるとき前記検出値が前記第2基準範囲内か否かの判定を行い、もし前記検出値が前記第2基準範囲内と判定された場合に、
 前記第2基準範囲内である第一の監視項目の数が所定数m(mは1以上かつ前記複数の第一の監視項目の数以下の整数)以上を満たすとき、少なくとも次の検出値に対する判定をスキップし、
 前記第2基準範囲内である第一の監視項目の数が所定数m未満を満たすとき、次の検出値に対する判定を継続する、
 項目1から3のいずれかに記載の通信装置(30)。
 これによれば、不正メッセージの検出精度を確保しつつ、処理量を低減することができる。
 [項目5]
 前記メッセージから、前記第1不正検知部(312b)によって判定される監視項目とは異なる少なくとも1つの第二の監視項目の値を検出し、前記少なくとも1つの第二の監視項目の各検出値と対応する基準値とを比較して、不正メッセージを検知する第2不正検知部(312a)と、をさらに備え、
 前記第2不正検知部(312a)は、前記少なくとも1つの第二の監視項目の各検出値が前記対応する基準値と合致しないとき前記メッセージを不正メッセージと判定する、
 項目1から4のいずれかに通信装置(30)。
 これによれば、監視項目ごとに、監視項目の性質に応じた適切な判定方法を採用することができる。
 [項目6]
 前記第2不正検知部(312a)が前記メッセージを不正メッセージと判定したとき、前記第1不正検知部(312b)による判定をスキップし、前記メッセージを不正メッセージと判定しなかったとき、前記第1不正検知部による判定を行う、
 項目5に記載の通信装置(30)。
 これによれば、全体の処理量を低減することができる。
 [項目7]
 ネットワークから受信されるメッセージから複数の監視項目の値を検出し、前記複数の監視項目の各検出値が対応する基準範囲に収まっているか否かを判定して、不正メッセージを検知し、
 前記複数の監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲が設定され、
 前記検出値のいずれかが前記第1基準範囲外の値であるとき、前記メッセージを不正メッセージと判定し、
 前記検出値のいずれかが前記第1基準範囲内でかつ前記第2基準範囲外の値であるとき、所定の規則を満たす場合に前記メッセージを不正メッセージと判定する、
 通信装置における通信方法。
 これによれば、グレーゾーンの検出値を持つフレームの正常/不正を的確に判定することができ、誤検知と検知漏れをバランス良く低減することができる。
 [項目8]
 ネットワークから受信されるメッセージから複数の監視項目の値を検出し、前記複数の監視項目の各検出値が対応する基準範囲に収まっているか否かを判定して、不正メッセージを検知する処理をコンピュータに実行させる通信プログラムであって、
 前記複数の監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲が設定され、
 前記不正メッセージを検知する処理は、
 前記検出値のいずれかが前記第1基準範囲外の値であるとき、前記メッセージを不正メッセージと判定し、
 前記検出値のいずれかが前記第1基準範囲内でかつ前記第2基準範囲外の値であるとき、所定の規則を場合に前記メッセージを不正メッセージと判定する、
 通信プログラム。
 本発明は、車載ネットワークに限らず、その他のネットワークにおける不正なメッセージの検知に有用である。
 1 車両
 5 車載ネットワークシステム
 10 ECU
 41 エンジン
 42 ブレーキ
 43 ドア開閉センサ
 44 ウインドウ開閉センサ
 20 バス
 30 ゲートウェイ装置
 31 処理部
 311 フレーム処理部
 312 不正検知部
 312a 基準値比較部
 312b レンジ判定部
 32 記憶部
 321 受信IDリスト記憶部
 322 転送ルール記憶部
 323 不正検知パラメータ記憶部
 33 通信制御部
 34 フレーム送受信部

Claims (8)

  1.  ネットワークにおけるメッセージを送受信する通信部と、
     前記通信部において受信されたメッセージから複数の第一の監視項目の値を検出し、前記複数の第一の監視項目の各検出値が対応する基準範囲に収まっているか否かを判定して、不正メッセージを検知する第1不正検知部と、を備え、
     前記複数の第一の監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲とが設定され、
     前記第1不正検知部は、
     前記検出値のいずれかが前記第1基準範囲外の値であるとき、前記メッセージを不正メッセージと判定し、
     前記検出値のいずれかが前記第1基準範囲内でかつ前記第2基準範囲外の値であるとき、所定の規則を満たす場合に前記メッセージを不正メッセージと判定する、
     通信装置。
  2.  前記第1不正検知部は、前記所定の規則として、前記検出値が前記第1基準範囲内でかつ前記第2基準範囲外の値である第一の監視項目の数が、所定数n(nは2以上かつ前記複数の第一の監視項目の数以下の整数)以上を満たすとき、前記メッセージを不正メッセージと判定する、請求項1に記載の通信装置。
  3.  前記第1不正検知部は、前記検出値が前記第1基準範囲外の値であるとき前記検出値が前記第2基準範囲内か否かの判定をスキップして前記メッセージを不正メッセージと判定し、前記検出値が前記第1基準範囲内の値であるとき前記検出値が前記第2基準範囲内か否かの判定を行う、請求項1または2に記載の通信装置。
  4.  前記第1不正検知部は、前記検出値が前記第1基準範囲内の値であるとき前記検出値が前記第2基準範囲内か否かの判定を行い、もし前記検出値が前記第2基準範囲内と判定された場合に、
     前記第2基準範囲内である第一の監視項目の数が所定数m(mは1以上かつ前記複数の第一の監視項目の数以下の整数)以上を満たすとき、少なくとも次の検出値に対する判定をスキップし、
     前記第2基準範囲内である第一の監視項目の数が所定数m未満を満たすとき、次の検出値に対する判定を継続する、
     請求項1から3のいずれかに記載の通信装置。
  5.  前記メッセージから、前記第1不正検知部によって判定される監視項目とは異なる少なくとも1つの第二の監視項目の値を検出し、前記少なくとも1つの第二の監視項目の各検出値と対応する基準値とを比較して、不正メッセージを検知する第2不正検知部と、をさらに備え、
     前記第2不正検知部は、前記少なくとも1つの第二の監視項目の各検出値が前記対応する基準値と合致しないとき前記メッセージを不正メッセージと判定する、請求項1から4のいずれかに記載の通信装置。
  6.  前記第2不正検知部が前記メッセージを不正メッセージと判定したとき、前記第1不正検知部による判定をスキップし、前記メッセージを不正メッセージと判定しなかったとき、前記第1不正検知部による判定を行う、請求項5に記載の通信装置。
  7.  ネットワークから受信されるメッセージから複数の監視項目の値を検出し、前記複数の監視項目の各検出値が対応する基準範囲に収まっているか否かを判定して、不正メッセージを検知し、
     前記複数の監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲が設定され、
     前記検出値のいずれかが前記第1基準範囲外の値であるとき、前記メッセージを不正メッセージと判定し、
     前記検出値のいずれかが前記第1基準範囲内でかつ前記第2基準範囲外の値であるとき、所定の規則を満たす場合に前記メッセージを不正メッセージと判定する、
     通信装置における通信方法。
  8.  ネットワークから受信されるメッセージから複数の監視項目の値を検出し、前記複数の監視項目の各検出値が対応する基準範囲に収まっているか否かを判定して、不正メッセージを検知する処理をコンピュータに実行させる通信プログラムであって、
     前記複数の監視項目ごとに、第1基準範囲と、前記第1基準範囲より範囲が狭い第2基準範囲が設定され、
     前記不正メッセージを検知する処理は、
     前記検出値のいずれかが前記第1基準範囲外の値であるとき、前記メッセージを不正メッセージと判定し、
     前記検出値のいずれかが前記第1基準範囲内でかつ前記第2基準範囲外の値であるとき、所定の規則を場合に前記メッセージを不正メッセージと判定する、
     通信プログラム。
PCT/JP2016/005094 2015-12-14 2016-12-09 通信装置、通信方法、及び通信プログラム WO2017104122A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP16875111.3A EP3361677B1 (en) 2015-12-14 2016-12-09 Communication device, communication method and non-transitory storage medium
US15/770,182 US10713106B2 (en) 2015-12-14 2016-12-09 Communication device, communication method and non-transitory storage medium

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2015-243587 2015-12-14
JP2015243587 2015-12-14
JP2016125991A JP6566400B2 (ja) 2015-12-14 2016-06-24 電子制御装置、ゲートウェイ装置、及び検知プログラム
JP2016-125991 2016-06-24

Publications (1)

Publication Number Publication Date
WO2017104122A1 true WO2017104122A1 (ja) 2017-06-22

Family

ID=59056208

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/005094 WO2017104122A1 (ja) 2015-12-14 2016-12-09 通信装置、通信方法、及び通信プログラム

Country Status (1)

Country Link
WO (1) WO2017104122A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009171431A (ja) * 2008-01-18 2009-07-30 Oki Electric Ind Co Ltd トラフィック分析装置、トラフィック分析方法及びトラフィック分析システム
JP2013131907A (ja) * 2011-12-21 2013-07-04 Toyota Motor Corp 車両ネットワーク監視装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009171431A (ja) * 2008-01-18 2009-07-30 Oki Electric Ind Co Ltd トラフィック分析装置、トラフィック分析方法及びトラフィック分析システム
JP2013131907A (ja) * 2011-12-21 2013-07-04 Toyota Motor Corp 車両ネットワーク監視装置

Similar Documents

Publication Publication Date Title
JP6566400B2 (ja) 電子制御装置、ゲートウェイ装置、及び検知プログラム
US11356475B2 (en) Frame transmission prevention apparatus, frame transmission prevention method, and in-vehicle network system
US10931634B2 (en) Security apparatus, attack detection method, and storage medium
US10986008B2 (en) Abnormality detection in an on-board network system
US10902109B2 (en) Misuse detection method, misuse detection electronic control unit, and misuse detection system
US11296965B2 (en) Abnormality detection in an on-board network system
JP7280082B2 (ja) 不正検知方法、不正検知装置及びプログラム
WO2017038500A1 (ja) 中継装置
US11838303B2 (en) Log generation method, log generation device, and recording medium
US11336618B2 (en) Security apparatus, attack detection method, and storage medium
US11843477B2 (en) Anomaly determination method, anomaly determination device, and recording medium
US11218501B2 (en) Detector, detection method, and detection program
JP6527647B1 (ja) 不正検知方法、不正検知装置及びプログラム
WO2017104122A1 (ja) 通信装置、通信方法、及び通信プログラム
JP6573236B2 (ja) 通信装置、および受信装置
JP6528239B2 (ja) 通信装置およびプログラム
WO2018020833A1 (ja) フレーム伝送阻止装置、フレーム伝送阻止方法及び車載ネットワークシステム
JP7512473B2 (ja) 不正検知方法、不正検知装置及びプログラム

Legal Events

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

Ref document number: 16875111

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15770182

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2016875111

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE