Communication protection system, communication protection method and program

The communication protection system ensures secure data transfer by encrypting communication data based on sender and destination affiliations, addressing the risk of data compromise across vehicle segments, thus maintaining confidentiality and integrity.

JP2025139529APending Publication Date: 2025-09-26PANASONIC AUTOMOTIVE SYST CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024095140
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-12
Filing Date
2024-06-12
Publication Date
2025-09-26

AI Technical Summary

Technical Problem

In vehicle communication systems, there is a risk of compromising the confidentiality and integrity of communication data due to potential interception or tampering across segments that span multiple ECUs, even when communication is logically within the same segment, due to constraints on physical layout and software configuration.

Method used

A communication protection system that includes a receiving unit, transfer destination determination unit, identification unit, judgment unit, and encryption/decryption unit to determine and enforce encryption based on the affiliation of the sender and destination virtual machines, ensuring secure data transfer within defined segments.

Benefits of technology

The system effectively protects communication data from interception and tampering by encrypting only necessary data, thereby maintaining confidentiality and integrity while minimizing communication delays.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025139529000001_ABST
    Figure 2025139529000001_ABST
Patent Text Reader

Abstract

To provide a communication protection system etc., that hardly spoil secrecy and integrity of communication data.SOLUTION: A communication protection system 100 comprises a reception part 101, a transfer destination determination part 102, an identification part 103, a determination part 104, an encryption / decryption part (encryption part) 107, and a data transfer part 108. The reception part 101 receives communication data. The transfer destination determination part 102 determines a transfer destination of the communication data. The identification part 103 identifies an affiliation of a transmission source of the communication data and an affiliation of a transfer destination of the communication data. The determination part 104 determines whether to encrypt the communication data based on the affiliations of the transmission source and the transfer destination identified. The encryption / decryption part 107 outputs encrypted communication data when it is determined that the communication data is to be encrypted. The data transfer part 108 transfers the communication data to the transfer destination.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a communication protection system mounted on a vehicle. [Background technology]

[0002] With the evolution of automotive architecture, a technology that integrates the functions of multiple ECUs (Electronic Control Units) into a single ECU using virtualization technology has become known. Furthermore, an increasing number of vehicles are now capable of software updates even after purchase, such as paid upgrades in software-defined vehicles (SDVs) or the incorporation of third-party applications. While this improves user convenience, it also increases the importance of security measures, such as defense against or response to attacks from malicious software.

[0003] Against this background, a security system is being considered that separates the safety area, which includes functions related to the vehicle's safety (such as driving, turning, and stopping), from the external connection area (EP: Entry Point), which contains external connection functions that could serve as an entry point for attackers, in the dynamically updated software environment of a vehicle, so that even if an attacker is allowed to enter the EP, the damage will not extend to the vehicle's safety functions.

[0004] For example, Patent Document 1 discloses a technology that provides hierarchical virtualization using a hypervisor, and Patent Document 2 discloses a technology that dynamically changes the segment configuration called partitions of a computer system. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Special Publication No. 2009-506462 [Patent Document 2] Patent No. 4199444 Summary of the Invention [Problem to be solved by the invention]

[0006] However, when introducing such segments into an in-vehicle architecture, as in the technology disclosed in Patent Document 2, for example, there is a possibility that a segment may exist across multiple ECUs due to constraints on the physical layout of ECUs. In such a segment, even if communication is logically within the same segment, communication data may be temporarily transmitted and received via an in-vehicle bus external to the ECU. Furthermore, even if communication is within the same ECU and the same segment, depending on the software configuration within the ECU, communication data may be temporarily transmitted and received via another segment. In such cases, there is a risk that communication data that should be shared only within the segment may be intercepted or tampered with by other ECUs or software belonging to other segments, which could compromise the confidentiality or integrity of the communication data.

[0007] Therefore, the present disclosure provides a communication protection system and the like that is less likely to compromise the confidentiality and integrity of communication data. [Means for solving the problem]

[0008] A communication protection system according to one aspect of the present disclosure is a communication protection system mounted on a vehicle, and includes a receiving unit, a transfer destination determination unit, an identification unit, a judgment unit, an encryption unit, and a data transfer unit. The receiving unit receives communication data. The transfer destination determination unit determines a transfer destination of the communication data. The identification unit identifies the affiliation of the sender of the communication data and the affiliation of the transfer destination of the communication data. The judgment unit determines whether to encrypt the communication data based on the identified affiliation of the sender and the affiliation of the transfer destination. If the encryption unit determines that the communication data should be encrypted, it outputs the encrypted communication data. The data transfer unit transfers the communication data to the transfer destination.

[0009] A communication protection method according to one aspect of the present disclosure is a communication protection method executed by a communication protection system mounted on a vehicle. The communication protection method receives communication data. The communication protection method determines a transfer destination of the communication data. The communication protection method identifies the affiliation of a sender of the communication data and the affiliation of a transfer destination of the communication data. The communication protection method determines whether to encrypt the communication data based on the identified affiliation of the sender and the affiliation of the transfer destination. If the communication protection method determines that the communication data should be encrypted, it outputs the encrypted communication data. The communication protection method transfers the communication data to the transfer destination.

[0010] A program according to one aspect of the present disclosure causes one or more processors to execute the communication protection method. [Effects of the Invention]

[0011] According to one aspect of the present disclosure, it is possible to realize a communication protection system or the like in which the confidentiality and integrity of communication data are less likely to be compromised. [Brief explanation of the drawings]

[0012] [Figure 1] FIG. 1 is a block diagram illustrating an example of a functional configuration of an in-vehicle system according to an embodiment. [Figure 2] FIG. 2 is a block diagram illustrating an example of a functional configuration of the ECU according to the embodiment. [Figure 3] FIG. 3 is a block diagram illustrating an example of a functional configuration of a communication protection system according to an embodiment. [Figure 4] FIG. 4 is a diagram illustrating an example of a routing table. [Figure 5] FIG. 5 is a diagram illustrating an example of the identification table. [Figure 6] FIG. 6 is a diagram illustrating an example of a format of communication data. [Figure 7] FIG. 7 is a flowchart showing an example of the operation of the communication protection system according to the embodiment. [Figure 8]FIG. 8 is a diagram showing an outline of a communication protection system according to a modified embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0013] Hereinafter, the embodiments will be specifically described with reference to the drawings.

[0014] The embodiments described below are all comprehensive or specific examples, and the numerical values, shapes, materials, components, arrangement positions and connection forms of the components shown in the following embodiments are merely examples and are not intended to limit the present disclosure.

[0015] (Embodiment) A communication protection system (also referred to as a "vehicle security system") according to an embodiment will be described below.

[0016] [1. In-vehicle systems] First, an in-vehicle system A1 equipped with a communication protection system according to an embodiment will be described with reference to Fig. 1. Fig. 1 is a block diagram showing an example of the functional configuration of the in-vehicle system A1 according to an embodiment. The in-vehicle system A1 is installed in a vehicle (an example of a moving object). The in-vehicle system A1 includes a plurality of (four in this example) ECUs 1 to 4 and an in-vehicle bus 5 connecting these ECUs 1 to 4.

[0017] Each of the ECUs 1 to 4 is a computer including a processor (microprocessor) and memory. The memory may be a read-only memory (ROM) or a random-access memory (RAM), and may store programs executed by the processor. Each of the ECUs 1 to 4 utilizes virtualization technology to operate one or more virtual computers (virtual machines). In this embodiment, two virtual machines 11 and 12 operate in the ECU 1, two virtual machines 21 and 22 operate in the ECU 2, two virtual machines 31 and 32 operate in the ECU 3, and one virtual machine 41 operates in the ECU 4. Communication between virtual machines within the same ECU is performed via a virtualization environment (described later) within the ECU. On the other hand, communication between virtual machines in different ECUs is performed via an in-vehicle bus 5.

[0018] In the in-vehicle system A1, a segment consisting of one or more virtual machines is defined, and the virtual machines are logically divided into a plurality of segments. In the in-vehicle system A1, it is possible to permit communication between virtual machines belonging to the same segment, while restricting communication between virtual machines belonging to different segments.

[0019] Here, each virtual machine is equipped with a communication protection system 100, as will be described later. That is, the communication protection system 100 belongs to any one of a plurality of logically divided segments. Also, the communication protection system 100 belongs to any one of a plurality of ECUs.

[0020] A segment can include virtual machines installed in different ECUs. That is, a segment may be defined across multiple ECUs. A virtual machine can belong to multiple segments.

[0021] In this embodiment, as shown in FIG. 1 , three segments 10, 20, and 30 are defined. The virtual machine 11 of ECU1 and the virtual machine 21 of ECU2 belong to segment 10. The virtual machine 12 of ECU1 and the virtual machines 31 and 32 of ECU3 belong to segment 20. The virtual machines 21 and 22 of ECU2 and the virtual machine 41 of ECU4 belong to segment 30. In this way, the virtual machines provided in different ECUs belong to each of the segments 10, 20, and 30. Furthermore, the virtual machine 21 of ECU2 belongs to both segments 10 and 30.

[0022] [2. ECU] Next, an ECU according to an embodiment will be described. Fig. 2 is a block diagram showing an example of the functional configuration of the ECU 1 according to the embodiment. The ECU 1 includes hardware 14 configured, for example, by an SoC (System On Chip), and a virtualized environment 13 runs on the hardware 14. In the virtualized environment 13, one or more virtual machines (here, virtual machines 11 and 12) that are separated from each other are running, and one or more different OSs (here, OSs 110 and 120) run on each of the one or more virtual machines.

[0023] The hardware 14 is a machine or device that can accept data, perform logical operations on the data, store the data in memory, and display the data on a display or the like. The hardware 14 may include a processor and memory. The hardware 14 also includes a communication interface for communicating with other hardware in the vehicle via, for example, Ethernet, a Controller Area Network (CAN), or a Serial Peripheral Interface (SPI).

[0024] The virtualization environment 13 is, for example, a hypervisor, and is software that serves as a virtualization infrastructure for running one or more virtual machines (here, the virtual machines 11 and 12).

[0025] The virtual machine 11 virtually includes a CPU (Central Processing Unit), memory, and a disk for storing files, and is equipped with an OS 110. One or more applications (here, applications 111 and 112) run on the OS 110. The OS 110 also includes a communication protection system (also referred to as a "communication control unit") 1100. The communication protection system 1100 controls communication between virtual machines by encrypting or decrypting communication data, transferring communication data, etc., as will be described later.

[0026] The virtual machine 12 virtually comprises a CPU, a memory, and a disk for storing files, and is equipped with an OS 120. One or more applications (here, applications 121 and 122) run on the OS 120. The OS 120 also comprises a communication protection system (also referred to as a "communication control unit") 1200. The communication protection system 1200 controls communication between virtual machines by encrypting or decrypting communication data, transferring communication data, etc., as will be described later. Hereinafter, when there is no particular need to distinguish between the communication protection systems 1100 and 1200, they will be referred to as the "communication protection system 100."

[0027] The functional configuration of ECUs 2 to 4 is basically the same as the basic configuration of ECU 1, and therefore a detailed description thereof will be omitted here. Each of ECUs 2 to 4 is provided with hardware, similar to ECU 1, and a virtualized environment operates on the hardware. In the virtualized environment, one or more virtual machines that are isolated from each other are running, and one or more different operating systems operate on each of the one or more virtual machines. Furthermore, each of ECUs 2 to 4 has a communication protection system 100, similar to ECU 1.

[0028] [3. Communication Protection System] Next, a communication protection system 100 according to an embodiment will be described. Fig. 3 is a block diagram showing an example of the functional configuration of the communication protection system 100 according to the embodiment. The communication protection system 100 includes a receiving unit 101, a forwarding destination determining unit 102, an identifying unit 103, a determining unit 104, a routing table storage unit 105, an identifying table storage unit 106, an encryption / decryption unit 107, and a data transferring unit 108. Here, a communication protection system 1100 provided in the OS 110 of the virtual machine 11 will be described as an example. The communication protection system 100 described below is provided in the OS of each virtual machine, similar to the OS 110 of the virtual machine 11.

[0029] The receiving unit 101 receives communication data that a virtual machine (here, the virtual machine 11) transmits to another virtual machine as an input to the communication protection system 100. The receiving unit 101 also receives communication data that a virtual machine (here, the virtual machine 11) receives from another virtual machine as an input to the communication protection system 100.

[0030] The forwarding destination determination unit 102 determines the forwarding destination of the communication data received by the receiving unit 101 by referring to the routing table stored in the routing table storage unit 105. Here, the routing table is a table that indicates, for each virtual machine, to which virtual machine the received communication data should be forwarded. The routing table storage unit 105 of the communication protection system 100 of each virtual machine stores a routing table with different contents.

[0031] Fig. 4 is a diagram showing an example of a routing table. Fig. 4(a) shows an example of a routing table stored by the virtual machine 32 of the ECU 3, Fig. 4(b) shows an example of a routing table stored by the virtual machine 31 of the EUC 3, and Fig. 4(c) shows an example of a routing table stored by the virtual machine 11 of the ECU 1. Note that routing tables such as those shown in Fig. 4 are also stored in other virtual machines.

[0032] 4, the routing table indicates the virtual machine to which communication data is to be transferred according to the combination of the source virtual machine and the destination virtual machine of the communication data. For example, by referring to the routing table shown in (a) of FIG. 4, the transfer destination determination unit 102 can determine that communication data whose source is virtual machine 32 and whose destination is virtual machine 31 should be transferred to virtual machine 31.

[0033] When the receiving unit 101 receives communication data including a combination of a source and a destination that is not shown in the routing table, the transfer destination determination unit 102 determines that transfer of the communication data is prohibited and discards the communication data. For example, when the receiving unit 101 receives communication data whose source is the virtual machine 32 and whose destination is the virtual machine 11, the transfer destination determination unit 102 can determine, by referring to the routing table shown in (a) of Figure 4, that transfer of the communication data is prohibited because the combination of the source "virtual machine 32" and the destination "virtual machine 11" is not shown in the routing table.

[0034] The identification unit 103 refers to the identification table stored in the identification table storage unit 106 to identify the ECU and segment to which the virtual machine that is the sender of the communication data received by the receiving unit 101 belongs (hereinafter, for simplicity, these may be collectively referred to as "virtual machine affiliation"), and the affiliation of the virtual machine to which the communication data is to be transferred. Here, the identification table is a table that indicates the ECU and segment to which each virtual machine belongs. The identification table storage units 106 of the communication protection systems 100 for each virtual machine all store identification tables with the same contents.

[0035] Fig. 5 is a diagram showing an example of the identification table. In the example shown in Fig. 5, the identification table indicates to which ECU and which segment each of virtual machines 11, 12, 21, 22, 31, 32, 41, and 42 belongs. For example, by referring to the identification table shown in Fig. 5, the identification unit 103 can determine that virtual machine 11 belongs to ECU1 and segment 10, and that virtual machine 21 belongs to ECU2 and segments 10 and 30.

[0036] The determination unit 104 determines whether to encrypt the communication data received by the receiving unit 101. The determination unit 104 also determines whether to decrypt the communication data received by the receiving unit 101. In this embodiment, the determination unit 104 determines whether to encrypt the communication data based on whether the received communication data is encrypted and the affiliation of the source virtual machine of the communication data and the destination virtual machine of the communication data identified by the identification unit 103. Specifically, the determination unit 104 determines not to encrypt the communication data when an encryption flag 60 (described later) included in the communication data is “1,” i.e., when the communication data is encrypted. The determination unit 104 also determines not to encrypt the communication data when the encryption flag 60 is “0,” i.e., when the communication data is not encrypted, if the source and destination of the communication data belong to the same segment and belong to the same ECU. On the other hand, the determination unit 104 determines to encrypt the communication data when the encryption flag 60 is “0” and the source and destination of the communication data do not satisfy the above conditions.

[0037] Furthermore, in the embodiment, when the received communication data is encrypted, the determination unit 104 determines whether to decrypt the communication data based on the destination of the communication data. Specifically, when the encryption flag 60 included in the communication data is "1", that is, when the communication data is encrypted, the determination unit 104 determines to decrypt the communication data if the destination of the communication data is its own virtual machine 11. On the other hand, even when the encryption flag 60 included in the communication data is "1", that is, when the communication data is encrypted, the determination unit 104 determines not to decrypt the communication data if the destination of the communication data is not its own virtual machine 11. Furthermore, even when the encryption flag 60 included in the communication data is "0", that is, when the communication data is not encrypted, the determination unit 104 determines not to decrypt the communication data.

[0038] The encryption / decryption unit 107 outputs encrypted communication data or communication data obtained by decrypting already encrypted communication data based on the determination result of the determination unit 104. Specifically, if the determination unit 104 determines that the communication data should be encrypted, the encryption / decryption unit 107 encrypts the communication data using an encryption key stored in the virtual machine. Also, if the determination unit 104 determines that the communication data should be decrypted, the encryption / decryption unit 107 decrypts the encrypted communication data using an encryption key stored in the virtual machine. Hereinafter, the encryption / decryption unit 107 may be read as an "encryption unit" when focusing only on the process of encrypting communication data.

[0039] In the embodiment, the encryption key used by the encryption / decryption unit 107 is generated in advance so that it differs for each segment. Each virtual machine stores an encryption key for the segment to which it belongs. For example, virtual machines 11 and 21 belonging to segment 10 store an encryption key for segment 10, virtual machines 12, 31, and 32 belonging to segment 20 store an encryption key for segment 20, and virtual machines 21, 22, and 41 belonging to segment 30 store an encryption key for segment 30. Virtual machine 21 stores an encryption key for segment 10 and an encryption key for segment 30.

[0040] The data transfer unit 108 transfers the communication data received by the receiving unit 101 (including the communication data encrypted or decrypted by the encryption / decryption unit 107) to the transfer destination determined by the transfer destination determination unit 102.

[0041] [4. Operation] The following describes the operation of the communication protection system 100 according to the embodiment when communication data is transmitted and received between virtual machines. Communication between virtual machines occurs when, for example, an application on a virtual machine transmits communication data (also referred to as "application data") to an application on another virtual machine.

[0042] At this time, the source application specifies the destination application and instructs the lower layer software (software below the OS) to send communication data. The lower layer software that receives the instruction converts the source application and the destination application into a source virtual machine and a destination virtual machine, respectively, and then performs communication between the virtual machines, as described below. The destination virtual machine that receives the communication data identifies the destination application from the received communication data and notifies the application of the communication data. Note that, in the following, a description of the transmission and reception of communication data between the lower layer software and the application will be omitted.

[0043] Before describing communication between virtual machines, the format of communication data will be described with reference to FIG. 6. FIG. 6 is a diagram showing an example of the format of communication data 6. (a) of FIG. 6 shows the format when the communication data 6 is not encrypted, and (b) of FIG. 6 shows the format when the communication data 6 is encrypted. As shown in FIG. 6, the communication data 6 includes a header including three pieces of information, an encryption flag 60, a sender 61, and a destination 62, and a message body 63. Furthermore, when the communication data 6 is encrypted, the communication data 6 further includes a MAC (Message Authentication Code) 64 for tamper detection, as shown in (b) of FIG. 6.

[0044] The encryption flag 60 is set to "0" if the communication data 6 is not encrypted as shown in Fig. 6(a), and is set to "1" if the communication data 6 is encrypted as shown in Fig. 6(b). Unencrypted information is stored in both the sender 61 and the destination 62. Unencrypted data is stored in the message body 63 if the communication data 6 is not encrypted as shown in Fig. 6(a), and encrypted data is stored in the message body 63 if the communication data 6 is encrypted as shown in Fig. 6(b).

[0045] <Basic operation> The basic operation of the communication protection system 100 according to the embodiment will be described below with reference to Fig. 7. Fig. 7 is a flowchart showing an example of the operation of the communication protection system 100 according to the embodiment.

[0046] First, when the receiving unit 101 of the communication protection system 100 receives communication data, the transfer destination determination unit 102 determines whether the virtual machine that is the destination of the communication data is its own virtual machine (S101). If the destination virtual machine is not its own virtual machine (S101: No), the transfer destination determination unit 102 next refers to a routing table to determine whether the combination of the source and destination of the communication data exists in the routing table (S102). If the combination does not exist in the routing table (S102: No), the transfer destination determination unit 102 regards the communication data as a communication error and discards the communication data (S105).

[0047] If the combination exists in the routing table (S102: Yes), the transfer destination determination unit 102 determines a virtual machine to which the communication data is to be transferred (S103). If the communication data has been encrypted (S104: Yes), the data transfer unit 108 transfers the communication data to the virtual machine as the transfer destination (S106).

[0048] If the communication data is not encrypted (S104: No), the identification unit 103 refers to the identification table to identify the ECU and segment to which the source virtual machine belongs, and the ECU and segment to which the destination virtual machine belongs (S107).

[0049] Then, the determination unit 104 determines whether to encrypt the communication data based on the affiliation of the source virtual machine of the communication data and the affiliation of the destination virtual machine (S108). If the source virtual machine and the destination virtual machine are in the same segment and belong to the same ECU (S108: Yes), the determination unit 104 determines not to encrypt the communication data. In this case, the communication data is transferred to the destination virtual machine without encryption (S106). On the other hand, if the source virtual machine and the destination virtual machine do not satisfy the above conditions (S108: No), the determination unit 104 determines to encrypt the communication data.

[0050] The encryption / decryption unit 107 then encrypts the communication data using the encryption key for the segment to which it belongs, and generates a MAC and adds it to the communication data (S109). If the virtual machine belongs to multiple segments and stores multiple encryption keys, the encryption / decryption unit 107 refers to the identification table and uses the encryption key for the segment to which the destination virtual machine belongs. The encrypted communication data is transferred to the destination virtual machine (S106).

[0051] Returning to step S101, if the virtual machine to which the communication data is addressed is its own virtual machine (S101: Yes) and the communication data is not encrypted (S110: No), the communication protection system 100 notifies the corresponding destination application of the communication data (S113).

[0052] If the communication data is encrypted (S110: Yes), the encryption / decryption unit 107 decrypts the communication data using the encryption key for the segment to which it belongs (S111). The encryption / decryption unit 107 also verifies the MAC using the encryption key for the segment to which it belongs (S112). If the MAC verification result is normal (S112: Yes), the communication protection system 100 notifies the corresponding application of the communication data (S113). On the other hand, if the MAC verification result is not normal (S112: No), the communication protection system 100 regards it as a communication error and discards the communication data (S114). Note that if a virtual machine belongs to multiple segments and stores multiple encryption keys, the encryption / decryption unit 107 uses the encryption key for the segment to which the source virtual machine belongs by referring to the identification table.

[0053] <Example> Hereinafter, a specific operation of the communication protection system 100 will be described with reference to FIG. 7 when the virtual machine 32 belonging to the ECU 3 transmits communication data to the virtual machine 12 belonging to another ECU 1 in the same segment 20.

[0054] First, in communication data transmitted from the virtual machine 32 to the virtual machine 12, the encryption flag is "0," the source is "virtual machine 32," the destination is "virtual machine 12," and the message body is not encrypted. At this time, the communication protection system 100 of the virtual machine 32 first executes step S101, and since the destination is not its own virtual machine (S101: No), it then executes step S102. The communication protection system 100 of the virtual machine 32 refers to the routing table for the virtual machine 32 (see (a) of FIG. 5 ) to confirm that a combination of the source virtual machine 32 and the destination virtual machine 12 exists (S102: Yes), and determines the destination virtual machine 31 (S103).

[0055] Next, the communication protection system 100 of the virtual machine 32 confirms that the communication data is not encrypted (S104: No), and identifies the affiliation of the source virtual machine 32 and the destination virtual machine 31 by referring to the identification table (see FIG. 4). The communication protection system 100 of the virtual machine 32 determines not to encrypt the communication data because the source virtual machine 32 and the destination virtual machine 31 both belong to the same ECU 3 and segment 20 (S108: Yes). Then, the communication protection system 100 of the virtual machine 32 transfers the unencrypted communication data to the destination virtual machine 31 (S106).

[0056] In the communication data transferred from the virtual machine 32 to the virtual machine 31, the encryption flag is "0", the source is "virtual machine 32", the destination is "virtual machine 12", and the message body is not encrypted. At this time, the communication protection system 100 of the virtual machine 31 first executes step S101, and then executes step S102 because the destination is not its own virtual machine (S101: No). The communication protection system 100 of the virtual machine 31 refers to the routing table for the virtual machine 31 (see FIG. 5(b)), and confirms that a combination of the source virtual machine 32 and the destination virtual machine 12 exists (S102: Yes), and determines the destination virtual machine 11 (S103).

[0057] Next, the communication protection system 100 of the virtual machine 31 confirms that the communication data is not encrypted (S104: No), and identifies the affiliation of the source virtual machine 32 and the affiliation of the destination virtual machine 11 by referring to the identification table (see FIG. 4). The communication protection system 100 of the virtual machine 31 determines to encrypt the communication data because the ECU 3 and segment 20 to which the source virtual machine 32 belongs are different from the ECU 1 and segment 10 to which the destination virtual machine 11 belongs (S108: No).

[0058] The communication protection system 100 of the virtual machine 31 encrypts the communication data using the encryption key for the segment 20 to which it belongs, and generates a MAC and adds it to the communication data (S109). In the encrypted communication data, the encryption flag is "1", the source is "virtual machine 32", the destination is "virtual machine 12", the message body is encrypted, and the MAC is added. Then, the communication protection system 100 of the virtual machine 31 transfers the encrypted communication data to the destination virtual machine 11 (S106).

[0059] In the communication data transferred from the virtual machine 31 to the virtual machine 11, the encryption flag is "1," the source is "virtual machine 32," the destination is "virtual machine 12," the message body is encrypted, and a MAC is added. At this time, the communication protection system 100 of the virtual machine 11 first executes step S101, and since the destination is not its own virtual machine (S101: No), it then executes step S102. The communication protection system 100 of the virtual machine 11 refers to the routing table for the virtual machine 11 (see (c) of FIG. 5 ) to confirm that a combination of the source virtual machine 32 and the destination virtual machine 12 exists (S102: Yes), and determines the destination virtual machine 12 (S103).

[0060] Next, the communication protection system 100 of the virtual machine 11 confirms that the communication data has been encrypted (S104: Yes), and transfers the communication data to the destination virtual machine 12 (S106).

[0061] In the communication data transferred from the virtual machine 11 to the virtual machine 12, the encryption flag is "1," the sender is "virtual machine 32," the destination is "virtual machine 12," the message body is encrypted, and a MAC is added. At this time, the communication protection system 100 of the virtual machine 12 first executes step S101, and then executes step S110 because the destination is its own virtual machine (S101: Yes). When the communication protection system 100 of the virtual machine 12 confirms that the communication data is encrypted (S110: Yes), it decrypts the communication data using the encryption key for the segment 20 to which it belongs (S111). Furthermore, the communication protection system 100 of the virtual machine 12 verifies the MAC using the encryption key for the segment 20 to which it belongs (S112). If the MAC verification result is normal (S112: Yes), the communication protection system 100 of the virtual machine 12 notifies the corresponding application of the communication data (S113). On the other hand, if the MAC verification result is not normal (S112: No), the communication protection system 100 of the virtual machine 12 regards it as a communication error and discards the communication data (S114).

[0062] 5. Advantages The advantages of the communication protection system 100 according to the embodiment will be described below. As described above, when transferring communication data, the communication protection system 100 according to the embodiment identifies the affiliation of the virtual machine that is the source of the communication data and the virtual machine that is the destination of the communication data, and determines whether to encrypt the communication data based on the identified affiliations. If the communication protection system 100 according to the embodiment determines to encrypt the communication data, it transfers the encrypted communication data to the destination. Therefore, since the communication protection system 100 according to the embodiment encrypts the communication data, there is an advantage that the communication data is less likely to be intercepted or tampered with by software that belongs to an ECU or segment different from the ECU or segment to which the communication protection system 100 belongs, and the confidentiality and integrity of the communication data are less likely to be compromised.

[0063] Furthermore, the communication protection system 100 according to the embodiment does not encrypt all communication data, but only encrypts communication data that should be encrypted based on the affiliation of the source virtual machine and the affiliation of the destination virtual machine, which has the advantage of making it easier to suppress communication delays due to encryption processing.

[0064] (Other embodiments) As described above, the embodiments have been described as examples of the technology according to the present disclosure. However, the technology according to the present disclosure is not limited to these, and can be applied to embodiments in which appropriate modifications, substitutions, additions, omissions, etc. are made. For example, the following modifications are also included in one embodiment of the present disclosure.

[0065] In the above embodiment, the encryption / decryption unit 107 of the communication protection system 100 stores an encryption key for the segment to which it belongs and encrypts communication data using the encryption key, but this is not limiting. For example, the communication protection system 100 may further include a secure execution environment 7 as shown in Fig. 8, and when encrypting communication data, the secure execution environment 7 may generate an encryption key and encrypt the communication data using the generated encryption key.

[0066] Fig. 8 is a diagram showing an overview of a communication protection system 100 according to a modified example of the embodiment. As shown in Fig. 8, the secure execution environment 7 is an execution environment separate from the execution environment in which the encryption / decryption unit (encryption unit) 107 executes a program, and is an execution environment that is less likely to be tampered with by an attacker than the execution environment in which the encryption / decryption unit 107 executes a program. The secure execution environment 7 also stores unique secret parameters. The secret parameters are unique to each vehicle but are common to all communication protection systems within each vehicle, and are used when generating an encryption key.

[0067] The secure execution environment 7 is realized by, for example, TrustZone (registered trademark) technology. The secure execution environment 7 may be provided, for example, for each ECU, as an environment different from the virtualization environment 13. Furthermore, the secure execution environment 7 may be realized by a virtual machine that is different from one or more existing virtual machines in the virtualization environment 13.

[0068] The secure execution environment 7 includes a key generation unit 71 , a secret parameter storage unit 72 , a processing unit 73 , a program tampering check unit 74 , and a program expected value storage unit 75 .

[0069] The key generation unit 71 generates an encryption key using secret parameters stored in the secret parameter storage unit 72 and segment-specific parameters provided by the encryption / decryption unit 107 when encrypting or decrypting communication data. The segment-specific parameters are parameters specific to each segment to which the virtual machine including the encryption / decryption unit 107 belongs, and are stored by the virtual machine. Here, the key generation unit 71 generates an encryption key using the formula Kx=Hash(S||X), where "Kx" is the encryption key, "X" is the segment-specific parameter, and "S" is the secret parameter. Here, Hash() is a function for performing hash calculations, and S||X represents data obtained by concatenating data S and data X. In other words, the key generation unit 71 calculates a hash value based on the segment-specific parameters and secret parameters using an appropriate hash function, and uses the calculated hash value as the encryption key.

[0070] When the processing unit 73 receives an instruction from the encryption / decryption unit 107 requesting encryption of communication data, the processing unit 73 executes a process of encrypting the communication data using the encryption key generated by the key generation unit 71. Here, the processing unit 73 encrypts the message (communication data) provided from the encryption / decryption unit 107 using the generated encryption key. At this time, the processing unit 73 generates a MAC using the generated encryption key and adds the MAC to the communication data.

[0071] Furthermore, when the processing unit 73 receives an instruction from the encryption / decryption unit 107 requesting decryption of encrypted communication data, the processing unit 73 executes a process of decrypting the encrypted communication data using the encryption key generated by the key generation unit 71. Here, the processing unit 73 decrypts the encrypted message (encrypted communication data) provided from the encryption / decryption unit 107 using the generated encryption key. At this time, the processing unit 73 also executes a process of verifying the MAC using the generated encryption key.

[0072] The program tampering check unit 74 determines whether the program being executed by the encryption / decryption unit 107 has been tampered with. Here, the program being executed by the encryption / decryption unit 107 is stored, for example, in the memory of a virtual machine provided in the encryption / decryption unit 107. Also, the hash value of the program is stored in advance as a program expected value in the program expected value storage unit 75 of the secure execution environment 7.

[0073] When the program tampering checking unit 74 receives an instruction from the encryption / decryption unit 107 requesting encryption of communication data or an instruction requesting decryption of encrypted communication data, the encryption / decryption unit 107 calculates a hash value of the program being executed and compares the calculated hash value with the program expected value (hash value) stored in the program expected value storage unit 75. If these hash values ​​match, the program tampering checking unit 74 determines that the program being executed has not been tampered with. In this case, the secure execution environment 7 outputs the encrypted communication data or the decrypted communication data to the encryption / decryption unit 107.

[0074] On the other hand, if these hash values ​​do not match, the program tampering check unit 74 determines that the program being executed has been tampered with. In this case, the secure execution environment 7 does not output the encrypted communication data or the decrypted communication data to the encryption / decryption unit 107.

[0075] The secure execution environment 7 may not include the program tampering check unit 74 and the program expected value storage unit 75. In this case, the secure execution environment 7 outputs the encrypted communication data or the decrypted communication data to the encryption / decryption unit 107 without determining whether the program being executed by the encryption / decryption unit 107 has been tampered with.

[0076] The above-described modified example has the advantage that the encryption key is used only within the secure execution environment 7, which is less susceptible to attacks by attackers, and therefore the encryption key is less likely to be leaked. In this case, an attacker may create and execute an unauthorized program to illegally start the secure execution environment 7 and input a segment-specific parameter and a message or encrypted message specified by the attacker, thereby illegally obtaining an encrypted message or a decrypted message. However, in the above-described modified example, the program tampering check unit 74 checks the legitimacy of the program that instructs encryption or decryption before outputting the encrypted message or decrypted message, making the above-described attacks less susceptible. As a result, the above-described modified example has the advantage that the confidentiality and integrity of communication data are less likely to be compromised.

[0077] Note that, for example, the order in which each step is executed in the flowchart is merely an example for specifically explaining the present disclosure, and an order other than the above may be used. Also, some of the steps may be executed simultaneously (in parallel) with other steps, or some of the steps may not be executed.

[0078] The division of functional blocks in the block diagram is an example, and multiple functional blocks may be realized as a single functional block, one functional block may be divided into multiple blocks, or some functions may be moved to another functional block.Furthermore, the functions of multiple functional blocks having similar functions may be processed in parallel or in time-sharing by a single piece of hardware or software.

[0079] Furthermore, each component described in the above embodiments may be implemented as software or, typically, as an LSI, an integrated circuit. These components may be integrated individually on a single chip, or some or all of them may be integrated on a single chip. While LSI is used here, it may also be referred to as an IC, system LSI, super LSI, or ultra LSI depending on the level of integration. Furthermore, the integration method is not limited to LSI; it may be implemented using a dedicated circuit (a general-purpose circuit that executes a dedicated program) or a general-purpose processor. It is also possible to use a field programmable gate array (FPGA), which can be programmed after LSI fabrication, or a reconfigurable processor, which allows the connection or settings of circuit cells within an LSI to be reconfigured. Furthermore, if an integrated circuit technology that can replace LSI emerges due to advances in semiconductor technology or a derivative technology, that technology may naturally be used to integrate the components.

[0080] A system LSI is an ultra-multifunctional LSI manufactured by integrating multiple processing units on a single chip, and is specifically a computer system consisting of a microprocessor, ROM, RAM, etc. The ROM stores computer programs. The system LSI achieves its functions when the microprocessor operates in accordance with the computer programs.

[0081] Another aspect of the present disclosure may be a computer program that causes a computer to execute each of the characteristic steps included in the communication protection method shown in FIG.

[0082] Furthermore, for example, the program may be a program to be executed by a computer. Another aspect of the present disclosure may be a computer-readable non-transitory recording medium on which such a program is recorded. For example, such a program may be recorded on a recording medium and distributed or circulated. For example, the distributed program may be installed in a device having another processor, and the program may be executed by the processor, thereby causing the device to perform each of the above processes.

[0083] In addition, this disclosure also includes forms obtained by making various modifications to the embodiments that a person skilled in the art would think of, and forms realized by arbitrarily combining the components and functions in each embodiment within the scope of the present disclosure.

[0084] (summary) As described above, the communication protection system 100 according to the first aspect is a communication protection system 100 mounted on a vehicle, and includes a receiving unit 101, a transfer destination determination unit 102, an identification unit 103, a judgment unit 104, an encryption / decryption unit (encryption unit) 107, and a data transfer unit 108. The receiving unit 101 receives communication data. The transfer destination determination unit 102 determines a transfer destination of the communication data. The identification unit 103 identifies the affiliation of the sender of the communication data and the affiliation of the transfer destination of the communication data. The judgment unit 104 determines whether to encrypt the communication data based on the identified affiliation of the sender and the affiliation of the transfer destination. If it is determined that the communication data should be encrypted, the encryption / decryption unit 107 outputs the encrypted communication data. The data transfer unit 108 transfers the communication data to the transfer destination.

[0085] This has the advantage that the communication data is encrypted, making it difficult for the communication data to be intercepted or tampered with by software belonging to an ECU or segment different from the ECU or segment to which the communication protection system 100 belongs, and therefore the confidentiality and integrity of the communication data are unlikely to be compromised. Also, this has the advantage that, instead of encrypting all communication data, only communication data that should be encrypted based on the affiliation of the source virtual machine and the affiliation of the destination virtual machine is encrypted, making it easy to suppress communication delays due to encryption processing.

[0086] In the communication protection system 100 according to the second aspect, the communication protection system 100 belongs to at least one or more segments among a plurality of logically divided segments in the first aspect. When the communication data passes through a segment different from the one or more segments, the determination unit 104 determines that the communication data should be encrypted.

[0087] This has the advantage that, for example, when a virtual machine sends communication data via a segment different from the segment to which the virtual machine belongs, the communication data is encrypted, making it less likely that the confidentiality and integrity of the communication data will be compromised.

[0088] In the communication protection system 100 according to the third aspect, in the first or second aspect, the communication protection system 100 belongs to one of the plurality of ECUs. If the communication data passes through an ECU other than the one ECU, the determination unit 104 determines that the communication data should be encrypted.

[0089] According to this, for example, when an ECU transmits communication data via an ECU different from the ECU, the communication data is encrypted, which has the advantage that the confidentiality and integrity of the communication data are less likely to be compromised.

[0090] In addition, in the communication protection system 100 according to the fourth aspect, in any one of the first to third aspects, the communication protection system 100 belongs to at least one or more segments among a plurality of logically divided segments, and stores encryption keys corresponding to the one or more segments. The encryption / decryption unit 107 encrypts communication data using the encryption key.

[0091] This has the advantage that communication delays are less likely to occur compared to when an encryption key is generated each time encryption is performed, since communication data is encrypted using an encryption key that has been stored in advance.

[0092] Furthermore, in the communication protection system 100 according to a fifth aspect, in any one of the first to third aspects, the communication protection system 100 further includes a secure execution environment 7. The secure execution environment 7 is less likely to be tampered with by an attacker than the execution environment in which the encryption / decryption unit 107 executes the program, and stores unique secret parameters. In response to a request from the encryption / decryption unit 107, the secure execution environment 7 generates an encryption key based on the secret parameters, and encrypts communication data using the generated encryption key.

[0093] According to this, each time communication data is encrypted, an encryption key is generated in a secure execution environment 7 that is difficult for attackers to tamper with, and the communication data is then encrypted, which has the advantage that the confidentiality and integrity of the communication data are less likely to be compromised compared to when an encryption key stored in advance is used.

[0094] In addition, in the communication protection system 100 according to the sixth aspect, in the fifth aspect, the secure execution environment 7 determines whether the program executed by the encryption / decryption unit 107 has been tampered with, and if it determines that the program has been tampered with, does not output the encrypted communication data.

[0095] This has the advantage that it is easy to prevent the encryption / decryption unit 107 from being tampered with and illegally executing encryption processing.

[0096] Furthermore, a communication protection method according to a seventh aspect is a communication protection method executed by a communication protection system 100 mounted on a vehicle. In the communication protection method, communication data is received. In the communication protection method, a transfer destination of the communication data is determined. In the communication protection method, the affiliation of a sender of the communication data and the affiliation of a transfer destination of the communication data are identified. In the communication protection method, whether or not to encrypt the communication data is determined based on the identified affiliation of the sender and the affiliation of the transfer destination. In the communication protection method, if it is determined that the communication data is to be encrypted, the encrypted communication data is output. In the communication protection method, the communication data is transferred to the transfer destination.

[0097] This has the advantage that the communication data is encrypted, making it difficult for the communication data to be intercepted or tampered with by software belonging to an ECU or segment different from the ECU or segment to which the communication protection system 100 belongs, and therefore the confidentiality and integrity of the communication data are unlikely to be compromised. Also, this has the advantage that, instead of encrypting all communication data, only communication data that should be encrypted based on the affiliation of the source virtual machine and the affiliation of the destination virtual machine is encrypted, making it easy to suppress communication delays due to encryption processing.

[0098] A program according to an eighth aspect causes one or more processors to execute the communication protection method according to the seventh aspect.

[0099] This has the advantage that the communication data is encrypted, making it difficult for the communication data to be intercepted or tampered with by software belonging to an ECU or segment different from the ECU or segment to which the communication protection system 100 belongs, and therefore the confidentiality and integrity of the communication data are unlikely to be compromised. Also, this has the advantage that, instead of encrypting all communication data, only communication data that should be encrypted based on the affiliation of the source virtual machine and the affiliation of the destination virtual machine is encrypted, making it easy to suppress communication delays due to encryption processing. [Industrial Applicability]

[0100] The present disclosure can be applied to in-vehicle networks and the like. [Explanation of symbols]

[0101] 1,2,3,4 ECU 11,12,21,22,31,32,41 Virtual Machines 13 Virtualization Environment 14 Hardware 100,1100,1200 Communication Protection System 101 Receiving unit 102 Transfer destination determination unit 103 Identification unit 104 Judgment section 105 Routing Table Storage 106 Identification table storage unit 107 Encryption / Decryption Unit (Encryption Unit) 108 Data Transfer Unit 110,120 OS 5. Vehicle bus 6. Communication Data 60 Encryption Flag 61 Source 62 destinations 63 Message body 64 MAC 7 Secure Execution Environment 71 Key generation section 72 Secret parameter storage unit 73 Processing section 74 Program Tampering Check Unit 75 Program expected value storage unit A1 In-Vehicle System

Claims

1. A communication protection system installed in a vehicle, comprising: a receiving unit for receiving communication data; a transfer destination determination unit that determines a transfer destination of the communication data; an identification unit for identifying an organization of a source of the communication data and an organization of a destination of the communication data; a determination unit that determines whether or not to encrypt the communication data based on the identified affiliation of the sender and the affiliation of the transfer destination; an encryption unit that outputs the encrypted communication data when it is determined that the communication data is to be encrypted; a data transfer unit that transfers the communication data to the transfer destination, Communications protection system.

2. The communication protection system belongs to at least one segment among a plurality of logically divided segments, the determination unit determines that the communication data should be encrypted when the communication data passes through a segment different from the one or more segments. The communications protection system of claim 1 .

3. the communication protection system belongs to one of a plurality of ECUs (Electronic Control Units), The determination unit determines that the communication data is to be encrypted when the communication data passes through an ECU different from the one ECU. The communications protection system of claim 1 .

4. the communication protection system belongs to at least one or more segments among a plurality of logically divided segments, and stores encryption keys corresponding to the one or more segments; the encryption unit encrypts the communication data using the encryption key; A communication protection system according to any one of claims 1 to 3.

5. the communication protection system further includes a secure execution environment that is less likely to be tampered with by an attacker than an execution environment in which the encryption unit executes a program, and that stores unique secret parameters; the secure execution environment generates an encryption key based on the secret parameter in response to a request from the encryption unit, and encrypts the communication data using the generated encryption key. A communication protection system according to any one of claims 1 to 3.

6. the secure execution environment determines whether the program executed by the encryption unit has been tampered with; If it is determined that the program has been tampered with, the encrypted communication data is not output.

6. The communications protection system of claim 5.

7. A communication protection method executed by a communication protection system mounted on a vehicle, comprising: Receives communication data, determining a destination of the communication data; Identifying the affiliation of the sender of the communication data and the affiliation of the destination of the communication data; determining whether to encrypt the communication data based on the identified affiliation of the sender and the affiliation of the transfer destination; If it is determined that the communication data is to be encrypted, outputting the encrypted communication data; forwarding the communication data to the destination; Communication protection methods.

8. one or more processors, Executing the communication protection method according to claim 7, program.

Citation Information

Patent Citations

  • Hierarchical virtualization using multi-layered virtualization mechanisms

    JP2009506462A

  • Partition configuration change method, partition configuration change method, and partition configuration change program

    JP4199444B2