WO2016076358A1 - 情報処理装置、メッセージ認証方法 - Google Patents

情報処理装置、メッセージ認証方法 Download PDF

Info

Publication number
WO2016076358A1
WO2016076358A1 PCT/JP2015/081740 JP2015081740W WO2016076358A1 WO 2016076358 A1 WO2016076358 A1 WO 2016076358A1 JP 2015081740 W JP2015081740 W JP 2015081740W WO 2016076358 A1 WO2016076358 A1 WO 2016076358A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
shared information
information
security code
shared
Prior art date
Application number
PCT/JP2015/081740
Other languages
English (en)
French (fr)
Inventor
伸義 森田
恵輔 伯田
大和田 徹
Original Assignee
日立オートモティブシステムズ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日立オートモティブシステムズ株式会社 filed Critical 日立オートモティブシステムズ株式会社
Priority to US15/525,978 priority Critical patent/US10425231B2/en
Priority to CN201580056690.5A priority patent/CN107005412B/zh
Priority to EP15858297.3A priority patent/EP3220576B1/en
Publication of WO2016076358A1 publication Critical patent/WO2016076358A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Definitions

  • the present invention relates to an information processing apparatus used by being connected to a network, and a message authentication method between a plurality of information processing apparatuses connected to the network.
  • CAN Controller Area Network
  • CAN FD Flexible Data-Rate
  • a vehicle is generally provided with a diagnostic interface called an OBD2 (On-Board-Diagnostics 2) port directly connected to an in-vehicle network.
  • OBD2 On-Board-Diagnostics 2
  • the replay attack is an attack that causes an intruder to eavesdrop on a message flowing on a communication path in advance to acquire in advance, and retransmits the acquired message, thereby causing an illegal operation on each device in the in-vehicle network.
  • the infected apparatus transmits a fake message to the in-vehicle network, and the control apparatus that has received this message Attacks that cause malfunctions can also be considered.
  • Patent Document 1 Message Authentication Code
  • the number of times a message is transmitted for each message ID is counted in each information processing apparatus. Then, the information processing apparatus that transmits the message generates a MAC from the data, the number of transmissions, and the message ID, and transmits the MAC separately from the message.
  • the information processing apparatus on the message receiving side calculates the MAC based on the data, the number of transmissions, and the message ID in the received message, and compares it with the MAC separately received from the information processing apparatus on the transmitting side.
  • the received message is recognized as an illegal one, and thereafter, the message using the message ID is not accepted. This prevents malfunction of the information processing apparatus due to replay attacks or data tampering.
  • the MAC used in the technique described in Patent Document 1 has a characteristic that it is generally vulnerable to noise. Therefore, when the MAC value changes due to noise mixed in the message, the message is recognized as an illegal message by the information processing apparatus that has received the message even though it is not an illegal message. As a result, the information processing apparatus erroneously determines that an unauthorized attack has been performed, and the above-mentioned countermeasures that should be performed only when an unauthorized attack is originally performed may be mixed with noise. Will be implemented. Accordingly, for example, an operation that hinders driving of a car is performed in the information processing apparatus on the reception side even though the user is not subjected to an unauthorized attack, and there is a possibility that the user may be forced to perform an operation lacking in practicality. .
  • a main object of the present invention is to correctly determine whether a message received by each information processing apparatus connected to a network is due to an unauthorized attack.
  • An information processing apparatus receives a message transmitted from another information processing apparatus connected via a network, and generates shared information shared with the other information processing apparatus.
  • the generation unit, the communication unit that receives the message, the shared information included in the message, and the shared information generated by the shared information generation unit are compared, and included in the message based on the comparison result Generated by a shared information verification unit that verifies the validity of shared information, a security code generation unit that generates a security code based on the shared information, a security code included in the message, and the security code generation unit
  • the security information is compared, and based on the comparison result, correctness of the shared information included in the message is determined.
  • the message authentication method is an authentication method for a message transmitted / received between two information processing devices connected via a network, wherein the information processing device receiving the message causes the two information processing devices to communicate with each other.
  • a fifth processing step for comparing the security code generated in the step and verifying the correctness of the shared information included in the message based on the comparison result, and the verification result in the third processing step And a sixth processing step of determining the normality of the message based on the verification result in the fifth processing step.
  • the figure which shows the structural example of an information processing system The figure which shows the structural example of information processing apparatus Flow chart of processing executed by CPU Flow chart of shared information generation processing
  • the figure which shows the example of a table structure of shared information Flowchart of message transmission processing according to the first embodiment
  • Flowchart of message transmission processing according to the second embodiment The figure which shows the example of the data structure of the transmission message Flowchart of message type determination processing according to the second embodiment
  • FIG. 1 is a diagram illustrating a configuration example of an information processing system according to an embodiment of the present invention.
  • the information processing system shown in FIG. 1 is configured by connecting a plurality of information processing apparatuses 1 to each other via a network 2.
  • various types of ECUs Electric Control Units
  • CAN Controller Area Network
  • CAN FD Controller Area Network
  • each ECU corresponds to the information processing apparatus 1
  • CAN and CAN FD correspond to the network 2.
  • the scope of application of the present invention is not limited to this, and the present invention can be applied to various types of information processing systems.
  • FIG. 2 is a diagram illustrating a configuration example of the information processing apparatus 1. As shown in FIG. 2, the information processing apparatus 1 is configured by connecting a CPU 10, a memory 20, and a communication unit 30 to each other via a bus 40.
  • the CPU 10 includes a shared information generation unit 101, a shared information management unit 102, a key management unit 103, a message generation unit 104, a security code generation unit 105, a message analysis unit 108, a process determination control unit 109, a shared information verification unit 110, and a security.
  • the code verification unit 111 is functionally provided.
  • the CPU 10 can operate as each of these functional units by controlling the memory 20 and the communication unit 30 by executing a predetermined program. These functional units will be described later in detail.
  • the program executed by the CPU 10 may be stored in the memory 20 in advance.
  • a program necessary for the operation of the CPU 10 may be acquired via a storage medium connected to an input / output interface (not shown) or a communication medium (not shown).
  • the acquired program can also be stored in the memory 20.
  • the memory 20 is a part for storing the above programs and various data necessary for the operation of the CPU 10.
  • the memory 20 can include, for example, a primary storage device or a secondary storage device. Data communication between the CPU 10 and the memory 20 is performed via the bus 40.
  • the memory 20 functionally includes an encryption information storage unit 206 and a communication information storage unit 207. These functional units will be described later in detail.
  • the communication unit 30 is connected to the network 2 in FIG. 1 and operates according to the control of the CPU 10.
  • the communication unit 30 transmits a message to another information processing apparatus 1 and receives a message transmitted from another information processing apparatus 1 via the network 2.
  • a message transmitted from the communication unit 30 to the other information processing apparatus 1 is output from the CPU 10 to the communication unit 30 via the bus 40.
  • a message received from the other information processing apparatus 1 by the communication unit 30 is output from the communication unit 30 to the CPU 10 via the bus 40.
  • the shared information generation unit 101 generates shared information shared between the information processing apparatuses 1.
  • the shared information generated by the shared information generation unit 101 is stored in the encryption information storage unit 206.
  • the shared information management unit 102 manages shared information. For example, the shared information generation unit 101 acquires information necessary for generating the shared information, or updates the shared information according to the number of messages and the message type.
  • the key management unit 103 manages key data used to generate encrypted shared information and security codes.
  • the message generator 104 generates a transmission message from the information processing device 1 to another information processing device 1.
  • the transmission message generated by the message generation unit 104 is output to the communication unit 30 and transmitted from the communication unit 30 to another information processing apparatus 1.
  • the security code generation unit 105 generates a security code to be used for authentication of a message transmitted / received to / from another information processing apparatus 1.
  • the security code generation unit 105 generates an error detection code as the security code.
  • the message analysis unit 108 analyzes the data structure of the received message received from the other information processing apparatus 1 received by the communication unit 30, and extracts data, shared information, security code, and the like included in the received message.
  • the shared information verification unit 110 compares the shared information of the received message extracted by the message analysis unit 108 with the shared information generated by the shared information generation unit 101, and is included in the received message based on the comparison result. Verify the validity of shared information.
  • the security code verification unit 111 compares the security code of the received message extracted by the message analysis unit 108 with the security code generated by the security code generation unit 105, and based on the comparison result, the received message Validate the shared information contained in the.
  • the encryption information storage unit 206 stores encryption information related to encryption of shared information and security codes. For example, the initial value used when the shared information generation unit 101 and the security code generation unit 105 encrypt the shared information and the security code, the above-described key data, and the like are stored in the encryption information storage unit 206 as encryption information.
  • the initial value used when the shared information generation unit 101 and the security code generation unit 105 encrypt the shared information and the security code, the above-described key data, and the like are stored in the encryption information storage unit 206 as encryption information.
  • the communication information storage unit 207 stores communication information necessary for transmitting / receiving a message to / from another information processing apparatus 1. For example, a message counter value, a process determination counter value used for determining a message type, and the like are stored in the communication information storage unit 207 as communication information.
  • the information processing apparatus 1 may be configured without the message generation unit 104 and the security code generation unit 105. That is, the CPU 10 includes only the shared information generation unit 101, the shared information management unit 102, the key management unit 103, the message analysis unit 108, the process determination control unit 109, the shared information verification unit 110, and the security code verification unit 111. Also good. In this case, the information processing apparatus 1 can be used as an information processing apparatus for message authentication that does not have a message transmission function.
  • FIG. 3 is a flowchart of processing executed by the CPU 10.
  • the CPU 10 repeatedly executes the process according to the flowchart of FIG. 3 at predetermined intervals.
  • step S10 the CPU 10 determines whether to generate shared information.
  • the shared information is generated at a predetermined timing, for example, when the engine of the vehicle is started, immediately before starting communication with another information processing apparatus 1, or during communication.
  • the CPU 10 determines to generate the shared information and proceeds to step S20, and otherwise proceeds to step S30.
  • step S20 the CPU 10 executes the shared information generation process by the shared information generation unit 101 and the shared information management unit 102.
  • the specific contents of the shared information generation process will be described later with reference to the flowchart of FIG.
  • step S30 the CPU 10 determines whether or not there is a message to be transmitted to another information processing apparatus 1. If there is a transmission message, the process proceeds to step S40, and if not, the process proceeds to step S50.
  • step S40 the CPU 10 executes a message transmission process using the message generation unit 104 and the security code generation unit 105.
  • the specific contents of this message transmission process will be described later with reference to the flowchart of FIG.
  • step S50 the CPU 10 determines whether or not there is a received message from another information processing apparatus 1. If there is a received message, the process proceeds to step S60, and if not, the process of the flowchart in FIG.
  • step S ⁇ b> 60 the CPU 10 executes message reception processing using the message analysis unit 108, the process determination control unit 109, the shared information verification unit 110, and the security code verification unit 111.
  • the specific contents of this message reception process will be described later with reference to the flowchart of FIG.
  • the CPU 10 ends the process of the flowchart of FIG. Note that the processing from step S10 to step S40 and the processing from step S50 to step 60 may be performed in parallel as separate processes.
  • step S20 the CPU 10 can generate shared information in the shared information generation unit 101 by generating a sequence number using, for example, a pseudorandom number generator.
  • FIG. 4 is a flowchart of the shared information generation process in this case.
  • the shared information management unit 102 acquires accompanying information necessary for generating a pseudo random number from the cryptographic information storage unit 206 by the pseudo random number generator.
  • the accompanying information can be acquired by reading the accompanying information stored in a predetermined location of the encryption information storage unit 206 based on information indicating the reference destination of the accompanying information set in advance.
  • the shared information management unit 102 acquires, as accompanying information, a pseudorandom number generator seed, auxiliary information for generating a pseudorandom number, an internal state of the pseudorandom number generator, and the like.
  • the auxiliary information is, for example, an initialization vector (IV) for determining an initial value of the pseudo random number generator.
  • the internal state of the pseudo random number generator is information necessary for generating pseudo random numbers from the next time on, and changes according to the number of pseudo random numbers generated by the pseudo random number generator.
  • step S202 the shared information generation unit 101 generates a pseudo-random number sequence using the accompanying information acquired in step S201.
  • step S203 the shared information generation unit 101 creates a sequence number sequence based on the pseudo random number sequence generated in step S202.
  • the sequence number sequence can be created by sequentially creating and arranging the sequence numbers for each pseudo random number constituting the pseudo random number sequence according to a predetermined method.
  • step S204 the shared information management unit 102 stores the sequence number sequence generated in step S203 in the encryption information storage unit 206 as shared information.
  • FIG. 5 is a diagram illustrating an example of a table configuration of the shared information 1070 stored in the encryption information storage unit 206 in step S204.
  • the channel counter value 1071 indicates the channel counter value corresponding to each sequence number.
  • a random number 1072 indicates a random number used as a sequence number.
  • step S205 the shared information management unit 102 is necessary to generate a sequence number sequence from the pseudo-random number sequence in step S203 out of the cryptographic information stored in the cryptographic information storage unit 206.
  • Update information for example, among the pseudo random numbers included in the pseudo random number sequence generated in step S202, the number and head addresses of pseudo random numbers that are unused in the generation of the sequence number sequence in step S203. Is stored as information necessary for generating the sequence number string.
  • the shared information management unit 102 updates these pieces of information according to the usage status of the pseudo random number sequence.
  • a pseudorandom number sequence of b ⁇ m bits is generated in step S202 described above.
  • the shared information management unit 102 Of the cryptographic information stored in the cryptographic information storage unit 206 the number of unused pseudo-random numbers is decreased by 1, and the head address is changed by b bits. In this manner, information necessary for generating the sequence number string is updated.
  • a new pseudo random number sequence is executed by executing the processing flow of FIG. It is preferable to generate a sequence number sequence based on this. Furthermore, a predetermined number is shared in advance between information processing apparatuses, and reseed (addition of entropy source) each time the byte length of a pseudo random number sequence generated from one seed reaches this number. Or updating the seed.
  • reseeding for example, the method described in SP 800-90A of NIST can be used. However, the reseeding method is not limited to this, and any method that can be realized may be used.
  • an information processing device 1 may generate an update seed, encrypt the seed, and transmit the encrypted seed to another information processing device 1.
  • the seed update method is not limited to this, and any method that can be realized may be used.
  • step S205 When the process of step S205 is executed, the shared information generation process of FIG. 4 is terminated, and the process proceeds to step S30 of FIG.
  • the information processing apparatus 1 can generate shared information shared with other information processing apparatuses 1.
  • step S ⁇ b> 40 the CPU 10 uses the shared information generated in step S ⁇ b> 20 by the message generation unit 104 to generate a transmission message for determining the presence or absence of an unauthorized replay attack, and sends it to another information processing apparatus 1. Can be sent.
  • FIG. 6 is a flowchart of message transmission processing according to the first embodiment of the present invention.
  • the message generation unit 104 acquires a communication channel counter value representing the total number of messages transmitted and received via the network 2 in FIG.
  • the channel counter value acquired here may be a value that is consistent among all the information processing apparatuses. For example, each time a message flows through the network 2, the message generation unit 104 of each information processing apparatus 1 may increment the communication channel counter value and store it in the communication information storage unit 207. A method common to all the information processing apparatuses 1 may be used for updating the communication channel counter value. Alternatively, if the updated counter values match in all the information processing apparatuses 1, each information processing apparatus 1 may use a different update method.
  • the message generation unit 104 acquires header information and data from the communication information storage unit 207, and acquires shared information corresponding to the communication channel counter value acquired in step S301 from the encryption information storage unit 206.
  • the header information is information such as an arbitration field and a control field when CAN FD is used as the network 2.
  • information indicating a communication destination, a communication source, a data length, and the like can be acquired as header information.
  • the header information acquired in step S302 is not limited to these as long as it includes necessary information as header information.
  • step S303 the security code generation unit 105 generates an error detection code for the shared information acquired in step S302.
  • an error detection code for detecting an error in the shared information is generated using a predetermined algorithm.
  • an error detection code for shared information can be generated in accordance with an algorithm such as CRC (Cyclic Redundancy Check).
  • step S304 the message generation unit 104 generates a transmission message based on the header information, data, and shared information acquired in step S302, the error detection code generated in step S303, and the footer information corresponding thereto.
  • the footer information is, for example, information on a cyclic redundancy check field and an acknowledge field when CAN FD is used as the network 2.
  • the footer information acquired in step S304 is not limited to these as long as the necessary information is included as the footer information.
  • FIG. 7 is a diagram illustrating an example of the data structure of the transmission message generated in step S304.
  • the transmission message includes header information 411, data 412, shared information 413, error detection code 414, and footer information 415.
  • step S ⁇ b> 305 the message generation unit 104 outputs the transmission message generated in step S ⁇ b> 304 to the communication unit 30. Thereby, the generated transmission message is transmitted from the communication unit 30 to the other information processing apparatus 1 via the network 2.
  • step S306 the message generation unit 104 updates the communication path counter value acquired in step S301 and stores it in the communication information storage unit 207.
  • step S306 When the process of step S306 is executed, the message transmission process of FIG. 6 is terminated, and the process proceeds to step S50 of FIG.
  • the information processing apparatus 1 can transmit a message to which an error detection code for shared information is added as a security code to a communication path.
  • step S60 when the CPU 10 receives a message having the data structure shown in FIG. 6 from another information processing apparatus 1, the CPU 10 analyzes the data structure of the received message using the message analysis unit 108, and the received message is invalid. It is possible to determine whether it is due to a serious attack.
  • FIG. 8 is a flowchart of the message reception process.
  • step S501 the message analysis unit 108 receives a message transmitted from another information processing apparatus 1 using the communication unit 30.
  • the received message is acquired by acquiring a message from another information processing apparatus 1 received by the communication unit 30 and output from the communication unit 30 to the CPU 10.
  • step S502 the message analysis unit 108 acquires the communication channel counter value from the communication information storage unit 207, and updates the communication channel counter value. Note that any information processing device periodically sends a message with a synchronization ID to the communication channel so that synchronization can be achieved even if a deviation occurs in the communication channel counter value managed between the information processing devices. Also good.
  • FIG. 14 is a diagram illustrating an example of a data structure of a message for synchronizing communication channel counter values.
  • the data structure of this message includes header information 901 to which a synchronization ID 904 is assigned, a communication channel counter value 902, and footer information 903.
  • step S503 the message analysis unit 108 analyzes the data structure of the message received in step S501.
  • the data, shared information, and error detection code included in the received message are extracted.
  • step S504 the process determination control unit 109 performs a message type determination process for determining the type of the received message based on the shared information and the error detection code extracted from the received message in step S501.
  • the specific contents of this message type determination process will be described later with reference to the flowchart of FIG.
  • step S505 the process determination control unit 109 determines whether the type of the received message has been identified by the message type determination process in step S504. If the type of the received message can be identified, the process proceeds to step S506, and if it cannot be identified, the process proceeds to step S510.
  • step S506 the process determination control unit 109 clears the value of the process determination counter indicating whether the type of the received message has been identified.
  • the value of the process determination counter is cleared and returned to a predetermined initial value (for example, 0).
  • the processing determination counter is used for determining the type of the received message as described above, and is stored in the communication information storage unit 207.
  • step S507 the process determination control unit 109 determines whether the type of the received message specified by the message type determination process in step S504 is “normal” or “attack”. If the type of the received message is “normal”, that is, if it is determined in step S504 that the received message is normal, the process proceeds to step S508. On the other hand, if the type of the received message is “attack”, that is, if it is determined in step S504 that the received message is due to an unauthorized attack, the process proceeds to step S509.
  • step S508 the process determination control unit 109 accepts the received message.
  • the CPU 10 executes control processing based on the data included in the received message.
  • the process determination control unit 109 discards the received message and shifts to a predetermined countermeasure mode.
  • the countermeasure mode refers to a control that does not adversely affect the operation of the information processing system including the information processing apparatus 1 when it is determined that the received message is due to an unauthorized attack. This is a mode for shifting to a state. For example, in the case of an information processing system mounted on a vehicle, it is preferable to set the countermeasure mode so that the information processing apparatus 1 is shifted to a control state that does not affect the safe driving of the vehicle.
  • step S504 it may be possible to regenerate the sequence number and warn the user.
  • a warning can be given to the user by displaying a predetermined warning screen on a car navigation device or a mobile terminal device connected to the vehicle.
  • step S510 the process determination control unit 109 increments and updates the value of the process determination counter stored in the communication information storage unit 207.
  • the value of the process determination counter is incremented by one.
  • step S511 the process determination control unit 109 compares the process determination counter value incremented in step S510 with a predetermined threshold value. As a result, if the process determination counter value is larger than the threshold value, the process proceeds to step S509. On the other hand, if the process determination counter value is less than or equal to the threshold, the process proceeds to step S512.
  • the size of the threshold compared with the processing determination counter value in step S511 may be changed according to the communication quality of the network 2 and the like. In that case, the threshold value may be set in advance based on the design information of the information processing system or the test result before the operation is started, or the communication quality of the network 2 is measured in real time, and the threshold value is set based on the measurement result. It may be changed sequentially.
  • step S511 the process determination control unit 109 determines that the received message so far is due to an unauthorized attack, discards the received message as described above, and shifts to a predetermined countermeasure mode.
  • step S512 the process determination control unit 109 discards the received message and waits until the next message is received. In this case, when the next message is received, the processing after step S501 in FIG. 8 is executed again.
  • the information processing apparatus 1 can determine whether the received message is normal or due to an unauthorized attack.
  • FIG. 9 is a flowchart of message type determination processing according to the first embodiment of the present invention.
  • step S5001 the process determination control unit 109 uses the shared information verification unit 110 to verify the validity of the shared information included in the received message.
  • step S5002 the process determination control unit 109 determines whether the verification result of the validity of the shared information performed in step S5001 is OK or NG. If the verification result is OK, the process proceeds to step S5003, and if it is NG, the process proceeds to step S5004.
  • step S5003 the process determination control unit 109 determines that the received message is normal. Thereby, it is specified that the type of the received message is “normal”.
  • step S5004 the process determination control unit 109 uses the security code generation unit 105 to generate an error detection code based on the shared information included in the received message.
  • the security code generation unit 105 can generate an error detection code as a security code for the shared information included in the received message by performing the same process as in step S303 of FIG.
  • step S5005 the process determination control unit 109 uses the security code verification unit 111 to verify correctness of the shared information included in the received message.
  • the security code verification unit 111 acquires the error detection code generated in step S5004 from the security code generation unit 105. Then, the acquired error detection information is compared with an error detection code as a security code included in the received message to determine whether or not they match. As a result, if both error detection codes match, it is determined that there is no error in the shared information included in the received message, and the verification result is OK. On the other hand, if the error detection codes do not match, it is determined that there is an error in the shared information included in the received message, and the verification result is NG.
  • step S5006 the process determination control unit 109 determines whether the verification result of the shared information performed in step S5005 is OK or NG. If the verification result is OK, the process proceeds to step S5008, and if it is NG, the process proceeds to step S5007.
  • step S5007 the process determination control unit 109 determines that the received message is an abnormal message due to a cause other than the replay attack.
  • the type of the received message is not specified.
  • the cause of such an abnormal message may be, for example, an accidental communication bit error due to noise or the like in the network 2 or an illegal attack other than the replay attack.
  • step S5008 the process determination control unit 109 determines that the received message is due to an unauthorized replay attack. That is, in this case, since the shared information is not valid and the shared information is correct, the shared information has already been used, and a third party who obtained it illegally has performed a replay attack. I can judge. Thereby, it is specified that the type of the received message is “attack”.
  • step S5003, S5007, and S5008 When one of steps S5003, S5007, and S5008 is executed, the message type determination process in FIG. 9 is terminated, and the process proceeds to step S505 in FIG.
  • the information processing apparatus 1 can determine whether the received message is a replay attack.
  • the information processing apparatus 1 receives a message transmitted from another information processing apparatus 1 connected via the network 2.
  • the information processing apparatus 1 includes a shared information generation unit 101, a communication unit 30, a shared information verification unit 110, a security code generation unit 105, a security code verification unit 111, and a process determination control unit 109.
  • the shared information generation unit 101 generates shared information shared with other information processing apparatuses 1 (step S20).
  • the communication unit 30 receives a message transmitted from another information processing apparatus 1 (step S501).
  • the shared information verifying unit 110 compares the shared information included in the received message with the shared information generated by the shared information generating unit 101, and based on the comparison result, verifies the validity of the shared information included in the received message. Verification is performed (step S5001).
  • the security code generation unit 105 generates a security code based on the shared information (step S5004).
  • the security code verification unit 111 compares the security code included in the received message with the security code generated by the security code generation unit 105, and based on the comparison result, the shared information included in the received message Is verified (step S5005).
  • the process determination control unit 109 determines the normality of the received message based on the verification result by the shared information verification unit 110 and the verification result by the security code verification unit 111 (steps S5003, S5007, and S5008). Since it did in this way, it can be correctly discriminate
  • step S5004 the security code generation unit 105 generates an error detection code for detecting an error in the shared information as a security code.
  • step S5005 the security code verification unit 111 compares the error detection code included in the received message with the error detection code generated by the security code generation unit 105, and determines the received message based on the comparison result. Verify the correctness of the included shared information. Since it did in this way, the correctness of shared information can be verified easily and correctly.
  • step S5001 determines that the shared information included in the received message is valid in step S5001.
  • step S5001 the shared information verification unit 110 determines that the shared information included in the received message is not valid, and in step S5005, the security code verification unit 111 determines that the shared information included in the received message is correct. If so, it is determined in step S5008 that the received message is due to an unauthorized replay attack. Since it did in this way, it can be judged reliably whether a received message is normal or it is due to an unauthorized replay attack.
  • the information processing apparatus 1 further includes a communication information storage unit 207 that stores a process determination counter value used by the process determination control unit 109 to determine the normality of the received message.
  • the process determination control unit 109 determines that the shared information included in the received message is not valid by the shared information verification unit 110, and the security code verification unit 111 converts the shared information included in the received message in step S5005. If it is determined that there is an error, and the process of step S5007 is executed, the process determination counter value is incremented and updated (step S510).
  • the process determination counter value is compared with a predetermined threshold (step S511), and based on the comparison result, it is determined whether or not the received message is due to an unauthorized attack (steps S509 and S512). Since it did in this way, this can be judged also when a received message is an unauthorized attack other than a replay attack.
  • the information processing apparatus 1 further includes a message A generation unit 104 is provided.
  • the message generator 104 generates a transmission message including the shared information generated by the shared information generator 101 and the security code generated by the security code generator 105 (step S304).
  • the communication unit 30 transmits this transmission message to the other information processing apparatus 1 and receives a reception message from the other information processing apparatus 1. Since it did in this way, a message can be transmitted / received between several information processing apparatuses 1, and message authentication can be performed.
  • FIG. 10 is a flowchart of message transmission processing according to the second embodiment of the present invention. This flowchart differs from the flowchart of the message transmission process according to the first embodiment shown in FIG. 6 in that the processes of steps S3031, S3032, and S3041 are executed instead of the processes of steps S303 and S304. .
  • step S3031 the security code generation unit 105 generates an error correction code for the shared information acquired in step S302.
  • an error correction code for detecting and correcting an error in the shared information is generated using a predetermined algorithm.
  • an error correcting code can be generated by calculating an ECC (Error Correcting Code) corresponding to the shared information by using a predetermined polynomial.
  • the correction range of the error correction code to be generated may be set based on the communication quality of the network 2 through which the transmission message passes.
  • the average number of bits of communication errors that occur when a transmission message passes through the network 2 is n bits
  • the setting of the error correction code correction range can be realized by, for example, appropriately selecting a polynomial used for ECC calculation.
  • the security code generation unit 105 generates a falsification detection code for the header information, data, and shared information acquired in step S302.
  • a falsification detection code for detecting the presence or absence of falsification of the information is generated.
  • a falsification detection code can be generated by calculating a MAC (Message Authentication Code) using a predetermined algorithm.
  • a method for calculating the MAC for example, a method using a hash function or a method using a block cipher algorithm is known. Further, AES which is a common key block cipher algorithm may be used.
  • an alteration detection code can be generated using any method. Note that the falsification detection code may be generated based on a part of the header information, data, and shared information of the transmission message.
  • step S3041 the message generation unit 104 acquires the header information, data, and shared information acquired in step S302, the error correction code generated in step S3031, the falsification detection code generated in step S3032, and the footer information corresponding thereto. Based on the above, a transmission message is generated. In step S305, the transmission message is output to the communication unit 30 and transmitted.
  • FIG. 11 is a diagram showing an example of the data structure of the transmission message generated in step S3041.
  • the transmission message includes header information 421, data 422, shared information 423, error correction code 424, falsification detection code 425, and footer information 426.
  • the header information 421, data 422, shared information 423, and footer information 426 are the same as the header information 411, data 412, and shared information 413 in the transmission message of FIG. 7 described in the first embodiment. .
  • FIG. 12 is a flowchart of message type determination processing according to the second embodiment of the present invention.
  • steps S6001 and S6002 the process determination control unit 109 performs the same processes as steps S5001 and S5002 in FIG.
  • step S6003 the process determination control unit 109 uses the security code generation unit 105 to generate an error correction code based on the shared information included in the received message.
  • the security code generation unit 105 can generate an error correction code as a security code for the shared information included in the received message by performing the same processing as in step S3031 of FIG.
  • step S6004 the process determination control unit 109 uses the security code verification unit 111 to verify whether the shared information included in the received message is correct or incorrect.
  • the security code verification unit 111 performs the same process as step S5005 of FIG. 9 using the error correction code generated in step S6003 instead of the error detection code. As a result, if there is no error in the shared information included in the received message, the verification result is OK, and if there is an error, the verification result is NG.
  • step S6005 the process determination control unit 109 determines whether the verification result of the shared information performed in step S6004 is OK or NG. If the verification result is OK, the process proceeds to step S6010, and if it is NG, the process proceeds to step S6006.
  • step S6006 the process determination control unit 109 corrects the shared information included in the received message using the security code verification unit 111.
  • the security code verification unit 111 corrects the shared information included in the received message by performing a calculation according to a predetermined algorithm using the error correction code generated in step S6003.
  • the error correction code generated in step S6003 thereby, for example, when the Hamming distance of the ECC that is an error correction code is within a certain range, an error included in the shared information of the received message can be corrected.
  • the shared information cannot be completely corrected even if an error correction code is used, and thus errors may remain.
  • step S6007 the process determination control unit 109 uses the shared information verification unit 110 to re-verify the validity of the shared information included in the received message.
  • the shared information verification unit 110 compares the shared information acquired from the encryption information storage unit 206 with the shared information that has been error-corrected in step S6006, and determines whether or not they match as in step S6001. Determine. As a result, if the acquired shared information matches the error-corrected shared information, it is determined that the shared information included in the received message is valid, and the re-verification result is OK. On the other hand, if they do not match, it is determined that the shared information included in the received message is invalid, and the reverification result is NG.
  • step S6008 the process determination control unit 109 determines whether the re-verification result of the validity of the shared information performed in step S6007 is OK or NG. If the re-verification result is OK, the process proceeds to step S6011, and if it is NG, the process proceeds to step S6009.
  • step S6009 the process determination control unit 109 determines that the received message is an abnormal message due to an unauthorized attack using a pre-generated fake message, or an abnormal message due to noise of shared information that cannot be corrected. Judge. In this case, the type of the received message is not specified.
  • step S6010 the process determination control unit 109 determines that the received message is due to an illegal replay attack, as in step S5008 of FIG. Thereby, it is specified that the type of the received message is “attack”.
  • step S6011 the process determination control unit 109 uses the security code generation unit 105 to generate a falsification detection code based on header information, data, and shared information included in the received message.
  • the security code generation unit 105 generates a tampering detection code as a security code for the header information, data, and shared information included in the received message by performing the same processing as in step S3032 of FIG. Can do.
  • step S6012 the process determination control unit 109 uses the security code verification unit 111 to verify the validity of the received message.
  • the security code verification unit 111 acquires the falsification detection code generated in step S6011 from the security code generation unit 105. Then, the obtained alteration detection code is compared with the alteration detection code as the security code included in the received message, and it is determined whether or not they match. As a result, if both tampering detection codes match, it is determined that the received message has not been tampered with, and the verification result is OK. On the other hand, if the falsification detection codes do not match, it is determined that the received message has been falsified and the verification result is NG.
  • step S6013 the process determination control unit 109 determines whether the verification result of the validity of the received message performed in step S6012 was OK or NG. If the verification result is OK, the process proceeds to step S6014, and if it is NG, the process proceeds to step S6015.
  • step S6014 the process determination control unit 109 determines that the received message is normal as in step S5003 of FIG. Thereby, it is specified that the type of the received message is “normal”.
  • step S6015 the process determination control unit 109 determines whether the received message is an abnormal message due to an illegal attack using a fake message generated by falsifying header information and data in real time, or header information and data. It is determined that the message is abnormal due to noise. Also in this case, the type of the received message is not specified as in step S6009.
  • the message type determination process in FIG. 12 is terminated, and the process proceeds to step S505 in FIG.
  • the information processing apparatus 1 can determine whether the received message is a replay attack, an attack with a fake message prepared in advance, or an attack with a fake message generated in real time.
  • step S6003 the security code generation unit 105 generates an error correction code for detecting and correcting an error in the shared information as a security code.
  • step S6004 the security code verification unit 111 compares the error correction code included in the received message with the error correction code generated by the security code generation unit 105, and determines the received message based on the comparison result. Verify the correctness of the included shared information. Since it did in this way, the correctness of shared information can be verified easily and correctly.
  • step S6004 When the security code verification unit 111 detects that there is an error in the shared information included in the received message in step S6004, the security code verification unit 111 corrects the shared information based on the error correction code (step S6006).
  • the shared information verification unit 110 compares the shared information corrected by the security code verification unit 111 with the shared information generated by the shared information generation unit 101, and based on the comparison result, the shared information included in the received message The validity of the information is re-verified (step S6007). Since it did in this way, even if an error occurs in a part of the shared information of the received message due to an accidental communication bit error or the like, it is possible to reliably determine whether the shared information is valid.
  • the security code generation unit 105 further generates a falsification detection code for detecting falsification of data and shared information included in the received message as a security code (step S6011).
  • the security code verification unit 111 compares the falsification detection code included in the received message with the falsification detection code generated by the security code generation unit 105, and further determines the validity of the received message based on the comparison result. Verification is performed (step S6012). Since it did in this way, it can be discriminate
  • step S6001 the process determination control unit 109 determines that the shared information included in the received message is valid by the shared information verification unit 110, and the security code verification unit 111 determines that the received message is valid in step S6012. If it is determined that there is a message, it is determined in step S6014 that the received message is normal. On the other hand, in step S6001, the shared information verification unit 110 determines that the shared information included in the received message is not valid, and in step S6004, the security code verification unit 111 determines that the shared information included in the received message is correct. If so, it is determined in step S6010 that the received message is due to an unauthorized replay attack. Since it did in this way, it can be judged reliably whether a received message is normal or it is due to an unauthorized replay attack.
  • the information processing apparatus 1 further includes a communication information storage unit 207 that stores a process determination counter value used by the process determination control unit 109 to determine the normality of the received message.
  • the process determination control unit 109 determines that the shared information included in the received message is valid by the shared information verification unit 110, and determines that the received message is not valid by the security code verification unit 111 in step S6012.
  • the security code verification unit 111 is determined in step S6004.
  • step S6009 When it is determined that there is an error in the shared information included in the received message, when the process of step S6009 is executed, the process determination counter value is incremented and updated (step S510). Then, the process determination counter value is compared with a predetermined threshold (step S511), and based on the comparison result, it is determined whether or not the received message is due to an unauthorized attack (steps S509 and S512). Since it did in this way, this can be judged also when a received message is an unauthorized attack other than a replay attack.
  • the security code generation unit 105 may set the correction range of the error correction code based on the communication quality of the network 2. In this way, the correction range of the error correction code can be set appropriately.
  • an error detection code may be used instead of an error correction code or a falsification detection code.
  • the security code generation unit 105 performs the same processing as in step S303 in FIG. Similarly, an error detection code is generated in step S6003 of FIG. In this case, the processes in steps S6006 to S6008 in FIG. 12 are not executed.
  • the security code generation unit 105 performs processing on these information based on the header information, data, and shared information acquired in step S302.
  • An error detection code for detecting the presence or absence of an error is generated.
  • an error detection code is generated in step S6011 of FIG. Note that the error detection code generated in this case only needs to include at least data as an error detection target. Even if it does in this way, there can exist an effect similar to the above.
  • a tampering detection code may not be given to a message transmitted / received between the information processing apparatuses 1.
  • the process in step S3032 in FIG. 10 and the processes in steps S6011 to S6013 and S6015 in FIG. 12 are not performed. Even if it does in this way, there can exist an effect similar to the above.
  • a third embodiment of the present invention will be described.
  • a message is divided and transmitted among a plurality of information processing apparatuses 1
  • the message is divided so that the message is transmitted and received according to the CAN communication protocol.
  • the configuration of the information processing system according to the present embodiment and the configuration of the information processing apparatus 1 are the same as those in the first and second embodiments, and thus description thereof is omitted.
  • the process which CPU10 performs is common in 1st Embodiment or 2nd Embodiment, description is abbreviate
  • the message generation unit 104 of the information processing apparatus 1 on the transmission side divides the transmission message into a plurality of parts when outputting the transmission message to the communication unit 30 in step S305 of FIG. 6 or FIG. be able to. Thereby, the message is transmitted from the communication unit 30 to the other information processing apparatus 1 via the network 2 in a state where the original message structure is divided.
  • FIG. 13 is a diagram illustrating an example in which the message generation unit 104 divides a transmission message into four messages.
  • a transmission message including header information 801, data 802, shared information 803, error correction code 804, falsification detection code 805, and footer information 806 is divided into four parts is shown. Note that the transmission message before division can be generated by the method described in the second embodiment.
  • the header information 807, 809, 811 and 814 and the footer information 808, 810, 813 and 816 attached to the divided transmission message shown in FIG. 13 are information unique to the CAN communication protocol.
  • the data 802 in the first divided message and the shared information 803 and 804 in the second divided message are the same as those before the division.
  • the falsification detection code 812 in the third divided message corresponds to the lower 64 bits of the falsification detection code 805 before division
  • the falsification detection code 815 in the fourth divided message is the falsification detection code before division. This corresponds to the upper 64 bits of 805.
  • the data field in the CAN communication protocol is 64 bits, and the number of bits of the data 802 and the total number of bits of the shared information 803 and the error correction code 804 are each 64 bits.
  • the transmission message can be divided in this way.
  • the message dividing method is not limited to this. For example, when there is a remainder with respect to 64 bits of the data field, padding using a 0-bit value may be performed.
  • the message analyzing unit 108 of the information processing apparatus 1 on the receiving side receives the message divided into a plurality of pieces as described above by the communication unit 30, the message analyzing unit 108 accumulates the plurality of divided messages until the original message length is reached. .
  • the message analysis unit 108 reproduces the original message before the division by removing header information and footer information from each divided message and arranging them in order. Thereafter, the message reception process of FIG. 8 is performed using the reproduced message before division.
  • step S502 of FIG. 8 it is preferable that the message analysis unit 108 updates the channel counter value only when the first divided message is received and does not update it when the remaining divided messages are received.
  • the message analysis unit 108 of the information processing apparatus 1 on the reception side associates each divided message with the ID of the message including the data 802, the shared information 803, the error correction code 804, and the falsification detection code 805. It is also possible to make a judgment by making the ID of a message including the message in a separate system and using a correspondence table of each ID.
  • the message association method is not limited to this.
  • the information processing apparatus 1 can receive a plurality of divisions received by the communication unit 30 when another information processing apparatus 1 divides a message into a plurality of pieces and transmits the message. By accumulating the message up to the original message length, the message before division is reproduced. Since it did in this way, a message can be transmitted / received between several information processing apparatuses according to the communication protocol of a network.
  • the information processing apparatus 1 on the transmission side may arbitrarily select whether or not to divide a transmission message for transmission. Furthermore, in this case, the message generation unit 104 generates a transmission message so that the amount of shared information and security code information of the transmission message transmitted in a divided manner is smaller than that in the case of transmission without division. May be. In that case, at least one of the information amounts obtained by dividing the shared information and the security code included in each divided transmission message when the transmission message is divided and transmitted is transmitted without dividing the transmission message. This is smaller than the information amount of the shared information or the information amount of the security code included in the transmission message. In this way, even when a transmission message is divided and transmitted, an increase in the amount of communication data associated with the division can be suppressed as much as possible.
  • setting conditions when the shared information generation unit 101 generates shared information in the information processing apparatus 1 on the transmission side and a security code generation unit 105 Changes the setting conditions when generating the security code.
  • the information amount of the shared information and the security code in the transmission message generated by the message generation unit 104 can be arbitrarily adjusted to achieve the above state.

Abstract

 情報処理装置は、ネットワークを介して接続された他の情報処理装置と共有される共有情報を生成する共有情報生成部と、メッセージを受信する通信部と、メッセージに含まれる共有情報と、共有情報生成部により生成された共有情報とを比較し、その比較結果に基づいて、メッセージに含まれる共有情報の正当性を検証する共有情報検証部と、共有情報に基づくセキュリティ用符号を生成するセキュリティ用符号生成部と、メッセージに含まれるセキュリティ用符号と、セキュリティ用符号生成部により生成されたセキュリティ用符号とを比較し、その比較結果に基づいて、メッセージに含まれる共有情報の正誤を検証するセキュリティ用符号検証部と、共有情報検証部による検証結果と、セキュリティ用符号検証部による検証結果とに基づいて、メッセージの正常性を判断する処理判断制御部と、を備える。

Description

情報処理装置、メッセージ認証方法
 本発明は、ネットワークに接続されて利用される情報処理装置と、ネットワークに接続された複数の情報処理装置間のメッセージ認証方法に関する。
 現在では、自動車の車載ネットワークにおける代表的な標準プロトコルとして、CAN(Controller Area Network)が普及している。さらに今後は、CANを拡張したCAN FD(Flexible Data-Rate)も普及してくることが予想されている。
 このような車載ネットワークでは、侵入者により通信に対する不正な攻撃が行われる危険性がある。車両には一般的に、OBD2(On-Board-Diagnostics 2)ポートと呼ばれる、車載ネットワークに直接繋がっている診断用のインタフェースが設けられている。たとえば、このOBD2ポートに侵入者が不正な機器を接続し、これを用いて、車載ネットワークに対するリプレイ攻撃などが行なわれる危険性がある。ここで、リプレイ攻撃とは、通信路上を流れるメッセージを侵入者が盗聴して事前に取得し、取得したメッセージを再送することで、車載ネットワークの各機器に不正な動作を引き起こす攻撃である。他にも、たとえば車外のシステムと連携して動作する情報処理装置をマルウェアに感染させることで、感染した当該装置が偽のメッセージを車載ネットワークに送信するようにして、このメッセージを受信した制御装置に誤動作を引き起こすといった攻撃なども考えられる。
 上記のような不正攻撃の脅威に対する有効な対策としては、車載ネットワークの各情報処理装置間を流れるメッセージに対して、改ざん検知符号としてMAC(Message Authentication Code)を用いたメッセージ認証を実施することが知られている(特許文献1)。この特許文献1に開示された技術では、各情報処理装置において、メッセージIDごとにメッセージが送信された回数をカウントする。そして、メッセージを送信する側の情報処理装置は、データ、送信回数、メッセージIDからMACを生成し、メッセージとは別に送信する。一方、メッセージを受信する側の情報処理装置は、受信したメッセージにおける、データ、送信回数、メッセージIDを基にMACを算出し、これを送信側の情報処理装置から別途受信したMACと比較する。その結果、これらのMAC同士が異なっている場合は、受信したメッセージが不正なものと認識し、以降では、そのメッセージIDを用いたメッセージを受け付けなくする。これにより、リプレイ攻撃やデータの改ざんによる情報処理装置の誤作動を防止する。
日本国特開2013-98719号公報
 特許文献1に記載の技術において用いられるMACには、一般にノイズに弱いという特性がある。そのため、メッセージにノイズが混ざることでMACの値が変化した場合は、不正なメッセージでないにも関わらず、これを受信した情報処理装置において不正なメッセージとして認識されることになる。その結果、当該情報処理装置は、不正な攻撃が行われたと誤って判断してしまい、本来は不正な攻撃を受けたときにのみ実施すべき上記のような対策を、ノイズが混ざったときも実施することになる。これにより、不正な攻撃を受けていないにも関わらず、たとえば自動車の運転を妨げるような動作が受信側の情報処理装置において行われ、実用性に乏しい運用をユーザが強いられてしまうおそれがある。
 本発明は、以上の問題に鑑みなされたものである。本発明の主な目的は、ネットワークに接続された各情報処理装置において受信したメッセージが不正な攻撃によるものか否かを正しく判別することにある。
 本発明による情報処理装置は、ネットワークを介して接続された他の情報処理装置から送信されたメッセージを受信するものであって、前記他の情報処理装置と共有される共有情報を生成する共有情報生成部と、前記メッセージを受信する通信部と、前記メッセージに含まれる共有情報と、前記共有情報生成部により生成された共有情報とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正当性を検証する共有情報検証部と、前記共有情報に基づくセキュリティ用符号を生成するセキュリティ用符号生成部と、前記メッセージに含まれるセキュリティ用符号と、前記セキュリティ用符号生成部により生成されたセキュリティ用符号とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正誤を検証するセキュリティ用符号検証部と、前記共有情報検証部による検証結果と、前記セキュリティ用符号検証部による検証結果とに基づいて、前記メッセージの正常性を判断する処理判断制御部と、を備える。
 本発明によるメッセージ認証方法は、ネットワークを介して接続された2つの情報処理装置間で送受信されるメッセージの認証方法であって、前記メッセージを受信する情報処理装置により、前記2つの情報処理装置間で共有される共有情報を生成する第1の処理ステップと、前記メッセージを受信する第2の処理ステップと、前記第2の処理ステップで受信したメッセージに含まれる共有情報と、前記第1の処理ステップで生成した共有情報とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正当性を検証する第3の処理ステップと、前記共有情報に基づくセキュリティ用符号を生成する第4の処理ステップと、前記第2の処理ステップで受信したメッセージに含まれるセキュリティ用符号と、前記第4の処理ステップで生成したセキュリティ用符号とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正誤を検証する第5の処理ステップと、前記第3の処理ステップでの検証結果と、前記第5の処理ステップでの検証結果とに基づいて、前記メッセージの正常性を判断する第6の処理ステップと、を実行する。
 本発明によれば、ネットワークに接続された各情報処理装置において受信したメッセージが不正な攻撃によるものか否かを正しく判別することができる。
情報処理システムの構成例を示す図 情報処理装置の構成例を示す図 CPUが実行する処理のフローチャート 共有情報生成処理のフローチャート 共有情報のテーブル構成の例を示す図 第1の実施形態によるメッセージ送信処理のフローチャート 送信メッセージのデータ構造の例を示す図 メッセージ受信処理のフローチャート 第1の実施形態によるメッセージ種別判断処理のフローチャート 第2の実施形態によるメッセージ送信処理のフローチャート 送信メッセージのデータ構造の例を示す図 第2の実施形態によるメッセージ種別判断処理のフローチャート 送信メッセージを4つのメッセージに分割した例を示す図 通信路カウンタ値の同期をとるためのメッセージのデータ構造の例を示す図
 以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
-第1の実施形態-
 以下では、本発明の一実施形態に係る情報処理装置およびメッセージ認証方法について説明する。本実施形態では、ネットワークを介して接続された複数の情報処理装置において、各情報処理装置間で共有される共有情報と、セキュリティ用符号である誤り検知符号とを用いて、各情報処理装置間で送受信されるメッセージの認証を行う例を説明する。
 図1は、本発明の一実施形態における情報処理システムの構成例を示す図である。図1に示す情報処理システムは、複数の情報処理装置1がネットワーク2を介して互いに接続されることにより構成されている。たとえば、車両に搭載されている様々な種類のECU(Electronic Control Unit)を、車両内のネットワークであるCAN(Controller Area Network)やCAN FDを介して互いに接続することで、図1の情報処理システムが構成される。この場合、各ECUが情報処理装置1に対応し、CANやCAN FDがネットワーク2に対応する。ただし、本発明の適用範囲はこれに限定されるものではなく、様々な種類の情報処理システムにおいて本発明を適用可能である。
 図2は、情報処理装置1の構成例を示す図である。情報処理装置1は、図2に示すように、CPU10、メモリ20および通信部30がバス40を介して互いに接続されることにより構成されている。
 CPU10は、共有情報生成部101、共有情報管理部102、鍵管理部103、メッセージ生成部104、セキュリティ用符号生成部105、メッセージ解析部108、処理判断制御部109、共有情報検証部110およびセキュリティ用符号検証部111を機能的に有している。CPU10は、所定のプログラムを実行することにより、メモリ20や通信部30を制御して、これらの各機能部として動作することができる。なお、これらの各機能部については、後で詳しく説明する。
 CPU10で実行されるプログラムは、予めメモリ20に格納されていてもよい。または、不図示の入出力インタフェースに接続された記憶媒体や不図示の通信媒体を介して、CPU10の動作に必要なプログラムを取得してもよい。この場合、取得したプログラムはメモリ20に記憶しておくこともできる。
 メモリ20は、上記のプログラムや、CPU10の動作に必要な各種のデータを記憶するための部分である。メモリ20には、たとえば一次記憶装置や二次記憶装置などを含むことができる。CPU10とメモリ20の間でのデータ通信は、バス40を介して行われる。メモリ20は、暗号情報記憶部206と、通信情報記憶部207とを機能的に有する。なお、これらの各機能部については、後で詳しく説明する。
 通信部30は、図1のネットワーク2と接続されており、CPU10の制御に応じて動作する。通信部30は、ネットワーク2を介して、他の情報処理装置1へのメッセージの送信や、他の情報処理装置1から送信されたメッセージの受信を行う。通信部30により他の情報処理装置1へと送信されるメッセージは、バス40を介してCPU10から通信部30に出力される。また、通信部30により他の情報処理装置1から受信したメッセージは、バス40を介して通信部30からCPU10に出力される。
 次に、CPU10とメモリ20がそれぞれ有する各機能部について説明する。
 共有情報生成部101は、各情報処理装置1間で共有される共有情報を生成する。共有情報生成部101により生成された共有情報は、暗号情報記憶部206に記憶される。
 共有情報管理部102は、共有情報の管理を行う。たとえば、共有情報生成部101が共有情報を生成するために必要な情報を取得したり、メッセージ数やメッセージ種類に応じて共有情報を更新したりする。
 鍵管理部103は、暗号化された共有情報やセキュリティ用符号を生成するために用いられる鍵データの管理を行う。
 メッセージ生成部104は、情報処理装置1から他の情報処理装置1への送信メッセージを生成する。メッセージ生成部104により生成された送信メッセージは、通信部30に出力され、通信部30から他の情報処理装置1へ送信される。
 セキュリティ用符号生成部105は、他の情報処理装置1との間で送受信されるメッセージの認証に用いるためのセキュリティ用符号を生成する。なお、本実施形態では、セキュリティ用符号生成部105は、セキュリティ用符号として誤り検知符号を生成するものとする。
 メッセージ解析部108は、通信部30で受信された他の情報処理装置1からの受信メッセージのデータ構造を解析し、その受信メッセージに含まれるデータ、共有情報、セキュリティ用符号などを抽出する。
 共有情報検証部110は、メッセージ解析部108で抽出された受信メッセージの共有情報と、共有情報生成部101で生成された共有情報とを比較し、その比較結果に基づいて、受信メッセージに含まれる共有情報の正当性を検証する。
 セキュリティ用符号検証部111は、メッセージ解析部108で抽出された受信メッセージのセキュリティ用符号と、セキュリティ用符号生成部105生成されたセキュリティ用符号とを比較し、その比較結果に基づいて、受信メッセージに含まれる共有情報の正当性を検証する。
 暗号情報記憶部206は、共有情報およびセキュリティ用符号の暗号化に関する暗号情報を記憶する。たとえば、共有情報生成部101やセキュリティ用符号生成部105が共有情報やセキュリティ用符号を暗号化する際に用いられる初期値や前述の鍵データなどが、暗号情報として暗号情報記憶部206に記憶される。
 通信情報記憶部207は、他の情報処理装置1との間でメッセージを送受信するために必要な通信情報を記憶する。たとえば、メッセージのカウンタ値や、メッセージ種別の判断に用いられる処理判断カウンタ値などが、通信情報として通信情報記憶部207に記憶される。
 なお、以上説明した機能部のうち、メッセージ生成部104やセキュリティ用符号生成部105を除いて情報処理装置1を構成してもよい。すなわち、CPU10は、共有情報生成部101、共有情報管理部102、鍵管理部103、メッセージ解析部108、処理判断制御部109、共有情報検証部110およびセキュリティ用符号検証部111のみを有する構成としてもよい。この場合、情報処理装置1は、メッセージ送信機能を有しないメッセージ認証向けの情報処理装置として利用することができる。
 図3は、CPU10が実行する処理のフローチャートである。CPU10は、所定の周期ごとに、図3のフローチャートに従った処理を繰り返し実行する。
 ステップS10では、CPU10は、共有情報を生成するか否かを判定する。共有情報は、たとえば車両のエンジン起動時や、他の情報処理装置1との間で通信を開始する直前または通信の合間など、所定のタイミングで生成される。こうした共有情報の生成タイミングに該当する場合、CPU10は、共有情報を生成すると判定してステップS20に進み、そうでない場合はステップS30に進む。
 ステップS20では、CPU10は、共有情報生成部101および共有情報管理部102により、共有情報生成処理を実行する。この共有情報生成処理の具体的な内容は、後で図4のフローチャートを参照して説明する。
 ステップS30では、CPU10は、他の情報処理装置1への送信メッセージの有無を判定する。送信メッセージが存在する場合はステップS40に進み、存在しない場合はステップS50に進む。
 ステップS40では、CPU10は、メッセージ生成部104およびセキュリティ用符号生成部105により、メッセージ送信処理を実行する。このメッセージ送信処理の具体的な内容は、後で図6のフローチャートを参照して説明する。
 ステップS50では、CPU10は、他の情報処理装置1からの受信メッセージの有無を判定する。受信メッセージが存在する場合はステップS60に進み、存在しない場合は図3のフローチャートの処理を終了する。
 ステップS60では、CPU10は、メッセージ解析部108、処理判断制御部109、共有情報検証部110およびセキュリティ用符号検証部111により、メッセージ受信処理を実行する。このメッセージ受信処理の具体的な内容は、後で図8のフローチャートを参照して説明する。ステップS60の処理を実行したら、CPU10は、図3のフローチャートの処理を終了する。
 なお、前記ステップS10からステップS40までの処理と、前記ステップS50からステップ60までの処理は、別プロセスとして並行して行なわれてもよい。
 次に、図3のステップS20で実行される共有情報生成処理について説明する。ステップS20において、CPU10は、共有情報生成部101において、たとえば擬似乱数生成器を用いてシーケンス番号を生成することにより、共有情報を生成することができる。図4は、この場合の共有情報生成処理のフローチャートである。
 ステップS201では、共有情報管理部102は、擬似乱数生成器により疑似乱数を生成するのに必要な付随情報を暗号情報記憶部206から取得する。ここでは、予め設定された付随情報の参照先を示す情報に基づいて、暗号情報記憶部206の所定の場所に記憶されている付随情報を読み出すことにより、付随情報を取得することができる。共有情報管理部102は、擬似乱数生成器のシード、擬似乱数を生成するための補助情報、擬似乱数生成器の内部状態などを付随情報として取得する。なお、補助情報とは、たとえば、擬似乱数生成器の初期値を決定するための初期化ベクトル(IV)である。また、擬似乱数生成器の内部状態とは、次回以降の疑似乱数を生成するために必要な情報であり、擬似乱数生成器がこれまでに生成済みの疑似乱数の個数に応じて変化する。
 ステップS202では、共有情報生成部101は、ステップS201で取得した付随情報を用いて擬似乱数列を生成する。
 ステップS203では、共有情報生成部101は、ステップS202で生成した擬似乱数列に基づいてシーケンス番号列を作成する。ここでは、予め定められた方法に従って、擬似乱数列を構成する各疑似乱数に対してシーケンス番号を順に作成して並べることにより、シーケンス番号列を作成することができる。
 ステップS204では、共有情報管理部102は、ステップS203で生成したシーケンス番号列を共有情報として暗号情報記憶部206に格納する。
 図5は、ステップS204で暗号情報記憶部206に格納される共有情報1070のテーブル構成の例を示す図である。共有情報1070において、通信路カウンタ値1071は、各シーケンス番号に対応する通信路カウンタ値を示す。乱数1072は、シーケンス番号として使用される乱数を示す。
 図4の説明に戻ると、ステップS205では、共有情報管理部102は、暗号情報記憶部206に記憶されている暗号情報のうち、ステップS203で疑似乱数列からシーケンス番号列を生成するのに必要な情報を更新する。ここで、暗号情報記憶部206には、たとえば、ステップS202で生成した擬似乱数列に含まれる疑似乱数のうちで、ステップS203でのシーケンス番号列の生成において未使用の擬似乱数の個数や先頭アドレスを示す情報などが、シーケンス番号列を生成するのに必要な情報として記憶されている。共有情報管理部102は、疑似乱数列の使用状況に応じて、これらの情報を更新する。
 たとえば、擬似乱数列に含まれる各疑似乱数のデータサイズをbビットとし、疑似乱数の個数をmとすると、前述のステップS202では、b×mビット分の擬似乱数列が生成される。このような場合に、擬似乱数列に含まれる疑似乱数の一つから生成されたシーケンス番号を含む送信メッセージが生成されて他の情報処理装置1に送信されると、共有情報管理部102は、暗号情報記憶部206に記憶されている暗号情報のうち、未使用の疑似乱数の個数を1つ減少させると共に、その先頭アドレスをbビット分だけ変化させる。このようにして、シーケンス番号列を生成するのに必要な情報が更新される。
 なお、上記のステップS205で情報が更新された結果、未使用の擬似乱数の個数が予め定められた所定値以下になった場合は、図4の処理フローを実行することで新たに疑似乱数列を生成し、これに基づいてシーケンス番号列を作成することが好ましい。さらに、予め定められた数を各情報処理装置間で事前に共有しておき、1つのシードから生成された擬似乱数列のバイト長がこの数に到達する度に、リシード(エントロピーソースの追加)を行ったり、シードの更新を行ったりしてもよい。リシードを行う場合、たとえば、NISTのSP800-90Aに記載されている方法を用いることができる。ただし、リシードの方法はこれに限定されず、実現可能な方法であればよい。また、シードの更新を行う場合、たとえば、ある情報処理装置1において更新用のシードを生成し、これを暗号化して他の情報処理装置1に送信するようにすればよい。ただし、シードの更新方法はこれに限定されず、実現可能な方法であればよい。このようにしてリシードやシードの更新を実施することにより、シードを把握していない第三者はシーケンス番号の予測がさらに困難になる、という効果がある。
 ステップS205の処理を実行したら、図4の共有情報生成処理を終了し、図3のステップS30に進む。以上説明した共有情報生成処理により、情報処理装置1は、他の情報処理装置1との間で共有される共有情報を生成できる。
 次に、図3のステップS40で実行されるメッセージ送信処理について説明する。ステップS40において、CPU10は、メッセージ生成部104により、ステップS20で生成された共有情報を利用して、不正なリプレイ攻撃の有無を判別するための送信メッセージを生成し、他の情報処理装置1に送信することができる。図6は、本発明の第1の実施形態によるメッセージ送信処理のフローチャートである。
 ステップS301では、メッセージ生成部104は、図1のネットワーク2を介して送受信されたメッセージの合計数を表す通信路カウンタ値を通信情報記憶部207から取得する。ここで取得される通信路カウンタ値は、全ての情報処理装置間で一致した値であればよい。たとえば、ネットワーク2を介してメッセージが流れるたびに、各情報処理装置1のメッセージ生成部104が通信路カウンタ値をインクリメントして通信情報記憶部207に格納してもよい。なお、通信路カウンタ値の更新には、全ての情報処理装置1で共通の方法を用いてもよい。または、全ての情報処理装置1で更新後のカウンタ値が一致していれば、各情報処理装置1が異なる更新方法を用いてもよい。
 ステップS302では、メッセージ生成部104は、通信情報記憶部207からヘッダ情報とデータを取得するとともに、ステップS301で取得した通信路カウンタ値に対応する共有情報を暗号情報記憶部206から取得する。ここで、ヘッダ情報とは、たとえば、ネットワーク2としてCAN FDを用いた場合には、アービトレーションフィールドやコントロールフィールドなどの情報である。他の通信プロトコルにおいては、たとえば、通信先、通信元、データ長等を示す情報をヘッダ情報として取得することができる。ただし、ヘッダ情報として必要な情報を含むものであれば、ステップS302で取得するヘッダ情報はこれらに限定されるものではない。
 ステップS303では、セキュリティ用符号生成部105は、ステップS302で取得した共有情報に対する誤り検知符号を生成する。ここでは、取得した共有情報に基づき、所定のアルゴリズムを用いて、その共有情報の誤りを検知するための誤り検知符号を生成する。たとえば、CRC(Cyclic Redundancy Check)などのアルゴリズムに従って、共有情報に対する誤り検知符号を生成することができる。
 ステップS304では、メッセージ生成部104は、ステップS302で取得したヘッダ情報、データおよび共有情報と、ステップS303で生成した誤り検知符号と、これらに対応するフッタ情報とに基づいて、送信メッセージを生成する。ここで、フッタ情報とは、たとえば、ネットワーク2としてCAN FDを用いた場合には、周期的冗長性チェックフィールドやアクノレッジフィールドの情報である。ただし、フッタ情報として必要な情報を含むものであれば、ステップS304で取得するフッタ情報はこれらに限定されるものではない。
 図7は、ステップS304で生成される送信メッセージのデータ構造の例を示す図である。送信メッセージは、ヘッダ情報411、データ412、共有情報413、誤り検知符号414、フッタ情報415から成る。
 図6の説明に戻ると、ステップS305では、メッセージ生成部104は、ステップS304で生成した送信メッセージを通信部30に出力する。これにより、生成した送信メッセージが通信部30からネットワーク2を介して他の情報処理装置1に送信されるようにする。
 ステップS306では、メッセージ生成部104は、ステップS301で取得した通信路カウンタ値を更新し、通信情報記憶部207に格納する。
 ステップS306の処理を実行したら、図6のメッセージ送信処理を終了し、図3のステップS50に進む。以上説明したメッセージ送信処理により、情報処理装置1は、セキュリティ用符号として共有情報に対する誤り検知符号を付与したメッセージを通信路に送信できる。
 次に、図3のステップS60で実行されるメッセージ受信処理について説明する。ステップS60において、CPU10は、他の情報処理装置1から図6に示したデータ構造のメッセージを受信したときに、メッセージ解析部108を用いてその受信メッセージのデータ構造を解析し、受信メッセージが不正な攻撃によるものなのかどうかを判別することができる。図8は、メッセージ受信処理のフローチャートである。
 ステップS501では、メッセージ解析部108は、通信部30を用いて、他の情報処理装置1から送信されたメッセージを受信する。ここでは、通信部30により受信されて通信部30からCPU10に出力された他の情報処理装置1からのメッセージを取得することで、受信メッセージを取得する。
 ステップS502では、メッセージ解析部108は、通信情報記憶部207から通信路カウンタ値を取得し、その通信路カウンタ値を更新する。なお、各情報処理装置間で管理する通信路カウンタ値にずれが生じても同期できるように、任意の情報処理装置が同期用のIDが付与されたメッセージを通信路に定期的に送信してもよい。
 図14は、通信路カウンタ値の同期をとるためのメッセージのデータ構造の例を示す図である。本メッセージのデータ構造は、同期用ID904が付与されたヘッダ情報901と、通信路カウンタ値902と、フッタ情報903から成る。
 図8の説明に戻ると、ステップS503では、メッセージ解析部108は、ステップS501で受信したメッセージのデータ構造を解析する。ここでは、図7に示したようなデータ構造を基に受信メッセージのデータ構造を解析することで、受信メッセージに含まれるデータ、共有情報、誤り検知符号をそれぞれ抽出する。
 ステップS504では、処理判断制御部109は、ステップS501で受信メッセージから抽出した共有情報および誤り検知符号に基づいて、受信メッセージの種別を判断するためのメッセージ種別判断処理を行う。このメッセージ種別判断処理の具体的な内容は、後で図9のフローチャートを参照して説明する。
 ステップS505では、処理判断制御部109は、ステップS504のメッセージ種別判断処理によって受信メッセージの種別を特定できたか否かを判断する。受信メッセージの種別を特定できた場合はステップS506に進み、特定できなかった場合はステップS510に進む。
 ステップS505からステップS506に進んだ場合、ステップS506では、処理判断制御部109は、受信メッセージの種別を特定できたかどうかを示す処理判断カウンタの値をクリアする。これにより、ステップS504のメッセージ種別判断処理によって受信メッセージの種別を特定できた場合は、処理判断カウンタの値をクリアし、所定の初期値(たとえば0)に戻す。ここで、処理判断カウンタは、前述のように受信メッセージの種別の判断に用いられるものであり、通信情報記憶部207に記憶されている。
 ステップS507では、処理判断制御部109は、ステップS504のメッセージ種別判断処理によって特定した受信メッセージの種別が、「正常」または「攻撃」のいずれであるかを判断する。受信メッセージの種別が「正常」である場合、すなわち受信メッセージが正常であるとの判断がステップS504でなされた場合は、ステップS508に進む。一方、受信メッセージの種別が「攻撃」である場合、すなわち受信メッセージが不正な攻撃によるものであるとの判断がステップS504でなされた場合は、ステップS509に進む。
 ステップS508では、処理判断制御部109は、受信メッセージを受け入れる。これにより、CPU10において、受信メッセージに含まれるデータに基づく制御処理が実行されるようになる。
 ステップS509では、処理判断制御部109は、受信メッセージを破棄し、所定の対策モードに移行する。ここで、対策モードとは、受信メッセージが不正な攻撃によるものと判断された場合に、情報処理装置1を、その情報処理装置1が含まれる情報処理システムの運用に悪影響を及ぼさないような制御状態へと移行させるためのモードである。たとえば、車両に搭載された情報処理システムであれば、情報処理装置1を車両の安全運転に影響を及ぼさないような制御状態へと移行させるように、対策モードを設定することが好ましい。
 対策モードに移行した情報処理装置1では、たとえば、当該受信メッセージと同じIDが設定された他の情報処理装置1からの受信メッセージを、以降では全て破棄する。または、攻撃の種類に応じて対策内容を変化させてもよい。たとえば、ステップS504で受信メッセージがリプレイ攻撃によるものであると判断した場合は、シーケンス番号を再生成すると共に、ユーザに対する警告を行うことなどが考えられる。車両に搭載された情報処理システムであれば、カーナビゲーション装置や車両に接続された携帯端末装置などに所定の警告画面を表示することで、ユーザへの警告を行うことができる。
 一方、ステップS505からステップS510に進んだ場合、ステップS510では、処理判断制御部109は、通信情報記憶部207に記憶されている処理判断カウンタの値をインクリメントして更新する。これにより、ステップS504のメッセージ種別判断処理によって受信メッセージの種別を特定できなかった場合は、処理判断カウンタの値を1つ増加させる。
 ステップS511では、処理判断制御部109は、ステップS510でインクリメントした処理判断カウンタ値と所定の閾値とを比較する。その結果、処理判断カウンタ値が閾値よりも大きい場合は、ステップS509に進む。一方、処理判断カウンタ値が閾値以下である場合は、ステップS512に進む。なお、ステップS511で処理判断カウンタ値と比較される閾値の大きさは、ネットワーク2の通信品質などに応じて変化させてもよい。その場合、情報処理システムの設計情報や運用開始前のテスト結果などに基づいて事前に閾値を設定してもよいし、ネットワーク2の通信品質をリアルタイムで計測し、その計測結果に基づいて閾値を逐次変化させてもよい。
 ステップS511からステップS509に進むと、処理判断制御部109は、これまでの受信メッセージが不正な攻撃によるものと判断して、前述のように受信メッセージを破棄し、所定の対策モードに移行する。
 ステップS512では、処理判断制御部109は、受信メッセージを破棄し、次のメッセージが受信されるまで待機する。この場合は、次のメッセージが受信されると、図8のステップS501以降の処理が再度実行される。
 ステップS508、S509またはS512のいずれかの処理を実行したら、図8のメッセージ受信処理を終了する。以上説明したメッセージ受信処理により、情報処理装置1は、受信メッセージが正常であるか、それとも不正な攻撃によるものかを判別することができる。
 続いて、図8のステップS504で実行されるメッセージ種別判断処理について説明する。図9は、本発明の第1の実施形態によるメッセージ種別判断処理のフローチャートである。
 ステップS5001では、処理判断制御部109は、共有情報検証部110を用いて、受信メッセージに含まれる共有情報の正当性の検証を行う。ここで、共有情報検証部110は、図3のステップS20の共有情報生成処理により生成されて格納された共有情報を暗号情報記憶部206から取得する。そして、取得した共有情報と、受信メッセージに含まれる共有情報とを比較して、これらが一致するか否かを判定する。この判定は、予め決められたルールに従って実施されればよい。たとえば、受信メッセージに含まれる共有情報のシーケンス番号をrKとし、共有情報検証部110が取得した共有情報において受信メッセージに対応するシーケンス番号をNとすると、N=rKであるか否かを判定する。その結果、N=rKであれば、受信メッセージに含まれる共有情報が正当なものと判断して、検証結果をOKとする。一方、N≠rKであれば、受信メッセージに含まれる共有情報が不正なものと判断して、検証結果をNGとする。なお、共有情報検証部110がシーケンス番号列を共有情報として取得した場合、そのシーケンス番号列の中でどのシーケンス番号が受信メッセージに対応するかの判断は、図8のステップS502で取得される通信路カウンタ値に基づいて行うことができる。
 ステップS5002では、処理判断制御部109は、ステップS5001で行われた共有情報の正当性の検証結果がOKまたはNGのいずれであったかを判定する。検証結果がOKであった場合はステップS5003に進み、NGであった場合はステップS5004に進む。
 ステップS5003では、処理判断制御部109は、受信メッセージを正常なものとして判断する。これにより、受信メッセージの種別が「正常」であることが特定される。
 ステップS5004では、処理判断制御部109は、セキュリティ用符号生成部105を用いて、受信メッセージに含まれる共有情報に基づく誤り検知符号を生成する。ここで、セキュリティ用符号生成部105は、図6のステップS303と同様の処理を行うことにより、受信メッセージに含まれる共有情報に対するセキュリティ用符号としての誤り検知符号を生成することができる。
 ステップS5005では、処理判断制御部109は、セキュリティ用符号検証部111を用いて、受信メッセージに含まれる共有情報の正誤の検証を行う。ここで、セキュリティ用符号検証部111は、ステップS5004で生成された誤り検知符号をセキュリティ用符号生成部105から取得する。そして、取得した誤り検知情報と、受信メッセージに含まれるセキュリティ用符号としての誤り検知符号とを比較して、これらが一致するか否かを判定する。その結果、両方の誤り検知符号が一致していれば、受信メッセージに含まれる共有情報には誤りがないと判断して、検証結果をOKとする。一方、誤り検知符号が一致していなければ、受信メッセージに含まれる共有情報には誤りがあると判断して、検証結果をNGとする。
 ステップS5006では、処理判断制御部109は、ステップS5005で行われた共有情報の正誤の検証結果がOKまたはNGのいずれであったかを判定する。検証結果がOKであった場合はステップS5008に進み、NGであった場合はステップS5007に進む。
 ステップS5007では、処理判断制御部109は、受信メッセージをリプレイ攻撃以外の原因による異常なメッセージと判断する。この場合、受信メッセージの種別は特定されない。なお、こうした異常メッセージの原因としては、たとえば、ネットワーク2におけるノイズ等による偶発的な通信ビット誤りや、リプレイ攻撃以外の不正な攻撃などが考えられる。
 ステップS5008では、処理判断制御部109は、受信メッセージを不正なリプレイ攻撃によるものと判断する。すなわち、この場合には、共有情報が正当ではなく、かつ共有情報には誤りがないことから、その共有情報が既に使用済みであり、これを不正に入手した第三者がリプレイ攻撃を行ったと判断できる。これにより、受信メッセージの種別が「攻撃」であることが特定される。
 ステップS5003、S5007またはS5008のいずれかを実行したら、図9のメッセージ種別判断処理を終了し、図8のステップS505に進む。以上説明したメッセージ種別判断処理により、情報処理装置1は、受信メッセージがリプレイ攻撃なのかどうかを判別できる。
 以上説明した本発明の第1の実施形態によれば、以下の作用効果を奏する。
(1)情報処理装置1は、ネットワーク2を介して接続された他の情報処理装置1から送信されたメッセージを受信する。情報処理装置1は、共有情報生成部101、通信部30、共有情報検証部110、セキュリティ用符号生成部105、セキュリティ用符号検証部111および処理判断制御部109を備える。共有情報生成部101は、他の情報処理装置1と共有される共有情報を生成する(ステップS20)。通信部30は、他の情報処理装置1から送信されたメッセージを受信する(ステップS501)。共有情報検証部110は、この受信メッセージに含まれる共有情報と共有情報生成部101により生成された共有情報とを比較し、その比較結果に基づいて、受信メッセージに含まれる共有情報の正当性を検証する(ステップS5001)。セキュリティ用符号生成部105は、共有情報に基づくセキュリティ用符号を生成する(ステップS5004)。セキュリティ用符号検証部111は、受信メッセージに含まれるセキュリティ用符号と、セキュリティ用符号生成部105により生成されたセキュリティ用符号とを比較し、その比較結果に基づいて、受信メッセージに含まれる共有情報の正誤を検証する(ステップS5005)。処理判断制御部109は、共有情報検証部110による検証結果と、セキュリティ用符号検証部111による検証結果とに基づいて、受信メッセージの正常性を判断する(ステップS5003、S5007、S5008)。このようにしたので、ネットワーク2に接続された各情報処理装置1において受信したメッセージが不正な攻撃によるものか否かを正しく判別することができる。
(2)ステップS5004では、セキュリティ用符号生成部105は、共有情報の誤りを検知するための誤り検知符号をセキュリティ用符号として生成する。ステップS5005では、セキュリティ用符号検証部111は、受信メッセージに含まれる誤り検知符号と、セキュリティ用符号生成部105により生成された誤り検知符号とを比較し、その比較結果に基づいて、受信メッセージに含まれる共有情報の正誤を検証する。このようにしたので、共有情報の正誤を簡単に、かつ正確に検証することができる。
(3)処理判断制御部109は、ステップS5001で共有情報検証部110により受信メッセージに含まれる共有情報が正当であると判断された場合には、ステップS5003において受信メッセージが正常であると判断する。一方、ステップS5001で共有情報検証部110により受信メッセージに含まれる共有情報が正当ではないと判断され、かつステップS5005でセキュリティ用符号検証部111により受信メッセージに含まれる共有情報に誤りがないと判断された場合には、ステップS5008において受信メッセージが不正なリプレイ攻撃によるものであると判断する。このようにしたので、受信メッセージが正常であるか、それとも不正なリプレイ攻撃によるものであるかを、確実に判断することができる。
(4)情報処理装置1は、処理判断制御部109により受信メッセージの正常性を判断するために用いられる処理判断カウンタ値を記憶する通信情報記憶部207をさらに備える。処理判断制御部109は、ステップS5001で共有情報検証部110により受信メッセージに含まれる共有情報が正当ではないと判断され、かつステップS5005でセキュリティ用符号検証部111により受信メッセージに含まれる共有情報に誤りがあると判断されることで、ステップS5007の処理を実行した場合には、処理判断カウンタ値をインクリメントして更新する(ステップS510)。そして、処理判断カウンタ値と所定の閾値とを比較し(ステップS511)、その比較結果に基づいて、受信メッセージが不正な攻撃によるものであるか否かを判断する(ステップS509、S512)。このようにしたので、受信メッセージがリプレイ攻撃以外の不正な攻撃によるものである場合にも、これを判断することができる。
(5)情報処理装置1は、共有情報生成部101、通信部30、共有情報検証部110、セキュリティ用符号生成部105、セキュリティ用符号検証部111および処理判断制御部109に加えてさらに、メッセージ生成部104を備える。メッセージ生成部104は、共有情報生成部101により生成された共有情報およびセキュリティ用符号生成部105により生成されたセキュリティ用符号を含む送信メッセージを生成する(ステップS304)。通信部30は、この送信メッセージを他の情報処理装置1に送信すると共に、他の情報処理装置1からの受信メッセージを受信する。このようにしたので、複数の情報処理装置1間でメッセージを送受信し、メッセージ認証を行うことができる。
-第2の実施形態-
 以下では、本発明の第2の実施形態について説明する。第2の実施形態では、第1の実施形態で説明した誤り検知符号に替えて、誤り訂正符号や改ざん検知符号をセキュリティ用符号として使用する場合の例を説明する。なお、本実施形態に係る情報処理システムの構成や、情報処理装置1の構成については、第1の実施形態と同様であるため、説明を省略する。また、CPU10が実行する処理は、図6に示したメッセージ送信処理および図9に示したメッセージ種別判断処理以外については、第1の実施形態と共通であるため、説明を省略する。
 図10は、本発明の第2の実施形態によるメッセージ送信処理のフローチャートである。このフローチャートは、図6に示した第1の実施形態によるメッセージ送信処理のフローチャートと比べて、ステップS303およびS304の処理に替えて、ステップS3031、S3032およびS3041の処理を実行する点が異なっている。
 ステップS3031では、セキュリティ用符号生成部105は、ステップS302で取得した共有情報に対する誤り訂正符号を生成する。ここでは、取得した共有情報に基づき、所定のアルゴリズムを用いて、その共有情報の誤りを検知および訂正するための誤り訂正符号を生成する。たとえば、所定の多項式を用いることで、共有情報に対応するECC(Error CorrectingCode)を算出することにより、誤り訂正符号を生成することができる。このとき、送信メッセージが通過するネットワーク2の通信品質に基づいて、生成する誤り訂正符号の訂正範囲を設定してもよい。たとえば、送信メッセージがネットワーク2を通過する際に生じる平均的な通信エラーのビット数がnビットである場合、ステップS3031では、nビット以上の訂正能力を有する誤り訂正符号を生成することが好ましい。なお、誤り訂正符号の訂正範囲の設定は、たとえばECCの算出に用いる多項式を適切に選定することで実現できる。
 ステップS3032では、セキュリティ用符号生成部105は、ステップS302で取得したヘッダ情報、データおよび共有情報に対する改ざん検知符号を生成する。ここでは、取得したヘッダ情報、データおよび共有情報に基づいて、これらの情報に対する改ざんの有無を検知するための改ざん検知符号を生成する。たとえば、所定のアルゴリズムを利用してMAC(Message Authentication Code)を算出することにより、改ざん検知符号を生成することができる。なお、MACの算出方法としては、たとえばハッシュ関数を用いるものや、ブロック暗号アルゴリズムを用いるものなどが知られている。また、共通鍵ブロック暗号アルゴリズムであるAESを用いてもよい。具体的には、MACの算出対象とするヘッダ情報、データおよび共有情報を含み、かつブロック長に合わせて付与されたパディング用データを加えたデータ列を入力メッセージとして所定の処理を行うと、128ビット等のブロック暗号が出力される。このブロック暗号をMACとして利用することができる。その他にも、任意の手法を利用して改ざん検知符号を生成することができる。なお、送信メッセージのヘッダ情報、データおよび共有情報のうち一部の情報に基づいて、改ざん検知符号を生成してもよい。
 ステップS3041では、メッセージ生成部104は、ステップS302で取得したヘッダ情報、データおよび共有情報と、ステップS3031で生成した誤り訂正符号と、ステップS3032で生成した改ざん検知符号と、これらに対応するフッタ情報とに基づいて、送信メッセージを生成する。ステップS305では、この送信メッセージが通信部30に出力されて送信される。
 図11は、ステップS3041で生成される送信メッセージのデータ構造の例を示す図である。送信メッセージは、ヘッダ情報421、データ422、共有情報423、誤り訂正符号424、改ざん検知符号425およびフッタ情報426から成る。なお、ヘッダ情報421、データ422、共有情報423、フッタ情報426については、第1の実施形態で説明した図7の送信メッセージにおけるヘッダ情報411、データ412、共有情報413とそれぞれ同様のものである。
 図12は、本発明の第2の実施形態によるメッセージ種別判断処理のフローチャートである。
 ステップS6001、S6002では、処理判断制御部109は、図9のステップS5001、S5002とそれぞれ同様の処理を行う。
 ステップS6003では、処理判断制御部109は、セキュリティ用符号生成部105を用いて、受信メッセージに含まれる共有情報に基づく誤り訂正符号を生成する。ここで、セキュリティ用符号生成部105は、図10のステップS3031と同様の処理を行うことにより、受信メッセージに含まれる共有情報に対するセキュリティ用符号としての誤り訂正符号を生成することができる。
 ステップS6004では、処理判断制御部109は、セキュリティ用符号検証部111を用いて、受信メッセージに含まれる共有情報の正誤の検証を行う。ここで、セキュリティ用符号検証部111は、ステップS6003で生成された誤り訂正符号を誤り検知符号の代わりに用いて、図9のステップS5005と同様の処理を行う。その結果、受信メッセージに含まれる共有情報に誤りがなければ検証結果をOKとし、誤りがあれば検証結果をNGとする。
 ステップS6005では、処理判断制御部109は、ステップS6004で行われた共有情報の正誤の検証結果がOKまたはNGのいずれであったかを判定する。検証結果がOKであった場合はステップS6010に進み、NGであった場合はステップS6006に進む。
 ステップS6006では、処理判断制御部109は、セキュリティ用符号検証部111を用いて、受信メッセージに含まれる共有情報を訂正する。ここで、セキュリティ用符号検証部111は、ステップS6003で生成された誤り訂正符号を用いて、所定のアルゴリズムに従った計算を行うことにより、受信メッセージに含まれる共有情報を訂正する。これにより、たとえば、誤り訂正符号であるECCのハミング距離が一定以内である場合に、受信メッセージの共有情報に含まれる誤りを訂正することができる。ただし、受信メッセージに含まれる共有情報に誤りが多い場合は、誤り訂正符号を用いても共有情報を完全には訂正できないため、誤りが残ってしまうことがある。
 ステップS6007では、処理判断制御部109は、共有情報検証部110を用いて、受信メッセージに含まれる共有情報の正当性の再検証を行う。ここで、共有情報検証部110は、暗号情報記憶部206から取得した共有情報と、ステップS6006で誤り訂正された共有情報とを比較して、ステップS6001と同様に、これらが一致するか否かを判定する。その結果、取得した共有情報と誤り訂正後の共有情報とが一致していれば、受信メッセージに含まれる共有情報が正当なものと判断して、再検証結果をOKとする。一方、これらが一致していなければ、受信メッセージに含まれる共有情報が不正なものと判断して、再検証結果をNGとする。
 ステップS6008では、処理判断制御部109は、ステップS6007で行われた共有情報の正当性の再検証結果がOKまたはNGのいずれであったかを判定する。再検証結果がOKであった場合はステップS6011に進み、NGであった場合はステップS6009に進む。
 ステップS6009では、処理判断制御部109は、受信メッセージを、事前に生成された偽メッセージが用いられた不正な攻撃による異常なメッセージか、または、誤り訂正不可能な共有情報のノイズによる異常なメッセージと判断する。この場合、受信メッセージの種別は特定されない。
 ステップS6010では、処理判断制御部109は、図9のステップS5008と同様に、受信メッセージを不正なリプレイ攻撃によるものと判断する。これにより、受信メッセージの種別が「攻撃」であることが特定される。
 ステップS6011では、処理判断制御部109は、セキュリティ用符号生成部105を用いて、受信メッセージに含まれるヘッダ情報、データおよび共有情報に基づく改ざん検知符号を生成する。ここで、セキュリティ用符号生成部105は、図10のステップS3032と同様の処理を行うことにより、受信メッセージに含まれるヘッダ情報、データおよび共有情報に対するセキュリティ用符号としての改ざん検知符号を生成することができる。
 ステップS6012では、処理判断制御部109は、セキュリティ用符号検証部111を用いて、受信メッセージの正当性の検証を行う。ここで、セキュリティ用符号検証部111は、ステップS6011で生成された改ざん検知符号をセキュリティ用符号生成部105から取得する。そして、取得した改ざん検知符号と、受信メッセージに含まれるセキュリティ用符号としての改ざん検知符号とを比較して、これらが一致するか否かを判定する。その結果、両方の改ざん検知符号が一致していれば、受信メッセージが改ざんされていない正当なものと判断して、検証結果をOKとする。一方、改ざん検知符号が一致していなければ、受信メッセージが改ざんされた不正なものと判断して、検証結果をNGとする。
 ステップS6013では、処理判断制御部109は、ステップS6012で行われた受信メッセージの正当性の検証結果がOKまたはNGのいずれであったかを判定する。検証結果がOKであった場合はステップS6014に進み、NGであった場合はステップS6015に進む。
 ステップS6014では、処理判断制御部109は、図9のステップS5003と同様に、受信メッセージを正常なものとして判断する。これにより、受信メッセージの種別が「正常」であることが特定される。
 ステップS6015では、処理判断制御部109は、受信メッセージを、ヘッダ情報、データ等がリアルタイムに改ざんされて生成された偽メッセージが用いられた不正な攻撃による異常なメッセージか、または、ヘッダ情報、データ等に対するノイズによる異常なメッセージと判断する。この場合も、ステップS6009と同様に、受信メッセージの種別は特定されない。
 ステップS6009、S6010、S6014またはS6015のいずれかを実行したら、図12のメッセージ種別判断処理を終了し、図8のステップS505に進む。以上説明したメッセージ種別判断処理により、情報処理装置1は、受信メッセージがリプレイ攻撃、事前に用意された偽メッセージによる攻撃、またはリアルタイムに生成された偽メッセージによる攻撃なのかどうかを判別できる。
 以上説明した本発明の第2の実施形態によれば、第1の実施形態で説明した(1)、(5)の作用効果に加えて、さらに以下の作用効果を奏する。
(6)ステップS6003では、セキュリティ用符号生成部105は、共有情報の誤りを検知および訂正するための誤り訂正符号をセキュリティ用符号として生成する。ステップS6004では、セキュリティ用符号検証部111は、受信メッセージに含まれる誤り訂正符号と、セキュリティ用符号生成部105により生成された誤り訂正符号とを比較し、その比較結果に基づいて、受信メッセージに含まれる共有情報の正誤を検証する。このようにしたので、共有情報の正誤を簡単に、かつ正確に検証することができる。
(7)セキュリティ用符号検証部111は、ステップS6004で受信メッセージに含まれる共有情報に誤りがあることを検知した場合に、その共有情報を誤り訂正符号に基づいて訂正する(ステップS6006)。共有情報検証部110は、セキュリティ用符号検証部111により訂正された共有情報と、共有情報生成部101により生成された共有情報とを比較し、その比較結果に基づいて、受信メッセージに含まれる共有情報の正当性を再検証する(ステップS6007)。このようにしたので、偶発的な通信ビット誤り等によって受信メッセージの共有情報の一部に誤りが生じた場合でも、その共有情報が正当であるか否かを確実に判断することができる。
(8)セキュリティ用符号生成部105は、誤り訂正符号に加えて、受信メッセージに含まれるデータおよび共有情報の改ざんを検知するための改ざん検知符号をセキュリティ用符号としてさらに生成する(ステップS6011)。セキュリティ用符号検証部111は、受信メッセージに含まれる改ざん検知符号と、セキュリティ用符号生成部105により生成された改ざん検知符号とを比較し、その比較結果に基づいて、受信メッセージの正当性をさらに検証する(ステップS6012)。このようにしたので、受信メッセージが不正な攻撃によるものか否かをさらに正しく判別することができる。
(9)処理判断制御部109は、ステップS6001で共有情報検証部110により受信メッセージに含まれる共有情報が正当であると判断され、かつステップS6012でセキュリティ用符号検証部111により受信メッセージが正当であると判断された場合には、ステップS6014において受信メッセージが正常であると判断する。一方、ステップS6001で共有情報検証部110により受信メッセージに含まれる共有情報が正当ではないと判断され、かつステップS6004でセキュリティ用符号検証部111により受信メッセージに含まれる共有情報に誤りがないと判断された場合には、ステップS6010において受信メッセージが不正なリプレイ攻撃によるものであると判断する。このようにしたので、受信メッセージが正常であるか、それとも不正なリプレイ攻撃によるものであるかを、確実に判断することができる。
(10)情報処理装置1は、処理判断制御部109により受信メッセージの正常性を判断するために用いられる処理判断カウンタ値を記憶する通信情報記憶部207をさらに備える。処理判断制御部109は、ステップS6001で共有情報検証部110により受信メッセージに含まれる共有情報が正当であると判断され、かつステップS6012でセキュリティ用符号検証部111により受信メッセージが正当ではないと判断されることで、ステップS6015の処理を実行した場合、または、ステップS6001で共有情報検証部110により受信メッセージに含まれる共有情報が正当ではないと判断され、かつステップS6004でセキュリティ用符号検証部111により受信メッセージに含まれる共有情報に誤りがあると判断されることで、ステップS6009の処理を実行した場合には、処理判断カウンタ値をインクリメントして更新する(ステップS510)。そして、処理判断カウンタ値と所定の閾値とを比較し(ステップS511)、その比較結果に基づいて、受信メッセージが不正な攻撃によるものであるか否かを判断する(ステップS509、S512)。このようにしたので、受信メッセージがリプレイ攻撃以外の不正な攻撃によるものである場合にも、これを判断することができる。
(11)セキュリティ用符号生成部105は、ネットワーク2の通信品質に基づいて、誤り訂正符号の訂正範囲を設定してもよい。このようにすれば、誤り訂正符号の訂正範囲を適切に設定することができる。
 なお、以上説明した第2の実施形態において、誤り訂正符号や改ざん検知符号の代わりに誤り検知符号を用いてもよい。誤り訂正符号の代わりに誤り検知符号を用いる場合、図10のステップS3031では、セキュリティ用符号生成部105は、図6のステップS303と同様の処理を行う。また、図12のステップS6003でも同様にして、誤り検知符号を生成する。この場合、図12のステップS6006~S6008の処理は実行されない。一方、改ざん検知符号の代わりに誤り検知符号を用いる場合、図10のステップS3032では、セキュリティ用符号生成部105は、ステップS302で取得したヘッダ情報、データおよび共有情報に基づいて、これらの情報に対する誤りの有無を検知するための誤り検知符号を生成する。また、図12のステップS6011でも同様にして、誤り検知符号を生成する。なお、この場合に生成される誤り検知符号は、少なくともデータを誤り検知の対象に含んでいればよい。このようにしても、上記と同様の作用効果を奏することができる。
 また、以上説明した第2の実施形態において、情報処理装置1間で送受信されるメッセージに改ざん検知符号を付与しないこととしてもよい。この場合、図10のステップS3032の処理や、図12のステップS6011~S6013およびS6015の処理は実施されない。このようにしても、上記と同様の作用効果を奏することができる。
-第3の実施形態-
 以下では、本発明の第3の実施形態について説明する。第3の実施形態では、複数の情報処理装置1間でメッセージを分割して送信する例を説明する。たとえば、ネットワーク2としてCANを利用した場合に、メッセージを分割することで、CANの通信プロトコルに従ってメッセージの送受信が行われるようにする。なお、本実施形態に係る情報処理システムの構成や、情報処理装置1の構成については、第1および第2の実施形態と同様であるため、説明を省略する。また、CPU10が実行する処理は、第1の実施形態または第2の実施形態と共通であるため、説明を省略する。
 本実施形態において、送信側の情報処理装置1のメッセージ生成部104は、図6または図10のステップS305において送信メッセージを通信部30に出力する際に、送信メッセージを複数に分割して出力することができる。これにより、元のメッセージ構造が分割された状態で、通信部30からネットワーク2を介して他の情報処理装置1にメッセージが送信されるようにする。
 図13は、メッセージ生成部104が送信メッセージを4つのメッセージに分割した例を示す図である。図13の例では、ヘッダ情報801、データ802、共有情報803、誤り訂正符号804、改ざん検知符号805およびフッタ情報806から成る送信メッセージを4つに分割した場合の例を示している。なお、分割前の送信メッセージは、第2の実施形態で説明したような方法で生成することができる。
 図13に示した分割後の送信メッセージにそれぞれ付されたヘッダ情報807、809、811および814と、フッタ情報808、810、813および816とは、CANの通信プロトコルに固有の情報である。一方、一つ目の分割メッセージにおけるデータ802と、二つ目の分割メッセージにおける共有情報803および804とは、分割前のものと同一である。また、三つ目の分割メッセージにおける改ざん検知符号812は、分割前の改ざん検知符号805の下位64ビット分に対応し、四つ目の分割メッセージにおける改ざん検知符号815は、分割前の改ざん検知符号805の上位64ビット分に対応する。なお、図13の例では、CANの通信プロトコルにおけるデータフィールドが64ビットであり、データ802のビット数および共有情報803と誤り訂正符号804の合計ビット数がそれぞれ64ビットである場合を示している。たとえば、このようにして送信メッセージを分割することができる。ただし、メッセージの分割方法はこれに限らない。たとえば、データフィールドの64ビットに対して余りがある場合は、0ビット値を用いたパディングを行ってもよい。
 一方、受信側の情報処理装置1のメッセージ解析部108は、上記のようにして複数に分割されたメッセージを通信部30により受信したら、その複数の分割メッセージを元のメッセージ長になるまで蓄積する。分割メッセージが元のメッセージ長まで蓄積されたら、メッセージ解析部108は、各分割メッセージからヘッダ情報やフッタ情報を除去して順に並べることで、元の分割前のメッセージを再現する。その後、再現された分割前のメッセージを用いて、図8のメッセージ受信処理を行う。このとき、図8のステップS502では、メッセージ解析部108は、最初の分割メッセージを受信したときにのみ通信路カウンタ値を更新し、残りの分割メッセージを受信したときは更新しないことが好ましい。なお、受信側の情報処理装置1のメッセージ解析部108は、分割された各メッセージを対応付ける方法として、たとえば、データ802を含むメッセージのIDと、共有情報803と誤り訂正符号804と改ざん検知符号805を含むメッセージのIDを別系統にしておき、それぞれのIDの対応表を用いることで判断してもよい。ただし、メッセージの対応付け方法はこれに限らない。
 以上説明した本発明の第3の実施形態によれば、情報処理装置1は、他の情報処理装置1がメッセージを複数に分割して送信した場合に、通信部30により受信された複数の分割メッセージを元のメッセージ長まで蓄積することにより、分割前のメッセージを再現する。このようにしたので、複数の情報処理装置の間で、ネットワークの通信プロトコルに従ってメッセージの送受信を行うことができる。
 なお、以上説明した第3の実施形態において、送信側の情報処理装置1では、送信メッセージを分割して送信するか否かを任意に選択できるようにしてもよい。さらにこの場合、メッセージ生成部104は、分割しないで送信される場合と比べて、分割して送信される送信メッセージの共有情報やセキュリティ用符号の情報量が少なくなるように、送信メッセージを生成してもよい。その場合、送信メッセージを分割して送信する場合の各分割送信メッセージに含まれる共有情報とセキュリティ用符号をそれぞれ合計した情報量のいずれか少なくとも一つは、送信メッセージを分割しないで送信する場合の送信メッセージに含まれる共有情報の情報量またはセキュリティ用符号の情報量よりも少なくなる。このようにすれば、送信メッセージを分割して送信する場合でも、分割に伴う通信データ量の増加をなるべく抑えることができる。
 具体的には、たとえば、送信メッセージを分割する場合としない場合とで、送信側の情報処理装置1において共有情報生成部101が共有情報を生成する際の設定条件や、セキュリティ用符号生成部105がセキュリティ用符号を生成する際の設定条件などを変化させる。これにより、メッセージ生成部104で生成される送信メッセージにおける共有情報やセキュリティ用符号の情報量を任意に調節して、上記のような状態とすることができる。
 なお、以上説明した各実施形態や各種の変化例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されない。本発明は上述した実施形態や変形例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の変更が可能である。
 次の優先権基礎出願の開示内容は引用文としてここに組み込まれる。
 日本国特許出願2014年第230715号(2014年11月13日出願)
1 情報処理装置
2 ネットワーク
20 メモリ
30 通信部
40 バス
101 共有情報生成部
102 共有情報管理部
103 鍵管理部
104 メッセージ生成部
105 セキュリティ用符号生成部
108 メッセージ解析部
109 処理判断制御部
110 共有情報検証部
111 セキュリティ用符号検証部
206 暗号情報記憶部
207 通信情報記憶部

Claims (14)

  1.  ネットワークを介して接続された他の情報処理装置から送信されたメッセージを受信する情報処理装置であって、
     前記他の情報処理装置と共有される共有情報を生成する共有情報生成部と、
     前記メッセージを受信する通信部と、
     前記メッセージに含まれる共有情報と、前記共有情報生成部により生成された共有情報とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正当性を検証する共有情報検証部と、
     前記共有情報に基づくセキュリティ用符号を生成するセキュリティ用符号生成部と、
     前記メッセージに含まれるセキュリティ用符号と、前記セキュリティ用符号生成部により生成されたセキュリティ用符号とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正誤を検証するセキュリティ用符号検証部と、
     前記共有情報検証部による検証結果と、前記セキュリティ用符号検証部による検証結果とに基づいて、前記メッセージの正常性を判断する処理判断制御部と、を備える情報処理装置。
  2.  請求項1に記載の情報処理装置において、
     前記セキュリティ用符号生成部は、前記共有情報の誤りを検知するための誤り検知符号を前記セキュリティ用符号として生成し、
     前記セキュリティ用符号検証部は、前記メッセージに含まれる誤り検知符号と、前記セキュリティ用符号生成部により生成された誤り検知符号とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正誤を検証する情報処理装置。
  3.  請求項1に記載の情報処理装置において、
     前記セキュリティ用符号生成部は、前記共有情報の誤りを検知および訂正するための誤り訂正符号を前記セキュリティ用符号として生成し、
     前記セキュリティ用符号検証部は、前記メッセージに含まれる誤り訂正符号と、前記セキュリティ用符号生成部により生成された誤り訂正符号とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正誤を検証する情報処理装置。
  4.  請求項3に記載の情報処理装置において、
     前記セキュリティ用符号検証部は、前記メッセージに含まれる共有情報に誤りがあることを検知した場合に、その共有情報を前記誤り訂正符号に基づいて訂正し、
     前記共有情報検証部は、前記セキュリティ用符号検証部により訂正された共有情報と、前記共有情報生成部により生成された共有情報とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正当性を再検証する情報処理装置。
  5.  請求項2乃至4のいずれか一項に記載の情報処理装置において、
     前記セキュリティ用符号生成部は、前記誤り検知符号または前記誤り訂正符号に加えて、前記メッセージに含まれるデータおよび共有情報の改ざんを検知するための改ざん検知符号を前記セキュリティ用符号としてさらに生成し、
     前記セキュリティ用符号検証部は、前記メッセージに含まれる改ざん検知符号と、前記セキュリティ用符号生成部により生成された改ざん検知符号とを比較し、その比較結果に基づいて、前記メッセージの正当性をさらに検証する情報処理装置。
  6.  請求項2または3に記載の情報処理装置において、
     前記処理判断制御部は、
     前記共有情報検証部により前記メッセージに含まれる共有情報が正当であると判断された場合には、前記メッセージが正常であると判断し、
     前記共有情報検証部により前記メッセージに含まれる共有情報が正当ではないと判断され、かつ前記セキュリティ用符号検証部により前記メッセージに含まれる共有情報に誤りがないと判断された場合には、前記メッセージが不正な攻撃によるものであると判断する情報処理装置。
  7.  請求項6に記載の情報処理装置において、
     前記処理判断制御部により前記メッセージの正常性を判断するために用いられるカウンタ値を記憶する通信情報記憶部をさらに備え、
     前記処理判断制御部は、
     前記共有情報検証部により前記メッセージに含まれる共有情報が正当ではないと判断され、かつ前記セキュリティ用符号検証部により前記メッセージに含まれる共有情報に誤りがあると判断された場合には、前記カウンタ値を更新し、
     前記カウンタ値と所定の閾値とを比較し、その比較結果に基づいて、前記メッセージが不正な攻撃によるものであるか否かを判断する情報処理装置。
  8.  請求項5に記載の情報処理装置において、
     前記処理判断制御部は、
     前記共有情報検証部により前記メッセージに含まれる共有情報が正当であると判断され、かつ前記セキュリティ用符号検証部により前記メッセージが正当であると判断された場合には、前記メッセージが正常であると判断し、
     前記共有情報検証部により前記メッセージに含まれる共有情報が正当ではないと判断され、かつ前記セキュリティ用符号検証部により前記メッセージに含まれる共有情報に誤りがないと判断された場合には、前記メッセージが不正な攻撃によるものであると判断する情報処理装置。
  9.  請求項8に記載の情報処理装置において、
     前記処理判断制御部により前記メッセージの正常性を判断するために用いられるカウンタ値を記憶する通信情報記憶部をさらに備え、
     前記処理判断制御部は、
     前記共有情報検証部により前記メッセージに含まれる共有情報が正当であると判断され、かつ前記セキュリティ用符号検証部により前記メッセージが正当ではないと判断された場合、または、前記共有情報検証部により前記メッセージに含まれる共有情報が正当ではないと判断され、かつ前記セキュリティ用符号検証部により前記メッセージに含まれる共有情報に誤りがあると判断された場合には、前記カウンタ値を更新し、
     前記カウンタ値と所定の閾値とを比較し、その比較結果に基づいて、前記メッセージが不正な攻撃によるものであるか否かを判断する情報処理装置。
  10.  請求項3または4に記載の情報処理装置において、
     前記セキュリティ用符号生成部は、前記ネットワークの通信品質に基づいて、前記誤り訂正符号の訂正範囲を設定する情報処理装置。
  11.  請求項1乃至4のいずれか一項に記載の情報処理装置において、
     前記他の情報処理装置が前記メッセージを複数に分割して送信した場合に、前記通信部により受信された複数の分割メッセージを元のメッセージ長まで蓄積することにより、分割前の前記メッセージを再現するメッセージ解析部をさらに備える情報処理装置。
  12.  ネットワークを介して接続された他の情報処理装置に送信メッセージを送信すると共に、前記他の情報処理装置から送信された受信メッセージを受信する情報処理装置であって、
     前記他の情報処理装置と共有される共有情報を生成する共有情報生成部と、
     前記共有情報に基づくセキュリティ用符号を生成するセキュリティ用符号生成部と、
     前記共有情報および前記セキュリティ用符号を含む前記送信メッセージを生成するメッセージ生成部と、
     前記メッセージ生成部により生成された前記送信メッセージを送信すると共に、前記受信メッセージを受信する通信部と、
     前記受信メッセージに含まれる共有情報と、前記共有情報生成部により生成された共有情報とを比較し、その比較結果に基づいて、前記受信メッセージに含まれる共有情報の正当性を検証する共有情報検証部と、
     前記受信メッセージに含まれるセキュリティ用符号と、前記セキュリティ用符号生成部により生成されたセキュリティ用符号とを比較し、その比較結果に基づいて、前記受信メッセージに含まれる共有情報の正誤を検証するセキュリティ用符号検証部と、
     前記共有情報検証部による検証結果と、前記セキュリティ用符号検証部による検証結果とに基づいて、前記受信メッセージの正常性を判断する処理判断制御部と、を備える情報処理装置。
  13.  請求項12に記載の情報処理装置において、
     前記通信部は、前記送信メッセージを分割して送信可能であり、
     前記送信メッセージを分割して送信する場合の各分割送信メッセージに含まれる共有情報とセキュリティ用符号をそれぞれ合計した情報量のいずれか少なくとも一つは、前記送信メッセージを分割しないで送信する場合の前記送信メッセージに含まれる共有情報の情報量またはセキュリティ用符号の情報量よりも少ない情報処理装置。
  14.  ネットワークを介して接続された2つの情報処理装置間で送受信されるメッセージの認証方法であって、
     前記メッセージを受信する情報処理装置により、
     前記2つの情報処理装置間で共有される共有情報を生成する第1の処理ステップと、
     前記メッセージを受信する第2の処理ステップと、
     前記第2の処理ステップで受信したメッセージに含まれる共有情報と、前記第1の処理ステップで生成した共有情報とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正当性を検証する第3の処理ステップと、
     前記共有情報に基づくセキュリティ用符号を生成する第4の処理ステップと、
     前記第2の処理ステップで受信したメッセージに含まれるセキュリティ用符号と、前記第4の処理ステップで生成したセキュリティ用符号とを比較し、その比較結果に基づいて、前記メッセージに含まれる共有情報の正誤を検証する第5の処理ステップと、
     前記第3の処理ステップでの検証結果と、前記第5の処理ステップでの検証結果とに基づいて、前記メッセージの正常性を判断する第6の処理ステップと、を実行するメッセージ認証方法。
PCT/JP2015/081740 2014-11-13 2015-11-11 情報処理装置、メッセージ認証方法 WO2016076358A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/525,978 US10425231B2 (en) 2014-11-13 2015-11-11 Information processing apparatus and method for authenticating message
CN201580056690.5A CN107005412B (zh) 2014-11-13 2015-11-11 信息处理装置、消息认证方法
EP15858297.3A EP3220576B1 (en) 2014-11-13 2015-11-11 Information processing device and message authentication method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014230715A JP6218184B2 (ja) 2014-11-13 2014-11-13 情報処理装置、メッセージ認証方法
JP2014-230715 2014-11-13

Publications (1)

Publication Number Publication Date
WO2016076358A1 true WO2016076358A1 (ja) 2016-05-19

Family

ID=55954437

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/081740 WO2016076358A1 (ja) 2014-11-13 2015-11-11 情報処理装置、メッセージ認証方法

Country Status (5)

Country Link
US (1) US10425231B2 (ja)
EP (1) EP3220576B1 (ja)
JP (1) JP6218184B2 (ja)
CN (1) CN107005412B (ja)
WO (1) WO2016076358A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109661797A (zh) * 2016-09-21 2019-04-19 株式会社自动网络技术研究所 通信系统、中继装置、通信装置及通信方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6846991B2 (ja) * 2016-07-05 2021-03-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 異常検知電子制御ユニット、車載ネットワークシステム及び異常検知方法
JP6723955B2 (ja) * 2017-05-12 2020-07-15 日立オートモティブシステムズ株式会社 情報処理装置及び異常対処方法
JP6761793B2 (ja) * 2017-10-13 2020-09-30 日立オートモティブシステムズ株式会社 車両用制御装置
US10581609B2 (en) * 2017-10-23 2020-03-03 Nxp B.V. Log message authentication with replay protection
CN108833074B (zh) * 2018-04-28 2021-02-26 西安电子科技大学 基于同态加密的车辆自组织网络的认证系统及方法
JP7016783B2 (ja) * 2018-10-17 2022-02-07 日立Astemo株式会社 情報処理装置、管理装置
US20230261898A1 (en) * 2020-10-19 2023-08-17 Nissan Motor Co., Ltd. Relay device, communication network system, and communication control method
CN112383555B (zh) * 2020-11-17 2022-06-03 宏图智能物流股份有限公司 一种物流网络中的网络请求有效性验证方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10269290A (ja) * 1997-03-26 1998-10-09 Sony Corp データ送受信方法及び装置
JP2005252709A (ja) * 2004-03-04 2005-09-15 Mitsubishi Electric Corp 誤り訂正装置および誤り訂正方法
JP2013048374A (ja) * 2011-08-29 2013-03-07 Toyota Motor Corp 保護通信方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5301034B2 (ja) * 2010-05-19 2013-09-25 三洋電機株式会社 車載器
JP5770602B2 (ja) 2011-10-31 2015-08-26 トヨタ自動車株式会社 通信システムにおけるメッセージ認証方法および通信システム
US8983069B2 (en) * 2013-03-14 2015-03-17 Robert Bosch Gmbh System and method for counter mode encrypted communication with reduced bandwidth
CN104077690B (zh) * 2014-06-24 2020-08-28 北京安讯奔科技有限责任公司 一次性密码生成的方法、装置及认证方法、认证系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10269290A (ja) * 1997-03-26 1998-10-09 Sony Corp データ送受信方法及び装置
JP2005252709A (ja) * 2004-03-04 2005-09-15 Mitsubishi Electric Corp 誤り訂正装置および誤り訂正方法
JP2013048374A (ja) * 2011-08-29 2013-03-07 Toyota Motor Corp 保護通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3220576A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109661797A (zh) * 2016-09-21 2019-04-19 株式会社自动网络技术研究所 通信系统、中继装置、通信装置及通信方法
CN109661797B (zh) * 2016-09-21 2021-07-20 株式会社自动网络技术研究所 通信系统、中继装置及通信方法

Also Published As

Publication number Publication date
JP2016096419A (ja) 2016-05-26
EP3220576A1 (en) 2017-09-20
US10425231B2 (en) 2019-09-24
JP6218184B2 (ja) 2017-10-25
CN107005412A (zh) 2017-08-01
US20170324557A1 (en) 2017-11-09
EP3220576B1 (en) 2019-03-06
EP3220576A4 (en) 2018-05-30
CN107005412B (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
JP6218184B2 (ja) 情報処理装置、メッセージ認証方法
US9252945B2 (en) Method for recognizing a manipulation of a sensor and/or sensor data of the sensor
CN110493197B (zh) 一种登录处理方法及相关设备
US8520839B2 (en) Data transmitter with a secure and efficient signature
CN106257863A (zh) 用于防止待经由总线系统传输的有效数据包被操纵的方法
US11245535B2 (en) Hash-chain based sender identification scheme
US10461938B2 (en) Method for manipulation protection
KR20160104565A (ko) 통신 시스템 및 통신 장치
US20190123908A1 (en) Arithmetic Device, Authentication System, and Authentication Method
US10009357B2 (en) Data frame for protected data transmissions
US10726161B2 (en) Information processing device and malicious message detection method
KR101492514B1 (ko) 보안 콘텐츠 보호 시스템을 사용하는 방법, 장치 및 시스템
US10862675B2 (en) Method for exchanging messages between security-relevant devices
EP1615370A1 (en) Authentication of short messages
KR20210110408A (ko) 센서의 측정값들에 서명하기 위한 방법, 장치 및 명령어들을 포함하는 컴퓨터 판독 가능 저장 매체
KR20150109202A (ko) 차량용 통신 데이터 인증 방법 및 시스템
WO2014156328A1 (ja) 車載通信システム及び通信装置
CN113395253A (zh) 用于在网络中传输数据的方法和设备
CN115226041A (zh) 安全的广播内容递送和验证
CN117614652A (zh) 基于can总线的车载网络消息认证方法及相关设备

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

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015858297

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15525978

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE