WO2018173603A1 - 更新処理方法、車載ネットワークシステムおよび電子制御ユニット - Google Patents

更新処理方法、車載ネットワークシステムおよび電子制御ユニット Download PDF

Info

Publication number
WO2018173603A1
WO2018173603A1 PCT/JP2018/006140 JP2018006140W WO2018173603A1 WO 2018173603 A1 WO2018173603 A1 WO 2018173603A1 JP 2018006140 W JP2018006140 W JP 2018006140W WO 2018173603 A1 WO2018173603 A1 WO 2018173603A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic control
mac
vehicle
key
update
Prior art date
Application number
PCT/JP2018/006140
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
Priority claimed from JP2018006869A external-priority patent/JP2018160888A/ja
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Publication of WO2018173603A1 publication Critical patent/WO2018173603A1/ja

Links

Images

Definitions

  • This disclosure relates to an update processing method, an in-vehicle network system, and an electronic control unit.
  • ECU Engine Control Unit
  • CAN Controller
  • a bus used as a communication line is composed of two cables (twisted pair cables), 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.
  • a node that transmits a frame (hereinafter also referred to as a transmission node) applies a voltage to two cables, and a “1” value called “recessive” corresponding to the presence or absence of a potential difference generated between the two cables and “dominant” “ By transmitting a value of 0 ′′, the frame data is transmitted as binary data converted into a binary number.
  • a node that receives a frame (hereinafter also referred to as a receiving node) transmits a frame called an error frame that starts with, for example, a continuous 6-bit dominant when the format of the received frame is abnormal.
  • the receiving node can notify the transmitting node and other receiving nodes of the abnormality of the frame by transmitting the error frame.
  • each transmitting node transmits each frame with an ID called a message ID, and each receiving node receives only a frame including a predetermined message ID.
  • the CSMA / CR Carrier Sense Multiple Access / Collision Resolution
  • arbitration is performed based on the message ID, and frames with small message ID values are preferentially transmitted. Is done.
  • CAN does not have a security function that assumes a case where an illegal frame is transmitted. Therefore, an unauthorized node can connect to a CAN bus and transmit an unauthorized frame, thereby allowing unauthorized control of the body of a car on which the CAN is mounted.
  • Patent Document 1 discloses a method of transmitting a message authentication code embedded in a data field in a data frame used for CAN communication.
  • the message authentication code is also called MAC (Message Authentication Code). Then, following the normal data frame, by transmitting a data frame in which the MAC is embedded in the data field of the data frame, transmission of an illegal frame can be prevented.
  • MAC Message Authentication Code
  • RFC2104 HMAC Keyed-Hashing for Message Authentication
  • An update processing method is a key update processing method used in an in-vehicle network system that includes a plurality of electronic control units and is mounted on a vehicle, and includes at least one of the plurality of electronic control units.
  • the acquisition step for acquiring travel information that is transmitted from the vehicle, which is information related to the travel of the vehicle, and the state related to the travel of the vehicle obtained from the travel information is a predetermined state
  • a key update step for updating a MAC key (MAC: Message Authentication Code) that is a key used to generate a message authentication code that is a message authentication code that is added to data to be exchanged and that is a code for preventing falsification. .
  • the update processing method and the like of the present disclosure can efficiently and reliably update the key used in the in-vehicle network system. Thereby, the vehicle-mounted network system of a safe state can be maintained.
  • FIG. 1 is a block diagram showing a configuration of an in-vehicle network system in the embodiment.
  • FIG. 2 is a block diagram showing an example of the configuration of the key update management apparatus shown in FIG.
  • FIG. 3 is a diagram illustrating an example of the overall configuration of the in-vehicle network system according to the embodiment.
  • FIG. 4 is a diagram showing a format of a data frame of the CAN protocol.
  • FIG. 5 is a diagram illustrating an example of a MAC transmission method in CAN communication.
  • FIG. 6 is a diagram illustrating an example of a MAC transmission method in Ethernet (registered trademark) communication.
  • FIG. 7 is a block diagram illustrating a functional configuration of the ECU according to the embodiment.
  • FIG. 1 is a block diagram showing a configuration of an in-vehicle network system in the embodiment.
  • FIG. 2 is a block diagram showing an example of the configuration of the key update management apparatus shown in FIG.
  • FIG. 3 is a diagram illustrating an
  • FIG. 8 is a diagram illustrating an example of the reception ID list in the embodiment.
  • FIG. 9A is a diagram illustrating an example of a determination rule in the embodiment.
  • FIG. 9B is a diagram illustrating an example of a determination rule in the embodiment.
  • FIG. 10 is a diagram illustrating an example of a message ID and data transmitted by the ECU connected to the engine in the embodiment.
  • FIG. 11 is a diagram illustrating an example of a message ID and data transmitted by the ECU connected to the brake in the embodiment.
  • FIG. 12 is a diagram illustrating an example of a message ID and data transmitted by the ECU connected to the door opening / closing sensor according to the embodiment.
  • FIG. 13 is a diagram illustrating an example of a message ID and data transmitted by the ECU connected to the window opening / closing sensor according to the embodiment.
  • FIG. 14 is a diagram illustrating an example of a message ID and data transmitted by the ECU connected to the GPS sensor in the embodiment.
  • FIG. 15 is a flowchart illustrating an update processing method according to the embodiment.
  • FIG. 16 is a flowchart showing the detailed process of step S11 shown in FIG.
  • FIG. 17 is an example of a flowchart showing the detailed process of step S12 shown in FIG.
  • FIG. 18 is another example of a flowchart showing the detailed process of step S12 shown in FIG.
  • the data field in the data frame used for CAN communication is as small as 8 bytes, and it is difficult to secure sufficient attack resistance with the size of the MAC embedded in the data field.
  • the MAC key used for generating the MAC (hereinafter also referred to as the MAC key) in order to increase the resistance of the brute force attack to the MAC embedded in the data field.
  • the key is updated regularly, the key is updated regardless of the operation of the car. In other words, when updating the key periodically, the key is updated even if almost no frame is transmitted / received in the CAN, so that the key update process may be a burden on the in-vehicle network system.
  • the present disclosure has been made in view of the above-described circumstances, and provides an update processing method and the like that can efficiently and reliably update a key used in an in-vehicle network system.
  • An update processing method is a key update processing method used in an in-vehicle network system that includes a plurality of electronic control units and is mounted on a vehicle, and includes at least one of the plurality of electronic control units.
  • MAC key MAC: Message Authentication Code
  • the update process including the key update process of the MAC key and the reset process of the counter is executed in accordance with the travel distance and / or the state of the vehicle, so that the update process is appropriately performed according to the operation of the vehicle.
  • the predetermined state may be a state in which the vehicle travel distance obtained from the travel information and the travel distance of the vehicle from the previous update of the MAC key exceeds a threshold value.
  • the predetermined state may be a state in which a predetermined time has elapsed since the last update of the MAC key and the vehicle state obtained from the travel information is parked.
  • all of the plurality of electronic control units generate a new MAC key using the MAC key at the same timing that satisfies the condition, whereby the MAC key is changed to the new key. You may update to a new MAC key.
  • one of the plurality of electronic control units generates a new MAC key using the MAC key when the condition is satisfied, and the one electronic control unit includes: A distribution step of updating the MAC key to the new MAC key by distributing the generated new MAC key to all of the plurality of electronic control units other than the one electronic control unit. .
  • the in-vehicle network is a CAN (Controller Area Network) in which the plurality of electronic control units are connected to a bus, and the update processing method is a first electronic control that is one of the plurality of electronic control units.
  • the unit transmits a data frame as the data and a verification data frame using the data field of the data frame as the message authentication code added to the data via the bus according to the CAN protocol.
  • the first electronic control unit uses the MAC key for a value obtained by combining at least the ID for identifying the data frame and the number of transmissions of the data frame counted by the transmission counter.
  • a MAC generating step for generating the message authentication code and in the receiving step, the second electronic control unit includes the message authentication code obtained by receiving the verification data frame and the received data frame.
  • a verification step of verifying the identity of the message authentication code generated using the MAC key with respect to a value obtained by combining at least the corresponding ID and the reception count of the data counted by the reception counter may be included.
  • the in-vehicle network system is a network in which the plurality of electronic control units are connected by a LAN (Local Area Network), and the update processing method is one of the plurality of electronic control units.
  • a second electronic control unit that is at least one of a plurality of electronic control units other than the unit may include a reception step of receiving the data transmitted by the first electronic control unit.
  • the first electronic control unit further includes a value obtained by combining at least the transmission source address and the transmission destination address added to the data and the number of transmissions of the data counted by the transmission counter.
  • a MAC generation step of generating the message authentication code using the MAC key wherein in the reception step, the second electronic control unit receives the data including the message authentication code in a payload portion;
  • the MAC key is used to generate a value that combines at least the message authentication code, the source address and destination address added to the received data, and the number of times the data is counted by the reception counter. Verification step to verify the identity of the message authentication code Or it may be you.
  • the update processing method may further include a reset step for resetting the transmission counter and the reception counter as the condition.
  • the plurality of electronic control units may belong to one of a plurality of groups classified according to the vehicle control application, and the predetermined state in each of the plurality of groups may be determined for each of the plurality of groups. .
  • an in-vehicle network system is an in-vehicle network system that includes a plurality of electronic control units and is mounted on a vehicle, the vehicle being transmitted from at least one of the plurality of electronic control units.
  • An acquisition unit that acquires travel information that is information related to the travel of the vehicle, and is added to data exchanged in the in-vehicle network system on condition that the state related to travel of the vehicle obtained from the travel information is a predetermined state.
  • An update processing unit that updates a MAC key (MAC: Message Authentication Code) that is a key used to generate a message authentication code that is a message authentication code and is a code for preventing falsification.
  • MAC key MAC: Message Authentication Code
  • An electronic control unit is an electronic control unit connected to an in-vehicle network system mounted on a vehicle, and includes a CPU and a memory, and the CPU includes a plurality of electronic control units.
  • Travel information that is information relating to the travel of the vehicle transmitted from at least one is acquired and stored in the memory, and the CPU is in a state related to the travel of the vehicle obtained from the travel information stored in the memory.
  • a MAC key (MAC) that is a key used to generate a message authentication code that is a message authentication code that is added to data exchanged in the in-vehicle network system and that is a code for preventing falsification, provided that it is in a predetermined state. : Message (Authentication Code) is updated.
  • MAC Message Authentication Code
  • FIG. 1 is a block diagram showing a configuration of an in-vehicle network system 100 according to the present embodiment.
  • FIG. 2 is a block diagram showing an example of the configuration of the key update management apparatus shown in FIG.
  • the in-vehicle network system 100 in the present embodiment has a plurality of electronic control units (ECUs) and is mounted on a vehicle.
  • ECUs electronice control units
  • an in-vehicle network system 100 includes a key update management device 10 and a plurality of ECUs.
  • a plurality of ECUs and a plurality of ECUs and a key update management device are connected by a network.
  • the network may be the above-mentioned CAN, or a LAN such as Ethernet (registered trademark).
  • the key update management device 10 performs key update processing at an appropriate frequency according to the operation of the vehicle.
  • the key update management device 10 may be a gateway or one of a plurality of ECUs.
  • the key update management device 10 includes an acquisition unit 11, a key update unit 12, and a key update process determination unit 13.
  • the acquisition unit 11 acquires travel information that is information regarding the travel of the vehicle transmitted from at least one of the plurality of electronic control units.
  • the travel distance of the vehicle can be obtained from the travel information.
  • the key update process determination unit 13 determines whether or not the key update unit 12 satisfies a condition for executing the key update process.
  • the key update unit 12 is a MAC added to data exchanged in the in-vehicle network system 100 and is a code for preventing falsification, on condition that the state relating to the traveling of the vehicle obtained from the traveling information is a predetermined state.
  • the MAC key that is the key used for generating the password is updated. Note that the key update unit 12 may reset the transmission counter and the reception counter on condition that the state relating to the traveling of the vehicle obtained from the traveling information is a predetermined state.
  • the key update unit 12 may perform key update processing for updating the MAC key to all of the plurality of ECUs at the same timing by notifying the timing that satisfies the condition for executing the key update processing.
  • the key update unit 12 distributes a new MAC key generated at a timing that satisfies the condition for executing the key update process to all of the plurality of ECUs, thereby updating the MAC key to all of the plurality of ECUs at the same timing.
  • the key update process to be performed may be performed. Note that it is not essential to notify the timing when the condition for executing the key update process is satisfied. If it is CAN, even if all the plurality of ECUs independently determine the timing, all the plurality of ECUs are at the same timing. This is because it will be updated.
  • FIG. 3 is a diagram showing an example of the overall configuration of the in-vehicle network system 100a in the present embodiment.
  • the in-vehicle network system 100a is an example of the in-vehicle network system 100 described above.
  • a plurality of electronic control units ECU 111, ECU 121, ECU 131, ECU 141, ECU 151, ECU 161, ECU 171, ECU 181, ECU 182, ECU 184, ECU 191 and gateway 101 are connected via an in-vehicle network.
  • the in-vehicle network may be CAN, Ethernet (registered trademark), or a mixture of CAN and Ethernet.
  • the in-vehicle network is connected with, for example, an engine 110, a transmission 120, and an unillustrated drive system ECU related to control of a motor, fuel, and a battery.
  • an ECU 111 for the engine 110 and an ECU 121 for the transmission 120 are connected to the in-vehicle network.
  • a chassis ECU related to turning and stopping such as the brake 130 and the steering 140 is connected to the in-vehicle network.
  • an ECU 141 for the steering wheel 140 and an ECU 141 for the steering wheel 140 are connected to the vehicle-mounted network.
  • the in-vehicle network is connected to an automatic brake 150, a lane keeping device 160, and a safety comfort function system ECU such as an inter-vehicle distance function, a collision prevention function, and an air bag (not shown).
  • a safety comfort function system ECU such as an inter-vehicle distance function, a collision prevention function, and an air bag (not shown).
  • an ECU 151 for the automatic brake 150 and an ECU 161 for the lane keeping device 160 are connected to the in-vehicle network.
  • a communication system ECU related to the inter-vehicle communication device 170 or the like is connected to the in-vehicle network.
  • an ECU 171 for the vehicle-to-vehicle communication device 170 is connected to the in-vehicle network.
  • the inter-vehicle communication device 170 acquires content data from other vehicles.
  • the ECU 171 performs operation processing such as automatic driving using the acquired content data.
  • an infotainment ECU such as the head unit 180 is connected to the in-vehicle network.
  • an ECU 181 for the head unit 180 is connected to the in-vehicle network. Note that the ECU 181 for the head unit 180 may not be provided, and the head unit 180 may be directly connected to the in-vehicle network without going through the ECU 181.
  • an ECU 191 for an ITS (Intelligent Transport Systems) device 190 that is an intelligent transportation system is connected to the in-vehicle network.
  • an ECU 191 for the ITS device 190 is connected to the in-vehicle network.
  • the ITS device 190 receives not only road information but also map data on which static features such as roads and buildings are placed from an external server.
  • the ITS device 190 transmits sensor information, position information by GPS (Global Positioning System), camera image information, and the like to an external server, so that the external server can check road conditions and the like.
  • a window opening / closing sensor 183, a door opening / closing sensor 185, a GPS sensor 187, and the like are connected to the in-vehicle network.
  • an ECU 182 for the window opening / closing sensor 183, an ECU 184 for the door opening / closing sensor 185, and an ECU 186 for the GPS sensor 187 are connected to the in-vehicle network.
  • various sensors (not shown) and image information of cameras are also connected to the in-vehicle network.
  • Such a plurality of electronic control units acquire the status of the connected ones and transmit a frame representing the periodically acquired status to the in-vehicle network.
  • FIG. 4 is a diagram showing a format of a data frame of the CAN protocol. Here, a data frame in a standard ID format in the CAN protocol is shown.
  • the data frame includes a Start Of Frame (hereinafter SOF), an ID field, a Remote Transmission Request (hereinafter RTR), an Identifier Extension (hereinafter IDE), a reserved bit (r), and a data length code.
  • SOF Start Of Frame
  • RTR Remote Transmission Request
  • IDE Identifier Extension
  • r reserved bit
  • DLC data length code
  • DLC data field
  • CRC Cyclic Redundancy Check
  • ACK Acknowledgment
  • ACK delimiter right DEL in the figure
  • EOF end-of-frame
  • SOF is a 1-bit dominant. It is recessive when the bus is idle. The transmitting node notifies the start of frame transmission by changing the bus from recessive to dominant.
  • ID is a value of 11 bits and indicates the type of data frame.
  • the data frame type here refers to, for example, the content of data or a transmission node that is the transmission source of the data frame.
  • the ID is also used for communication arbitration when a plurality of nodes simultaneously start transmitting data frames on the same network. More specifically, a data frame having a smaller ID is prioritized and transmitted.
  • RTR is a 1-bit dominant and indicates a data frame.
  • IDE and r are 1-bit dominants, respectively.
  • DLC is a 44-bit value indicating the length of the following data field.
  • the data field is a portion of data transmitted with a maximum length of 64 bits and is a payload of a data frame.
  • the length can be adjusted in units of 8 bits.
  • the specification regarding the allocation to the portion of data to be transmitted depends on at least one of the vehicle type and the manufacturer.
  • the CRC sequence is 15 bits long and indicates a value calculated from the transmission values of the SOF, ID field, control field, and data field.
  • the receiving node determines the presence / absence of abnormality by comparing the result calculated from the received values of the SOF, ID field, control field, and data field for each data frame with the value of the CRC sequence.
  • the CRC delimiter is a 1-bit recessive delimiter that represents the end of the CRC sequence.
  • the ACK slot is 1 bit long, and the transmitting node transmits recessive in this part. If the receiving node has successfully received the CRC sequence, it transmits a dominant in this part. In the CAN standard, the dominant is given priority in the dominant and recessive transmitted simultaneously. Therefore, in the in-vehicle network system in which communication is normally performed, the bus is in a dominant state during transmission of the ACK slot.
  • the ACK delimiter is a 1-bit recessive delimiter that represents the end of the ACK slot.
  • EOF is 7 bits long and indicates the end of the data frame.
  • FIG. 5 is a diagram illustrating an example of a MAC transmission method in CAN communication.
  • FIG. 5A shows a data frame used for CAN communication, which is the same as FIG.
  • FIG. 5B shows a verification data frame used for MAC transmission.
  • the MAC is transmitted by a verification data frame in which the data field of the normal data frame shown in FIG. That is, following the normal data frame, a verification data frame with the data field in the data frame as MAC is transmitted.
  • a first electronic control unit which is one of a plurality of electronic control units, transmits a data frame as data and data of a data frame as MAC added to the data via a bus according to the CAN protocol.
  • a verification data frame with the field MAC is transmitted.
  • the first electronic control unit uses a MAC key for a value obtained by combining at least the ID for identifying the data frame and the number of transmissions of the data frame counted by the transmission counter. Generate a MAC.
  • the second electronic control unit which is at least one of the plurality of electronic control units other than the first electronic control unit among the plurality of electronic control units, transmits the data frame transmitted by the first electronic control unit and the verification A data frame is received via the bus. Then, the second electronic control unit applies at least a value obtained by combining the MAC obtained by receiving the verification data frame, the ID corresponding to the received data frame, and the number of times of reception of the data counted by the reception counter. The identity with the MAC generated using the MAC key is verified.
  • the verification frame is an example of the MAC added to the data frame, and is not limited to this.
  • the MAC added to the data frame may be a method of adding the MAC to a normal data frame. For example, when only 4 bytes of the 8 bytes in the data field are used for data transmission, only the upper 4 bytes or the lower 4 bytes of the 16 bytes of the MAC value are added to the remaining 4 bytes of the data field Can be considered. It is also conceivable that only 1 byte of the 16 bytes of the MAC value is added to the remaining 4 bytes of the data field.
  • FIG. 6 is a diagram illustrating an example of a MAC transmission method in Ethernet (registered trademark) communication.
  • FIG. 6A shows a MAC frame (Media Access Control Frame) that is a cluster of information transmitted in Ethernet (registered trademark) communication.
  • the MAC frame (hereinafter also referred to as a frame) includes data obtained by dividing communication data to be transmitted in Ethernet (registered trademark) communication to a certain length or less, a header, a transmission source address, a transmission destination address, and the like. A set of information in a predetermined format.
  • FIG. 6B shows an example of a MAC frame used for MAC transmission.
  • the MAC frame is transmitted by including the MAC frame encrypted by using a key (referred to as a MAC key) with an encryption method such as AES as a message authentication code (that is, MAC) in the payload portion and transmitting the MAC frame.
  • a key referred to as a MAC key
  • AES an encryption method
  • the first electronic control unit which is one of the plurality of electronic control units, transmits the MAC frame by including the MAC in the payload portion as the MAC added to the MAC frame.
  • the first electronic control unit generates a MAC using a MAC key for a value obtained by combining at least the transmission source address and transmission destination address added to the MAC frame and the number of transmissions of the MAC frame counted by the transmission counter.
  • a second electronic control unit that is at least one of the plurality of electronic control units other than the first electronic control unit among the plurality of electronic control units receives the MAC frame transmitted by the first electronic control unit. Then, the second electronic control unit is counted by the MAC obtained by receiving the frame including the MAC in the payload portion, the transmission source address and the transmission destination address added to the received MAC frame, and the reception counter. The identity of the MAC generated using the MAC key is verified with respect to a value obtained by combining at least the number of receptions of the MAC frame.
  • a MAC may be generated using a MAC key for a value obtained by combining at least the number of transmissions of the data frame counted by the transmission counter.
  • FIG. 7 is a block diagram showing a functional configuration of the ECU 111 in the present embodiment.
  • the ECU 111 is an electronic control unit connected to an in-vehicle network mounted on a vehicle, and has a CPU (Central Processing Unit) and a memory. As shown in FIG. 7, the ECU 111 includes a frame transmission / reception unit 1111, a frame interpretation unit 1112, a reception ID determination unit 1113, a reception ID list holding unit 1114, a frame processing unit 1115, a vehicle body state holding unit 1116, Determination rule storage unit 1117, timer 1118, key update determination unit 1119, update processing unit 1120, MAC key storage unit 1121, counter storage unit 1122, MAC generation unit 1123, frame generation unit 1124, data An acquisition unit 1125.
  • a frame transmission / reception unit 1111 As shown in FIG. 7, the ECU 111 includes a frame transmission / reception unit 1111, a frame interpretation unit 1112, a reception ID determination unit 1113, a reception ID list holding unit 1114, a frame processing unit 1115, a vehicle body state holding unit 1116, Determination rule
  • the vehicle body state holding unit 1116, the determination rule holding unit 1117, the timer 1118, and the key update determination unit constitute a key update process determination unit 13a that is an example of the key update process determination unit 13.
  • the update processing unit 1120, the MAC key holding unit 1121, the counter holding unit 1122, and the MAC generation unit 1123 constitute a key update unit 12 a that is an example of the key update unit 12.
  • Each of these components is a functional component, and each function is realized by a communication circuit in the ECU 111, a processor that executes a control program stored in a memory, a digital circuit, or the like.
  • the ECUs 131 to 191 have the same configuration and function as the key update management device 10. In the following description, it is assumed that the in-vehicle network is a CAN.
  • the frame transmission / reception unit 1111 transmits / receives a frame according to the CAN protocol to / from the bus. Also, the frame transmission / reception unit 1111 receives a frame bit by bit from the bus and transfers it to the frame interpretation unit 1112. The frame transmission / reception unit 1111 transmits the contents of the frame notified from the frame generation unit 1124 to the bus.
  • the frame interpretation unit 1112 receives the value of the frame transferred and received by the frame transmission / reception unit 1111 and interprets it so as to map it to each field in the frame format defined by the CAN protocol.
  • the frame interpretation unit 1112 notifies the reception ID determination unit 1113 of the value interpreted as the ID field.
  • the frame interpretation unit 1112 transfers the value of the ID field and the value of the data field appearing after the ID field to the frame processing unit 1115 according to the determination result notified from the reception ID determination unit 1113, or The reception of the frame is stopped by stopping the interpretation after the determination result is notified.
  • the frame interpretation unit 1112 When the value of the data field appearing after the ID field is transferred to the frame processing unit 1115, the frame interpretation unit 1112 notifies the frame processing unit 1115 of the contents of the ACK slot in the data frame interpreted from the received frame value. To do.
  • the frame interpretation unit 1112 interprets the received frame value as a frame that does not conform to the CAN protocol, the frame interpretation unit 1112 notifies the frame generation unit 1124 of an instruction to transmit an error frame.
  • the frame interpretation unit 1112 interprets that the frame is an error frame from the value of the received frame, thereafter, the frame interpretation unit 1112 stops the interpretation of the frame and discards the frame.
  • the reception ID determination unit 1113 receives the value of the ID field notified from the frame interpretation unit 1112, and receives each field of the frame after the ID field according to the list of message IDs held in the reception ID list holding unit 1114. Judge whether to do. The reception ID determination unit 1113 notifies the frame interpretation unit 1112 of the determination result.
  • the reception ID list holding unit 1114 holds a reception ID list that is a list of IDs (message IDs) received by the ECU 111. An example of the reception ID list will be described with reference to FIG.
  • FIG. 8 is a diagram showing an example of the reception ID list in the present embodiment.
  • FIG. 8 shows an example of a message ID list received by the ECU 111, the ECU 131, the ECU 182, the ECU 184, and the ECU 186.
  • the message IDs “1”, “2”, “3”, and “4” are received. The settings are shown.
  • the frame processing unit 1115 verifies the MAC, which is a tampering prevention code added to all the data frames received from the frame interpretation unit 1112. This MAC verification has the significance of verifying the validity of the data frame (message).
  • the frame processing unit 1115 obtains the MAC key corresponding to the message ID of the received data frame from the MAC key holding unit 1121, and obtains the counter value corresponding to the message ID from the counter holding unit 1122.
  • the MAC included in the data field of the verification data frame received following the data frame is verified.
  • the frame processing unit 1115 combines at least the MAC obtained by receiving the verification data frame, the ID corresponding to the received data frame, and the number of times of reception of the data counted by the reception counter. On the other hand, the identity with the MAC generated using the MAC key is verified. In the present embodiment, the frame processing unit 1115 first generates a MAC by calculation using the same method (described later) as the MAC generating unit 1123, and then generates the generated MAC and the data of the verification data frame. The MAC included in the field is compared. Then, the frame processing unit 1115 determines that the verification is successful if both MACs match, and determines that the verification fails, that is, an error if the MACs do not match. If the frame processing unit 1115 determines that an error has occurred, the frame processing unit 1115 notifies the frame interpretation unit 1112 and stops the subsequent reception processing.
  • the frame processing unit 1115 verifies the MAC, even if an illegal frame transmitted by an unauthorized ECU connected to the bus is received, it can be determined as an error and the reception process can be stopped. It is possible to prevent the vehicle from being controlled by the above.
  • the frame processing unit 1115 receives a frame for notifying the vehicle state (hereinafter referred to as vehicle state) and / or travel information
  • vehicle state a frame for notifying the vehicle state
  • the frame state holding unit 1116 notifies the received vehicle state and / or travel information.
  • the vehicle state is, for example, “running”, “stopped”, or “parking”, and indicates whether the vehicle is running or can be moved.
  • the vehicle state is specified by the ECU 121 connected to the transmission 120 based on the gear positions such as parking, neutral, first speed, second speed, etc. obtained from the transmission 120, and is included in the frame and notified to the bus. Good.
  • the vehicle state may be, for example, an ECU (not shown in FIG. 3) that identifies the vehicle state based on information notified from a plurality of ECUs and includes the frame in a frame and notifies the bus.
  • the travel information is information related to the travel of the vehicle, for example, the position acquired by the GPS sensor 187 or the travel distance or travel time of the vehicle detected by another sensor, and the vehicle speed acquired by the ECU 111 from the engine 110 and It is the speed of the vehicle.
  • the frame processing unit 1115 has the function of the acquisition unit 11 described above, and acquires travel information that is information regarding the travel of the vehicle transmitted from at least one of the plurality of electronic control units.
  • the frame processing unit 1115 performs processing according to the received frame data. It is assumed that the ECU 111 has a function of sounding an alarm sound such as having a speaker for sounding an alarm sound to a vehicle occupant. For example, when receiving information indicating that the door is open in a situation where the speed of the vehicle obtained by traveling information or information obtained from the engine 110 exceeds 30 km, the frame processing unit 1115 An alarm sound may be sounded to the passenger. In this way, the frame processing unit 1115 manages a data frame received from another ECU, for example, notifying the state of the door, and performs a process of sounding an alarm sound under a certain condition based on the vehicle speed obtained from the engine 110. The process according to the received frame data is performed.
  • the frame processing unit 1115 has been described as being common to a plurality of ECUs, a different process may be performed for each ECU. For example, when the door is opened in a state where the brake is not applied, the ECU 184 performs a process of sounding an alarm sound to the vehicle occupant, while the ECU 131, the ECU 182 and the like do not perform a process of sounding the alarm sound. It is good. ECU 111 to ECU 186 may or may not have functions other than the function of sounding an alarm sound.
  • the frame processing unit 1115 confirms the value of the ACK slot in the data frame received from the frame interpretation unit 1112 and confirms whether the frame transmitted from the frame transmission / reception unit 1111 is normally received by another ECU. To do. Then, the frame processing unit 1115 notifies the update processing unit 1120 of the confirmed result.
  • the vehicle body state holding unit 1116 holds the current vehicle state and the current traveling state notified from the frame processing unit 1115. As a result, the vehicle body state holding unit 1116 holds the vehicle state and the travel information notified to date. Specifically, the vehicle body state holding unit 1116 holds, for example, “running”, “stopped”, and “parking” as the vehicle state as described above. Further, as described above, for example, GPS information indicating the travel distance, the vehicle speed, and the vehicle position is held as the travel information.
  • the vehicle body state holding unit 1116 notifies the key update determination unit 1119 when the travel distance obtained from the travel information and the travel distance of the vehicle since the previous update of the MAC key has exceeded the threshold value.
  • the travel distance obtained from the travel information may be a travel distance of the vehicle detected by another sensor, a travel distance calculated based on a position acquired by the GPS sensor 187, a vehicle speed acquired from the engine 110, and It may be a distance calculated from the time of the vehicle speed.
  • the determination rule holding unit 1117 holds a determination rule used by the key update determination unit 1119.
  • the determination rule is a rule for determining whether or not the update processing unit 1120 satisfies a condition for executing the update process.
  • an example of the determination rule will be described with reference to FIGS. 9A and 9B.
  • FIG. 9A and FIG. 9B are diagrams showing an example of the determination rule in the present embodiment.
  • FIG. 9A shows an example of the determination rule according to the vehicle state
  • FIG. 9B shows an example of the determination rule according to the travel information.
  • FIG. 9A shows a determination rule for not performing the update process when the vehicle state is “running” or “stopped”.
  • a determination rule for performing the update process is shown. That is, according to the determination rule shown in FIG. 9A, for example, when the vehicle state is “running” or “stopped”, the update processing unit 1120 executes the update process even when the update timing of the MAC key update comes. It is determined that the condition is not satisfied, and the update process is not performed.
  • the vehicle state changes to “parking” it is determined that the update processing unit 1120 satisfies the condition for executing the update process, and the update process is executed.
  • the vehicle state is “parked” and the update timing of the MAC key update arrives, it is determined that the update processing unit 1120 satisfies the condition for executing the update process.
  • FIG. 9B shows a determination rule in which the update process is not performed if the travel distance of the vehicle is equal to or less than the threshold value D1, and the update process is performed if it is above the threshold value D1. Further, a determination rule is shown in which the update process is not performed if the moving distance of the vehicle by GPS is equal to or less than the threshold value D2, and the update process is performed if it is above the threshold value D2.
  • the travel distance of the vehicle by GPS is obtained from the position acquired by the GPS sensor 187 included in the travel information. That is, the travel distance of the vehicle by GPS may be included in the travel distance of the vehicle obtained from the travel information.
  • the update processing unit 1120 determines that the update processing unit 1120 does not satisfy the condition for executing the update process, and the update process is not performed. . If the travel distance of the vehicle is above the threshold value D1 or the travel distance of the vehicle by GPS is above the threshold value D2, the update processing unit 1120 executes the update process even before the update timing of the MAC key update arrives. It is determined that the conditions to be satisfied are satisfied, and update processing is performed.
  • Whether or not the update processing unit 1120 satisfies the condition for executing the update process may be determined according to any one of the determination rules for the vehicle state and the travel information, or both the vehicle state and the travel information. It may be performed according to the determination rule.
  • the update processing unit 1120 performs the update process. It may be determined that the conditions for execution are not satisfied, and the update process may not be performed.
  • the update processing unit 1120 does not satisfy the condition for executing the update process. It is good.
  • the timer 1118 is a timing mechanism that repeatedly counts up the timer value corresponding to the elapsed time.
  • the timer 1118 notifies the key update determination unit 1119 of the elapsed time from the completion of the previous update process of the MAC key.
  • the timer 1118 resets the timer value based on the update processing completion notification from the key update determination unit 1119.
  • the key update determination unit 1119 determines whether or not the update processing unit 1120 satisfies a condition for executing the update processing.
  • the key update determination unit 1119 may determine whether the update timing of the MAC key update has arrived.
  • the update timing is a timing at which a predetermined time (for example, 6 hours, 1 day, etc.) has elapsed, and is determined based on the timer 1118.
  • the condition for the update processing unit 1120 to execute the update process is to satisfy that the state relating to the traveling of the vehicle obtained from the traveling information is a predetermined state.
  • the predetermined state is before the update timing of the MAC key update arrives, it is the vehicle travel distance obtained from the travel information and the vehicle travel distance from the last update of the MAC key exceeds the threshold It is.
  • the predetermined state is a state in which the state of the vehicle is parked after the update timing of the MAC key update has arrived.
  • the key update determination unit 1119 acquires the current vehicle state from the vehicle body state holding unit 1116 and acquires from the determination rule holding unit 1117 when a predetermined update timing arrives.
  • the update processing unit 1120 determines whether or not a condition for executing the update process is satisfied.
  • the update process includes at least a MAC key update process, and also includes an update process related to updating data used for generating a MAC. More specifically, in the update process, a key update process for updating a MAC key value that is a key used for generating a MAC, and a counter value reflected in the MAC are reset (that is, updated to a specific value such as zero). Means counter reset processing.
  • the key update determination unit 1119 when it is determined that the update processing unit 1120 satisfies the condition for executing the update processing, the key update determination unit 1119 notifies the update processing unit 1120 to that effect. On the other hand, when it is determined that the update processing unit 1120 does not satisfy the conditions for executing the update process, the key update determination unit 1119 waits for a change in the vehicle state.
  • the key update determination unit 1119 acquires travel information including the present from the vehicle body state holding unit 1116 even if the predetermined update timing has not arrived, and responds to the determination rule acquired from the determination rule storage unit 1117. Thus, the update processing unit 1120 determines whether or not a condition for executing the update process is satisfied. When the key update determination unit 1119 determines that the update processing unit 1120 satisfies the condition for executing the update processing, the key update determination unit 1119 notifies the update processing unit 1120 to that effect. On the other hand, when it is determined that the update processing unit 1120 does not satisfy the conditions for executing the update process, the key update determination unit 1119 may wait until a predetermined update timing arrives and make a determination based on the vehicle state. .
  • the key update determination unit 1119 notifies the timer 1118 of the completion notification of the update process in order to cause the timer 1118 to reset the timer value.
  • the update processing unit 1120 performs update processing according to the notification from the key update determination unit 1119. That is, the update processing unit 1120 performs an update process for updating the MAC key on condition that the state related to the traveling of the vehicle obtained from the traveling information is a predetermined state.
  • the update processing unit 1120 notifies the timing at which the condition for executing the key update processing of the predetermined state is satisfied, thereby updating the MAC key to all the plurality of ECUs including the own ECU 111 at the same timing. Processing may be performed. That is, the update processing unit 1120 may generate a new MAC key using the MAC key at the same timing when the plurality of ECUs satisfy the above conditions. Then, the update processing unit 1120 may reset the transmission counter and the reception counter at the same timing that satisfies the above conditions.
  • the key update unit 12 may generate a new MAC key using the MAC key when the above condition is satisfied. Then, the key update unit 12 distributes the new MAC key generated at the timing satisfying the above conditions to all the plurality of ECUs except the own ECU 111, thereby updating the MAC key to all the plurality of ECUs at the same timing.
  • the key update process to be performed may be performed.
  • the update processing unit 1120 may reset the transmission counter and the reception counter at the same timing that satisfies the above conditions.
  • the update processing unit 1120 receives a notification from the key update determination unit 1119 that the update processing unit 1120 has determined that the conditions for executing the update processing are satisfied, and newly adds a key to be a MAC key candidate. Generate and notify the MAC key holding unit 1121. Further, upon receiving the notification, the update processing unit 1120 notifies the counter holding unit 1122 to reset the counter value. When receiving the notification, the update processing unit 1120 acquires the MAC key held by the MAC key holding unit 1121 and caches it as an old key (that is, temporarily holds it in a storage medium) and holds the counter. The counter value held by the unit 1122 is acquired and cached.
  • the update processing unit 1120 notifies the MAC key holding unit 1121 of the MAC key that is the cached old key when the update of the MAC key is not successful in one of the plurality of ECUs, and resets the cache.
  • the previous counter value is notified to the counter holding unit 1122.
  • the update processing unit 1120 deletes the cached MAC key that is the old key and the counter value before resetting. Note that these deletions are not limited to deletion of values stored in a temporary storage device (not shown) as long as these values that are temporarily held can be handled as those that can no longer be used.
  • the update processing unit 1120 uses, as a MAC key generation method, a new result derived by, for example, inputting the current MAC key as an old key into a predetermined one-way function such as a hash function.
  • a method for determining a MAC key candidate may be used.
  • the MAC key holding unit 1121 is realized by a storage medium such as a memory, and holds one MAC key for each message ID. As described above, the retained MAC key is necessary when the MAC generation unit 1123 and the frame processing unit 1115 calculate the MAC. Further, the MAC key holding unit 1121 updates the MAC key by discarding the MAC key held so far and holding the notified new MAC key in accordance with the notification from the update processing unit 1120.
  • the counter holding unit 1122 is realized including a storage medium such as a memory, and holds one counter value for each message ID.
  • the counter holding unit 1122 holds the notified counter value according to the notification from the update processing unit 1120, and resets the held counter value according to the notification from the update processing unit 1120 that it should be reset. By this reset, the counter value is updated to a specific value such as zero.
  • the counter value is required when the MAC generation unit 1123 and the frame processing unit 1115 calculate the MAC.
  • the counter value is incremented (increased by 1) when the frame is normally transmitted from the frame transmission / reception unit 1111.
  • the counter value is treated as a transmission counter when a data frame is transmitted from the frame transmission / reception unit 1111 and the number of transmissions is counted.
  • the counter value is handled as a reception counter when the frame transmission / reception unit 1111 receives a data frame, and the number of receptions is counted.
  • the counter holding unit 1122 treats the counter value corresponding to the message ID “1” among the held counter values as a transmission counter, and is normal Increments every time it is transmitted.
  • the counter holding unit 1122 uses a counter value corresponding to the message ID “1” among the held counter values as a reception counter. Handles and increments every time it is successfully received.
  • the MAC generation unit 1123 generates a MAC using a MAC key for a value obtained by combining at least an ID for identifying a data frame and the number of transmissions of the data frame counted by the transmission counter.
  • the MAC generation unit 1123 receives the message ID and data field data value notified from the frame generation unit 1124 and the counter value held by the counter holding unit 1122 (that is, the counter value corresponding to the message ID). ) Are combined (combined value). Then, the MAC generation unit 1123 uses the MAC key held by the MAC key holding unit 1121 (that is, the MAC key corresponding to the message ID) for the calculated combined value to calculate the MAC (that is, calculate the MAC value by calculation). ) To notify the frame generation unit 1124 of the calculated MAC.
  • HMAC Hash-based Message Authentication Code
  • Non-Patent Document 1 may be adopted as a MAC calculation method.
  • the MAC generation unit 1123 calculates the calculated combined value using a MAC key with a value padded up to a predetermined block of 4 bytes, for example, and uses the first 4 bytes of the calculated result as the MAC value. do it.
  • the MAC is generated by reflecting a counter value that is incremented every time a frame is transmitted. That is, even if the ECU 111 transmits a data frame including the same data value a plurality of times, the MAC assigned (that is, added) to the data frame changes every transmission.
  • a MAC may be generated using a MAC key for a value obtained by combining at least the transmission source address and transmission destination address added to the frame and the number of transmissions of the MAC frame counted by the transmission counter.
  • the frame generation unit 1124 configures an error frame and notifies the frame transmission / reception unit 1111 of the error frame according to the notification instructing transmission of the error frame notified from the frame interpretation unit 1112.
  • the frame generation unit 1124 notifies the MAC generation unit 1123 of the MAC by notifying the MAC generation unit 1123 of the predetermined message ID and the data value (data value for the data field) notified from the data acquisition unit 1125. receive.
  • the frame generation unit 1124 configures a frame based on the predetermined message ID, the notified MAC, and the notified data field data value, and notifies the frame transmission / reception unit 1111 of the frame.
  • the data acquisition unit 1125 acquires data indicating the state of devices, sensors, and the like connected to the ECU, and notifies the frame generation unit 1124 of the data.
  • FIG. 10 is a diagram showing an example of message ID and data transmitted by the ECU 111 connected to the engine 110 in the present embodiment.
  • the message ID transmitted by the ECU 111 is “1”, for example.
  • the first 1 byte represents the speed
  • the next 1 byte represents the counter
  • the next 4 bytes represent the MAC value.
  • Speed per hour ranges from a minimum of 0 km to a maximum of 180 km. That is, the ECU 111 transmits the first 1 byte value representing the speed per hour, the counter value and the MAC value corresponding to each value as a set in 6 bytes.
  • FIG. 10 shows that the vehicle is accelerated from 0 km to 1 km.
  • FIG. 11 is a diagram showing an example of message ID and data transmitted by ECU 131 connected to brake 130 in the present embodiment.
  • the message ID transmitted by the ECU 131 is “2”, for example.
  • the first 1 byte represents the degree of braking in%
  • the next 1 byte represents a counter
  • the next 4 bytes represent a MAC value.
  • the state where the brake is not applied at all is 0%
  • the state where the brake is applied to the maximum is 100%. That is, the ECU 131 transmits the first 1 byte value indicating the degree of brake application, the counter value corresponding to each value, and the MAC value in 6 bytes as a set.
  • FIG. 11 shows how the vehicle gradually weakens the brake from 100%.
  • FIG. 12 is a diagram illustrating an example of message ID and data transmitted by the ECU 184 connected to the door opening / closing sensor 185 according to the present embodiment.
  • the message ID transmitted by the ECU 184 is “3”, for example.
  • the first byte represents the door open / closed state
  • the next 1 byte represents the counter
  • the next 4 bytes represent the MAC value.
  • the state where the door is open is “1”, and the state where the door is closed is “0”.
  • the ECU 184 transmits the first 1 byte value indicating the open / closed state of the door, the counter value corresponding to each value, and the MAC value as a set in 6 bytes.
  • FIG. 12 shows a state in which the door is closed halfway from the open state.
  • FIG. 13 is a diagram showing an example of message ID and data transmitted by the ECU 182 connected to the window opening / closing sensor 183 in the present embodiment.
  • the message ID transmitted by the ECU 182 is “4”, for example.
  • the first 1 byte represents the open / closed state of the window in%
  • the next 1 byte represents the counter
  • the next 4 bytes represent the MAC value.
  • the state where the window is closed is 0%
  • the state where the window is fully open is 100%.
  • the ECU 182 transmits a 6-byte set of a leading 1-byte value indicating the open / closed state of the window, a counter value corresponding to each value, and a MAC value.
  • FIG. 13 shows a state where the window is gradually opened from the closed state.
  • FIG. 14 is a diagram illustrating an example of message ID and data transmitted by the ECU 186 connected to the GPS sensor 187 in the embodiment.
  • the message ID transmitted by the ECU 182 is “5”, for example.
  • the first 3 bytes represent the GPS difference
  • the next 1 byte represents the counter
  • the next 4 bytes represent the MAC value. That is, ECU 186 transmits the difference value from the previous position, the counter value, and the MAC value as a set in 8 bytes.
  • FIG. 15 is a flowchart showing the update processing method in the present embodiment.
  • the key update management device 10 configuring the in-vehicle network system 100 will be described as performing update processing, but the present invention is not limited to this.
  • Each ECU may perform the update process, one of all ECUs may perform the update process as the key update management device 10, or the gateway 101 constituting the in-vehicle network system 100a may perform the update process.
  • the key update management device 10 acquires travel information, which is information related to the travel of the vehicle, transmitted from at least one of the plurality of electronic control units (S10).
  • the key update management device 10 determines whether or not a condition that the state relating to the traveling of the vehicle obtained from the traveling information is a predetermined state is satisfied (S11).
  • step S11 if the above condition is satisfied (Y in S11), the key update management device 10 is a MAC (message authentication code) added to data exchanged in the in-vehicle network system 100 and is a code for preventing falsification.
  • the MAC key that is a key used for generating a certain MAC is updated (S12).
  • step S11 if the above condition is not satisfied (N in S11), the process returns to step S10.
  • FIG. 16 is a flowchart showing detailed processing of step S11 shown in FIG. Below, the case where ECU111 which is one of several ECUs which comprise in-vehicle network system 100a performs update processing as key update management device 10 is mentioned as an example, and is explained.
  • step S11 the ECU 111 confirms the elapsed time from the completion of the previous update process by the internal timer 1118 (S1101).
  • the ECU 111 determines whether or not a predetermined time has elapsed since the completion of the previous update process (S1102). More specifically, the ECU 111 determines whether the update timing for MAC key update has arrived based on the elapsed time counted by the timer 1118.
  • step S1102 if the predetermined time has not elapsed since the completion of the previous update process (N in S1102), the ECU 111 checks the distance traveled by the vehicle since the completion of the previous update process (S1103). More specifically, the ECU 111 checks the vehicle travel distance obtained from the travel information and the vehicle travel distance from the last update of the MAC key.
  • the ECU 111 determines whether the distance traveled by the vehicle since the completion of the previous update process is greater than a predetermined threshold (S1104). For example, according to the determination rule as shown in FIG. 9B, the ECU 111 determines whether the distance the vehicle has traveled since the completion of the previous update process is greater than the threshold.
  • step S1104 the ECU 111 returns to S1101 when the distance the vehicle has traveled since the completion of the previous update process is less than or equal to the threshold (N in S1104).
  • step S1104 if the distance the vehicle has traveled since the completion of the previous update process is greater than the threshold (Y in S1104), the ECU 111 ends the process of step S11 and proceeds to step S12 shown in FIG. In step S1104, when the distance the vehicle has traveled since the completion of the previous update process is equal to or smaller than the threshold (N in S1104), ECU 111 returns to step S10 shown in FIG.
  • step S1102 if a predetermined time has elapsed since the completion of the previous update process (Y in S1102), the ECU 111 confirms the current vehicle state (S1105) and determines whether the vehicle is parked. Is determined (S1106).
  • step S1106 If the vehicle is parked (Y in S1106), the ECU 111 ends the process of step S11 and proceeds to step S12 shown in FIG. On the other hand, if the vehicle is parked (N in S1106), ECU 111 returns to step S1105.
  • step S1104 the ECU 111 ends the process of step S11 when the distance the vehicle has traveled since the completion of the previous update process is greater than the threshold (Y in S1104), but is not limited thereto. Furthermore, the processing in steps S1105 and S1106 may be performed.
  • the ECU 111 determines whether the determination rule held in the determination rule holding unit 1117 is the vehicle travel distance obtained from the current vehicle state or travel information, and the travel distance of the vehicle since the last update of the MAC key. It can be determined whether or not to execute the update process according to the rule.
  • the ECU 111 when following the determination rule shown in FIG. 9A, the ECU 111 does not execute the update process if the vehicle state is “running” or “stopped”. On the other hand, if the vehicle state is “parked”, update processing is executed. Further, in the case of following the determination rule shown in FIG. 9B, the ECU 111 updates the update process if the vehicle travel distance obtained from the travel information and the travel distance of the vehicle since the last update of the MAC key is equal to or less than the threshold value D1. Do not execute. If the travel distance indicated by the GPS travel distance is equal to or less than the threshold D2, the update process is not executed.
  • FIG. 17 is an example of a flowchart showing the detailed process of step S12 shown in FIG.
  • the ECU 111 that is one of a plurality of ECUs configuring the in-vehicle network system 100a executes the update process
  • a new MAC key generated at a timing that satisfies the condition for executing the key update process is distributed to all of the plurality of ECUs other than the own ECU 111, whereby the MAC key is assigned to all of the plurality of ECUs.
  • An update process for updating at the same timing is shown.
  • step S12 the ECU 111 caches the MAC key held by the MAC key holding unit 1121 as an old key (S1201). Subsequently, the ECU 111 sets the generated key as a MAC key (S1202). More specifically, the ECU 111 newly generates a key that becomes a MAC key candidate and holds it in the MAC key holding unit 1121 as a MAC key.
  • the ECU 111 caches the counter value held by the counter holding unit 1122 (S1203). Subsequently, the ECU 111 resets the counter value held by the counter holding unit 1122 to zero (S1204).
  • the ECU 111 generates a MAC using the generated MAC key (S1205). More specifically, the ECU 111 stores a predetermined message ID, a data value for the data field, a counter value held by the counter holding unit 1122 after reset, and a MAC key holding unit 1121 The MAC is generated using the newly generated MAC key.
  • the ECU 111 generates and broadcasts a key distribution frame that is a data frame for distributing the generated MAC key, and then broadcasts an update frame that is a data frame for confirming the synchronization of the update (S1206). ). More specifically, first, the ECU 111 generates a key distribution frame including the message ID, the data value for the data field, and the MAC key generated in step S1202 and transmits the generated key distribution frame to the bus. The MAC key is updated at the same timing in all ECUs. Subsequently, the ECU 111 generates an update frame including the message ID, the data value for the data field, and the MAC generated in step S1205, and transmits it to the bus. Other ECUs that have received the key distribution frame cache the MAC key, which is the old key, and the counter value before reset, like ECU 111.
  • the ECU 111 determines whether or not all of the plurality of ECUs excluding the ECU 111 have successfully received the update frame (S1207). More specifically, after sending the update frame to the bus in step S1206, the ECU 111 determines whether all of the plurality of ECUs other than the ECU 111 have successfully received the update frame (that is, received normally). Judge by seeing.
  • step S1207 If it is determined in step S1207 that all of the ECUs other than the ECU 111 have successfully received the updated frame (Y in S1207), the ECU 111 determines that the MAC key that is the cached old key, the counter value before resetting, Is discarded (S1208), and the update process is terminated. This is because, when all of the plurality of ECUs other than the own ECU 111 have successfully received the update frame, it is understood that the update of the MAC key is completed with the new MAC key in all of the plurality of ECUs.
  • the ECU 111 sets the MAC key that is the cached old key as the MAC key again (S1210) and caches it.
  • the counter value before reset is set again (S1211). More specifically, when there is an ECU that failed to receive the update frame, the ECU 111 causes the MAC key holding unit 1121 to hold the MAC key that is the cached old key. Further, the ECU 111 causes the counter holding unit 1122 to hold the cached counter value before resetting as the counter value again. Other ECUs, like ECU 111, set the cached MAC key, which is the old key, as the MAC key again, and reset the cached counter value before resetting. Even if there is an ECU that did not successfully receive the update frame, it is determined whether there was an ECU that failed to receive the update frame after broadcasting the key distribution frame again and distributing a new MAC key again. May be.
  • the ECU 111 generates a MAC using the reset MAC key and counter value (S1212). More specifically, the ECU 111 determines a predetermined message ID, a data value for the data field, a counter value of the counter holding unit 1122 reset from the cache, and a MAC key holding unit 1121 reset from the cache. A MAC is generated using the MAC key.
  • the ECU 111 broadcasts an update frame that is a data frame for confirming the synchronization of the update (S1213). More specifically, the ECU 111 generates an update frame including the message ID, the data value for the data field, and the MAC generated in step S1212 and transmits it to the bus.
  • the ECU 111 determines whether or not all the plurality of ECUs excluding the self ECU 111 have successfully received the update frame (S1214). More specifically, after transmitting the update frame to the bus in step S1213, the ECU 111 determines whether or not all of the ECUs other than the ECU 111 have successfully received the update frame by looking at the value of the ACK slot. .
  • Step S1214 when it is determined that all of the plurality of ECUs other than the own ECU 111 have successfully received the update frame (Y in S1214), the ECU 111 performs the update process again after waiting for a certain time (S1215). That is, the ECU 111 returns to step S1201 and performs the update process again, assuming that the update of the MAC key failed was a minor error.
  • step S1214 if it is determined in step S1214 that reception of the update frame has failed (N in S1214), the ECU 111 stops processing for occurrence of a fatal error (S1216).
  • the ECU 111 fails to receive the update frame transmitted to confirm that it has been returned to the old key because the update of the MAC key has failed, because it can be regarded as a fatal error in the system.
  • the ECU 111 may execute processes such as notification of error occurrence and log recording. Further, the notification of the occurrence of an error can be executed by transmitting a data frame indicating the occurrence of an error to another ECU, displaying on a display or the like, outputting sound, emitting light, or the like.
  • FIG. 18 is another example of a flowchart showing the detailed processing of step S12 shown in FIG. 18 also illustrates an example in which the ECU 111, which is one of a plurality of ECUs constituting the in-vehicle network system 100a, executes the update process, as in FIG. Elements similar to those in FIG. 17 are denoted by the same reference numerals, and detailed description thereof is omitted.
  • the ECU 111 broadcasts a notification frame indicating the timing of key update. More specifically, the ECU 111 transmits a notification frame indicating the key update timing to the bus in order to notify the timing when the condition for executing the key update processing in the predetermined state is satisfied.
  • the notification frame indicating the key update timing the current MAC key, which is an old key, may be included in the data field and sent, or the fact indicating the key update timing may be included in the data field and transmitted.
  • the MAC key can be updated at the same timing by all of the plurality of ECUs including the own ECU 111. As described above, it is not essential to notify the timing when the condition for executing the key update process is satisfied. If it is CAN, even if it determines the timing when all the ECUs satisfy the conditions for executing the key update process independently, the same timing can be determined, so that all the ECUs can be updated at the same timing. Because it can.
  • the ECU 111 performs steps S1201 to S1205.
  • the other ECUs that have received the notification frame indicating the key update timing cache the MAC key, which is the old key, and the counter value before the reset, like the ECU 111.
  • the ECU 111 broadcasts an update frame that is a data frame for confirming the synchronization of the update. More specifically, the ECU 111 generates an update frame including the message ID, the data value for the data field, and the MAC generated in step S1205 and transmits it to the bus.
  • step S1207A the ECU 111 determines whether or not all the plurality of ECUs excluding the own ECU 111 have successfully received the update frame.
  • step S1207A when it is determined that all of the plurality of ECUs other than the own ECU 111 have successfully received the updated frame (Y in S1207A), the ECU 111 determines that the cached MAC key is the old key and the counter value before resetting. Is discarded (S1208), and the update process is terminated.
  • step S1207A the ECU 111 sets the MAC key, which is the cached old key, as the MAC key again and caches it.
  • the counter value before reset is set again (S1218).
  • the plurality of ECUs can determine whether or not the update frame has been successfully received by looking at the value of the ACK slot, the plurality of ECUs performs the process of step S1218 as in the case of the ECU 111.
  • the ECU 111 performs update processing again (S1219). That is, the ECU 111 returns to step S1217 and performs the update process again because it is a minor error that the update of the MAC key has failed.
  • any ECU may transmit the update frame.
  • the ECU 111 that repeatedly transmits the data frame of the message ID “1” is described as transmitting an update frame for synchronizing the update processing related to the MAC corresponding to the message ID “1”.
  • the update process including the key update process of the MAC key and the reset process of the counter can be executed according to the travel distance and / or the vehicle state.
  • an update process can be performed with a suitable frequency according to operation
  • the update process is performed when the travel distance is short and the vehicle is operating or is scheduled.
  • the update process can be executed according to the travel distance and / or the state of the vehicle.
  • the frame is periodically transmitted, but may be transmitted as an event for notifying the state change.
  • the frame may be transmitted only when the door lock state changes. Further, it may be transmitted periodically and when a state change occurs.
  • the size of the MAC included in the frame is not limited to 4 bytes, and may be different for each transmission.
  • the counter size is not limited to 1 byte.
  • the frame it is not necessary for the frame to include all of the data value, counter value, MAC value, and other field values included in the data frame, and any combination thereof may be used.
  • the MAC size is not limited to a fixed size, and may be a different size for each message ID. Further, it may be transmitted across a plurality of messages.
  • the counter value is incremented every transmission, but may be a value that is automatically incremented according to time. Further, the value of the time itself may be used instead of the counter.
  • the data frame in the CAN protocol is described in the standard ID format, but it may be in the extended ID format.
  • the MAC calculation algorithm is HMAC, but the present invention is not limited to this. CBC-MAC and CMAC may be used.
  • the padding that appears in the MAC calculation may be zero padding, ISO10126, PKCS1, PKCS5, PKCS7, or any other padding method that requires a data size for the calculation.
  • either the head, the tail or the middle may be taken. Moreover, even if it is not 4 bytes continuous, you may collect and combine 1 bit at a time according to a specific rule.
  • the MAC key update process and the counter reset process are simultaneously performed, but only one of them may be performed. Also for the MAC key update process, a new key dedicated to the MAC key update process may be embedded.
  • one MAC key is held for each message ID, but one MAC key may be used for each ECU. Moreover, all ECUs may hold a common MAC key. All ECUs connected to the same bus may hold a common MAC key.
  • one counter value is held for each message ID, but one counter value may be used for each ECU. Also, a common counter value may be used for all frames flowing on the same bus.
  • the counter value is used for MAC calculation, but may be included in the data field for transmission. In that case, all the counter values may be transmitted, or only a part may be transmitted.
  • the determination rule is not limited to an example, and may be another determination rule or a plurality of determination rules. Further, the determination rule may be set in the ECU at the time of shipment, may be set at the time of shipment of the mounted vehicle body, or may be set as a part or when the mounted vehicle body itself is sold. Good. The determination rule may be set by communication with the outside, various media, or various diagnostic tools.
  • the received ECU performs MAC verification on data frames transmitted and received between ECUs.
  • MAC verification that performs verification of the MAC assigned to all data frames at once. ECU may be used.
  • the MAC verification ECU may hold MAC keys and counter values corresponding to all message IDs. Further, when the MAC verification ECU determines an error as a result of the MAC verification, an error frame may be transmitted in order to prevent reception by other ECUs.
  • the key update process is performed for all the MAC keys.
  • the present invention is not limited to this, but only the MAC key of the message ID related to the travel distance. May be updated.
  • the key update process is performed for all the MAC keys.
  • the present invention is not limited to this, and a message ID related to the travel distance is transmitted.
  • the bus-only MAC key may be updated.
  • the update process is performed based on the determination rule when a predetermined time has elapsed or the travel distance is greater than the threshold.
  • the present invention is not limited to this, and the counter value is the threshold. If it is larger, the update process may be executed. At this time, only the MAC key corresponding to the message ID whose counter value is larger than the threshold value may be updated.
  • Each device in the above embodiment is specifically a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is recorded in the RAM or hard disk unit.
  • Each device achieves its functions by the microprocessor operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions for the computer in order to achieve a predetermined function.
  • part or all of the constituent elements may be configured by a single system LSI (Large Scale Integration).
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip, and specifically, a computer system including a microprocessor, ROM, RAM, and the like. . A computer program is recorded in the RAM.
  • the system LSI achieves its functions by the microprocessor operating according to the computer program.
  • each part of the constituent elements constituting each of the above devices may be individually made into one chip, or may be made into one chip so as to include a part or all of them.
  • the system LSI is used here, it may be called IC, LSI, super LSI, or ultra LSI depending on the degree of integration. Further, the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection or setting of circuit cells inside the LSI may be used.
  • a part or all of the constituent elements constituting each of the above-described devices may be configured by an IC card or a single module that is removable from each device.
  • the IC card or module is a computer system that includes a microprocessor, ROM, RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its functions by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • the present disclosure may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal composed of a computer program.
  • the present disclosure also discloses a computer program or a recording medium that can read a digital signal, such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray (registered) (Trademark) (Disc), recorded in a semiconductor memory or the like.
  • a digital signal such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray (registered) (Trademark) (Disc), recorded in a semiconductor memory or the like.
  • the digital signal may be recorded on these recording media.
  • the present disclosure may transmit a computer program or a digital signal via an electric communication line, a wireless or wired communication line, a network represented by the Internet, data broadcasting, or the like.
  • the present disclosure may be a computer system including a microprocessor and a memory.
  • the memory may record the computer program, and the microprocessor may operate according to the computer program.
  • program or digital signal may be recorded on a recording medium and transferred, or the program or digital signal may be transferred via a network or the like, and may be implemented by another independent computer system.
  • the update process of the MAC key in the ECU is reliably performed without concentrating on a specific timing, and the entire in-vehicle network system can be maintained in a safe state.
  • SYMBOLS 10 Key update management apparatus 11 Acquisition part 12,12a Key update part 13,13a Key update process determination part 100,100a In-vehicle network system 101 Gateway 111,121,131,141,151,161,171,181,182,184 186,191 ECU DESCRIPTION OF SYMBOLS 110 Engine 120 Transmission 130 Brake 140 Steering 150 Automatic brake 160 Lane keeping device 170 Inter-vehicle communication device 180 Head unit 183 Window opening / closing sensor 185 Door opening / closing sensor 187 GPS sensor 190 ITS device 1111 Frame transmission / reception unit 1112 Frame interpretation unit 1113 Reception ID judgment unit 1114 Reception ID List Holding Unit 1115 Frame Processing Unit 1116 Body State Holding Unit 1117 Determination Rule Holding Unit 1118 Timer 1119 Key Update Determination Unit 1120 Update Processing Unit 1121 MAC Key Holding Unit 1122 Counter Holding Unit 1123 MAC Generation Unit 1124 Frame Generation Unit 1125 Data Acquisition department

Landscapes

  • Small-Scale Networks (AREA)

Abstract

複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムにおいて用いられる鍵の更新処理方法であって、複数の電子制御ユニットの少なくとも一つから送信される、車両の走行に関する情報である走行情報を取得する取得ステップと、走行情報により得られる車両の走行に関する状態が所定状態であることを条件として、車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コードであって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵(MAC:Message Authentication Code)を更新する鍵更新ステップとを含む。

Description

更新処理方法、車載ネットワークシステムおよび電子制御ユニット
 本開示は、更新処理方法、車載ネットワークシステムおよび電子制御ユニットに関する。
 近年、自動車の中のシステムには、電子制御ユニット(以下、ECU:Engine Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークを車載ネットワークと呼ぶ。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの規格の一つに、Controller Area Network(以下、CAN)という規格がある。
 CANでは、通信線として用いられるバス(bus)は2本のケーブル(ツイストペア・ケーブル)で構成され、このバスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信するノード(以下、送信ノードともいう)は2本のケーブルに電圧をかけ、それぞれのケーブル間で発生させた電位差の有無に応じたレセシブと呼ばれる“1”の値とドミナントと呼ばれる“0”の値とを送信することで、フレームのデータを2進数に変換したバイナリデータで送信する。
 なお、複数の送信ノードが全く同一のタイミングで、レセシブとドミナントとを送信した場合は、ドミナントが優先されて送信される。フレームを受信するノード(以下、受信ノードともいう)は、受け取ったフレームのフォーマットに異常がある場合には、例えば連続する6bitのドミナントで始まるエラーフレームと呼ばれるフレームを送信する。受信ノードは、エラーフレームを送信することで、送信ノードおよび他の受信ノードにフレームの異常を通知することができる。
 また、CANでは、送信先または送信元を指す識別子は存在しない。送信ノードはフレーム毎にメッセージIDと呼ばれるIDを付けて送信し、各受信ノードは予め決められたメッセージIDを含むフレームのみ受信する。
 また、CANでは、CSMA/CR(Carrier Sense Multiple Access/Collision Resolution)方式が採用されており、複数ノードの同時送信時にはメッセージIDによる調停が行われ、メッセージIDの値が小さいフレームが優先的に送信される。
 一方、CANでは、不正なフレームが送信されるようなケースを想定したセキュリティ機能が存在しない。そのため、不正なノードが勝手にCANのバスに接続し、不正なフレームを送信することで、当該CANが搭載された自動車の車体を不正にコントロールすることが可能である。
 それに対して、例えば特許文献1では、CAN通信に用いられるデータフレームおけるデータフィールドにメッセージ認証コードを埋め込んで送信する方法が開示されている。メッセージ認証コードは、MAC(Message Authentication Code)ともいう。そして、通常のデータフレームに続けて、当該データフレームおけるデータフィールドにMACを埋め込んだデータフレームを送信することで、不正なフレームの送信を防止することができる。
特開2013-98719号公報
RFC2104 HMAC: Keyed-Hashing for Message Authentication
 本開示の一態様に係る更新処理方法は、複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムにおいて用いられる鍵の更新処理方法であって、前記複数の電子制御ユニットの少なくとも一つから送信される、前記車両の走行に関する情報である走行情報を取得する取得ステップと、前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コードであって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵(MAC:Message Authentication Code)を更新する鍵更新ステップとを含む。
 本開示の更新処理方法等は、車載ネットワークシステムにおいて用いられる鍵の更新を効率よく確実に実施することができる。これにより、安全な状態の車載ネットワークシステムを維持することができる。
図1は、実施の形態における車載ネットワークシステムの構成を示すブロック図である。 図2は、図1に示す鍵更新管理装置の構成の一例を示すブロック図である。 図3は、実施の形態における車載ネットワークシステムの全体構成の一例を示す図である。 図4は、CANプロトコルのデータフレームのフォーマットを示す図である。 図5は、CAN通信におけるMACの送信方法の一例を示す図である。 図6は、イーサネット(登録商標)通信におけるMACの送信方法の一例を示す図である。 図7は、実施の形態におけるECUの機能構成を示すブロック図である。 図8は、実施の形態における受信IDリストの一例を示す図である。 図9Aは、実施の形態における判定ルールの一例を示す図である。 図9Bは、実施の形態における判定ルールの一例を示す図である。 図10は、実施の形態におけるエンジンに接続されたECUが送信するメッセージIDとデータの一例を示す図である。 図11は、実施の形態におけるブレーキに接続されたECUが送信するメッセージIDとデータの一例を示す図である。 図12は、実施の形態におけるドア開閉センサに接続されたECUが送信するメッセージIDとデータの一例を示す図である。 図13は、実施の形態におけるウィンドウ開閉センサに接続されたECUが送信するメッセージIDとデータの一例を示す図である。 図14は、実施の形態におけるGPSセンサに接続されたECUが送信するメッセージIDとデータの一例を示す図である。 図15は、実施の形態における更新処理方法を示すフローチャートである。 図16は、図15に示すステップS11の詳細処理を示すフローチャートである。 図17は、図15に示すステップS12の詳細処理を示すフローチャートの一例である。 図18は、図15に示すステップS12の詳細処理を示すフローチャートの別の一例である。
 ところで、CAN通信に用いられるフレームには、MACを付加するためのフィールドは存在しない。さらにCAN通信に用いられるデータフレームにおけるデータフィールドは8バイトと少なく、データフィールドに埋め込まれるMACのサイズでは、十分な攻撃の耐性を確保することが難しい。
 そこで、データフィールドに埋め込まれるMACに対する総当り攻撃の耐性を高めるために、MACの生成に利用される鍵(以下、MAC鍵ともいう)を定期的に更新することが望ましいと考えられる。
 しかしながら、定期的に鍵の更新を行うとすると、自動車の動作にかかわらず鍵を更新することになる。つまり、定期的に鍵の更新を行う場合、CANにおいてフレームがほとんど送受信されていなくても鍵が更新されることから、車載ネットワークシステムにとって鍵の更新処理が負荷になることがある。
 本開示は、上述の事情を鑑みてなされたもので、車載ネットワークシステムにおいて用いられる鍵の更新を効率よく確実に実施することができる更新処理方法等を提供する。
 本開示の一態様の更新処理方法は、複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムにおいて用いられる鍵の更新処理方法であって、前記複数の電子制御ユニットの少なくとも一つから送信される、前記車両の走行に関する情報である走行情報を取得する取得ステップと、前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コードであって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵(MAC:Message Authentication Code)を更新する鍵更新ステップとを含む。
 これにより、MAC鍵の鍵更新処理、および、カウンタのリセット処理を含む更新処理を、走行距離および/または車の状態に応じて実行することで、更新処理を車の動作に応じて、適切な頻度で実行できる。つまり、ECUにおける鍵の更新処理が効率よく適切に実行できる。それにより、車載ネットワークシステム全体として、安全な状態を維持することができる。
 また、前記所定状態は、前記走行情報により得られる前記車両の走行距離であって前記MAC鍵の前回の更新時からの前記車両の走行距離が閾値を超えた状態であってもよい。
 また、前記所定状態は、前記MAC鍵の前回の更新時から所定時間経過後、かつ、前記走行情報により得られる前記車両の状態が駐車中である状態であってもよい。
 また、前記鍵更新ステップでは、前記複数の電子制御ユニットのすべてが、前記条件を満たした同一のタイミングで、前記MAC鍵を用いて新たなMAC鍵を生成することにより、前記MAC鍵を前記新たなMAC鍵に更新してもよい。
 また、前記鍵更新ステップでは、前記複数の電子制御ユニットの一が、前記条件を満たしたときに、前記MAC鍵を用いて新たなMAC鍵を生成する生成ステップと、前記一の電子制御ユニットが生成した前記新たなMAC鍵を、前記一の電子制御ユニット以外の前記複数の電子制御ユニットのすべてに配布することにより、前記MAC鍵を前記新たなMAC鍵に更新する配布ステップとを含んでもよい。
 また、前記車載ネットワークは、前記複数の電子制御ユニットがバスに接続されたCAN(Controller Area Network)であり、前記更新処理方法は、前記複数の電子制御ユニットのうちの一である第1電子制御ユニットが、CANプロトコルに従ってバスを介して、前記データとしてデータフレーム、および、前記データに付加されるメッセージ認証コードとして前記データフレームのデータフィールドを前記メッセージ認証コードとした検証用データフレームの送信を行う送信ステップと、前記複数の電子制御ユニットのうちの前記第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、前記第1電子制御ユニットにより送信されたデータフレーム、および、検証用データフレームを、バスを介して受信する受信ステップとを含んでもよい。
 また、前記送信ステップでは、前記第1電子制御ユニットが、前記データフレームを識別するためのIDと送信カウンタによりカウントされたデータフレームの送信回数とを少なくとも結合した値に対して前記MAC鍵を用いて前記メッセージ認証コードを生成するMAC生成ステップを含み、前記受信ステップでは、前記第2電子制御ユニットが、前記検証用データフレームを受信して得た前記メッセージ認証コードと、受信した前記データフレームに対応するIDと、受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、前記MAC鍵を用いて生成したメッセージ認証コードとの同一性を検証する検証ステップを含んでもよい。
 また、前記車載ネットワークシステムは、前記複数の電子制御ユニットがLAN(Local Area Network)により接続されたネットワークであり、前記更新処理方法は、前記複数の電子制御ユニットのうちの一である第1電子制御ユニットが、前記データに付加される前記メッセージ認証コードとしてペイロード部分に前記メッセージ認証コードを含めて、前記データの送信を行う送信ステップと、前記複数の電子制御ユニットのうちの前記第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、前記第1電子制御ユニットにより送信された前記データを受信する受信ステップとを含んでてもよい。
 また、前記送信ステップでは、さらに、前記第1電子制御ユニットが、前記データに付加された送信元アドレスおよび送信先アドレスと送信カウンタによりカウントされたデータの送信回数とを少なくとも結合した値に対して前記MAC鍵を用いて前記メッセージ認証コードを生成するMAC生成ステップを含み、前記受信ステップでは、前記第2電子制御ユニットが、ペイロード部分に前記メッセージ認証コードが含まれた前記データを受信して得た前記メッセージ認証コードと、受信した当該データに付加された送信元アドレスおよぎ送信先アドレスと受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、前記MAC鍵を用いて生成したメッセージ認証コードとの同一性を検証する検証ステップを含んでもよい。
 また、前記更新処理方法は、さらに、前記条件として前記送信カウンタおよび前記受信カウンタをリセットするリセットステップを含むとしてもよい。
 また、前記複数の電子制御ユニットは、前記車両の制御用途により分類された複数のグループの一に属し、前記複数のグループのそれぞれにおける前記所定状態は、前記複数のグループごとに定められてもよい。
 また、本開示の一態様の車載ネットワークシステムは、複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムであって、前記複数の電子制御ユニットの少なくとも一つから送信される前記車両の走行に関する情報である走行情報を取得する取得部と、前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コードであって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵(MAC:Message Authentication Code)を更新する更新処理部とを備える。
 また、本開示の一態様の電子制御ユニットは、車両に搭載される車載ネットワークシステムに接続される電子制御ユニットであって、CPUとメモリとを有し、前記CPUは、複数の電子制御ユニットの少なくとも一つから送信される前記車両の走行に関する情報である走行情報を取得して前記メモリに格納し、前記CPUは、前記メモリに格納された前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コードであって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵(MAC:Message Authentication Code)を更新する。
 以下、図面を参照しながら、実施の形態について説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。つまり、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置および接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素は、任意で含まれる構成要素として説明される。
 (実施の形態)
 以下では、図面を参照しながら、実施の形態における更新処理方法等の説明を行う。なお、以下の説明においてメッセージ認証コードを、MAC(Message Authentication Code)と称して説明をする。
 [1.システムの構成]
 図1は、本実施の形態における車載ネットワークシステム100の構成を示すブロック図である。図2は、図1に示す鍵更新管理装置の構成の一例を示すブロック図である。
 本実施の形態における車載ネットワークシステム100は、複数の電子制御ユニット(ECU)を有し、車両に搭載される。図1において、車載ネットワークシステム100は、鍵更新管理装置10と、複数のECUとを備える。複数のECU間、複数のECUおよび鍵更新管理装置の間は、ネットワークで接続されている。ネットワークは、上記のCANであってもよいし、Ethernet(登録商標)等のLANであってもよい。
 鍵更新管理装置10は、車両の動作に応じて適切な頻度で鍵更新処理を行う。鍵更新管理装置10は、例えば、ゲートウェイであってもよいし、複数のECUのうちの一つであってもよい。鍵更新管理装置10は、図2に示すように、取得部11と鍵更新部12と鍵更新処理判定部13とを備える。
 取得部11は、複数の電子制御ユニットの少なくとも一つから送信される車両の走行に関する情報である走行情報を取得する。走行情報により車両の走行距離等が得られる。
 鍵更新処理判定部13は、鍵更新部12が鍵更新処理を実行する条件を満たしたか否かを判定する。
 鍵更新部12は、走行情報により得られる車両の走行に関する状態が所定状態であることを条件として、車載ネットワークシステム100において授受されるデータに付加されるMACであって改ざん防止のコードであるMACの生成に利用される鍵であるMAC鍵を更新する。なお、鍵更新部12は、走行情報により得られる車両の走行に関する状態が所定状態であることを条件として送信カウンタおよび受信カウンタをリセットするとしてもよい。
 鍵更新部12は、鍵更新処理を実行する条件を満たしたタイミングを通知することで、複数のECUすべてにMAC鍵を同一のタイミングで更新させる鍵更新処理を行ってもよい。また、鍵更新部12は、鍵更新処理を実行する条件を満たしたタイミングにおいて生成した新たなMAC鍵を複数のECUすべてに配布することにより、複数のECUすべてにMAC鍵を同一のタイミングで更新させる鍵更新処理を行ってもよい。なお、鍵更新処理を実行する条件を満たしたタイミングを通知することは必須ではなく、CANであれば複数のECUすべてがそれぞれ独立にタイミングを判定しても、複数のECUすべてが同一のタイミングで更新することになるからである。
 以下、本実施の形態における車載ネットワークシステム100の全体構成の一例について説明する。
 [1.1 車載ネットワークシステム100aの全体構成]
 図3は、本実施の形態における車載ネットワークシステム100aの全体構成の一例を示す図である。車載ネットワークシステム100aは、上記の車載ネットワークシステム100の一例である。複数の電子制御ユニットであるECU111、ECU121、ECU131、ECU141、ECU151、ECU161、ECU171、ECU181、ECU182、ECU184、ECU191、および、ゲートウェイ101が車載ネットワークで接続されている。ここで、車載ネットワークは、CANであってもよいし、Ethernet(登録商標)であってもよいし、CANとEthernetが混在していてもよい。
 車載ネットワークには、例えば、エンジン110、トランスミッション120、および、図示しないモータ、燃料、電池の制御に関連する駆動系のECUが接続されている。図3に示すように、車載ネットワークには、エンジン110用のECU111およびトランスミッション120用のECU121が接続されている。
 また、車載ネットワークには、ブレーキ130およびステアリング140などの曲がる、止まるに関連するシャーシ系ECUが接続されている。図3に示すように、車載ネットワークには、ブレーキ130用のECU131ステアリング140用のECU141が接続されている。
 また、車載ネットワークには、自動ブレーキ150、車線維持装置160、および、図示しない車間距離機能、衝突防止機能、エアバッグなどの安全快適機能系ECUが接続されている。図3に示すように、車載ネットワークには、自動ブレーキ150用のECU151と、車線維持装置160用のECU161とが接続されている。
 また、車載ネットワークには、車車間通信装置170などに関連する通信系ECUが接続されている。図3に示すように、車載ネットワークには、車車間通信装置170用のECU171が接続されている。車車間通信装置170は、他の車両からコンテンツデータを取得する。ECU171は、取得したコンテンツデータを用いて自動運転などの動作処理を行う。
 また、車載ネットワークには、ヘッドユニット180などインフォテイメント系ECUが接続されている。図3に示すように、車載ネットワークには、ヘッドユニット180用のECU181が接続されている。なお、ヘッドユニット180用のECU181がなく、ヘッドユニット180がECU181を介さず直接車載ネットワークに接続されていてもよい。
 また、車載ネットワークには、高度道路交通システムであるITS(Intelligent Transport Systems)装置190用のECU191が接続されている。図3に示すように、車載ネットワークには、ITS装置190用のECU191が接続されている。ITS装置190は、道路情報だけでなく、道路および建物などの静的な地物を載せた地図データなどを外部のサーバから受信する。またITS装置190は、センサ情報およびGPS(Global Positioning Syastem)による位置情報、カメラの画像情報などを外部のサーバに送信することで、外部のサーバが道路状況などの確認ができる。
 また、車載ネットワークには、ウィンドウ開閉センサ183、ドア開閉センサ185およびGPSセンサ187などが接続されている。図3に示すように、車載ネットワークには、ウィンドウ開閉センサ183用のECU182と、ドア開閉センサ185用のECU184と、GPSセンサ187用のECU186とが接続されている。なお、図示しない各種センサおよびカメラの画像情報なども車載ネットワークには接続されている。
 このような複数の電子制御ユニットは、接続されたものの状態等を取得し、定期的に取得した状態等を表すフレームを車載ネットワークに送信する。
 [1.2 データフレームフォーマット]
 図4は、CANプロトコルのデータフレームのフォーマットを示す図である。ここではCANプロトコルにおける標準IDフォーマットにおけるデータフレームを示している。
 図4に示すように、データフレームは、Start Of Frame(以下、SOF)と、IDフィールド、Remote Transimission Request(以下、RTR)、Identifier Extension(以下、IDE)、予約ビット(r)、データレングスコード(以下、DLC)、データフィールド、Cycric Redundancy Check(以下、CRC)シーケンス、CRCデリミタ(図中、左のDEL)と、Acknowledgement(以下、ACK)スロットと、ACKデリミタ(図中、右のDEL)と、エンドオブフレーム(以下、EOF)とから構成される。
 SOFは、1ビットのドミナントである。バスがアイドルのときはレセシブになっている。送信ノードはバスをレセシブからドミナントへ変更することでフレームの送信開始を通知する。
 IDは、11ビット長の値で、データフレームの種類を示す。ここでいうデータフレームの種類とは、例えばデータの内容またはデータフレームの送信元である送信ノードを指す。また、IDは、同一ネットワーク上で複数のノードが同時にデータフレームの送信を開始した場合の通信調停にも用いられる。より具体的には、IDがより小さい値を持つデータフレームはより優先されて送信される。
 RTRは、1ビットのドミナントで、データフレームであることを示す。
 IDEおよびrは、それぞれ1ビットのドミナントである。
 DLCは、44ビット長の値で、続くデータフィールドの長さを示す。
 データフィールドは、最大64ビット長で送信されるデータの部分であり、データフレームのペイロードである。長さは8ビット単位で調整可能である。送信されるデータの部分への割り当てに関する仕様は、車種および製造者の少なくとも一方に依存する。
 CRCシーケンスは、15ビット長で、SOF、IDフィールド、コントロールフィールド、および、データフィールドの送信値より算出される値を示す。受信ノードは、各データフレームについてSOF、IDフィールド、コントロールフィールド、および、データフィールドの受信値から算出した結果をCRCシーケンスの値と比較することで異常の有無を判断する。
 CRCデリミタは、1ビットのレセシブで、CRCシーケンスの終了を表す区切り記号である。
 ACKスロットは、1ビット長であり、送信ノードはこの部分でレセシブを送信する。受信ノードはCRCシーケンスまで正常に受信ができていれば、この部分でドミナントを送信する。CANの規格では、同時に送信されたドミナントとレセシブとでは上述のとおりドミナントが優先される。そのため、通信が正常に行われている車載ネットワークシステムでは、ACKスロットの送信中、バスはドミナントの状態である。
 ACKデリミタは、1ビット長さのレセシブで、ACKスロットの終了を表す区切り記号である。
 EOFは、7ビット長さのレセシブで、データフレームの終了を示す。
 [1.3 メッセージ認証コード(MAC)の送信]
 図5は、CAN通信におけるMACの送信方法の一例を示す図である。図5の(a)には、CAN通信に用いられるデータフレームが示され、図4と同一となっている。図5の(b)には、MACの送信に用いられる検証用データフレームが示されている。
 図5の(b)に示すように、MACは、図5の(a)に示す通常のデータフレームのデータフィールドをMACとした検証用データフレームにより送信される。つまり、通常のデータフレームに続けて、当該データフレームおけるデータフィールドをMACとした検証用データフレームを送信する。より具体的には、複数の電子制御ユニットのうちの一である第1電子制御ユニットが、CANプロトコルに従ってバスを介して、データとしてデータフレーム、および、データに付加されるMACとしてデータフレームのデータフィールドをMACとした検証用データフレームの送信を行う。
 なお、詳細は後述するが、第1電子制御ユニットが、データフレームを識別するためのIDと送信カウンタによりカウントされたデータフレームの送信回数とを少なくとも結合した値に対して、MAC鍵を用いてMACを生成する。また、複数の電子制御ユニットのうちの第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、第1電子制御ユニットにより送信されたデータフレーム、および、検証用データフレームを、バスを介して受信する。そして、第2電子制御ユニットが、検証用データフレームを受信して得たMACと、受信したデータフレームに対応するIDと、受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、MAC鍵を用いて生成したMACとの同一性を検証する。
 なお、検証用フレームは、データフレームに付加されるMACの一例であり、これに限られない。データフレームに付加されるMACとしては、通常のデータフレームにMACを追加する方法であってもよい。例えばデータフィールドの8バイトのうち、4バイトのみデータの送信用として用いられる場合、データフィールドの残りの4バイトに、MAC値の16バイトのうち、上位または下位の4バイトのみを付加される場合が考えられる。また、データフィールドの残りの4バイトに、MAC値の16バイトのうち、1バイトのみを付加する場合も考えられる。
 図6は、イーサネット(登録商標)通信におけるMACの送信方法の一例を示す図である。図6の(a)には、イーサネット(登録商標)通信において送信される情報の固まりであるMACフレーム(Media Access Control Frame)が示されている。MACフレーム(以下、フレームともいう)は、イーサネット(登録商標)通信において送信すべき通信データが一定の長さ以下に分割されたデータと、ヘッダ、送信元アドレスおよび送信先アドレス等とを含む、決められた形式による情報の固まりである。図6の(b)には、MACの送信に用いられるMACフレームの一例が示されている。つまり、MACフレームをAESなどの暗号方式で鍵(MAC鍵と呼ぶ)を用いて暗号化したものをメッセージ認証コード(つまりMAC)としてペイロード部分に含めてMACフレームを送信することでMACを送信する。より具体的には、複数の電子制御ユニットのうちの一である第1電子制御ユニットが、MACフレームに付加されるMACとしてペイロード部分にMACを含めて、MACフレームの送信を行う。
 なお、第1電子制御ユニットが、MACフレームに付加された送信元アドレスおよび送信先アドレスと送信カウンタによりカウントされたMACフレームの送信回数とを少なくとも結合した値に対してMAC鍵を用いMACを生成する。また、複数の電子制御ユニットのうちの第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、第1電子制御ユニットにより送信されたMACフレームを受信する。そして、第2電子制御ユニットが、ペイロード部分にMACが含まれたフレームを受信して得たMACと、受信した当該MACフレームに付加された送信元アドレスおよび送信先アドレスと受信カウンタによりカウントされたMACフレームの受信回数とを少なくとも結合した値に対して、MAC鍵を用いて生成したMACとの同一性を検証する。
 なお、図6の(b)にはMACフレームのペイロードにおけるデータ部分を暗号化した場合の例が示されているが、データ部分を暗号化することは必須ではない。また、MACフレームに、その種類等を識別するためのIDが付加または含まれる場合には、MACフレームに付加された送信元アドレスおよび送信先アドレスに代えて、MACフレームを識別するためのIDと送信カウンタによりカウントされたデータフレームの送信回数とを少なくとも結合した値に対して、MAC鍵を用いてMACを生成してもよいのはいうまでもない。
 [1.4 ECU111の構成]
 図3に示す車載ネットワークに接続されるECU111が、鍵更新管理装置10として機能する場合について、以下説明する。
 図7は、本実施の形態におけるECU111の機能構成を示すブロック図である。
 ECU111は、車両に搭載される車載ネットワークに接続される電子制御ユニットであって、CPU(Central Processing Unit)とメモリとを有する。ECU111は、図7に示すように、フレーム送受信部1111と、フレーム解釈部1112と、受信ID判断部1113と、受信IDリスト保持部1114と、フレーム処理部1115と、車体状態保持部1116と、判定ルール保持部1117と、タイマー1118と、鍵更新判定部1119と、更新処理部1120と、MAC鍵保持部1121と、カウンタ保持部1122と、MAC生成部1123と、フレーム生成部1124と、データ取得部1125とを備える。なお、車体状態保持部1116、判定ルール保持部1117、タイマー1118および鍵更新判定部は、鍵更新処理判定部13の一例である鍵更新処理判定部13aを構成する。また、更新処理部1120、MAC鍵保持部1121、カウンタ保持部1122およびMAC生成部1123は、鍵更新部12の一例である鍵更新部12aを構成する。
 これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU111における通信回路、メモリに格納された制御プログラムを実行するプロセッサあるいはデジタル回路等により実現される。なお、ECU131~ECU191も同様の構成を備え、鍵更新管理装置10として機能する。また、以下では、車載ネットワークがCANであるとして説明する。
 <フレーム送受信部1111>
 フレーム送受信部1111は、バスに対して、CANのプロトコルに従ったフレームを送受信する。また、フレーム送受信部1111は、バスからフレームを1ビットずつ受信し、フレーム解釈部1112に転送する。また、フレーム送受信部1111は、フレーム生成部1124より通知を受けたフレームの内容をバスに送信する。
 <フレーム解釈部1112>
 フレーム解釈部1112は、フレーム送受信部1111により転送されて受け取ったフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。
 フレーム解釈部1112は、IDフィールドと解釈した値を受信ID判断部1113へ通知する。フレーム解釈部1112は、受信ID判断部1113から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールドの値とを、フレーム処理部1115に転送する、または、当該判定結果が通知された以降において解釈を中止することでフレームの受信を中止する。
 フレーム解釈部1112は、IDフィールド以降に現れるデータフィールドの値をフレーム処理部1115に転送する場合、その後に受け取ったフレームの値から解釈したデータフレーム内のACKスロットの内容をフレーム処理部1115へ通知する。
 一方、フレーム解釈部1112は、受け取ったフレームの値から、当該フレームがCANプロトコルに則っていないフレームであると解釈した場合、フレーム生成部1124にエラーフレームを送信する旨の指示を通知する。
 フレーム解釈部1112は、受け取ったフレームの値から、当該フレームがエラーフレームであると解釈した場合、それ以降は、当該フレームの解釈を中止し、当該フレームを破棄する。
 <受信ID判断部1113>
 受信ID判断部1113は、フレーム解釈部1112から通知されるIDフィールドの値を受け取り、受信IDリスト保持部1114に保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。受信ID判断部1113は、判定結果を、フレーム解釈部1112に通知する。
 <受信IDリスト保持部1114>
 受信IDリスト保持部1114は、ECU111が受信するID(メッセージID)のリストである受信IDリストを保持する。受信IDリストの一例を図8を用いて説明する。
 図8は、本実施の形態における受信IDリストの一例を示す図である。図8には、例えば、ECU111、ECU131、ECU182、ECU184およびECU186が受信するメッセージIDリストの一例が示されており、メッセージID「1」、「2」、「3」、「4」を受信する設定が表されている。
 <フレーム処理部1115>
 フレーム処理部1115は、フレーム解釈部1112より受信した全てのデータフレームに付加される、改ざん防止のコードであるMACを検証する。このMACの検証は、データフレーム(メッセージ)の正当性を検証する意義を有する。
 例えば、フレーム処理部1115は、受信したデータフレームのメッセージIDに対応したMAC鍵をMAC鍵保持部1121より取得し、当該メッセージIDに対応したカウンタ値をカウンタ保持部1122より取得することで、当該データフレームに続いて受信した検証用データフレームのデータフィールドに含まれるMACを検証する。
 具体的には、フレーム処理部1115は、検証用データフレームを受信して得たMACと、受信したデータフレームに対応するIDと、受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、MAC鍵を用いて生成したMACとの同一性を検証する。本実施の形態では、フレーム処理部1115は、まず、MAC生成部1123と同様の方法(後述)を用いて、MACを計算により生成し、続いて、生成したMACと当該検証用データフレームのデータフィールドに含まれるMACとを比較する。そして、フレーム処理部1115は、両MACが一致すれば検証に成功したと判定し、一致しなければ検証に失敗した、つまりエラーと判定する。フレーム処理部1115は、エラーと判定すれば、フレーム解釈部1112へ通知して、以降の受信処理を中止する。
 このように、フレーム処理部1115は、MACの検証を行うので、バスに接続された不正ECUにより送信された不正なフレームを受信したとしてもエラーと判定し受信処理を中止できるので、不正なフレームによる車両の制御等を阻止することができる。
 また、フレーム処理部1115は、車両の状態(以降、車両状態)および/または走行情報を通知するフレームを受信した場合、車体状態保持部1116に受信した車両状態および/または走行情報を通知する。
 ここで、車両状態は、例えば、「走行中」、「停車中」または「駐車中」であり、車両が走行中か走行中に移り得る状態かを示す。車両状態は、例えば、トランスミッション120に接続されるECU121が、トランスミッション120から得た例えばパーキング、ニュートラル、1速、2速などのギアポジションに基づいて特定し、フレームに含めてバスに通知するものでもよい。また、車両状態は、例えば、図3に不図示のECUが、複数のECUから通知された情報に基づいて車両状態を特定し、フレームに含めてバスに通知するものでもよい。
 走行情報は、車両の走行に関する情報であり、例えばGPSセンサ187が取得した位置、または、他のセンサにより検出した車両の走行距離もしくは走行時間でもよいし、ECU111がエンジン110から取得した車速および当該車速の時間などである。このように、フレーム処理部1115は、上述した取得部11の機能を有し、複数の電子制御ユニットの少なくとも一つから送信される車両の走行に関する情報である走行情報を取得する。
 また、フレーム処理部1115は、受信したフレームのデータに応じた処理を行う。ECU111が車両の搭乗者に対してアラーム音を鳴らすためのスピーカ等を有するなどアラーム音を鳴らす機能を有しているとする。そして、例えば走行情報またはエンジン110等から得た情報により得られる車両の時速が30kmを超えた状況でドアが開いている旨を示す情報を受信する場合には、フレーム処理部1115は、車両の搭乗者に対してアラーム音を鳴らしてもよい。このように、フレーム処理部1115は、他のECUから受信した、例えばドアの状態を通知するデータフレームを管理し、エンジン110より得られる車速に基づいて一定条件下でアラーム音を鳴らす処理を行うなど、受信したフレームのデータに応じた処理を行う。なお、フレーム処理部1115は、複数のECUで共通するとして説明したがECU毎に異なる処理を行ってもよい。例えば、ブレーキがかかっていない状況でドアが開いた場合に、ECU184は、車両の搭乗者に対してアラーム音を鳴らす処理を行う一方で、ECU131、ECU182等は、アラーム音を鳴らす処理を行わないとしてもよい。ECU111~ECU186は、アラーム音を鳴らす機能以外の機能をそれぞれ備えてもよいし備えないでもよい。
 また、フレーム処理部1115は、フレーム解釈部1112より受信したデータフレーム内のACKスロットの値を確認し、フレーム送受信部1111から送信したフレームが、他のECUで正常に受信されているかどうかを確認する。そして、フレーム処理部1115は、確認した結果を更新処理部1120に通知する。
 <車体状態保持部1116>
 車体状態保持部1116は、フレーム処理部1115より通知された現在の車両状態および現在の走行状態を保持する。この結果、車体状態保持部1116は、現在までに通知された車両状態および走行情報を保持することになる。具体的には、車体状態保持部1116は、車両状態として、上述したが例えば「走行中」、「停車中」、「駐車中」を保持する。また、走行情報として、上述したが例えば走行距離、車速、および車両の位置を示すGPS情報を保持する。
 車体状態保持部1116は、走行情報により得られる走行距離であってMAC鍵の前回の更新時からの車両の走行距離が閾値を超えた状態になった場合に、鍵更新判定部1119に通知する。ここで、走行情報により得られる走行距離は、他のセンサにより検出した車両の走行距離でもよいし、GPSセンサ187が取得した位置により計算される移動距離でもよいし、エンジン110から取得した車速および当該車速の時間から計算される距離でもよい。
 <判定ルール保持部1117>
 判定ルール保持部1117は、鍵更新判定部1119により用いられる判定ルールを保持する。ここで、判定ルールは、更新処理部1120が更新処理を実行する条件を満たしたか否かを判定するためのルールである。以下、判定ルールの一例を図9Aおよび図9Bを用いて説明する。
 図9Aおよび図9Bは、本実施の形態における判定ルールの一例を示す図である。図9Aには車両状態に応じた判定ルールの一例が示され、図9Bには走行情報に応じた判定ルールの一例が示されている。
 図9Aでは、車両状態が「走行中」または「停車中」である場合、更新処理を実施しない判定ルールが示されている。一方、車両状態が「駐車中」である場合、更新処理を実施する判定ルールが示されている。つまり、図9Aに示す判定ルールによれば、例えば車両状態が「走行中」または「停車中」であるとき、MAC鍵更新の更新タイミングが到来しても更新処理部1120が更新処理を実行する条件を満たさないと判定され、更新処理されない。そして、車両状態が「駐車中」に変わったときに、更新処理部1120が更新処理を実行する条件を満たすと判定され、更新処理が実行される。また、車両状態が「駐車中」であるときに、MAC鍵更新の更新タイミングが到来すれば更新処理部1120が更新処理を実行する条件を満たすと判定される。
 図9Bでは、車両の走行距離が閾値D1以下であれば更新処理を実施せずに、閾値D1より上であれば更新処理を実施する判定ルールが示されている。また、GPSによる車両の移動距離が閾値D2以下であれば更新処理を実施せず、閾値D2より上であれば更新処理を実施する判定ルールが示されている。なお、GPSによる車両の移動距離は、走行情報に含まれるGPSセンサ187が取得した位置により得られる。つまり、GPSによる車両の移動距離は、走行情報により得られる車両の走行距離に含まれるとしてもよい。このように、車両の走行距離が閾値D1以下、または、GPSによる車両の移動距離が閾値D2以下であれば、更新処理部1120が更新処理を実行する条件を満たさないと判定され、更新処理されない。車両の走行距離が閾値D1より上、または、GPSによる車両の移動距離が閾値D2より上であれば、MAC鍵更新の更新タイミングが到来する前であっても更新処理部1120が更新処理を実行する条件を満たすと判定され、更新処理される。
 なお、更新処理部1120が更新処理を実行する条件を満たしたか否かの判定は、車両状態と走行情報の判定ルールのいずれかの判定ルールに従って行うとしてもよいし、車両状態と走行情報の両方の判定ルールに従って行うとしてもよい。
 例えば、図9Aに示す車両状態と図9Bに示す走行情報の両方の判定ルールに従って、例えば車両状態が走行中、または、走行距離が閾値D1以下の場合には、更新処理部1120が更新処理を実行する条件を満たさないと判定され、更新処理がされないとしてもよい。
 また、車両状態の判定ルールと走行状態の判定ルールとが、相反する等で異なり、更新処理の判定ができない場合は、更新処理部1120が更新処理を実行する条件を満たしていないと判定されるとしてもよい。
 <タイマー1118>
 タイマー1118は、経過時間に対応するタイマー値のカウントアップを繰り返す計時機構である。タイマー1118は、MAC鍵の前回の更新処理完了時からの経過時間を鍵更新判定部1119へ通知する。また、タイマー1118は、鍵更新判定部1119からの更新処理の完了通知に基づいて、タイマー値のリセットを行う。
 <鍵更新判定部1119>
 鍵更新判定部1119は、更新処理部1120が更新処理を実行する条件を満たしているか否かを判定する。また、鍵更新判定部1119は、MAC鍵更新の更新タイミングが到来したかを判定してもよい。ここで、更新タイミングとは、予め定められた一定時間(例えば6時間、1日等)が経過したタイミングであり、タイマー1118に基づき、判定される。更新処理部1120が更新処理を実行する条件とは、走行情報により得られる車両の走行に関する状態が所定状態であることを満たすことである。所定状態とは、MAC鍵更新の更新タイミングが到来する前であれば、走行情報により得られる車両の走行距離であってMAC鍵の前回の更新時からの車両の走行距離が閾値を超えた状態である。または、所定状態とは、MAC鍵更新の更新タイミングが到来した後であれば、車両の状態が駐車中である状態である。
 本実施の形態では、鍵更新判定部1119は、タイマー1118に基づき、予め定められた更新タイミングが到来したとき、車体状態保持部1116から現在の車両状態を取得し、判定ルール保持部1117から取得した判定ルールに応じて、更新処理部1120が更新処理を実行する条件を満たすか否かを判定する。ここで、更新処理とは、MAC鍵の更新処理を少なくとも含み、MACの生成に利用されるデータの更新に関連する更新処理も含む。より具体的には、更新処理は、MACを生成するために用いる鍵であるMAC鍵の値を更新する鍵更新処理と、MACに反映するカウンタ値をリセット(つまりゼロ等の特定値に更新)するカウンタリセット処理とを意味する。
 そして、この場合、鍵更新判定部1119は、更新処理部1120が更新処理を実行する条件を満たすと判定したとき、更新処理部1120へその旨を通知する。一方、鍵更新判定部1119は、更新処理部1120が更新処理を実行する条件を満たさないと判定したときには、車両状態の変化を待つ。
 また、鍵更新判定部1119は、予め定められた更新タイミングが到来していなくても、車体状態保持部1116から現在を含む走行情報を取得し、判定ルール保持部1117から取得した判定ルールに応じて、更新処理部1120が更新処理を実行する条件を満たすか否かを判定する。鍵更新判定部1119は、更新処理部1120が更新処理を実行する条件を満たすと判定したとき、更新処理部1120へその旨を通知する。一方、鍵更新判定部1119は、更新処理部1120が更新処理を実行する条件を満たさないと判定したときには、予め定められた更新タイミングが到来するまで待って、車両状態に基づく判定を行えばよい。
 また、鍵更新判定部1119は、更新処理が完了した場合、タイマー1118にタイマー値のリセットを行わせるために、タイマー1118に更新処理の完了通知を通知する。
 <更新処理部1120>
 更新処理部1120は、鍵更新判定部1119からの通知に従って更新処理を行う。すなわち、更新処理部1120は、走行情報により得られる車両の走行に関する状態が所定状態であることを条件として、MAC鍵を更新する更新処理を行う。
 例えば更新処理部1120は、当該所定状態であるという鍵更新処理を実行する条件を満たしたタイミングを通知することで、自ECU111を含む複数のECUすべてにMAC鍵を同一のタイミングで更新させる鍵更新処理を行ってもよい。つまり、更新処理部1120は、複数のECUのすべてが、上記条件を満たした同一のタイミングで、MAC鍵を用いて新たなMAC鍵を生成するとしてもよい。そして、更新処理部1120は、上記条件を満たした同一のタイミングで送信カウンタおよび受信カウンタをリセットしてもよい。
 また、例えば鍵更新部12は、上記条件を満たしたときに、MAC鍵を用いて新たなMAC鍵を生成するとしてもよい。そして、鍵更新部12は、上記条件を満たしたタイミングにおいて生成した新たなMAC鍵を、自ECU111を除く複数のECUすべてに配布することにより、複数のECUすべてにMAC鍵を同一のタイミングで更新させる鍵更新処理を行ってもよい。同様に、更新処理部1120は、上記条件を満たした同一のタイミングで送信カウンタおよび受信カウンタをリセットしてもよい。
 本実施の形態では、更新処理部1120は、鍵更新判定部1119から更新処理部1120が更新処理を実行する条件を満たすと判定した旨の通知を受けて、新たにMAC鍵候補となる鍵を生成し、MAC鍵保持部1121へ通知する。また、更新処理部1120は、当該通知を受けて、カウンタ保持部1122に対し、カウンタ値をリセットするよう通知する。なお、更新処理部1120は、当該通知を受けたとき、MAC鍵保持部1121が保持していたMAC鍵を取得して旧鍵としてキャッシュ(つまり一時的に記憶媒体に保持)するとともに、カウンタ保持部1122が保持しているカウンタ値を取得してキャッシュする。
 更新処理部1120は、MAC鍵の更新が複数のECUのうち一つでも成功しなかった場合、キャッシュしている旧鍵であるMAC鍵をMAC鍵保持部1121へ通知し、キャッシュしているリセット前のカウンタ値をカウンタ保持部1122へ通知する。
 一方、更新処理部1120は、MAC鍵の更新が複数のECUすべてで成功した場合、キャッシュしている旧鍵であるMAC鍵と、リセット前のカウンタ値を削除する。なお、これらの削除は、一時的に保持していたこれらの値を以後使用できないものと扱うことができれば、図示しない一時記憶装置に記憶されている値の削除に限らない。
 なお、更新処理部1120は、MAC鍵の生成方法として、例えば、旧鍵となる現在のMAC鍵を、例えばハッシュ関数等の予め定められた一方向関数に入力することで導出される結果を新たなMAC鍵候補とする方法を用いればよい。
 <MAC鍵保持部1121>
 MAC鍵保持部1121は、メモリ等の記憶媒体により実現され、MAC鍵を、メッセージID毎に1つ保持する。保持されるMAC鍵は、上述したように、MAC生成部1123およびフレーム処理部1115がMACを計算する際に必要となる。また、MAC鍵保持部1121は、更新処理部1120からの通知に従って、これまで持っていたMAC鍵を破棄し、通知された新たなMAC鍵を保持することでMAC鍵を更新する。
 <カウンタ保持部1122>
 カウンタ保持部1122は、メモリ等の記憶媒体を含んで実現され、カウンタ値を、メッセージID毎に1つ保持する。カウンタ保持部1122は、更新処理部1120からの通知に従って、通知されたカウンタ値を保持し、また、更新処理部1120からのリセットすべき旨の通知に従って、保持しているカウンタ値をリセットする。このリセットによりカウンタ値は、ゼロ等の特定値に更新される。
 ここで、カウンタ値は、MAC生成部1123およびフレーム処理部1115がMACを計算する際に必要となる。また、カウンタ値は、フレーム送受信部1111からフレームが正常に送信された場合にインクリメント(1増加)される。カウンタ値は、フレーム送受信部1111からデータフレームが送信される場合においては送信カウンタとして扱われ、送信回数がカウントされる。また、カウンタ値は、フレーム送受信部1111でデータフレームを受信する場合においては受信カウンタとして扱われ、受信回数がカウントされる。
 カウンタ保持部1122は、例えばメッセージIDが「1」のデータフレームをフレーム送受信部1111から送信する場合、保持するカウンタ値のうちメッセージIDが「1」に対応するカウンタ値を送信カウンタとして扱い、正常に1回送信される毎にインクリメントする。
 また、カウンタ保持部1122は、例えばメッセージIDが「1」のデータフレームをフレーム送受信部1111で受信する場合、保持するカウンタ値のうちメッセージIDが「1」に対応するカウンタ値を、受信カウンタとして扱い、正常に受信される毎にインクリメントする。
 <MAC生成部1123>
 MAC生成部1123は、データフレームを識別するためのIDと送信カウンタによりカウントされたデータフレームの送信回数とを少なくとも結合した値に対して、MAC鍵を用いてMACを生成する。
 本実施の形態では、MAC生成部1123は、フレーム生成部1124より通知されるメッセージIDとデータフィールド用のデータの値と、カウンタ保持部1122で保持するカウンタ値(つまりメッセージIDに対応するカウンタ値)とを結合した値(結合値)を算出する。そして、MAC生成部1123は、算出した結合値に対し、MAC鍵保持部1121で保持するMAC鍵(つまりメッセージIDに対応するMAC鍵)を用いて、MACを算出(つまりMACの値を計算により導出)して、この算出した結果であるMACをフレーム生成部1124へと通知する。
 ここで、MACの計算方法として、例えば非特許文献1に示されるHMAC(Hash-based Message Authentication Code)を採用してもよい。この場合、MAC生成部1123は、算出した結合値に対し、例えば4バイトの所定のブロック分までパディングした値でMAC鍵を使って計算し、出てきた計算結果の先頭4バイトをMAC値とすればよい。
 なお、本実施の形態で説明するMAC値のサイズ、計算方法は一例であり、これに限定されるものではない。また、MACは、フレームが送信される毎にインクリメントされるカウンタ値を反映して生成される。つまり、たとえECU111が同じデータの値を含むデータフレームを複数回送信したとしても、データフレームに付与(つまり付加)されるMACは送信毎に変化する。
 なお、上述したが、車載ネットワークがEthernet(登録商標)である場合には、フレームには通常IDが付与されず、代わりに送信元アドレスおよび送信先アドレスが付加されている。そのため、フレームに付加された送信元アドレスおよび送信先アドレスと送信カウンタによりカウントされたMACフレームの送信回数とを少なくとも結合した値に対してMAC鍵を用いMACを生成すればよい。
 <フレーム生成部1124>
 フレーム生成部1124は、フレーム解釈部1112から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成してフレーム送受信部1111へ通知する。
 また、フレーム生成部1124は、予め定められたメッセージIDとデータ取得部1125より通知されたデータの値(データフィールド用のデータの値)とをMAC生成部1123へ通知することによりMACの通知を受ける。そして、フレーム生成部1124は、予め定められたメッセージIDと、通知されたMACと、通知されたデータフィールド用のデータの値とに基づきフレームを構成してフレーム送受信部1111へ通知する。
 <データ取得部1125>
 データ取得部1125は、ECUにつながっている機器、センサ等の状態を示すデータを取得し、フレーム生成部1124に通知する。
 [1.5 送信されるフレームの例]
 以下、例えばECU111、ECU131、ECU182、ECU184およびECU186のそれぞれが送信するフレームの一例について図10~図14を用いて説明する。
 <ECU111が送信するフレームの例>
 図10は、本実施の形態におけるエンジン110に接続されたECU111が送信するメッセージIDと、データの一例を示す図である。図10に示すように、ECU111が送信するメッセージIDは例えば「1」である。そして、ECU111が送信するデータフィールドの値のうち、先頭1バイトは時速を表し、次の1バイトはカウンタを表し、次の4バイトはMAC値を表している。時速は最低0km~最高180kmまでの範囲を取るとしている。つまり、ECU111は、時速を表す先頭1バイトの値と、それぞれに対応したカウンタ値とMAC値とをセットにして6バイトで送信する。図10では、車両が0kmから1kmずつ加速されている様子が示されている。
 <ECU131が送信するフレームの例>
 図11は、本実施の形態におけるブレーキ130に接続されたECU131が送信するメッセージIDと、データの一例を示す図である。図11に示すように、ECU131が送信するメッセージIDは例えば「2」である。そして、ECU131が送信するデータフィールドの値のうち、先頭1バイトはブレーキのかかり具合を%で表し、次の1バイトはカウンタを表し、次の4バイトはMAC値を表している。ブレーキを全くかけていない状態を0%とし、ブレーキを最大限かけている状態を100%としている。つまり、ECU131は、ブレーキのかかり具合を表す先頭1バイトの値と、それぞれの値に対応したカウンタ値と、MAC値とをセットにして6バイトで送信する。図11では、車両が100%から徐々にブレーキを弱める様子が示されている。
 <ECU184が送信するフレームの例>
 図12は、本実施の形態におけるドア開閉センサ185に接続されたECU184が送信するメッセージIDと、データの一例を示す図である。図12に示すように、ECU184が送信するメッセージIDは例えば「3」である。そして、ECU184が送信するデータフィールドの値のうち、先頭の1バイトはドアの開閉状態を表し、次の1バイトはカウンタを表し、次の4バイトはMAC値を表している。ドアが開いている状態を「1」、ドアが閉まっている状態を「0」としている。つまり、ECU184は、ドアの開閉状態を表す先頭1バイトの値と、それぞれの値に対応したカウンタ値と、MAC値とをセットにして6バイトで送信する。図12では、ドアが開いている状態から、途中で閉められた様子が示されている。
 <ECU182が送信するフレームの例>
 図13は、本実施の形態におけるウィンドウ開閉センサ183に接続されたECU182が送信するメッセージIDと、データの一例を示す図である。図13に示すように、ECU182が送信するメッセージIDは例えば「4」である。そして、ECU182が送信するデータフィールドの値のうち、先頭の1バイトは窓の開閉状態を%で表し、次の1バイトはカウンタを表し、次の4バイトはMAC値を表している。窓が閉まっている状態を0%、窓が全開の状態を100%としている。つまり、ECU182は、窓の開閉状態を表す先頭1バイトの値と、それぞれに対応したカウンタ値と、MAC値とをセットにして6バイトで送信する。図13では、窓が閉まっている状態から、徐々に開いていく様子が示されている。
 <ECU186が送信するフレームの例>
 図14は、実施の形態におけるGPSセンサ187に接続されたECU186が送信するメッセージIDと、データの一例を示す図である。図14に示すように、ECU182が送信するメッセージIDは例えば「5」である。そして、ECU186が送信するデータフィールドの値のうち、先頭の3バイトはGPSの差分を表し、次の1バイトはカウンタを表し、次の4バイトはMAC値を表す。つまり、ECU186は、前回の位置からの差分値と、カウンタ値と、MAC値とをセットとして8バイトで送信する。
 [1.6 更新処理]
 次に、車載ネットワークシステム100の動作について説明する。
 図15は、本実施の形態における更新処理方法を示すフローチャートである。以下では、車載ネットワークシステム100を構成する鍵更新管理装置10が更新処理を行うとして説明するが、これに限らない。各ECUが更新処理を行ってもよいし、全ECUの一が鍵更新管理装置10として更新処理を行うとしてもよいし、車載ネットワークシステム100aを構成するゲートウェイ101が更新処理を行うとしてもよい。
 まず、鍵更新管理装置10は、複数の電子制御ユニットの少なくとも一つから送信される、車両の走行に関する情報である走行情報を取得する(S10)。
 次に、鍵更新管理装置10は、走行情報により得られる車両の走行に関する状態が所定状態であるという条件を満たすか否かを判定する(S11)。
 ステップS11において、上記の条件を満たせば(S11でY)、鍵更新管理装置10は、車載ネットワークシステム100において授受されるデータに付加されるMAC(メッセージ認証コード)であって改ざん防止のコードであるMACの生成に利用される鍵であるMAC鍵を更新する(S12)。なお、ステップS11において、上記の条件を満たさない場合(S11でN)、ステップS10に戻る。
 図16は、図15に示すステップS11の詳細処理を示すフローチャートである。以下では、車載ネットワークシステム100aを構成する複数のECUの一であるECU111が鍵更新管理装置10として更新処理を実行する場合を例に挙げて説明する。
 ステップS11において、ECU111は、内部に持つタイマー1118により、前回の更新処理完了時からの経過時間を確認する(S1101)。
 次に、ECU111は、前回の更新処理完了時から予め定められた一定時間経過しているかどうかを判定する(S1102)。より具体的には、ECU111は、タイマー1118がカウントする経過時間に基づき、MAC鍵更新の更新タイミングが到来したかを判定する。
 ステップS1102において、前回の更新処理完了時から一定時間が経過していない場合(S1102でN)、ECU111は、前回の更新処理完了時から車両が走行した距離を確認する(S1103)。より具体的には、ECU111は、走行情報により得られる車両の走行距離であってMAC鍵の前回の更新時からの車両の走行距離を確認する。
 次に、ECU111は、前回の更新処理完了時から車両が走行した距離があらかじめ定められた閾値より大きいかを判定する(S1104)。例えば図9Bに示すような判定ルールに従い、ECU111は、前回の更新処理完了時から車両が走行した距離が閾値より大きいかを判定する。
 ステップS1104において、ECU111は、前回の更新処理完了時から車両が走行した距離が閾値以下の場合(S1104でN)、S1101へ戻る。
 一方、ステップS1104において、ECU111は、前回の更新処理完了時から車両が走行した距離が閾値より大きい場合(S1104でY)、ステップS11の処理を終了し、図15に示すステップS12に進む。なお、ステップS1104において、前回の更新処理完了時から車両が走行した距離が閾値以下の場合(S1104でN)、ECU111は、図15に示すステップS10に戻る。
 また、ステップS1102において、前回の更新処理完了時から一定時間が経過している場合(S1102でY)、ECU111は、現在の車両状態を確認し(S1105)、車両が駐車中であるか否かを判定する(S1106)。
 車両が駐車中であれば(S1106でY)、ECU111は、ステップS11の処理を終了し、図15に示すステップS12に進む。一方、車両が駐車中であれば(S1106でN)、ECU111は、ステップS1105に戻る。
 なお、ステップS1104において、ECU111は、前回の更新処理完了時から車両が走行した距離が閾値より大きい場合(S1104でY)、ステップS11の処理を終了するとしたが、これに限らない。さらに、ステップS1105およびS1106の処理を行うとしてもよい。
 このように、ECU111は、現在の車両状態または走行情報により得られる車両の走行距離であってMAC鍵の前回の更新時からの車両の走行距離から、判定ルール保持部1117に保持されている判定ルールに従って更新処理を実行するかどうかを判定することができる。
 例えば図9Aに示した判定ルールに従う場合、ECU111は、車両状態が「走行中」「停車中」であれば、更新処理を実行しない。一方、車両状態が「駐車中」であれば更新処理を実行する。また、図9Bに示した判定ルールに従う場合、ECU111は、走行情報により得られる車両の走行距離であってMAC鍵の前回の更新時からの車両の走行距離が閾値D1以下であれば、更新処理を実行しない。また、GPSの移動距離で示される走行距離が閾値D2以下であれば、更新処理を実行しない。
 図17は、図15に示すステップS12の詳細処理を示すフローチャートの一例である。図17でも、図16と同様に、車載ネットワークシステム100aを構成する複数のECUの一であるECU111が更新処理を実行する場合を例に挙げて説明する。ここで、図17には、鍵更新処理を実行する条件を満たしたタイミングにおいて生成した新たなMAC鍵を、自ECU111を除く複数のECUすべてに配布することにより、複数のECUすべてにMAC鍵を同一のタイミングで更新させる更新処理が示されている。
 図17に示すように、ステップS12において、ECU111は、MAC鍵保持部1121が保持しているMAC鍵を、旧鍵としてキャッシュする(S1201)。続いて、ECU111は、生成した鍵をMAC鍵とする(S1202)。より具体的には、ECU111は、新たにMAC鍵候補となる鍵を生成して、MAC鍵としてMAC鍵保持部1121に保持する。
 次に、ECU111は、カウンタ保持部1122が保持しているカウンタ値を、キャッシュする(S1203)。続いて、ECU111は、カウンタ保持部1122が保持しているカウンタ値をゼロにリセットする(S1204)。
 次に、ECU111は、生成したMAC鍵を用いてMACを生成する(S1205)。より具体的には、ECU111は、予め定められたメッセージIDと、データフィールド用のデータ値と、リセット後のカウンタ保持部1122が保持しているカウンタ値と、MAC鍵保持部1121が保持している新たに生成したMAC鍵とを用いてMACを生成する。
 次に、ECU111は、生成したMAC鍵を配布するためのデータフレームである鍵配布フレームを生成してブロードキャストし、続けて更新の同期を確認するためのデータフレームである更新フレームをブロードキャストする(S1206)。より具体的には、まず、ECU111は、メッセージIDとデータフィールド用のデータ値とステップS1202において生成したMAC鍵とを含む鍵配布フレームを生成してバスへ送信を行い、自ECU111を除く複数のECUすべてに同一タイミングでMAC鍵を更新させる。続けて、ECU111は、メッセージIDとデータフィールド用のデータ値とステップS1205において生成したMACとを含む更新フレームを生成してバスへ送信する。なお、鍵配布フレームを受信した他のECUは、ECU111同様に、旧鍵であるMAC鍵と、リセット前のカウンタ値とをキャッシュしている。
 次に、ECU111は、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したかどうかを判定する(S1207)。より具体的には、ECU111は、ステップS1206において更新フレームをバスに送信後、自ECU111を除く複数のECUすべてが更新フレームの受信に成功(つまり正常に受信)したかどうかを、ACKスロットの値を見ることで判定する。
 ステップS1207において、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したと判定した場合(S1207でY)、ECU111は、キャッシュしていた旧鍵であるMAC鍵とリセット前のカウンタ値とを破棄して(S1208)、更新処理を終了する。自ECU111を除く複数のECUすべてが更新フレームの受信に成功した場合、複数のECUすべてにおいて新たなMAC鍵によりMAC鍵の更新が完了したことがわかるからである。
 一方、ステップS1207において、更新フレームの受信に成功しなかった場合(S1207でN)、ECU111は、キャッシュしておいた旧鍵であるMAC鍵を、再度MAC鍵に設定し(S1210)、キャッシュしておいたリセット前のカウンタ値を再度設定する(S1211)。より具体的には、ECU111は、更新フレームの受信に失敗したECUがあった場合、キャッシュしておいた旧鍵であるMAC鍵をMAC鍵保持部1121に保持させる。また、ECU111は、キャッシュしておいたリセット前のカウンタ値を、再度カウンタ値としてカウンタ保持部1122に保持させる。なお、他のECUは、ECU111同様に、キャッシュしておいた旧鍵であるMAC鍵を、再度MAC鍵に設定し、キャッシュしておいたリセット前のカウンタ値を再度設定する。また、更新フレームの受信に成功しなかったECUがあった場合でも、再度鍵配布フレームをブロードキャストして新たなMAC鍵を再度配布した上で、更新フレームの受信に失敗したECUがあったかどうかを判定してもよい。
 次に、ECU111は、再設定したMAC鍵とカウンタ値を用いてMACを生成する(S1212)。より具体的には、ECU111は、予め定められたメッセージIDと、データフィールド用のデータ値と、キャッシュから再設定したカウンタ保持部1122のカウンタ値と、キャッシュから再設定したMAC鍵保持部1121のMAC鍵とを用いて、MACを生成する。
 次に、ECU111は、更新の同期を確認するためのデータフレームである更新フレームをブロードキャストする(S1213)。より具体的には、ECU111は、メッセージIDとデータフィールド用のデータ値とステップS1212において生成されたMACとを含む更新フレームを生成してバスに送信する。
 次に、ECU111は、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したかどうかを判定する(S1214)。より具体的には、ECU111は、ステップS1213において更新フレームをバスに送信後、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したかどうかを、ACKスロットの値を見ることで判定する。
 ステップS1214において、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したと判定した場合(S1214でY)、ECU111は、一定時間待機後、再度更新処理を実施する(S1215)。つまり、ECU111は、MAC鍵の更新が失敗したのは軽微なエラーであったとしてステップS1201に戻り更新処理を再度行う。
 一方、ステップS1214において、更新フレームの受信に失敗したと判定した場合(S1214でN)、ECU111は、致命的なエラー発生につき処理を中止する(S1216)。ECU111は、MAC鍵の更新が失敗したため、旧鍵に戻したことを確認するために送信した更新フレームの受信が失敗するのは、システム上致命的なエラーとみなせるからである。
 なお、更新処理を中止した場合には、ECU111は、エラー発生について報知、ログの記録等の処理を実行しても良い。また、エラー発生の報知は、他のECUへのエラー発生を示すデータフレームの送信、ディスプレイ等への表示、音声出力、発光等により、実行され得る。
 図17を用いて、全ECUの一であるECU111が新たに生成したMAC鍵を配布することで新たなMAC鍵に更新する更新処理について説明したが、それに限らない。複数のECUのすべてが、所定状態である条件を満たした同一のタイミングで、MAC鍵を用いて新たなMAC鍵を生成することにより、MAC鍵を新たなMAC鍵に更新する更新処理を実行するとしてもよい。これについて図18を用いて説明する。
 図18は、図15に示すステップS12の詳細処理を示すフローチャートの別の一例である。図18でも、図17と同様に車載ネットワークシステム100aを構成する複数のECUの一であるECU111が更新処理を実行する場合を例に挙げて説明する。図17と同様の要素には同一の符号を付しており、詳細な説明は省略する。
 図18では、まず、S1217Aにおいて、ECU111は、鍵更新のタイミングを示す通知フレームをブロードキャストする。より具体的には、ECU111は、所定状態であるという鍵更新処理を実行する条件を満たしたタイミングを通知するために、鍵更新のタイミングを示す通知フレームをバスに送信する。鍵更新のタイミングを示す通知フレームとして、旧鍵である現在のMAC鍵をデータフィールドに含めて送るとしてもよいし、鍵更新のタイミングを示す旨をデータフィールドに含めて送るとしてもよい。これにより、自ECU111を含む複数のECUすべてに同一タイミングでMAC鍵を更新させることができる。なお、上述したように、鍵更新処理を実行する条件を満たしたタイミングを通知することは必須ではない。CANであれば複数のECUすべてがそれぞれ独立に鍵更新処理を実行する条件を満たしたタイミングを判定しても、同一のタイミングを判定できるので、複数のECUすべてが同一のタイミングで更新することができるからである。
 次に、ECU111は、ステップS1201~S1205を行う。なお、鍵更新のタイミングを示す通知フレーム受信した他のECUは、ECU111同様に、旧鍵であるMAC鍵と、リセット前のカウンタ値とをキャッシュしている。
 次に、ECU111は、S1206Aにおいて、更新の同期を確認するためのデータフレームである更新フレームをブロードキャストする。より具体的には、ECU111は、メッセージIDとデータフィールド用のデータ値とステップS1205において生成したMACとを含む更新フレームを生成してバスへ送信する。
 次に、ECU111は、ステップS1207Aにおいて、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したかどうかを判定する。
 ステップS1207Aにおいて、自ECU111を除く複数のECUすべてが更新フレームの受信に成功したと判定した場合(S1207AでY)、ECU111は、キャッシュしていた旧鍵であるMAC鍵とリセット前のカウンタ値とを破棄して(S1208)、更新処理を終了する。
 一方、ステップS1207Aにおいて、更新フレームの受信に成功しなかった場合(S1207AでN)、ECU111は、キャッシュしておいた旧鍵であるMAC鍵を、再度MAC鍵に設定し、キャッシュしておいたリセット前のカウンタ値を再度設定する(S1218)。
 なお、複数のECUは更新フレームの受信に成功したかどうかを、ACKスロットの値を見ることで判定できるので、ECU111と同様に、複数のECUはステップS1218の処理を行う。
 次に、ECU111は、一定時間待機後、再度更新処理を実施する(S1219)。つまり、ECU111は、MAC鍵の更新が失敗したのは軽微なエラーであったとしてステップS1217に戻り更新処理を再度行う。
 なお、どのECUが更新フレームを送信しても良い。本実施の形態では、例えば、メッセージID「1」のデータフレームを繰り返し送信するECU111が、メッセージID「1」に対応するMACに係る更新処理を同期させるための更新フレームを送信するとして説明した。
 [1.7 実施の形態の効果]
 以上のように、本実施の形態によれば、MAC鍵の鍵更新処理、および、カウンタのリセット処理を含む更新処理を、走行距離および/または車の状態に応じて実行することができる。これにより、更新処理を車両の動作に応じて適切な頻度で実行できる。
 より具体的には、本実施の形態によれば、車両の走行距離が閾値以下であるかを判定し、走行距離が短い、かつ、車の動作があるまたは予定されている場合に、更新処理をしないと判定することで、走行距離および/または車の状態に応じて更新処理を実行することができる。これにより、過度に更新処理が行われることを抑制できるので、CANへの負荷を低減できる。つまり、ECUにおける鍵の更新処理が効率よく適切に実行され、車載ネットワークシステム全体として、安全な状態を維持することができる。
 [2.その他変形例]
 なお、本開示を上記実施の形態に基づいて説明してきたが、本開示は、上記実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
 (1)上記実施の形態では、フレームは定期的に送信されるとしたが、状態変化を通知するイベントとして送信されるとしてもよい。例えば、ドアロックの状態を定期的に送信するのではなく、ドアロックの状態が変化した場合にのみ、フレームを送信するとしても良い。また、定期的に送信、かつ、状態変化が発生した時に送信するとしても良い。
 (2)上記実施の形態では、フレームに含まれるMACのサイズは4バイトに制限するものではなく、送信毎に異なるサイズであってもよい。同様にカウンタサイズも1バイトに制限するものではない。
 また、フレームにデータ値、カウンタ値、MAC値、データフレームに含まれるその他のフィールドの値全てが含まれている必要はなく、それぞれの組み合わせであっても良い。
 また、MACサイズは固定のサイズに限定するものではなく、メッセージID毎に異なるサイズであってもよい。また、複数のメッセージにまたがって送信されるものであっても良い。
 (3)上記実施の形態では、カウンタ値を送信毎にインクリメントするとしているが、時刻に応じて自動的にインクリメントされる値であっても良い。また、時刻そのものの値をカウンタの代わりに使用してもよい。
 (4)上記実施の形態では、CANプロトコルにおけるデータフレームを標準IDフォーマットで記述しているが、拡張IDフォーマットであっても良い。
 (5)上記実施の形態では、MAC算出のアルゴリズムをHMACとしているが、これに限らない。CBC-MAC、CMACであっても良い。また、MAC計算に登場するパディングについては、ゼロパディング、ISO10126、PKCS1、PKCS5、PKCS7、その他、データサイズが計算に必要となるパディングの方式であれば何でもよい。
 また4バイトへのサイズの変更方法についても、先頭、最後尾、中間、いずれをとっても良い。また、連続している4バイトでなくても、特定のルールに従って1ビットずつ収集して結合しても良い。
 (6)上記実施の形態では、更新処理として、MAC鍵の更新処理と、カウンタリセットの処理を同時に行っているが、いずれか一方のみ行ってもよい。また、MAC鍵の更新処理についても、新たにMAC鍵更新処理専用の鍵を埋め込んでも良い。
 (7)上記実施の形態では、MAC鍵をメッセージID毎に1つ保持しているが、ECU毎に1つであっても良い。また、全てのECUが共通のMAC鍵を保持していても良い。同一のバスにつながるECUは全て共通のMAC鍵を保持していても良い。
 (8)上記実施の形態では、カウンタ値をメッセージID毎に1つ保持しているが、ECU毎に1つであっても良い。また、同一のバス上を流れる全てのフレームに対して共通のカウンタ値を使用しても良い。
 (9)上記実施の形態では、カウンタ値はMAC算出のために使用しているが、データフィールドに含めて送信しても良い。また、その際は、全てのカウンタ値を送信してもよいし、一部のみを送信してもよい。
 (10)上記実施の形態では、判定ルールは一例に限定されるわけではなく、他の判定ルールであってもよいし、複数の判定ルールがあってもよい。また、判定ルールはECUにそれぞれ出荷時に設定されてもよいし、搭載される車体の出荷時に設定されてもよいし、部品として、あるいは、搭載される車体自体が販売される時に設定されてもよい。また、判定ルールは、外部との通信、各種メディア、または、各種診断ツールによって設定されてもよい。
 (11)上記実施の形態では、ECU間で送受信されるデータフレームに対して、受信したECUがMACの検証を行っているが、全てのデータフレームに付与するMACの検証を一手に行うMAC検証用のECUであってもよい。
 また、このMAC検証用ECUが全てのメッセージIDに対応するMAC鍵と、カウンタ値を保持していてもよい。また、このMAC検証用ECUがMAC検証の結果、エラーと判定した場合、その他のECUでの受信を防止するため、エラーフレームを送信してもよい。
 (12)上記実施の形態では、走行距離が閾値より大きい場合に、すべてのMAC鍵に関して、鍵更新処理を行っているが、これに限定するわけではなく、走行距離に関するメッセージIDのMAC鍵のみを更新するとしてもよい。
 (13)上記実施の形態では、走行距離が閾値より大きい場合に、すべてのMAC鍵に関して、鍵更新処理を行っているが、これに限定するわけではなく、走行距離に関するメッセージIDが送信されるバスのみのMAC鍵を更新するとしてもよい。
 (14)上記実施の形態では、所定の時間が経過、または走行距離が閾値より大きい場合に、判定ルールに基づいて更新処理を行っているが、これに限定するわけではなく、カウンタ値が閾値より大きい場合に更新処理を実行するとしてもよい。このとき、カウンタ値が閾値より大きいメッセージIDに対応するMAC鍵のみを更新するとしてもよい。
 (15)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 (16)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部またはすべてを含むように1チップ化されてもよい。
 また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、LSI内部の回路セルの接続または設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
 (17)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
 (18)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
 また、本開示は、コンピュータプログラムまたはデジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
 また、本開示は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
 また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
 また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
 (19)上記実施の形態および上記変形例をそれぞれ組み合わせるとしてもよい。
 本開示は、ECUにおけるMAC鍵の更新処理が特定のタイミングに集中することなく、確実に実行され、車載ネットワークシステム全体として、安全な状態を維持することができる。
 10 鍵更新管理装置
 11 取得部
 12,12a 鍵更新部
 13,13a 鍵更新処理判定部
 100,100a 車載ネットワークシステム
 101 ゲートウェイ
 111,121,131,141,151,161,171,181,182,184,186,191 ECU
 110 エンジン
 120 トランスミッション
 130 ブレーキ
 140 ステアリング
 150 自動ブレーキ
 160 車線維持装置
 170 車車間通信装置
 180 ヘッドユニット
 183 ウィンドウ開閉センサ
 185 ドア開閉センサ
 187 GPSセンサ
 190 ITS装置
 1111 フレーム送受信部
 1112 フレーム解釈部
 1113 受信ID判断部
 1114 受信IDリスト保持部
 1115 フレーム処理部
 1116 車体状態保持部
 1117 判定ルール保持部
 1118 タイマー
 1119 鍵更新判定部
 1120 更新処理部
 1121 MAC鍵保持部
 1122 カウンタ保持部
 1123 MAC生成部
 1124 フレーム生成部
 1125 データ取得部

Claims (13)

  1.  複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムにおいて用いられる鍵の更新処理方法であって、
     前記複数の電子制御ユニットの少なくとも一つから送信される、前記車両の走行に関する情報である走行情報を取得する取得ステップと、
     前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コードであって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵(MAC:Message Authentication Code)を更新する鍵更新ステップとを含む、
     更新処理方法。
  2.  前記所定状態は、前記走行情報により得られる前記車両の走行距離であって前記MAC鍵の前回の更新時からの前記車両の走行距離が閾値を超えた状態である、
     請求項1に記載の更新処理方法。
  3.  前記所定状態は、前記MAC鍵の前回の更新時から所定時間経過後、かつ、前記走行情報により得られる前記車両の状態が駐車中である状態である、
     請求項1に記載の更新処理方法。
  4.  前記鍵更新ステップでは、
     前記複数の電子制御ユニットのすべてが、前記条件を満たした同一のタイミングで、前記MAC鍵を用いて新たなMAC鍵を生成することにより、前記MAC鍵を前記新たなMAC鍵に更新する、
     請求項1~3のいずれか1項に記載の更新処理方法。
  5.  前記鍵更新ステップでは、
     前記複数の電子制御ユニットの一が、前記条件を満たしたときに、前記MAC鍵を用いて新たなMAC鍵を生成する生成ステップと、
     前記一の電子制御ユニットが生成した前記新たなMAC鍵を、前記一の電子制御ユニット以外の前記複数の電子制御ユニットのすべてに配布することにより、前記MAC鍵を前記新たなMAC鍵に更新する配布ステップとを含む、
     請求項1~3のいずれか1項に記載の更新処理方法。
  6.  前記車載ネットワークは、前記複数の電子制御ユニットがバスに接続されたCAN(Controller Area Network)であり、
     前記更新処理方法は、
     前記複数の電子制御ユニットのうちの一である第1電子制御ユニットが、CANプロトコルに従ってバスを介して、前記データとしてデータフレーム、および、前記データに付加されるメッセージ認証コードとして前記データフレームのデータフィールドを前記メッセージ認証コードとした検証用データフレームの送信を行う送信ステップと、
     前記複数の電子制御ユニットのうちの前記第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、前記第1電子制御ユニットにより送信されたデータフレーム、および、検証用データフレームを、バスを介して受信する受信ステップとを含む、
     請求項1~5のいずれか1項に記載の更新処理方法。
  7.  前記送信ステップでは、
     前記第1電子制御ユニットが、前記データフレームを識別するためのIDと送信カウンタによりカウントされたデータフレームの送信回数とを少なくとも結合した値に対して前記MAC鍵を用いて前記メッセージ認証コードを生成するMAC生成ステップを含み、
     前記受信ステップでは、
     前記第2電子制御ユニットが、前記検証用データフレームを受信して得た前記メッセージ認証コードと、受信した前記データフレームに対応するIDと、受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、前記MAC鍵を用いて生成したメッセージ認証コードとの同一性を検証する検証ステップを含む、
     請求項6に記載の更新処理方法。
  8.  前記車載ネットワークシステムは、前記複数の電子制御ユニットがLAN(Local Area Network)により接続されたネットワークであり、
     前記更新処理方法は、
     前記複数の電子制御ユニットのうちの一である第1電子制御ユニットが、前記データに付加される前記メッセージ認証コードとしてペイロード部分に前記メッセージ認証コードを含めて、前記データの送信を行う送信ステップと、
     前記複数の電子制御ユニットのうちの前記第1電子制御ユニット以外の複数の電子制御ユニットの少なくとも一である第2電子制御ユニットが、前記第1電子制御ユニットにより送信された前記データを受信する受信ステップとを含む、
     請求項1~5のいずれか1項に記載の更新処理方法。
  9.  前記送信ステップでは、さらに、
     前記第1電子制御ユニットが、前記データに付加された送信元アドレスおよび送信先アドレスと送信カウンタによりカウントされたデータの送信回数とを少なくとも結合した値に対して前記MAC鍵を用いて前記メッセージ認証コードを生成するMAC生成ステップを含み、
     前記受信ステップでは、
     前記第2電子制御ユニットが、ペイロード部分に前記メッセージ認証コードが含まれた前記データを受信して得た前記メッセージ認証コードと、受信した当該データに付加された送信元アドレスおよぎ送信先アドレスと受信カウンタによりカウントされたデータの受信回数とを少なくとも結合した値に対して、前記MAC鍵を用いて生成したメッセージ認証コードとの同一性を検証する検証ステップを含む、
     請求項8に記載の更新処理方法。
  10.  前記更新処理方法は、さらに、
     前記条件として前記送信カウンタおよび前記受信カウンタをリセットするリセットステップを含む、
     請求項9に記載の更新処理方法。
  11.  前記複数の電子制御ユニットは、前記車両の制御用途により分類された複数のグループの一に属し、
     前記複数のグループのそれぞれにおける前記所定状態は、前記複数のグループごとに定められる、
     請求項1~10のいずれか1項に記載の更新処理方法。
  12.  複数の電子制御ユニットを有し、車両に搭載される車載ネットワークシステムであって、
     前記複数の電子制御ユニットの少なくとも一つから送信される前記車両の走行に関する情報である走行情報を取得する取得部と、
     前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コードであって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵(MAC:Message Authentication Code)を更新する更新処理部とを備える、
     車載ネットワークシステム。
  13.  車両に搭載される車載ネットワークシステムに接続される電子制御ユニットであって、
     CPUとメモリとを有し、
     前記CPUは、複数の電子制御ユニットの少なくとも一つから送信される前記車両の走行に関する情報である走行情報を取得して前記メモリに格納し、
     前記CPUは、
     前記メモリに格納された前記走行情報により得られる前記車両の走行に関する状態が所定状態であることを条件として、前記車載ネットワークシステムにおいて授受されるデータに付加されるメッセージ認証コードであって改ざん防止のコードであるメッセージ認証コードの生成に利用される鍵であるMAC鍵(MAC:Message Authentication Code)を更新する、
     電子制御ユニット。
PCT/JP2018/006140 2017-03-21 2018-02-21 更新処理方法、車載ネットワークシステムおよび電子制御ユニット WO2018173603A1 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2017-054953 2017-03-21
JP2017054953 2017-03-21
JP2018-006869 2018-01-19
JP2018006869A JP2018160888A (ja) 2017-03-21 2018-01-19 更新処理方法、車載ネットワークシステムおよび電子制御ユニット

Publications (1)

Publication Number Publication Date
WO2018173603A1 true WO2018173603A1 (ja) 2018-09-27

Family

ID=63584342

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/006140 WO2018173603A1 (ja) 2017-03-21 2018-02-21 更新処理方法、車載ネットワークシステムおよび電子制御ユニット

Country Status (1)

Country Link
WO (1) WO2018173603A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021038684A1 (ja) * 2019-08-26 2021-03-04
CN113542428A (zh) * 2021-07-29 2021-10-22 中国第一汽车股份有限公司 车辆数据上传方法、装置、车辆、系统及存储介质
CN116319146A (zh) * 2023-02-01 2023-06-23 南京航空航天大学 车载can网络报文的功能管理的实现方法和存储介质
CN117714055A (zh) * 2024-02-05 2024-03-15 合肥工业大学 一种基于身份信息的车内网络通信方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007135107A (ja) * 2005-11-11 2007-05-31 Auto Network Gijutsu Kenkyusho:Kk 中継接続ユニット
WO2013140455A1 (ja) * 2012-03-22 2013-09-26 富士通株式会社 アドホックネットワークシステム、ノード、および通信方法
WO2015017045A1 (en) * 2013-07-03 2015-02-05 Keclon Sa Modified bacillus cereus phospholipase c protein and method of processing vegetable oil
WO2016006150A1 (ja) * 2014-07-10 2016-01-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法
JP2017038143A (ja) * 2015-08-07 2017-02-16 株式会社デンソー 通信システム、送信ノード、及び受信ノード
WO2017033602A1 (ja) * 2015-08-24 2017-03-02 Kddi株式会社 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007135107A (ja) * 2005-11-11 2007-05-31 Auto Network Gijutsu Kenkyusho:Kk 中継接続ユニット
WO2013140455A1 (ja) * 2012-03-22 2013-09-26 富士通株式会社 アドホックネットワークシステム、ノード、および通信方法
WO2015017045A1 (en) * 2013-07-03 2015-02-05 Keclon Sa Modified bacillus cereus phospholipase c protein and method of processing vegetable oil
WO2016006150A1 (ja) * 2014-07-10 2016-01-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法
JP2017038143A (ja) * 2015-08-07 2017-02-16 株式会社デンソー 通信システム、送信ノード、及び受信ノード
WO2017033602A1 (ja) * 2015-08-24 2017-03-02 Kddi株式会社 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021038684A1 (ja) * 2019-08-26 2021-03-04
WO2021038684A1 (ja) * 2019-08-26 2021-03-04 日本電気株式会社 情報処理装置、ノード、データ記録方法及びコンピュータ可読媒体
JP7302664B2 (ja) 2019-08-26 2023-07-04 日本電気株式会社 情報処理装置、データ記録システム、データ記録方法及びプログラム
CN113542428A (zh) * 2021-07-29 2021-10-22 中国第一汽车股份有限公司 车辆数据上传方法、装置、车辆、系统及存储介质
CN116319146A (zh) * 2023-02-01 2023-06-23 南京航空航天大学 车载can网络报文的功能管理的实现方法和存储介质
CN117714055A (zh) * 2024-02-05 2024-03-15 合肥工业大学 一种基于身份信息的车内网络通信方法
CN117714055B (zh) * 2024-02-05 2024-04-12 合肥工业大学 一种基于身份信息的车内网络通信方法

Similar Documents

Publication Publication Date Title
JP7170780B2 (ja) 不正検知ルール更新方法、不正検知電子制御ユニット及び車載ネットワークシステム
CN107431625B (zh) 网关装置、车载网络系统以及转送方法
JP6407981B2 (ja) 車載ネットワークシステム、電子制御ユニット及び不正対処方法
JP6713415B2 (ja) 鍵管理方法、車載ネットワークシステム及び鍵管理装置
US10227053B2 (en) In-vehicle network system, electronic control unit, and update processing method
CN109076001B (zh) 帧传送阻止装置、帧传送阻止方法及车载网络系统
JP6807906B2 (ja) 車両へのコンピュータ攻撃を阻止するためのルールを生成するシステムおよび方法
JP2020013607A (ja) 不正対処方法及び路側機
JP6762347B2 (ja) 交通手段に対するコンピュータ攻撃を阻止するためのシステムおよび方法
WO2018173603A1 (ja) 更新処理方法、車載ネットワークシステムおよび電子制御ユニット
JP7412506B2 (ja) 不正検知ルール更新方法、不正検知電子制御ユニット及び車載ネットワークシステム
JP2018160888A (ja) 更新処理方法、車載ネットワークシステムおよび電子制御ユニット
JP6983977B2 (ja) ゲートウェイ装置、車載ネットワークシステム及び転送方法
JP7453404B2 (ja) 通信システム、中継装置、受信装置及び通信制御方法
WO2020105657A1 (ja) 車載中継装置及び中継方法
WO2018020833A1 (ja) フレーム伝送阻止装置、フレーム伝送阻止方法及び車載ネットワークシステム
JP7199467B2 (ja) 不正対処方法、および電子制御ユニット
CN111376848B (zh) 不正常检测规则更新方法、电子控制单元和车载网络系统

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

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18770828

Country of ref document: EP

Kind code of ref document: A1