Nothing Special   »   [go: up one dir, main page]

WO2022153708A1 - サービス仲介装置、サービス仲介方法、および、プログラム - Google Patents

サービス仲介装置、サービス仲介方法、および、プログラム Download PDF

Info

Publication number
WO2022153708A1
WO2022153708A1 PCT/JP2021/044367 JP2021044367W WO2022153708A1 WO 2022153708 A1 WO2022153708 A1 WO 2022153708A1 JP 2021044367 W JP2021044367 W JP 2021044367W WO 2022153708 A1 WO2022153708 A1 WO 2022153708A1
Authority
WO
WIPO (PCT)
Prior art keywords
service
server
unit
ecu
frame
Prior art date
Application number
PCT/JP2021/044367
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 JP2022575125A priority Critical patent/JPWO2022153708A1/ja
Priority to EP21919597.1A priority patent/EP4280089A4/en
Priority to CN202180089935.XA priority patent/CN116685971A/zh
Publication of WO2022153708A1 publication Critical patent/WO2022153708A1/ja
Priority to US18/220,072 priority patent/US20230353656A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/44Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]

Definitions

  • This disclosure relates to service mediation devices, service mediation methods, and programs.
  • ECUs Electronic Control Units
  • the present disclosure provides a service mediation method for appropriately controlling access to communication related to service provision.
  • the service intermediary device is connected to each of the server unit and the client unit in a service providing system that provides a service from the server unit to the client unit by service-oriented communication, and is connected to each of the server unit or the client unit.
  • the communication control unit that receives the frame used to provide the service, the identifier of the service included in the frame received by the communication control unit, the identifier indicating the source or destination of the frame, and the type of the frame. It is a service intermediary device including a service management unit that determines whether or not the combination with and is appropriate and outputs the result of the determination.
  • a recording medium such as a system, method, integrated circuit, computer program or computer-readable CD-ROM, and the system, method, integrated circuit, computer program. And may be realized by any combination of recording media.
  • access control of communication related to service provision can be appropriately performed.
  • FIG. 1 is a diagram showing an overall configuration of an in-vehicle network system according to an embodiment.
  • FIG. 2 is a diagram showing a message format of SOME / IP SD in the embodiment.
  • FIG. 3 is a diagram showing an example of a SOME / IP SD message in the embodiment.
  • FIG. 4 is a diagram showing a configuration of a server ECU in the embodiment.
  • FIG. 5 is a diagram showing a configuration of an intermediary ECU in the embodiment.
  • FIG. 6A is a diagram showing a first example of application authentication information in the embodiment.
  • FIG. 6B is a diagram showing a second example of the application authentication information in the embodiment.
  • FIG. 6C is a diagram showing a third example of the application authentication information in the embodiment.
  • FIG. 6A is a diagram showing a first example of application authentication information in the embodiment.
  • FIG. 6B is a diagram showing a second example of the application authentication information in the embodiment.
  • FIG. 6C is a diagram showing a
  • FIG. 7 is a diagram showing an example of a service policy in the embodiment.
  • FIG. 8A is a diagram showing an example of service information in the embodiment.
  • FIG. 8B is a diagram showing an example of access control information in the embodiment.
  • FIG. 9 is a diagram showing an example of a vehicle state in the embodiment.
  • FIG. 10 is a diagram showing a service information registration sequence of the intermediary ECU in the embodiment.
  • FIG. 11A is a diagram showing a communication sequence of a service that only mediates SD in the embodiment.
  • FIG. 11B is a diagram showing a communication sequence of a service that performs proxy transmission in the embodiment.
  • FIG. 12 is a diagram showing a sub-server registration sequence of the intermediary ECU in the embodiment.
  • FIG. 13 is a diagram showing a communication sequence of proxy transmission by the intermediary ECU in the embodiment.
  • FIG. 14 is a diagram showing a communication sequence of proxy transmission when an abnormality occurs in the embodiment.
  • FIG. 15 is a diagram showing a switching sequence to the sub-server when an abnormality occurs in the embodiment.
  • FIG. 16 is a flowchart showing the processing of the SD message by the intermediary ECU in the embodiment.
  • FIG. 17 is a flowchart showing processing for a SOME / IP message by the intermediary ECU in the embodiment.
  • FIG. 18 is a flowchart showing a server switching process when a communication abnormality of the main server is detected in the embodiment.
  • FIG. 19A is a diagram showing a configuration of a service intermediary device in a modified example of the embodiment.
  • FIG. 19A is a diagram showing a configuration of a service intermediary device in a modified example of the embodiment.
  • FIG. 19B is a flow chart showing a service intermediary device in a modified example of the embodiment.
  • FIG. 19C is a flowchart for determining a service mediation method by the mediation ECU in another modification.
  • FIG. 20 is a diagram showing an example of a log notified when an abnormality is detected in another modified example.
  • CAN Controller Area Network
  • the ECU broadcasts information such as sensor values, and the ECU that wants to acquire information such as sensor values receives the broadcast-transmitted information such as sensor values.
  • In-vehicle Ethernet (registered trademark) will introduce service-oriented communication instead of signal-oriented communication such as CAN, or together with signal-oriented communication, and an efficient development process can be realized.
  • SOME / IP Service Oriented Middleware WarE Over IP
  • AUTOSAR AUTOmortive Open System Archive
  • IP Internet Protocol
  • QoS quality of service
  • Non-Patent Document 1 or Non-Patent Document 2 uses encrypted communication, there is a problem that encryption or decryption processing by a transmitting / receiving node is required and overhead is generated.
  • the present disclosure provides a service mediation method for appropriately controlling access to communication related to service provision.
  • the present disclosure is based on a service policy by an intermediary ECU that mediates the communication of an ECU that performs service-oriented communication in an in-vehicle network. It provides a flexible mediation method by switching.
  • the service intermediary device is connected to each of the server unit and the client unit in a service providing system that provides a service from the server unit to the client unit by service-oriented communication, and is connected to each of the server unit or the client unit.
  • the communication control unit that receives the frame used to provide the service, the identifier of the service included in the frame received by the communication control unit, the identifier indicating the source or destination of the frame, and the type of the frame. It is a service intermediary device including a service management unit that determines whether or not the combination with and is appropriate and outputs the result of the determination.
  • the service mediator can detect unauthorized communication by spoofing the server unit or the client unit in the service-oriented communication, and can prevent inappropriate access to the server unit or the client unit. .. In this way, the service intermediary device can appropriately control access to communication related to service provision.
  • the communication control unit further receives a service provision frame including the first service information indicating the service to be provided from the server unit before the provision of the service, and before the provision of the service.
  • a service search frame including a second service information indicating a service search target is received from the client unit, and the service management unit further receives the service search received by the communication control unit. Even if the service providing frame containing the same first service information as the second service information included in the frame is transmitted by the communication control unit to the client unit which is the source of the received service search frame. good.
  • the service mediation device appropriately mediates between the service provision frame and the service search frame between the server unit and the client unit.
  • the service intermediary device can appropriately control access to communication related to service provision.
  • the service providing frame includes the first authentication information indicating that the server unit has the authority as a server that provides the service indicated by the first service information included in the service providing frame, and the service search frame. Includes second authentication information indicating that the client unit has the authority as a client to receive the service provided by the second service information included in the service search frame, and the service management unit further
  • the service provision frame is determined to be valid
  • the service provision frame is determined to be valid
  • the service provision frame may be transmitted to the client unit by the communication control unit.
  • the service intermediary device ensures that the server unit has the authority as a server to provide the service, and that the client unit has the authority as the client to receive the service. After making a judgment using, the server unit is controlled to provide a service to the client unit. As a result, it is possible to prevent a device that does not have the authority as a server from providing the service and a device that does not have the authority as a client from receiving the service. Therefore, the service intermediary device can appropriately control access to communication related to service provision.
  • the communication control unit when the communication control unit receives the first frame used for providing the service from the server unit that provides the service, the communication control unit transmits the first frame to the client unit that receives the service. Then, when the second frame used for providing the service is received from the client unit that receives the service, the second frame may be transmitted to the server unit that provides the service.
  • the service mediator appropriately mediates the frame used for providing the service between the server unit and the client unit.
  • the service intermediary device can appropriately control access to communication related to service provision.
  • the service intermediary device includes a proxy transmission unit that executes a proxy transmission process, and the proxy transmission process includes a transmission source included in the first frame when the communication control unit receives the first frame.
  • the proxy transmission process includes a transmission source included in the first frame when the communication control unit receives the first frame.
  • the service intermediary device when the service intermediary device mediates the frame used for providing the service, the source of the frame is changed to the identifier of the own device. Therefore, the server unit can provide the service without acquiring the identifier of the client unit, and the client unit can receive the service without acquiring the identifier of the server unit. As a result, it is possible to appropriately prevent spoofing of the server unit or the client unit by further reducing the chance that the identifiers of the server unit and the client unit are acquired by other devices. In this way, the service intermediary device can appropriately control access to communication related to service provision.
  • the server unit, the client unit, and the service intermediary device are mounted on a vehicle, and the service intermediary device further includes a vehicle state holding unit that holds state information indicating the state of the vehicle.
  • the proxy transmission unit may control whether or not to execute the proxy transmission process according to the state information held by the vehicle state holding unit.
  • the service intermediary device controls whether or not to execute proxy transmission according to the state of the vehicle.
  • the reliability and real-time requirements for providing a service vary depending on the service. Therefore, by controlling whether or not the service intermediary device executes proxy transmission according to the state of the vehicle, it is possible to control whether or not proxy transmission is executed according to the reliability and real-time performance required for providing the service. Will be done. Therefore, the service intermediary device can appropriately control the access of the communication related to the service provision through the control of the proxy transmission according to the reliability and the real-time property required for the service provision.
  • the server unit includes a first server unit and a second server unit, and when the communication control unit receives the service providing frame from the first server unit, the communication control unit takes a standby state for a predetermined period.
  • the service providing frame is received from the second server unit in the standby state, either of the two received service providing frames may be transmitted to the client unit.
  • the service intermediary device makes the server unit redundant in the service providing system.
  • the service intermediary device contributes to the realization of a more robust system configuration while maintaining communication compatible with the case where the service providing system includes a single server unit. Therefore, the service intermediary device can appropriately control access to communication related to service provision while increasing the robustness of the system.
  • the communication control unit when the communication control unit does not receive the service provision frame from the second server unit in the standby state, the communication control unit transmits the service provision frame received from the first server unit to the client unit, and , A predetermined process to be performed when an abnormality occurs in the second server unit may be executed.
  • the service intermediary device when an abnormality occurs in one of the server units having a redundant configuration, the service intermediary device contributes to the provision of services by the other server unit, thereby providing the redundant configuration of the server unit. To maintain. Therefore, the service intermediary device can appropriately control access to communication related to service provision while increasing the robustness of the system.
  • the communication control unit does not receive the service providing frame from the second server unit in the standby state, whether or not to transmit the service providing frame received from the first server unit to the client unit. May be controlled according to the type of the service.
  • the service intermediary device controls the provision of services by the other server unit when an abnormality occurs in one of the server units having a redundant configuration, according to the type of service.
  • the reliability and real-time performance requirements for providing a service differ depending on the type of service. Therefore, by performing the above control by the service intermediary device, the above-mentioned is performed according to the reliability and real-time performance required for providing the service. Contributes to controlling the provision of services by the other server unit. Therefore, the service intermediary device can appropriately control the access of the communication related to the service provision by controlling the service provision in the redundant configuration according to the reliability and the real-time property required for the service provision.
  • the server unit, the client unit, and the service intermediary device are mounted on a vehicle, and the service intermediary device further includes a vehicle state holding unit that holds state information indicating the state of the vehicle. If the communication control unit does not receive the service providing frame from the second server unit in the standby state, whether or not to transmit the service providing frame received from the first server unit to the client unit. May be controlled according to the state information held by the vehicle state holding unit.
  • the service intermediary device controls the provision of services by the other server unit when an abnormality occurs in one of the server units having a redundant configuration, according to the state of the vehicle.
  • the reliability and real-time performance requirements for providing services differ depending on the condition of the vehicle. Contributes to controlling the provision of services by the server unit of. Therefore, the service intermediary device can appropriately control the access of the communication related to the service provision by controlling the service provision in the redundant configuration according to the reliability and the real-time property required for the service provision.
  • the server unit includes a first server unit and a second server unit, and when the communication control unit receives the service search frame from the client unit, the received service search frame is transferred to the service search frame. It may be transmitted to both the first server unit and the second server unit.
  • the service mediator appropriately mediates the service search frame when the server unit has a redundant configuration. Therefore, the service intermediary device can appropriately control access to communication related to service provision while increasing the robustness of the system.
  • the server unit includes a plurality of server units, and the service management unit holds and holds communication state information indicating whether or not the plurality of server units are in a communicable state. Communication status information may be transmitted to the client unit.
  • the service intermediary device causes the client unit to appropriately grasp the information indicating the server unit capable of providing the service.
  • the service intermediary device can appropriately control access to communication related to service provision while improving the security and robustness of the in-vehicle network system.
  • the service management unit when the service management unit detects that one of the plurality of server units is in a non-communication state, the service management unit refers to the communication state information and among the plurality of server units.
  • the service providing frame received from the server unit in a communicable state may be transmitted to the client unit.
  • the service intermediary device can make the client unit grasp the information of the alternative server unit when it is difficult to continue the service provision by one server unit.
  • the service intermediary device can appropriately control access to communication related to service provision while further improving the security and robustness of the in-vehicle network system.
  • the output of the determination result may include displaying the information indicating the determination result on the display screen or transmitting the information indicating the determination result to the external device via the network.
  • the service intermediary device can more easily output the information indicating the determination result by displaying the information indicating the determination result on the screen or transmitting the information indicating the determination result to the external device. .. Therefore, the service intermediary device can appropriately control access to communication related to service provision.
  • a service intermediary device that appropriately controls access to communication related to service provision will be described. More specifically, a service mediation method in an in-vehicle network system in which a plurality of electronic control units (ECUs) perform service-oriented communication via Ethernet (registered trademark) will be described.
  • the in-vehicle network system is an example of a service providing system.
  • the service providing system there is a robot control network system or a control network system such as a mobility control network system.
  • FIG. 1 is a diagram showing an overall configuration of an in-vehicle network system according to the present embodiment.
  • the in-vehicle network system includes server ECUs 100a and 100b, client ECUs 100c and 100d, and an intermediary ECU 200.
  • the server ECU 100a is a device that provides a service to the client ECU 100c or 100d.
  • the server ECU 100b is a device that provides services in the same manner as the server ECU 100a.
  • the server ECUs 100a and 100b are also referred to as server units.
  • the client ECU 100c is a device that receives services provided by the server ECU 100a or 100b.
  • the client ECU 100d is a device that receives services, like the client ECU 100c.
  • the client ECUs 100c and 100d are also referred to as client units.
  • the service includes, for example, providing information such as a sensor value, or performing a predetermined calculation process in response to a request and outputting the calculation result.
  • the intermediary ECU 200 is a device that mediates the provision of services from the server ECU 100a or 100b to the client ECU 100c or 100d.
  • the intermediary ECU 200 is communicably connected to the server ECUs 100a and 100b and the client ECUs 100c and 100d by Ethernet.
  • the server ECUs 100a and 100b and the client ECUs 100c and 100d contribute to the realization of vehicle functions by communicating using SOME / IP.
  • the vehicle network system is configured to include only the server ECUs 100a and 100b, the client ECUs 100c and 100d, and the intermediary ECU 200 for the sake of brevity, but other ECUs or networks are present. May be good.
  • SOME / IP defines four types of communication methods: Request / Response, Fire / Forget, Events, and Get / Set / Noticer.
  • the server ECUs 100a and 100b and the client ECUs 100c and 100d realize service-oriented communication by combining these communication methods.
  • SOME / IP a method of establishing a session with a communication partner is also prepared, and this method is called Service Discovery (SD).
  • SD Service Discovery
  • FIG. 2 is a diagram showing a message format used for SOME / IP SD in the present embodiment.
  • the message format shown in FIG. 2 is stored in the payload part of Ethernet.
  • one line is 32 bits long, the first half is the SOME / IP header, and the second half is the SOME / IP SD payload.
  • the SOME / IP header includes fields of Message ID, Length, Request ID, Protocol Version, Interface Version, Message Type, and Return Code.
  • the Message ID stores the identifier of the message.
  • the Message ID is 0xFFFF8100 in the case of SOME / IP SD.
  • Length stores the number of bytes of data after the Length field.
  • the Request ID stores a numerical value that is a combination of the Client ID and the Session ID.
  • Protocol Version is set to 0x01
  • Interface Version is set to 0x01
  • Message Type is set to 0x02
  • Return Code is set to 0x00.
  • the SOME / IP SD payload includes the fields of Flags, Reserved, Length of Entries Array in Bytes, Entries Array, Length of Options Array in Bytes, and Options Array.
  • FIG. 3 is a diagram showing an example of a SOME / IP SD message in the present embodiment.
  • the SOME / IP SD message in FIG. 3 is an example of a message indicating that the service whose service ID is 0x1000 can be provided.
  • 0x80 is set for Flags, and Reboot Flag is set.
  • the Reserved area is set to 0.
  • the number of bytes of Entry is stored in Length of Entries Array in Bytes, and is set to 16 bytes in FIG.
  • Type can be set to 0x00 or 0x01.
  • 0x00 means Find and 0x01 means Offer.
  • Find is used when a client ECU that receives a service requests the provision of a necessary service.
  • the Offer is used when the server ECU that provides the service notifies the service that can be provided by the server ECU.
  • Type is 0x01, and the message shown in FIG. 3 is a message notifying the information about the service that the server ECU can provide.
  • Index 1st options indicates the position of the first option.
  • 0 is set in Index 1st options, that is, the first option is placed at the beginning of the option area.
  • Index 2nd options indicate the position of the second option. In FIG. 3, 0 is set for Index 2nd options. As will be described later, since option 2 is not used in the message shown in FIG. 3, the value set in Index 2nd options is not used.
  • # Of opt1 indicates the number of options 1. In FIG. 3, 1 is stored in #ofopt1.
  • # Of opt2 indicates the number of options 2. In FIG. 3, 0 is stored in #of oppt2, indicating that option 2 is not used.
  • the Service ID indicates an ID indicating the type of service. In FIG. 3, 0x1000 is stored in the Service ID.
  • the Instruction ID is an ID indicating an instance of the service, and is shown to be an instance of 0x0001 in FIG.
  • Major Version is information used for service version control, and is set to 0x01 in FIG.
  • TTL is a field for setting the service expiration date in seconds, and 0xFFFF is set in FIG.
  • 0xFFFF is set in FIG. The fact that 0xFFFF is set in the TTL means that the service is valid until the next start timing of the ECU.
  • Minor Version is information used for service version control, and is set to 0x00000002 in FIG.
  • the option area includes the fields of Length of Options Array in Bytes, Length, Type, Reserved, IPv4 address, Reserved, L4-Proto, and Port number.
  • the Length of Options Array in Bytes indicates the length of the Option region.
  • the Length of Options Array in Bytes is shown to be 12 bytes.
  • Length indicates the number of bytes in this option area. The value of Length is determined according to the type of option.
  • Type indicates the type of this option area.
  • FIG. 3 shows an example of communication using IPv4, in which Length is set to 9, Type is set to 0x04, and the Reserved area is set to 0x00.
  • the IPv4 address indicates the IP address of the server.
  • the IPv4 address is set to 192.168.0.1.
  • L4-Proto indicates Layer4, that is, the transport layer protocol.
  • L4-Proto stores 0x11 and indicates that User Datagram Protocol (UDP) is used.
  • UDP User Datagram Protocol
  • the port number indicates the port number of the transport layer to be used.
  • the port number indicates that it is the 35000th port in FIG.
  • FIG. 4 is a diagram showing a configuration of the server ECU 100a in the present embodiment.
  • the server ECU 100a is realized by a computer including, for example, a processor, a memory, a communication interface, and the like, and includes a communication unit 101, an application unit 102, an application authentication information holding unit 103, and a service policy holding unit 104.
  • the server ECU 100b, the client ECU 100c, or the client ECU 100d has the same configuration as the server ECU 100a, the description thereof will be omitted.
  • the communication unit 101 is a communication interface that communicates with other ECUs.
  • the communication unit 101 is an Ethernet communication interface, and in this case, it is connected to the intermediary ECU 200 via Ethernet.
  • the communication unit 101 receives a message from the Ethernet and notifies the application unit 102. Further, the communication unit 101 sends a message corresponding to the request from the application unit 102 to the Ethernet.
  • the application unit 102 executes an application that realizes the main function of the server ECU 100a.
  • the application unit 102 includes an application that provides a service of service-oriented communication.
  • the application unit 102 includes an application that receives the service.
  • the application unit 102 refers to the information stored in the application authentication information holding unit 103, and transmits information for authenticating the access authority to its own service to the intermediary ECU 200. Further, the application unit 102 notifies the service policy to the intermediary ECU 200 with reference to the service policy holding unit 104.
  • the application authentication information holding unit 103 holds information regarding a service authority certificate that certifies the access authority to the service possessed by the application unit 102. Details of the application authentication information will be described later.
  • the service policy holding unit 104 holds information indicating the security policy for the service, the policy related to the real-time property or the reliability. The details of the service policy will be described later.
  • FIG. 5 is a diagram showing the configuration of the intermediary ECU 200 in the present embodiment.
  • the intermediary ECU 200 includes a communication control unit 201, a service management unit 202, a proxy transmission unit 203, an abnormality monitoring unit 204, a service information holding unit 205, and a vehicle state holding unit 206. ..
  • the communication control unit 201 is a communication interface that communicates with other ECUs.
  • the communication control unit 201 has, for example, four Ethernet ports, and the respective Ethernet ports are communicably connected to the server ECUs 100a and 100b and the client ECUs 100c and 100d.
  • the communication control unit 201 transmits or receives an Ethernet frame between the server ECUs 100a and 100b and the client ECUs 100c and 100d.
  • the communication control unit 201 receives the message included in the frame flowing through the network and notifies the service management unit 202, and also receives the transmission request from the service management unit 202 and transmits the frame including the message to Ethernet. ..
  • the communication control unit 201 has a role of an Ethernet switch that transfers a message to an appropriate port according to the destination included in the received message.
  • the communication control unit 201 takes a standby state for a predetermined period when receiving a service provision frame from the server ECU 100a, and in the standby state, the service provision frame is transmitted from the server ECU 100b.
  • the service provision frame is transmitted from the server ECU 100b.
  • either of the two received service providing frames may be transmitted to the client ECU 100c or ECU 100d.
  • the server ECUs 100a and 100b have a redundant configuration
  • the service search frame when the service search frame is received from the client ECU 100c or the ECU 100d, the received service search frame may be transmitted to both the server ECUs 100a and 100b. good.
  • the server ECUs 100a and 100b have a redundant configuration, for example, the server ECU 100a corresponds to the first server unit or the main server, and the server ECU 100b corresponds to the second server unit or the sub server.
  • the service management unit 202 responds to the received service-oriented communication message by providing a service based on the service policy stored in the service information holding unit 205 and the vehicle state stored in the vehicle state holding unit 206. Perform mediation.
  • Service mediation means establishing service provision from the server ECU to the client ECU by relaying (or transferring) a frame related to the service provision between the server ECU and the client ECU.
  • the service management unit 202 determines whether or not the combination of the service identifier included in the frame received by the communication control unit 201, the identifier indicating the source or destination of the frame, and the frame type is appropriate. Judgment is made and the result of the judgment is output. The process related to service mediation will be described in detail later.
  • the service management unit 202 When the service mediation method is proxy transmission "Yes", the service management unit 202 provides the proxy transmission unit 203 with a message regarding the service corresponding to the proxy transmission. Further, in accordance with the transmission request from the proxy transmission unit 203, the service management unit 202 requests the communication control unit 201 to transmit a message.
  • the service management unit 202 notifies the abnormality monitoring unit 204 of a message in order to monitor whether or not an abnormality has occurred in the service communication.
  • the service management unit 202 holds communication status information indicating whether or not the servers ECUs 100a and 100b are in a communicable state, and the held communication status information may be transmitted to the client ECUs 100c and 100d.
  • the service management unit 202 detects that one of the server ECUs 100a and 100b is in a non-communication state, the service management unit 202 refers to the communication state information from the server ECU in the communicable state.
  • the received service providing frame may be transmitted to the client ECUs 100c and 100d.
  • the output of the determination result performed by the service management unit 202 includes displaying the information indicating the determination result on the display screen or transmitting the information indicating the determination result to the external device via the network.
  • the external device is an external device of the vehicle-mounted network system, and is a device connected to the vehicle-mounted network system by a network.
  • the proxy transmission unit 203 executes a proxy transmission process, which is a process of transmitting a communication frame on behalf of the server ECU 100a or ECU 100b, or the client ECU 100c or ECU 100d.
  • the proxy transmission unit 203 uses the mediation ECU 200 as the main body for sending and receiving messages instead of the server ECU 100a or ECU 100b. Specifically, when the proxy transmission unit 203 receives an Offer message including service provision information from the server ECU 100a or ECU 100b, the proxy transmission unit 203 uses the intermediary ECU 200 as a service provider on behalf of the server ECU 100a or ECU 100b, and the client ECU 100c or Transfer by transmitting the Server including the service provision information to the ECU 100d.
  • the proxy transmission unit 203 when the proxy transmission unit 203 receives the service request message from the client ECU 100c or the ECU 100d, the proxy transmission unit 203 transmits the mediation ECU 200 as a service enjoyer to the server ECU 100a or the ECU 100b on behalf of the client ECU 100c or the ECU 100d. Forward.
  • the mediation ECU 200 acts as a sender on behalf of the server ECU 100a or ECU 100b, and sends the reply or notification message to the client ECU 100c or Transfer to ECU 100d.
  • the mediation ECU 200 behaves as the client ECU 100c or ECU 100d with respect to the server ECU 100a or ECU 100b, and the server ECU 100a or with respect to the client ECU 100c or ECU 100d. It acts as an ECU 100b to act as an intermediary.
  • the proxy transmission unit 203 transfers a message from the client ECU 100c or the ECU 100d to the server ECU 100a or the ECU 100b in order to improve the reliability of the service.
  • the proxy transmission unit 203 may transfer the message of the main server for the message from the server ECU 100a or the ECU 100b, but may transfer the message of the sub server. Further, the proxy transmission unit 203 may wait for the reception of the messages of both the main server and the sub server, compare both the received messages, and transfer the message having an appropriate content to the client ECU 100c or the ECU 100d. The transfer of the message from the server ECU 100a or the ECU 100b is determined according to the service policy.
  • the proxy transmission unit 203 may control whether or not to execute the proxy transmission process according to the state information held by the vehicle state holding unit 206.
  • the abnormality monitoring unit 204 confirms whether or not an abnormality has occurred in the service-oriented communication.
  • the abnormality monitoring unit 204 interrupts communication from the server ECU 100a or ECU 100b, or the client ECU 100c or ECU 100d for a predetermined period, and stops providing or subscribing to the service from the server ECU 100a or ECU 100b, or the client ECU 100c or ECU 100d.
  • Communication error, abnormal alert by intrusion detection system, inconsistency of output between main server and sub server when sub server starts, etc. are determined.
  • the abnormality monitoring unit 204 determines that these events have been detected, it determines that an abnormality has occurred in the ECU 100a or the ECU 100b, and the service policy stored in the service information holding unit 205 and the vehicle state holding Based on the vehicle condition stored in the unit 206, it is determined whether to switch to the sub server in order to continue the service provision safely.
  • the service information holding unit 205 stores information on the server ECU 100a or ECU 100b, the client ECU 100c or ECU 100d, and the service policy for each service. Details of the service information will be described later.
  • the vehicle state holding unit 206 holds state information indicating the state of the vehicle.
  • the vehicle state holding unit 206 holds information related to vehicle running, which is an example of state information, to determine whether the service should be safely continued or stopped according to the characteristics of the service. do. Details of the vehicle condition will be described later.
  • FIG. 6A is a diagram showing a first example of the application authentication information stored in the application authentication information holding unit 103.
  • the application authentication information shown in FIG. 6A is the application authentication information stored in the application authentication information holding unit 103 of the server ECU 100a, which is the main server.
  • the application authentication information holds confidential information indicating that the application authentication information has access authority to the service (in other words, authority as a server that provides the service).
  • the main server public key is a key for verifying the signature generated by the main server private key. Using this key, the application unit 102 generates a signature on the public key of the sub server and the like, and the intermediary ECU 200 generates it. By verifying the signature, the authority of the sub-server that has a redundant configuration can be granted from the main server.
  • the session key is shared with the intermediary ECU 200 and used for payload encryption.
  • the sub-server public key and sub-server private key are generated or held in advance by the main server, and are used to give the sub-server access authority to the services of the main server.
  • the sub server public key and the sub server private key are stored in the application authentication information holding unit 103 of the server ECU 100a, which is the main server. And need not be stored.
  • the service authority certificate is created by the application vendor, vehicle manufacturer, etc., and the access authority to the service is described for each service ID.
  • the main server public key is 0x123456789 ...
  • the main server private key is 0xabcdefabcdef ...
  • the session key is 0xa787c89de989 ...
  • the subserver public key is 0x1a2b3c4d5e6f ...
  • the subserver private key is 0xfedcba ...
  • the service authority certificate describes the server authority (also referred to as "authority as a server”) for the service whose service ID is 10. It can be said that this is a description indicating that the server ECU 100a has been proved by the application vendor, the vehicle manufacturer, or the like to have the authority as the server that provides the above service.
  • the case where the application authentication information is held in plain text is shown as an example, but the application authentication information may be encrypted and held. Further, the application authentication information may be stored in a secure memory that cannot be directly read from the application unit 102.
  • FIG. 6B is a diagram showing a second example of the application authentication information stored in the application authentication information holding unit 103 in the present embodiment.
  • the application authentication information shown in FIG. 6B is application authentication information stored in the application authentication information holding unit 103 of the server ECU 100b, which is a sub server.
  • the application authentication information shown in FIG. 6B includes information other than the main server public key and the main server private key among the application authentication information shown in FIG. 6A.
  • the client ECU also holds the same application authentication information as the application authentication information held by the server ECU.
  • FIG. 6C is a diagram showing a third example of the application authentication information in the present embodiment. Specifically, the application authentication information shown in FIG. 6C is the application authentication information held by the client ECU 100c or 100d.
  • the application authentication information holds confidential information indicating that the user has access authority to the service (in other words, authority as a client to receive the service).
  • Each information contained in the application authentication information shown in FIG. 6C is the same as that contained in the application authentication information shown in FIG. 6A, but instead of the main server public key and the main server private key, the client is disclosed, respectively. It differs in that it includes the key and the client private key.
  • the service authority certificate describes the client authority (also referred to as "authority as a client") for the service whose service ID is 10. It can be said that this is a description indicating that the client ECU 100c or 100d has been proved by the application vendor, the vehicle manufacturer, or the like that the client ECU 100c or 100d has the authority as a client to receive the above service.
  • FIG. 7 is a diagram showing an example of a service policy stored in the service policy holding unit 104.
  • the service policy indicates the presence / absence and address of sub-server candidates, the presence / absence of proxy transmission, the switching method when an abnormality occurs in a redundant sub-server, and the vehicle status and switching method at the time of switching for each service ID.
  • the policy and security policy are stored.
  • the candidate for the sub server is "Yes", and 192.168.1. It shows that the ECU with the address of XX is a candidate for the sub server.
  • the proxy transmission is "Yes”, and the switching method is hot standby, which means that switching is possible when the main server is running and the sub server is also running. Further, the switching policy is "anytime possible", and the server ECU that provides the service is allowed to switch regardless of the running state of the vehicle.
  • SD message mediation and monitoring are set.
  • the mediation of the SD message as a security policy is carried out by the mediation ECU 200.
  • the intermediary ECU 200 terminates the Offer message normally transmitted by broadcast and verifies the appropriate server ECU and client ECU so that an attacker existing on the network illegally acquires the service ID information. Can be prevented.
  • the intermediary ECU 200 performs access control so that only the client ECU that can access the service can acquire appropriate server ECU information by transmitting a Find message to the intermediary ECU 200 and being authenticated.
  • the mediation ECU 200 may encrypt the payload of the Offer message with a session key shared in advance when mediating the SD message. As a result, even if there is an attacker who illegally acquires a message on the network, it is possible to prevent leakage of information related to the service ID.
  • Ethernet registered trademark
  • Monitoring as a security policy is to monitor whether or not an error has occurred in the message of the service ID. Since Ethernet (registered trademark) generates high-speed and large-capacity communication compared to CAN, by narrowing down the monitoring target, the processing load of the intermediary ECU 200 can be reduced and messages that affect safety can be efficiently transmitted. It becomes possible to monitor.
  • the sub-server candidate is "Yes” (192.168.1.20)
  • the proxy transmission is "No”
  • the switching method is any (that is, both hot standby and cold standby). (Available), and as for the switching policy, only hot standby is allowed while driving. Also, regarding the security policy, only SD mediation is set.
  • the sub-server candidate is "Yes” (192.168.1.XX)
  • the proxy transmission is "No”
  • the switching method is cold standby, and the switching policy is stopped. Switching of the server ECU is permitted only inside.
  • the security policy is set to mediate SD only at the time of initial registration.
  • the mediation ECU 200 Since the mediation ECU 200 is set to mediate SD only at the time of initial registration, it is not necessary to transmit SD via the mediation ECU 200 except at the time of initial registration. Therefore, if the above settings are made, the server ECU and the client ECU can directly exchange service detection messages, and the real-time performance of communication is improved. On the other hand, since the risk of spoofing by an unauthorized ECU increases, the setting is suitable for services that do not require security or services for which real-time performance is important.
  • FIG. 8A is a diagram showing an example of service information stored in the service information holding unit 205 of the intermediary ECU 200.
  • the service information is set based on the information included in the service policy notified from the server ECU or the client ECU.
  • the service information includes the address and status of the main server, the address and status of the sub server, the presence or absence of an abnormality occurring in the service, the address of the client ECU, and the service policy received from the server ECU for each service ID. Presence / absence, switching policy, security policy) is included.
  • the service policy is shared by the server ECUs 100a and 100b and the intermediary ECU 200, and other information may change depending on the state of the network.
  • the address of the main server of the service whose service ID is 0x10 is 192.168.1.10
  • the state of the main server is active
  • the address of the subserver is 192.168.1.20.
  • the state of the sub-server is active
  • the occurrence of an abnormality is "none”
  • the client ECU is 192.168.1.30. Since the service policy is the same as that in FIG. 7, description and description are omitted.
  • the address of the main server of the service whose service ID is 0x20 is 192.168.1.10
  • the state of the main server is active
  • the address of the subserver is 192.168.1.20.
  • the state of the sub-server is stopped, the occurrence of an abnormality is "none", and the client ECU is 192.168.1.31.
  • the service policy is omitted.
  • the address of the main server of the service whose service ID is 0x30 is 192.168.1.10, the state of the main server is active, the address of the subserver is 192.168.1.20, and the address of the subserver The state is stopped, the occurrence of an abnormality is "none", and the client ECU is not particularly applicable. It is shown that the intermediary ECU 200 does not manage the client ECU because the service can be provided without requiring authentication. The service policy is omitted.
  • FIG. 8B is a diagram showing an example of access control information possessed by the service management unit 202 of the intermediary ECU 200.
  • the access control information shown in FIG. 8B is information used when the service management unit 202 determines whether or not it is appropriate for the communication control unit 201 to mediate the received frame.
  • the access control information shown in FIG. 8B is, for example, information indicating a combination of a service identifier, an identifier indicating a source or destination, and a type of a frame to be mediated.
  • the service management unit 202 permits the mediation of frames corresponding to any of the combinations shown in the access control information, and prohibits the mediation of frames corresponding to any of the combinations shown in the access control information.
  • the access control information shown in FIG. 8B shows a combination of a service identifier, an identifier indicating a source or destination, and a type for a frame to be mediated for a service having a service ID of 0x10. ..
  • a frame whose source address is 192.168.1.10 that is, the address of the main server
  • whose frame type is an Offer message should be mediated.
  • a frame whose source address is 192.168.1.20 that is, the address of the subserver
  • a frame type is the Offer message should be mediated.
  • a frame whose destination address is 192.168.1.30 that is, the address of the client ECU
  • whose frame type is the Offer message should be mediated.
  • a frame whose source address is 192.168.1.30 (that is, the address of the client ECU) and whose frame type is a Find message should be mediated. It is indicated that a frame whose destination address is 192.168.1.10 (that is, the address of the main server) and whose frame type is a Find message should be mediated. It is indicated that a frame whose destination address is 192.168.1.20 (that is, the address of the subserver) and whose frame type is a Find message should be mediated.
  • access control information information indicating a combination of a service identifier, an identifier indicating a source or destination, and a type for a frame that should not be mediated can also be used.
  • the service management unit 202 prohibits the mediation of the frame corresponding to any of the combinations shown in the access control information, and permits the mediation of the frame corresponding to any of the combinations shown in the access control information.
  • the access control information is shown in the table format here, the access control information is not limited to the table format. As long as the information is the basis for the service management unit 202 to make the same determination as described above, it may be in another format, for example, it may be expressed as an algorithm.
  • FIG. 9 is a diagram showing an example of a vehicle state stored in the vehicle state holding unit 206 of the intermediary ECU 200. As shown in FIG. 9, the vehicle state stores the state of the vehicle equipped with the in-vehicle network.
  • FIG. 9 shows that the vehicle state is running.
  • the traveling state of the vehicle can be notified from another ECU to the intermediary ECU 200 through the in-vehicle network.
  • the mediation ECU 200 can mediate a service-oriented communication message according to the characteristics of the service, or control the switching timing to the sub-server.
  • the vehicle state may include a state of whether or not the vehicle is running, such as when stopped, running, or running at high speed. Further, the vehicle state may be added to the state of whether or not a specific function is operating. Examples of functions include automatic driving function, cruise control, automatic parking function, emergency automatic braking, and the like. Also, power-related conditions may be added, such as the vehicle being charged or discharged.
  • the intermediary ECU 200 improves the real-time property or security by switching the presence / absence of proxy transmission. It becomes possible. Specifically, the intermediary ECU 200 can improve the real-time performance by setting the proxy transmission to "none" so that the server ECU and the client ECU directly communicate with each other. Further, the intermediary ECU 200 can improve the security by setting the proxy transmission to "Yes" so that the intermediary ECU 200 verifies the message.
  • the intermediary ECU 200 may switch to the sub-server only when the vehicle is stopped or a specific function is stopped.
  • FIG. 10 is a diagram showing a service information registration sequence of the intermediary ECU 200 in the present embodiment.
  • FIG. 10 shows a sequence in which the intermediary ECU 200 mediates the communication between the server ECU 100a and the client ECU 100c until the service is detected. At this time, the intermediary ECU 200 updates the service information.
  • the intermediary ECU 200 executes the following processing.
  • the communication control unit 201 receives an Offer message including the first service information indicating the service to be provided from the server ECU 100a. Further, the communication control unit 201 receives a Find message from the client ECU 100c, which is a Find message and includes the second service information indicating the target of the service search, before the service is provided.
  • the service management unit 202 controls the communication of the Offer message including the same first service information as the second service information included in the Find message received by the communication control unit 201 to the client ECU 100c which is the source of the received Find message. It is transmitted by unit 201.
  • the Offer message corresponds to the service providing frame
  • the Find message corresponds to the service search frame.
  • step S101 the server ECU 100a transmits an Offer message (also simply referred to as “Offer”) including information indicating the service provided by the server ECU 100a to the intermediary ECU 200.
  • the server ECU 100a transmits the service authority certificate (see FIG. 6A) indicating the access authority regarding the service and the information regarding the policy of the service by including it in the Offer message.
  • step S102 the intermediary ECU 200 receives the Offer message transmitted by the server ECU 100a in step S101, verifies the service authority certificate, and confirms that the server ECU 100a has the authority of the server for the service. When the verification is successful, the intermediary ECU 200 determines that the Offer frame is valid.
  • step S103 the intermediary ECU 200 updates the service information based on the information (IP address, port number, etc.) of the server ECU 100a included in the Offer message transmitted by the server ECU 100a in step S101 and the service policy.
  • step S104 the client ECU 100c transmits a Find message (also simply referred to as “Find”) including information on the service to be provided to the intermediary ECU 200.
  • the client ECU 100c includes the service authority certificate (see FIG. 6C) indicating that the client ECU 100c has the client authority of the service for which the service is to be provided in the Find message, and transmits the service authority certificate.
  • step S105 the intermediary ECU 200 receives the Find message transmitted by the client ECU 100c in step S104, verifies the service authority certificate, and confirms that the client ECU 100c has the client authority for the service. The intermediary ECU 200 determines that the Find frame is valid when the verification is successful.
  • step S106 the intermediary ECU 200 adds the client information to the service information.
  • step S107 the intermediary ECU 200 transmits an Offer message to the client ECU 100c.
  • the intermediary ECU 200 transmits an Offer message to the client ECU 100c with the intermediary ECU 200 as the service provider.
  • the proxy transmission is "none”
  • the server ECU 100a is used as the service provider, and the Offer message is transmitted to the client ECU 100c.
  • step S108 the client ECU 100c receives the Offer message transmitted by the intermediary ECU 200 in step S107, and registers the server information based on the received Offer message.
  • FIG. 11A is a diagram showing a communication sequence of a service that only mediates SD in the present embodiment.
  • FIG. 11A shows an example of a communication sequence when the mediation ECU 200 is set to SD mediation only in the security policy and proxy transmission is set to “none”.
  • the sequence shown in FIG. 11A shows the sequence after the SD mediation shown in FIG. 10 is completed.
  • step S109 the client ECU 100c transmits a Subscribing message of the service to the server ECU 100a based on the registered server information.
  • the transmitted Subscribing message is transferred to the server ECU 100a by being received by one port of the communication control unit 201 of the intermediary ECU 200 and transmitted from another port.
  • the message transmitted from the client ECU 100c to the server ECU 100a via the intermediary ECU 200 is transferred by reception and transmission by the port of the communication control unit 201 of the intermediary ECU 200.
  • step S110 the server ECU 100a receives the Subscribing transmitted by the client ECU 100c in step S109, and returns the Subscribing Ac message to the client ECU 100c.
  • the transmitted Subscribing Ac message is transferred to the client ECU 100c by being received by one port of the communication control unit 201 of the intermediary ECU 200 and transmitted from another port.
  • the message transmitted by the server ECU 100a to the client ECU 100c is transferred by reception and transmission by the port of the communication control unit 201 of the intermediary ECU 200.
  • step S111 the server ECU 100a transmits a SOME / IP message that provides a service to the client ECU 100c.
  • step S112 the client ECU 100c receives the SOME / IP message transmitted by the server ECU 100a in step S111.
  • step S113 the server ECU 100a transmits the SOME / IP message after a lapse of a predetermined period from the reception of the SOME / IP message in step S112.
  • step S114 the client ECU 100c receives the message transmitted by the server ECU 100a in step S113. After step S114, communication between the server ECU 100a and the client ECU 100c continues.
  • FIG. 11B is a diagram showing a communication sequence of a service that performs proxy transmission in the present embodiment.
  • FIG. 11B shows an example of a communication sequence when the intermediary ECU 200 is set to “Yes” for proxy transmission.
  • the sequence shown in FIG. 11B shows the sequence after the SD mediation shown in FIG. 10 is completed.
  • FIG. 11B the same processing as that in FIG. 11A is designated by the same reference numerals, and detailed description thereof will be omitted.
  • step S121 the proxy transmission unit 203 of the intermediary ECU 200 receives the Subscribing message transmitted by the client ECU 100c in step S109, changes the source (that is, the service beneficiary) of the received Subscribing message to the IP address of the intermediary ECU 200.
  • the changed Subscribing message is transmitted to the server ECU 100a.
  • the IP address on the server side may be changed so that the IP address on the client side is not changed.
  • step S121 the IP address on the client side may be changed so that the IP address on the server side is not changed.
  • An arbitrary identifier may be used instead of the IP address. The same applies thereafter.
  • step S122 the proxy transmission unit 203 of the intermediary ECU 200 receives the SubscribbeAck message transmitted by the server ECU100a in step S110, changes the source (that is, the service provider) of the received SubscribbeAck message to the IP address of the intermediary ECU 200.
  • the changed SubscribingAck message is transmitted to the client ECU 100c.
  • step S123 the proxy transmission unit 203 of the intermediary ECU 200 receives the message transmitted by the server ECU 100a in step S111, changes the source (that is, the service provider) of the received message to the intermediary ECU 200, and changes the changed message. It is transmitted to the client ECU 100c.
  • step S124 the proxy transmission unit 203 of the intermediary ECU 200 receives the message transmitted by the server ECU 100a in step S113, changes the source (that is, the service provider) of the received message to the intermediary ECU 200, and changes the message after the change. It is transmitted to the client ECU 100c.
  • FIG. 12 is a diagram showing a sub-server registration sequence of the intermediary ECU 200 in the present embodiment.
  • FIG. 12 shows a sub-server registration sequence when the server ECU 100b, which is a sub-server, performs hot standby.
  • FIG. 12 is the process when the servers ECUs 100a and 100b start to form a redundant configuration.
  • step S201 the server ECU 100a, which is the main server, transmits a sub server start message to the server ECU 100b, which is the sub server.
  • the server ECU 100a includes a sub-server certificate indicating that the sub-server authority for the service has been given by the main server in the sub-server start message.
  • step S202 the server ECU 100b receives the sub-server start message transmitted by the server ECU 100a in step S201, and starts an application that provides a service corresponding to the received sub-start message.
  • step S203 the server ECU 100b, which is a sub server, transmits an Offer message to the intermediary ECU 200.
  • the server ECU 100b includes the authentication information indicating that it has the authority of the sub server in the Offer message and transmits it.
  • step S204 the intermediary ECU 200 receives the Offer transmitted by the server ECU 100b in Step S203, and verifies the service information and the authentication information included in the received Offer message.
  • step S205 the intermediary ECU 200 actively updates the state of the sub-server of the service information and registers the address of the sub-server.
  • FIG. 13 is a diagram showing a communication sequence of proxy transmission by the intermediary ECU 200 in the present embodiment.
  • FIG. 13 shows a communication sequence relating to a service in which proxy transmission by the intermediary ECU 200 is “Yes”.
  • the sequence shown in FIG. 13 shows the service information registration sequence in FIG. 10 and the sequence after the start sequence of the sub-server in FIG. 12 is completed.
  • the servers ECUs 100a and 100b have a redundant configuration.
  • the client ECU 100c transmits a Subscribing message to the intermediary ECU 200, and the intermediary ECU 200 transmits a Subscribing message to the server ECU as the client ECU. Session has been established.
  • step S206 the server ECU 100a, which is the main server, transmits a message having the service ID of 10 to the intermediary ECU 200.
  • the intermediary ECU 200 receives the transmitted message and takes a standby state for a predetermined period.
  • step S207 the server ECU 100b, which is a sub server, transmits a message having a service ID of 10 to the intermediary ECU 200 in the same manner as described above.
  • step S208 the intermediary ECU 200 compares the message received in step S206 from the server ECU 100a, which is the main server, with the message received in step S207 from the server ECU 100b, which is the sub server.
  • the comparison of messages by the intermediary ECU 200 verifies, for example, that the payloads included in the messages match, or that the differences are within a predetermined error range.
  • the intermediary ECU 200 transmits a message having the service ID of 10 to the client ECU 100c as the server ECU.
  • the message transmitted at this time may be a transfer of the message received from the server ECU 100a, which is the main server. Further, the above message may be a transfer of a message received from the server ECU 100b which is a sub server. However, if the message received from the server ECU 100a is inconsistent, the intermediary ECU 200 may discard the message. Further, when a message is received only from the main server or the sub server within a predetermined period, the intermediary ECU 200 may transfer the payload included in the received message as it is. Details will be described with reference to FIG.
  • step S210 the client ECU 100c receives the message transmitted by the intermediary ECU 200 in step S209.
  • FIG. 14 is a diagram showing a communication sequence of proxy transmission when an abnormality occurs in the present embodiment.
  • FIG. 14 shows a communication sequence when a communication abnormality occurs with respect to a service in which proxy transmission by the intermediary ECU 200 is “Yes”.
  • the sequence shown in FIG. 14 shows the service information registration sequence in FIG. 10 and the sequence after the start sequence of the sub-server in FIG. 12 is completed.
  • the client ECU 100c transmits a Subscribing message to the intermediary ECU 200
  • the intermediary ECU 200 transmits a Subscribing message to the server ECU as the client ECU to mediate a session between the client ECU 100c and the intermediary ECU 200 and mediate between the server ECU 100a and the server ECU 100b. It is assumed that the session with the ECU 200 has been established.
  • the servers ECUs 100a and 100b have a redundant configuration.
  • step S211 the server ECU 100b transmits a message having a service ID of 10 to the intermediary ECU 200.
  • the intermediary ECU 200 receives the transmitted message and takes a standby state for a predetermined period.
  • step S212 the intermediary ECU 200 detects the interruption of communication with the server ECU 100a, which is the main server.
  • the intermediary ECU 200 detects the interruption of communication with the main server by detecting that the message from the server ECU 100a of the main server has not been received in the standby state for a predetermined period.
  • step S213 the intermediary ECU 200 transmits a message with a service ID of 10 to the client ECU 100c based on the message of the server ECU 100b which is a sub server.
  • the intermediary ECU 200 may control whether or not to transmit the above message according to the type of service. Further, the intermediary ECU 200 may control whether or not to transmit the above message according to the state information indicating the state of the vehicle.
  • step S214 the intermediary ECU 200 updates the service information to "Yes" when an abnormality occurs, and updates the state of the main server to "Stopped". Further, the intermediary ECU 200 may execute a predetermined process to be performed when an abnormality occurs in the sub server. The update process may be included in the predetermined process.
  • step S215 the client ECU 100c receives the message.
  • FIG. 15 is a diagram showing a switching sequence to the sub-server when an abnormality occurs in the present embodiment.
  • FIG. 15 shows a sequence when the intermediary ECU 200 detects an abnormality in the server ECU 100a and switches to a sub-server to continue providing the service.
  • the sequence shown in FIG. 15 shows the sequence after the SD mediation shown in FIG. 10 is completed. Further, it is assumed that the vehicle state is "stopped".
  • the servers ECUs 100a and 100b have a redundant configuration.
  • step S301 when the server ECU 100a stops providing the service for some reason, the server ECU 100a broadcasts a StopOffer message (also referred to simply as "StopOffer”) to cause the client ECU 100c to receive the service.
  • StopOffer also referred to simply as "StopOffer”
  • step S302 the client ECU 100c stops receiving the service in response to receiving the StopOffer in step S301.
  • step S303 the intermediary ECU 200 detects that an abnormality has occurred in the server ECU 100a, which is the main server, based on the reception of the StopOffer message.
  • step S304 the intermediary ECU 200 acquires the current vehicle state in order to switch the server.
  • step S305 the intermediary ECU 200 determines that the server can be switched when the vehicle state is "stopped”, and transmits a start message, which is a message for starting the sub server based on the service information, to the server ECU 100b. Further, when the vehicle state is "running", the intermediary ECU 200 determines that the server cannot be switched and ends the process.
  • step S306 the server ECU 100b activates the application for providing the service having the service ID of 30 in response to receiving the activation message transmitted by the intermediary ECU 200.
  • step S307 the server ECU 100b notifies the client ECU 100c of the server information by broadcasting the Offer message.
  • step S308 the client ECU 100c updates the server information to the server ECU 100b, which is a sub server, in response to receiving the Offer message in step S307. As a result, the client ECU 100c can receive the service of the service ID 30 stopped in step S301 again.
  • FIG. 16 is a flowchart showing processing for an SD message by the intermediary ECU 200.
  • step S400 the intermediary ECU 200 receives a message from the server ECU 100a or 100b or the client ECU 100c or 100d.
  • step S401 the intermediary ECU 200 determines whether or not the message received in step S400 is a service Offer message. If it is determined that the message is an Offer message, the intermediary ECU 200 executes step S402, and if it is determined that the message is not an Offer message, the intermediary ECU 200 executes step S410.
  • step S402 the intermediary ECU 200 determines whether the service information related to the Offer message received in step S400 is a service already registered in the service information holding unit 205 held by itself. If it is a registered service, the intermediary ECU 200 executes step S403. If not, the intermediary ECU 200 executes step S407.
  • step S403 when the service related to the Offer message received in step S400 is already registered in the service information holding unit 205, the intermediary ECU 200 mediates the SD for the corresponding service held in the service information holding unit 205. Check for presence. If the SD mediation is "yes", the mediation ECU 200 executes step S405. If not, the intermediary ECU 200 executes step S404.
  • step S404 the intermediary ECU 200 transfers the Offer message received in step S400 according to the header information.
  • step S405 the intermediary ECU 200 determines whether or not the information included in the Offer message received in step S400 is consistent with the service information stored in the service information holding unit 205. Specifically, the intermediary ECU 200 determines whether or not the service ID included in the Offer message and the service ID of the server included in the service information match.
  • step S406 If it is determined that the information contained in the Offer message is consistent with the service information, the intermediary ECU 200 executes step S406, and if not, executes step S408.
  • step S406 the intermediary ECU 200 updates the service information based on the information included in the Offer message received in step S400, and ends the process.
  • step S407 the intermediary ECU 200 verifies the authentication information included in the Offer message received in step S400, and determines whether or not the verification is successful. If the verification of the authentication information is successful, the intermediary ECU 200 executes step S409, and if not, executes step S408.
  • step S408 the intermediary ECU 200 discards the Offer message received in step S400.
  • step S409 the intermediary ECU 200 updates the service information stored in the service information holding unit 205 based on the service policy included in the Offer message received in step S400, and ends the process.
  • step S410 the intermediary ECU 200 determines whether or not the message received in step S400 is a Find message. If it is determined that it is a Find message, the intermediary ECU 200 executes step S411, and if not, ends the process.
  • step S411 the intermediary ECU 200 determines whether or not the information of the client ECU that is the source of the Find message received in step S400 is registered in the service information holding unit 205. If it is determined that the information of the client ECU is registered, the intermediary ECU 200 executes step S412, and if not, executes step S413.
  • step S412 the intermediary ECU 200 transmits an Offer message including server information to the client ECU based on the service information, and ends.
  • step S413 the intermediary ECU 200 verifies the authentication information included in the Find message received in step S400, and determines whether or not the verification is successful. If the verification of the authentication information is successful, the intermediary ECU 200 executes step S414, and if not, executes step S415.
  • step S414 the intermediary ECU 200 registers the client information in the service information stored in the service information holding unit 205, and executes step S412.
  • step S415 the intermediary ECU 200 discards the Find message received in step S400.
  • the server information is updated when the determination of the consistency of the service information is successful (step S406), but the verification of the authentication information (step S405) is performed instead of the determination of the consistency of the service information (step S405).
  • Step S407 may be carried out and the server information may be updated when the verification is successful.
  • FIG. 17 is a flowchart showing processing for a SOME / IP message (more specifically, a SOME / IP message other than an SD message) by the intermediary ECU 200 in the present embodiment.
  • step S501 the intermediary ECU 200 receives a SOME / IP message other than the SD message.
  • step S502 the intermediary ECU 200 determines whether or not the service corresponding to the message received in step S501 is the monitoring target. If it is determined that the object is to be monitored, the intermediary ECU 200 executes step S503, and if not, the intermediary ECU 200 executes step S505.
  • step S503 the intermediary ECU 200 determines whether or not the message received in step S501 matches the service information stored in the service information holding unit 205. Specifically, if the message received in step S501 is a message (Notification or Response) transmitted from the server, the intermediary ECU 200 matches the source of the message with the registered server information. Moreover, it is determined whether or not the destination of the message matches the registered client information. If the message received in step S501 is a message transmitted from the client (Request or Request no Response), the intermediary ECU 200 matches the registered client information with the source of the message, and the transmission source of the message matches the registered client information. It is determined whether or not the message destination matches the registered server information. If it is determined that the message matches the service information, the intermediary ECU 200 executes step S504, and if it does not match the service information, executes step S506.
  • the intermediary ECU 200 executes step S504 and if it does not match the service information, executes step S506.
  • step S504 the intermediary ECU 200 acquires the presence or absence of proxy transmission of the target service by referring to the service information stored in the service information holding unit 205. If the proxy transmission is "none", the intermediary ECU 200 executes step S505. If the proxy transmission is "Yes”, the intermediary ECU 200 executes step S507.
  • step S505 the intermediary ECU 200 transfers the received message.
  • step S506 the intermediary ECU 200 discards the received message.
  • step S507 when the service of the received message is "Yes" for proxy transmission, the intermediary ECU 200 determines whether or not the type of the received message is Request. When the type of the received message is Request, the intermediary ECU 200 executes step S508. If the type of the received message is not Request, the intermediary ECU 200 executes step S509.
  • step S508 the intermediary ECU 200 refers to the service information stored in the service information holding unit 205, transfers the received Request message to the active server, and ends the process. At this time, the intermediary ECU 200 rewrites the transmission source included in the Request message to the intermediary ECU 200 and transfers the Request message.
  • step S509 the intermediary ECU 200 determines whether or not there is another active server for the target service, assuming that the message received in step S501 is transmitted from the server. At this time, the intermediary ECU 200 makes the above determination by referring to the service information stored in the service information holding unit 205. If it is determined that there is no other active server, the intermediary ECU 200 executes step S511. If there is an active server, the intermediary ECU 200 executes step S510.
  • step S510 the intermediary ECU 200 determines whether or not a message has already been received from another active server. To confirm the receipt of a message, for example, the received message from the server is retained for a predetermined period of time, and it is determined whether or not the message from the corresponding server exists in the retained message. Do it with.
  • the intermediary ECU 200 executes step S511, otherwise it executes step S513.
  • the intermediary ECU 200 selects a message.
  • the message selection method is, for example, a method of selecting a message on the main server with higher priority, a method of selecting a message received more recently with higher priority, and a method of comparing multiple messages and corresponding to an intermediate value. It is conceivable to preferentially select the one to be used or the one close to the intermediate value.
  • step S512 the intermediary ECU 200 transmits a message on behalf of the user.
  • step S513 the intermediary ECU 200 waits for a predetermined period and determines whether or not to receive a message from another active server ECU.
  • step S514 the intermediary ECU 200 obtains server information for the server that is active and has not received a message among the server information held in the service information holding unit 205, assuming that an abnormality has occurred in the server. Update to stop.
  • FIG. 18 is a flowchart showing a server switching process when a communication abnormality of the main server is detected in the present embodiment.
  • step S601 the intermediary ECU 200 detects a communication abnormality of the main server, and updates the main server information and the abnormality detection information among the service information stored in the service information holding unit 205.
  • the communication abnormality of the main server can be detected by, for example, notification of an error message from the main server, notification of a StopOffer message, communication blackout for a predetermined period, or the like.
  • step S602 the intermediary ECU 200 refers to the service information stored in the service information holding unit 205, and determines whether or not the sub server is active. If it is determined that the subserver is active, the intermediary ECU 200 executes step S603. If not, the intermediary ECU 200 executes step S606.
  • step S603 the intermediary ECU 200 refers to the vehicle state stored in the vehicle state holding unit 206 and the service policy in the service information, and whether or not the vehicle state matches the switching policy (hot standby). To judge. If it is determined that the vehicle state matches the switching policy, the intermediary ECU 200 executes step S604. If not, the intermediary ECU 200 ends the process without doing anything.
  • step S604 the intermediary ECU 200 acquires the presence / absence of proxy transmission of the target service.
  • the intermediary ECU 200 terminates without doing anything, that is, the service is continued by the sub-server.
  • the intermediary ECU 200 executes step S605.
  • step S605 the intermediary ECU 200 notifies the client ECU of the switching of the server ECU by transmitting an Offer message including the information of the sub server as a service provider, and ends the process.
  • step S606 the intermediary ECU 200 confirms whether or not the vehicle state matches the switching policy (cold standby). When the vehicle state matches the switching policy (cold standby), the intermediary ECU 200 executes step S607. If not, the intermediary ECU 200 ends the process.
  • step S607 the intermediary ECU 200 starts the sub server.
  • the sub-server is started, for example, by sending a message requesting the sub-server to start an application that provides the service.
  • step S608 the intermediary ECU 200 updates the service information of the service information holding unit 205 by verifying the authentication information based on the Offer message transmitted after starting the sub server and acquiring the server information.
  • step S609 the intermediary ECU 200 transmits an Offer message including information on the sub-server as a service provider to the client ECU.
  • the intermediary ECU 200 authenticates whether the server or client is a legitimate server or client by verifying the authentication information regarding SOME / IP SD communication. As a result, it becomes possible to manage the access right to the service by the unauthorized ECU, prevent spoofing by the unauthorized ECU, and enhance the security.
  • the intermediary ECU 200 changes the intermediary method of service-oriented communication according to the service policy. As a result, for messages that require high security, the intermediary ECU 200 monitors and transmits by proxy, so that the server information can be concealed while monitoring the messages related to the service. In addition, for messages that require high real-time performance, it is possible to maintain real-time performance while improving security by mediating only when a service is detected.
  • the intermediary ECU 200 selects a method of switching to the sub server when an abnormality occurs in the service provider according to the service policy and the vehicle condition. This makes it possible to increase the robustness of the service while considering the effect of the service on vehicle driving depending on the type of service.
  • FIG. 19A is a diagram showing the configuration of the service intermediary device 300 in this modified example.
  • the service intermediary device 300 corresponds to the intermediary ECU 200 of the above embodiment.
  • the service intermediary device 300 includes a communication control unit 301 and a service management unit 302.
  • the communication control unit 301 is a frame used for providing a service from the server unit or the client unit, which is connected to each of the server unit and the client unit in a service providing system that provides a service from the server unit to the client unit by service-oriented communication. To receive.
  • the communication control unit 301 corresponds to the communication control unit 201 of the above embodiment.
  • the service management unit 302 determines whether or not the combination of the service identifier included in the frame received by the communication control unit 301, the identifier indicating the source or destination of the frame, and the frame type is appropriate. , Output the judgment result.
  • the service management unit 302 corresponds to the service management unit 202 of the above embodiment.
  • the service intermediary device 300 may include a proxy transmission unit 303 corresponding to the proxy transmission unit 203 included in the mediation ECU 200 of the above embodiment.
  • the service intermediary device 300 may include a vehicle state holding unit 304 corresponding to the vehicle state holding unit 206 provided in the intermediary ECU 200 of the above embodiment.
  • FIG. 19B is a flow chart showing the processing of the service intermediary device 300 in this modified example.
  • step S1 the communication control unit 301 receives a frame used for providing a service from the server unit or the client unit.
  • step S2 the service management unit 302 has an appropriate combination of the identifier of the service included in the frame received by the communication control unit 301 in step S1, the identifier indicating the source or destination of the frame, and the type of the frame. Judge whether or not.
  • step S3 the service management unit 302 outputs the result of the determination in step S2.
  • the service intermediary device 300 appropriately controls access to communication related to service provision.
  • FIG. 16 a processing example of the Offer and Find in the processing of the SD message is shown in FIG. 16, but another SD message type may be processed.
  • the client information may be confirmed for Subscribing in the same manner.
  • the target range of message monitoring is widened, and security improvement can be expected.
  • the types of ECUs are divided into a server ECU and a client ECU as an in-vehicle network system, but the server ECU may actually be a client ECU, and the client ECU may be a server. It may play the role of an ECU.
  • the server ECU or the client ECU is simply referred to by paying attention to a specific service.
  • the application authentication information is notified by the ECU and the intermediary ECU 200 verifies the authentication information, but the intermediary ECU 200 may hold the authentication information in advance.
  • the notified authentication information may be verified and stored in the non-volatile memory at the first startup at the assembly stage of the factory. This eliminates the need to verify the authentication information each time the vehicle is started, which is effective in reducing the amount of communication in the in-vehicle network and reducing the processing load of the intermediary ECU 200.
  • the application authentication information is held in plain text, but it may be encrypted and held.
  • the service policy may be encrypted and retained.
  • an example is shown in which an Ethernet switch having a plurality of ports exists in the intermediary ECU 200 and each ECU performs communication via the intermediary ECU 200, but the intermediary ECU 200 does not have an Ethernet switch. May be good.
  • the server ECU and the client ECU may provide the service by communicating only with the intermediary ECU 200. This makes it possible to realize service mediation regardless of the physical arrangement of the mediation ECU 200.
  • Ethernet communication is performed in plain text, but encrypted communication such as IPsec, MACsec, or TLS may be performed.
  • the payload may be encrypted using a session key shared in advance. This makes it possible to hide information about the service from an attacker who accesses the network and eavesdrops, which is effective.
  • VLAN virtual LAN
  • an example of holding the IP address and the state as the main state is shown as an example of the service information, but the information to be held is not limited to this.
  • the port number for providing the service may be included.
  • the port number may be included as the client information.
  • the presence or absence of proxy transmission is determined by the service policy, but it may be determined in combination with the vehicle state. For example, for a service in which the real-time requirement is changed according to the vehicle condition, the presence / absence of proxy transmission may be switched according to the vehicle condition.
  • FIG. 19C shows a flowchart in which the service mediation method is determined by the mediation ECU 200.
  • FIG. 19C shows an example in which the mediation method is determined based on the attributes set for each service.
  • the service attribute may be a service type (status notification, control signal, diagnosis, update), status signal attribute (public / private, control judgment information, user notification information).
  • step S701 the intermediary ECU 200 receives the service attribute.
  • the attributes of the service may be included in the Offer message, may be exchanged by other than the SOME / IP message, or may be described in the manifest file for each service held in advance.
  • step S702 the intermediary ECU 200 determines whether or not the service type is status notification. If it is determined that the service is of the status notification type, the intermediary ECU 200 executes step S703. If it is not a status notification service, step S710 is executed.
  • step S703 the intermediary ECU 200 determines whether or not the attribute of the service status signal is public information. When it is determined that the attribute of the service status signal is public information, the intermediary ECU 200 executes step S704. If it is determined that the attribute of the service status signal is not public information, the intermediary ECU 200 executes step S705.
  • the service status signal refers to the status notification notified by the service.
  • the state signal has attributes. For example, if the status signal is information that can be acquired by all ECUs participating in the network system, the attribute of "public information” is added. Further, when the control ECU performs control based on the state signal, the attribute of "control instruction information (command information)” or “control determination information (sensor information)” is added. Further, as information not directly related to the control of the control ECU, the attribute of "user notification information” is added to the signal for notifying the user such as the driver of the information through voice or screen.
  • the security level that is, the presence or absence of service mediation or proxy transmission may be determined according to the attributes of these status signals.
  • step S704 since there is no problem regardless of which client the service is provided to, the intermediary ECU 200 sets the intermediary method of the service as "no service intermediary" and "none" for proxy transmission, and performs processing. finish.
  • step S705 the intermediary ECU 200 determines whether or not the attribute of the service status signal is the information used for the control determination. When it is determined that the attribute of the service status signal is the information used for the control determination, the intermediary ECU 200 executes step S707. When it is determined that the attribute of the service status signal is not the information used for the control determination, the intermediary ECU 200 executes step S708.
  • step S707 since the intermediary ECU 200 is required to have real-time performance, the intermediary method of the service is set to "none" for proxy transmission and "yes" for intermediation of the service, and the process ends.
  • step S708 the intermediary ECU 200 determines whether or not the attribute of the service status signal is user notification information. If it is determined that the attribute of the service status signal is the user notification information, step S709 is executed. If the state is not user notification information, the intermediary ECU 200 executes step S710.
  • step S709 since the intermediary ECU 200 is required to have reliability of information rather than real-time performance, the intermediary method of the service is set to “presence” for proxy transmission and “presence” for service intermediation, and the process ends. ..
  • step S710 the intermediary ECU 200 sets the service intermediation "Yes” and the proxy transmission "None" as the intermediary method of the service as default settings.
  • the intermediary ECU 200 manages the access authority by verifying the authentication information, but it is not necessary to verify the authentication information.
  • the intermediary ECU 200 discards the message when the service information inconsistency occurs, but the processing when the service information inconsistency occurs is not limited to the message discard.
  • the intermediary ECU 200 may save the information regarding the inconsistency as a log or notify the outside.
  • FIG. 20 shows an example of a log notified to the outside. Logs notified to the outside may be displayed on the display for visualization.
  • FIG. 20 shows that the log ID, which is the serial ID of the abnormality detection log, is 100200, and the abnormality code that conveys the type of abnormality is 0x10 (service policy violation). Further, the details of the detection contents indicate that an abnormality in the access source information was detected in the service having the service ID of 0x10. The original packet that detected the abnormality is also included in the log, and as for the response taken when the abnormality was detected, the original packet was discarded and the switch to the sub server was attempted, but the vehicle status did not meet the switching policy conditions. , Indicates that it is in the unswitched state.
  • the intermediary ECU 200 may switch the sub server other than when the abnormality is detected.
  • the intermediary ECU 200 may switch to a sub-server to distribute the load according to the processing load of the main server or the increase in the communication band.
  • the sub-server may be selected according to the vehicle condition. For example, the load of the server is held for each vehicle state, and the intermediary ECU 200 may switch to the server with the lowest load.
  • the priority of the server is provided, and the intermediary ECU 200 may be selected by the server according to the priority of the server.
  • the intermediary ECU 200 may calculate the priority according to the vehicle state, the communication band, the server load, and the function during operation, and an appropriate server may be selected according to the priority.
  • the intermediary ECU 200 waits for the reception of messages from a plurality of servers at the time of proxy transmission, but the first received message may be transferred to the client. This is effective because the communication delay is reduced. Further, after the message is transferred, the intermediary ECU 200 may detect the occurrence of abnormal communication by comparing with the message from another server. This makes it possible to detect unauthorized communication, which is effective in improving security.
  • Each device in the above embodiment is specifically a computer system composed of a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • Computer programs are recorded in the RAM or hard disk unit.
  • Each device achieves its function by operating the microprocessor according to a computer program.
  • a computer program is configured by combining a plurality of instruction codes indicating commands to a computer in order to achieve a predetermined function.
  • Each device according to the above embodiment may be composed of a part or all of the constituent elements of one system LSI (Large Scale Integration).
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on one chip, and specifically, is a computer system including a microprocessor, a ROM, a RAM, and the like. .. A computer program is recorded in the RAM. The system LSI achieves its function by operating the microprocessor according to the computer program.
  • each part of the component components constituting each of the above devices may be individually integrated into one chip, or may be integrated into one chip so as to include a part or all of them.
  • system LSI Although it is referred to as a system LSI here, it may be referred to as an IC, an LSI, a super LSI, or an ultra LSI due to the difference in the degree of integration. Further, the method of making an integrated circuit is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. An FPGA (Field Programmable Gate Array) that can be programmed after the LSI is manufactured, or a reconfigurable processor that can reconfigure the connection and settings of the circuit cells inside the LSI may be used.
  • FPGA Field Programmable Gate Array
  • Some or all of the components constituting each of the above devices may be composed of an IC card or a single module that can be attached to and detached from each device.
  • An IC card or module is a computer system composed of a microprocessor, ROM, RAM, and the like.
  • the IC card or module may include the above-mentioned super multifunctional LSI.
  • the microprocessor operates according to a computer program, the IC card or module achieves its function. This IC card or this module may have tamper resistance.
  • the present disclosure may be the method shown above. Further, it may be a computer program that realizes these methods by a computer, or it may be a digital signal composed of a computer program.
  • the present disclosure also describes computer programs or recording media capable of computer-readable digital signals, such as flexible disks, hard disks, CD-ROMs, MOs, DVDs, DVD-ROMs, DVD-RAMs, and BDs (Blu-ray®). ) It may be recorded on a Disc), a semiconductor memory, or the like. Further, it may be a digital signal recorded on these recording media.
  • a computer program or a digital signal may be transmitted via a telecommunication line, a wireless or wired communication line, a network typified by the Internet, data broadcasting, or the like.
  • the present disclosure is a computer system including a microprocessor and a memory, in which the memory records the above-mentioned computer program, and the microprocessor may operate according to the computer program.
  • the security measures for the cyber-physical system for automobiles have been described, but the scope of application is not limited to this. Therefore, the scope of application is not limited to the user interface (UI) for visualizing attacks targeting automobiles. It may be applied not only to automobiles but also to mobility of construction machinery, agricultural machinery, ships, railways, airplanes, etc., and to control communication networks and embedded devices used in industrial control systems such as factories and buildings. It may be applied to the communication network of.
  • UI user interface
  • the security measures of the cyber-physical system for automobiles have been described, but the judgment result and the output result of each process of the security function are used as a user interface for visualizing an attack in the cyber-physical system (24). It may be displayed as UI). It may be applied not only to automobiles but also to mobility of construction machinery, agricultural machinery, ships, railways, airplanes, etc., and to control communication networks and embedded devices used in industrial control systems such as factories and buildings. It may be applied to the communication network of.
  • This disclosure verifies the authentication information by an intermediary even if an attacker sends an unauthorized frame in an in-vehicle network that employs service-oriented communication. Furthermore, by providing an intermediary method according to the service policy and the vehicle condition, it is possible to realize security and real-time performance according to the service, which is effective.
  • Service intermediary device 100a, 100b server ECU 100c, 100d client ECU 101 Communication unit 102 Application unit 103 Application authentication information holding unit 104 Service policy holding unit 200 Mediation ECU 201, 301 Communication control unit 202, 302 Service management unit 203, 303 Proxy transmission unit 204 Abnormality monitoring unit 205 Service information holding unit 206, 304 Vehicle status holding unit 300 Service intermediary device

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

サービス仲介装置(300)は、サーバユニットからクライアントユニットへサービス指向型通信によってサービスを提供するサービス提供システムにおいて、サーバユニットおよびクライアントユニットそれぞれに接続され、サーバユニットまたはクライアントユニットから、サービスの提供に用いられるフレームを受信する通信制御部(301)と、通信制御部(301)が受信したフレームに含まれるサービスの識別子と、フレームの送信元または宛先を示す識別子と、フレームの種別との組合せが適切であるか否かの判定をし、判定の結果の出力をするサービス管理部(302)とを備える。

Description

サービス仲介装置、サービス仲介方法、および、プログラム
 本開示は、サービス仲介装置、サービス仲介方法、および、プログラムに関する。
 近年、自動車には、電子制御ユニット(以下、ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。ECU間の通信におけるなりすましの脅威に対して、暗号通信を用いて不正なノードによる通信を防ぐ方法が存在する。
RFC5406:Guidelines for Specifying the Use of IPsec Version2 IEEE 802.1AE:MAC Security
 しかしながら、暗号通信を用いると、送受信ノードによる暗号化または復号処理が必要となり、オーバーヘッドが発生してしまう問題がある。
 そこで、本開示は、サービス提供に係る通信のアクセス制御を適切に行うサービス仲介方法を提供する。
 本開示の一態様に係るサービス仲介装置は、サーバユニットからクライアントユニットへサービス指向型通信によってサービスを提供するサービス提供システムにおいて、サーバユニットおよびクライアントユニットそれぞれに接続され、前記サーバユニットまたは前記クライアントユニットから、前記サービスの提供に用いられるフレームを受信する通信制御部と、前記通信制御部が受信した前記フレームに含まれるサービスの識別子と、前記フレームの送信元または宛先を示す識別子と、前記フレームの種別との組合せが適切であるか否かの判定をし、前記判定の結果の出力をするサービス管理部とを備えるサービス仲介装置である。
 なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
 本開示によれば、サービス提供に係る通信のアクセス制御を適切に行うことができる。
図1は、実施の形態における、車載ネットワークシステムの全体構成を示す図である。 図2は、実施の形態における、SOME/IP SDのメッセージフォーマットを示す図である。 図3は、実施の形態における、SOME/IP SDのメッセージの一例を示す図である。 図4は、実施の形態における、サーバECUの構成を示す図である。 図5は、実施の形態における、仲介ECUの構成を示す図である。 図6Aは、実施の形態における、アプリ認証情報の第一例を示す図である。 図6Bは、実施の形態における、アプリ認証情報の第二例を示す図である。 図6Cは、実施の形態における、アプリ認証情報の第三例を示す図である。 図7は、実施の形態における、サービスポリシの一例を示す図である。 図8Aは、実施の形態における、サービス情報の一例を示す図である。 図8Bは、実施の形態における、アクセス制御情報の一例を示す図である。 図9は、実施の形態における、車両状態の一例を示す図である。 図10は、実施の形態における、仲介ECUのサービス情報登録シーケンスを示す図である。 図11Aは、実施の形態における、SD仲介のみを行うサービスの通信シーケンスを示す図である。 図11Bは、実施の形態における、代理送信を行うサービスの通信シーケンスを示す図である。 図12は、実施の形態における、仲介ECUのサブサーバ登録シーケンスを示す図である。 図13は、実施の形態における、仲介ECUによる代理送信の通信シーケンスを示す図である。 図14は、実施の形態における、異常発生時の代理送信の通信シーケンスを示す図である。 図15は、実施の形態における、異常発生時のサブサーバへの切り替えシーケンスを示す図である。 図16は、実施の形態における、仲介ECUによるSDメッセージに対する処理を示すフローチャートである。 図17は、実施の形態における、仲介ECUによるSOME/IPメッセージに対する処理を示すフローチャートである。 図18は、実施の形態における、メインサーバの通信異常が検知されたときのサーバ切り替え処理を示すフローチャートである。 図19Aは、実施の形態の変形例におけるサービス仲介装置の構成を示す図である。 図19Bは、実施の形態の変形例におけるサービス仲介装置を示すフロー図である。 図19Cは、その他の変形例における仲介ECUによるサービス仲介方法の決定フローチャートである。 図20は、その他の変形例における異常検知時に通知されるログの一例を示す図である。
 (本発明の基礎となった知見)
 本発明者は、「背景技術」の欄において記載した、サービスの仲介装置などに関し、以下の問題が生じることを見出した。
 自動車において、ECUをつなぐ車載ネットワークでは、多数の通信プロトコルの規格が存在し、その中でも最も主流な規格の一つは、Controller Area Network(以降、CAN(登録商標))である。
 CANでは、ECUがセンサ値等の情報をブロードキャスト送信し、センサ値等の情報を取得したいECUが、そのブロードキャスト送信されたセンサ値等の情報を受信する。
 さらに、自動運転またはコネクテッドカーの普及に伴い、車載ネットワークトラフィックの増大が予想されるため、通信プロトコルとしての車載Ethernet(登録商標)の普及も進んでいる。
 車載Ethernet(登録商標)では、CANのようなシグナル指向型通信に代えて、または、シグナル指向型通信とともに、サービス指向型通信が導入されるようになり、効率的な開発プロセスを実現できる。
 サービス指向型通信の実現方法として、Service Oriented Middle WarE Over IP(以下SOME/IP)が、AUTomotive Open System ARchitecture(AUTOSAR)で規定されている。
 CANにおける不正なノードによるなりすまし攻撃の脅威は、SOME/IP通信においても同様に脅威である。このような脅威に対して、Internet Protocol(IP)通信で用いられてきた、暗号通信を用いて不正なノードによる通信を防ぐ方法が存在する(非特許文献1または非特許文献2参照)。
 また、車載ネットワークだけでなく、センサとアクチュエータとを含みシステムの制御を行う制御ネットワークにおいては、セキュリティの担保だけでなく、リアルタイム性または信頼性の担保も重要になり、サービスの特性によって重要な要素が異なるため、サービスに応じて適切なセキュリティポリシ、リアルタイム性などのQoS(Quality of Service)を設定できることが望ましい。
 このように、車両がネットワーク化し、ECUが複雑化することで、攻撃者がECUの脆弱性を悪用し、侵害するという、なりすまし攻撃の可能性がある。
 しかしながら、非特許文献1または非特許文献2の方法では、暗号通信を用いるため、送受信ノードによる暗号化または復号処理が必要となりオーバーヘッドが発生してしまう問題がある。
 そこで、本開示は、サービス提供に係る通信のアクセス制御を適切に行うサービス仲介方法を提供する。
 より具体的には、本開示は、車載ネットワークにおいてサービス指向型通信を行うECUの通信を仲介する仲介ECUによって、サービスポリシに基づいて、サービスに対するアクセス制御、または、障害発生時のサービス提供先の切り替えによる柔軟な仲介方法を提供する。
 本開示の一態様に係るサービス仲介装置は、サーバユニットからクライアントユニットへサービス指向型通信によってサービスを提供するサービス提供システムにおいて、サーバユニットおよびクライアントユニットそれぞれに接続され、前記サーバユニットまたは前記クライアントユニットから、前記サービスの提供に用いられるフレームを受信する通信制御部と、前記通信制御部が受信した前記フレームに含まれるサービスの識別子と、前記フレームの送信元または宛先を示す識別子と、前記フレームの種別との組合せが適切であるか否かの判定をし、前記判定の結果の出力をするサービス管理部とを備えるサービス仲介装置である。
 これにより、サービス仲介装置は、サービス指向型通信において、サーバユニットまたはクライアントユニットのなりすましによる不正な通信を検出することが可能となり、サーバユニットまたはクライアントユニットへの適切でないアクセスを未然に防ぐことができる。このように、サービス仲介装置は、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記通信制御部は、さらに、前記サービスの提供の前に、提供される前記サービスを示す第一サービス情報を含むサービス提供フレームを、前記サーバユニットから受信し、前記サービスの提供の前に、サービス探索フレームであって、サービス探索の対象を示す第二サービス情報を含むサービス探索フレームを、前記クライアントユニットから受信し、前記サービス管理部は、さらに、前記通信制御部が受信した前記サービス探索フレームに含まれる前記第二サービス情報と同一の前記第一サービス情報を含む前記サービス提供フレームを、受信した前記サービス探索フレームの送信元である前記クライアントユニットに、前記通信制御部により送信してもよい。
 上記態様によれば、サービス仲介装置は、サーバユニットとクライアントユニットとの間で、サービス提供フレームとサービス探索フレームとを適切に仲介する。これにより、サービス提供フレームとサービス探索フレームとが、当該サービスの提供または享受に無関係の装置に受信されることを未然に防止し、サーバユニットまたはクライアントユニットへのなりすましを適切に防止することができる。このように、サービス仲介装置は、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記サービス提供フレームは、前記サービス提供フレームに含まれる前記第一サービス情報が示すサービスを提供するサーバとしての権限を前記サーバユニットが有することを示す第一認証情報を含み、前記サービス探索フレームは、前記サービス探索フレームに含まれる前記第二サービス情報が示す前記サービスの提供を受けるクライアントとしての権限を前記クライアントユニットが有することを示す第二認証情報を含み、前記サービス管理部は、さらに、前記サービス提供フレームに含まれる前記第一認証情報の検証が成功した場合に、前記サービス提供フレームを有効と判定し、前記サービス探索フレームに含まれる前記第二認証情報の検証が成功した場合に、前記サービス探索フレームを有効と判定し、前記サービス提供フレームおよび前記サービス探索フレームを有効と判定した場合に、前記サービス提供フレームを前記クライアントユニットに、前記通信制御部により送信してもよい。
 上記態様によれば、サービス仲介装置は、サーバユニットがサービスを提供するサーバとしての権限を確かに有すること、および、クライアントユニットがサービスの提供を受けるクライアントとしての権限を確かに有することを認証情報を用いて判定したうえで、そのサーバユニットがそのクライアントユニットにサービスを提供するように制御する。これにより、サーバとしての権限を有しない装置がサービスを提供すること、および、クライアントとしての権限を有しない装置がサービスの提供を受けることを未然に防止することができる。よって、サービス仲介装置は、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記通信制御部は、前記サービスを提供する前記サーバユニットから、前記サービスの提供に用いられる第一フレームを受信した場合に、前記サービスの提供を受ける前記クライアントユニットに前記第一フレームを送信し、前記サービスの提供を受ける前記クライアントユニットから、前記サービスの提供に用いられる第二フレームを受信した場合に、前記サービスを提供する前記サーバユニットに前記第二フレームを送信してもよい。
 上記態様によれば、サービス仲介装置は、サーバユニットとクライアントユニットとの間で、サービスの提供に用いられるフレームを適切に仲介する。これにより、サービスの提供に用いられるフレームが、当該サービスの提供または享受に無関係の装置に受信されることを未然に防止し、サーバユニットまたはクライアントユニットへのなりすましを適切に防止することができる。このように、サービス仲介装置は、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記サービス仲介装置は、代理送信処理を実行する代理送信部を備え、前記代理送信処理は、前記第一フレームを前記通信制御部が受信した場合に、前記第一フレームに含まれる送信元を示す情報を、前記サービス仲介装置の識別子に変更してから、前記第一フレームを前記クライアントユニットに送信する処理、または、前記第二フレームを前記通信制御部が受信した場合に、前記第二フレームに含まれる送信元を示す情報を、前記サービス仲介装置の識別子に変更してから、前記第二フレームを前記サーバユニットに送信する処理を含んでもよい。
 上記態様によれば、サービス仲介装置は、サービスの提供に用いられるフレームを仲介する際に、そのフレームの送信元を自装置の識別子に変更する。そのため、サーバユニットがクライアントユニットの識別子を取得することなく、サービスを提供することができ、また、クライアントユニットがサーバユニットの識別子を取得することなく、サービスの提供を受けることができる。これにより、サーバユニットとクライアントユニットとの識別子が他の装置に取得される機会を、より一層低減することで、サーバユニットまたはクライアントユニットへのなりすましを適切に防止することができる。このように、サービス仲介装置は、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記サーバユニット、前記クライアントユニットおよび前記サービス仲介装置は、車両に搭載されており、前記サービス仲介装置は、さらに、前記車両の状態を示す状態情報を保持している車両状態保持部を備え、前記代理送信部は、前記車両状態保持部が保持している前記状態情報に応じて、前記代理送信処理を実行するか否かを制御してもよい。
 上記態様によれば、サービス仲介装置は、車両の状態に応じて代理送信を実行するか否かを制御する。サービスの提供に求められる信頼性およびリアルタイム性の要件は、そのサービスによって異なる。そのため、サービス仲介装置が車両の状態に応じて代理送信を実行するか否かを制御することにより、サービスの提供に求められる信頼性およびリアルタイム性に応じて代理送信を実行するか否かが制御されることになる。よって、サービス仲介装置は、サービスの提供に求められる信頼性およびリアルタイム性に応じた代理送信の制御を通じて、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記サーバユニットは、第一サーバユニットと第二サーバユニットとを含み、前記通信制御部は、前記第一サーバユニットから前記サービス提供フレームを受信した場合には、所定期間の待機状態をとり、前記待機状態において前記第二サーバユニットから前記サービス提供フレームを受信した場合には、受信した2つの前記サービス提供フレームのいずれかを前記クライアントユニットに送信してもよい。
 上記態様によれば、サービス仲介装置は、サービス提供システムにおいてサーバユニットを冗長化する。これにより、サービス仲介装置は、サービス提供システムが単一のサーバユニットを備える場合と互換性のある通信を維持しながら、堅牢性がより高いシステム構成の実現に寄与する。よって、サービス仲介装置は、システムの堅牢性を高めながら、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記通信制御部は、前記待機状態において前記第二サーバユニットから前記サービス提供フレームを受信しない場合には、前記第一サーバユニットから受信した前記サービス提供フレームを前記クライアントユニットに送信し、かつ、前記第二サーバユニットに異常が発生した場合に行う所定の処理を実行してもよい。
 上記態様によれば、サービス仲介装置は、冗長構成をとっているサーバユニットのうちの一方に異常が発生した場合に、他方のサーバユニットによるサービスの提供に寄与することで、サーバユニットの冗長構成を維持する。よって、サービス仲介装置は、システムの堅牢性を高めながら、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記通信制御部は、前記待機状態において前記第二サーバユニットから前記サービス提供フレームを受信しない場合には、前記第一サーバユニットから受信した前記サービス提供フレームを前記クライアントユニットに送信するか否かを、前記サービスの種別に応じて制御してもよい。
 上記態様によれば、サービス仲介装置は、冗長構成をとっているサーバユニットのうちの一方に異常が発生した場合における他方のサーバユニットによるサービスの提供を、サービスの種別に応じて制御する。サービスの提供に求められる信頼性およびリアルタイム性の要件は、そのサービスの種別によって異なるので、サービス仲介装置が上記制御を行うことで、サービスの提供に求められる信頼性およびリアルタイム性に応じて、上記他方のサーバユニットによるサービスの提供を制御することに寄与する。よって、サービス仲介装置は、サービスの提供に求められる信頼性およびリアルタイム性に応じて冗長構成におけるサービス提供を制御することを通じて、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記サーバユニット、前記クライアントユニットおよび前記サービス仲介装置は、車両に搭載されており、前記サービス仲介装置は、さらに、前記車両の状態を示す状態情報を保持している車両状態保持部を備え、前記通信制御部は、前記待機状態において前記第二サーバユニットから前記サービス提供フレームを受信しない場合には、前記第一サーバユニットから受信した前記サービス提供フレームを前記クライアントユニットに送信するか否かを、前記車両状態保持部が保持している前記状態情報に応じて制御してもよい。
 上記態様によれば、サービス仲介装置は、冗長構成をとっているサーバユニットのうちの一方に異常が発生した場合における他方のサーバユニットによるサービスの提供を、車両の状態に応じて制御する。サービスの提供に求められる信頼性およびリアルタイム性の要件は、車両の状態によって異なるので、サービス仲介装置が上記制御を行うことで、サービスの提供に求められる信頼性およびリアルタイム性に応じて、上記他方のサーバユニットによるサービスの提供を制御することに寄与する。よって、サービス仲介装置は、サービスの提供に求められる信頼性およびリアルタイム性に応じて冗長構成におけるサービス提供を制御することを通じて、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記サーバユニットは、第一サーバユニットと第二サーバユニットとを含み、前記通信制御部は、前記クライアントユニットから前記サービス探索フレームを受信した場合には、受信した前記サービス探索フレームを、前記第一サーバユニットおよび前記第二サーバユニットの両方に送信してもよい。
 上記態様によれば、サービス仲介装置は、サーバユニットが冗長構成をとっているときにサービス探索フレームを適切に仲介する。よって、サービス仲介装置は、システムの堅牢性を高めながら、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記サーバユニットは、複数のサーバユニットを含み、前記サービス管理部は、前記複数のサーバユニットが通信可能状態にあるか否かを示す通信状態情報を保持していて、保持している前記通信状態情報を前記クライアントユニットに送信してもよい。
 上記態様によれば、サービス仲介装置は、サービスを提供可能なサーバユニットを示す情報をクライアントユニットに適切に把握させる。これにより、サービス仲介装置は、車載ネットワークシステムのセキュリティと堅牢性を向上させながら、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記サービス管理部は、前記複数のサーバユニットのうちの一のサーバユニットが通信不可能状態であることを検出した場合に、前記通信状態情報を参照して、前記複数のサーバユニットのうち通信可能状態であるサーバユニットから受信した前記サービス提供フレームを前記クライアントユニットに送信してもよい。
 上記態様によれば、サービス仲介装置は、一のサーバユニットによるサービス提供の継続が困難な場合に、代替のサーバユニットの情報をクライアントユニットに把握させることができる。これにより、サービス仲介装置は、車載ネットワークシステムのセキュリティと堅牢性をより一層向上させながら、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 例えば、前記判定の結果の出力は、前記判定の結果を示す情報を表示画面に表示すること、または、前記判定の結果を示す情報をネットワークを介して外部装置に送信することを含んでもよい。
 上記態様によれば、サービス仲介装置は、判定の結果を示す情報を画面への表示、または、外部装置に送信することで、判定の結果を示す情報を、より容易に、出力することができる。よって、サービス仲介装置は、サービス提供に係る通信のアクセス制御を適切に行うことができる。
 なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
 以下、実施の形態について、図面を参照しながら具体的に説明する。
 なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 (実施の形態)
 本実施の形態において、サービス提供に係る通信のアクセス制御を適切に行うサービス仲介装置について説明する。より具体的には、複数の電子制御ユニット(ECU)がイーサネット(登録商標)を介したサービス指向型通信を行う車載ネットワークシステムにおける、サービス仲介方法について説明する。車載ネットワークシステムは、サービス提供システムの一例である。なお、サービス提供システムの別の例として、ロボット制御ネットワークシステム、または、モビリティ制御ネットワークシステムなどの制御ネットワークシステムがある。
 [1.1 車載ネットワークシステムの全体構成]
 図1は、本実施の形態における、車載ネットワークシステムの全体構成を示す図である。車載ネットワークシステムは、サーバECU100aおよび100bと、クライアントECU100cおよび100dと、仲介ECU200とを備えて構成される。
 サーバECU100aは、クライアントECU100cまたは100dに対してサービスを提供する装置である。サーバECU100bは、サーバECU100aと同様にサービスを提供する装置である。サーバECU100aおよび100bをサーバユニットともいう。
 クライアントECU100cは、サーバECU100aまたは100bによるサービスの提供を受ける装置である。クライアントECU100dは、クライアントECU100cと同様に、サービスの提供を受ける装置である。クライアントECU100cおよび100dをクライアントユニットともいう。
 サービスは、例えば、センサ値等の情報を提供すること、または、要求に応じて所定の演算処理を行い、演算結果を出力すること、などを含む。
 仲介ECU200は、サーバECU100aまたは100bからクライアントECU100cまたは100dへのサービスの提供を仲介する装置である。仲介ECU200は、サーバECU100aおよび100b、ならびに、クライアントECU100cおよび100dと、イーサネットによって通信可能に接続されている。
 サーバECU100aおよび100bと、クライアントECU100cおよび100dとは、SOME/IPを用いて通信を行うことで、車両の機能の実現に寄与する。
 なお、本実施の形態では車両ネットワークシステムは、説明を簡略にするためサーバECU100aおよび100bと、クライアントECU100cおよび100dと、仲介ECU200のみを備える構成としているが、他のECUまたはネットワークが存在していてもよい。
 [1.2 SOME/IPメッセージフォーマット]
 SOME/IPには、Request/Response、Fire/Forget、Events、Get/Set/Notifierの4種類の通信方法が規定されている。サーバECU100aおよび100b、ならびに、クライアントECU100cおよび100dは、これらの通信方法を組み合わせることで、サービス指向型通信を実現する。SOME/IPでは、通信相手とセッションを確立する方法も準備されており、この方法は、Service Discovery(SD)とよばれる。
 図2は、本実施の形態における、SOME/IP SDに用いられるメッセージのフォーマットを示す図である。
 図2のメッセージフォーマットは、イーサネットのペイロード部に格納される。図2において、1つの行は32ビット長であり、前半はSOME/IPヘッダ、後半がSOME/IP SDのペイロードである。
 SOME/IPヘッダは、Message ID、Length、Request ID、Protocol Version、Interface Version、Message Type、および、Return Codeのフィールドを含む。
 Message IDは、当該メッセージの識別子が格納される。Message IDは、SOME/IP SDの場合は0xFFFF8100である。
 Lengthは、Lengthフィールドより後のデータのバイト数が格納される。
 Request IDは、Client IDとSession IDをあわせた数値が格納される。
 Service Discoveryの場合は、Protocol Versionが0x01に、Interface Versionが0x01に、Message Typeが0x02に、Return Codeが0x00に、それぞれ設定される。
 SOME/IP SDのペイロードは、Flags、Reserved、Length of Entries Array in Bytes、Entries Array、Length of Options Array in Bytes、および、Options Arrayのフィールドを含む。
 図3は、本実施の形態における、SOME/IP SDのメッセージの一例を示す図である。図3のSOME/IP SDメッセージは、サービスIDが0x1000番のサービスを提供可能であることを示すメッセージの一例である。
 Flagsには0x80が設定されており、Reboot Flagが設定されている。Reserved領域は0に設定されている。
 Length of Entries Array in Bytesには、Entryのバイト数が格納されており、図3では16バイトに設定されている。
 Typeは、0x00または0x01の設定が可能である。0x00は、Findを意味し、0x01は、Offerを意味する。Findは、サービスの提供を受けるクライアントECUが、必要なサービスの提供を要求するときに用いられる。Offerは、サービスの提供を行うサーバECUが、自身の提供可能なサービスを通知する場合に用いられる。図3では、Typeが0x01となっており、図3に示されるメッセージは、サーバECUが自身の提供可能なサービスに関する情報を通知しているメッセージである。
 Index 1st optionsは、最初のオプションの位置を示している。図3では、Index 1st optionsに0が設定されていて、つまり、最初のオプションがオプション領域の最初に配置されていることを示している。
 Index 2nd optionsは、2つ目のオプションの位置を示している。図3では、Index 2nd optionsに0が設定されている。なお、後述するように、図3に示されるメッセージではオプション2が用いられないので、Index 2nd optionsに設定されている値は用いられない。
 #of opt1は、オプション1の個数を示している。図3では、#of opt1に1が格納されている。
 #of opt2は、オプション2の個数を示している。図3では、#of opt2に0が格納されており、オプション2が用いられないことを示している。
 Service IDは、サービスの種類を示すIDを示している。図3では、Service IDに0x1000が格納されている。
 Instance IDは、サービスのインスタンスを示すIDであり、図3では0x0001のインスタンスであることを示している。
 Major Versionは、サービスのバージョン管理に用いる情報であり、図3では0x01に設定されている。
 TTLは、サービスの有効期限を、秒を単位として設定するフィールドであり、図3では0xFFFFが設定されている。TTLに0xFFFFが設定されていることは、ECUの次の起動タイミングまでサービスが有効であることを意味する。
 Minor Versionは、サービスのバージョン管理に用いられる情報であり、図3では0x00000002に設定されている。
 次に、Optionの領域は、Length of Options Array in Bytes、Length、Type、Reserved、IPv4アドレス、Reserved、L4-Proto、および、Port番号のフィールドを含む。
 Length of Options Array in Bytesは、Option領域の長さを示している。図3では、Length of Options Array in Bytesは、12バイトであることを示している。
 Lengthは、このオプション領域のバイト数を示している。Lengthは、オプションの種類に応じて設定される値が決まる。
 Typeは、このオプション領域のタイプを示している。
 Reserved領域は、0が格納される。
 図3では、IPv4を用いた通信例を示しており、Lengthは9、Typeは0x04、Reserved領域は0x00に設定される。
 IPv4アドレスは、サーバのIPアドレスを示している。図3では、IPv4アドレスは、192.168.0.1が設定されている。
 Reserved領域は、0が格納される。
 L4-Protoは、Layer4つまりトランスポート層のプロトコルを示している。L4-Protoは、0x11が格納されており、User Datagram Protocol(UDP)を用いることを示している。
 ポート番号は、使用するトランスポート層のポート番号を示している。ポート番号は、図3では、35000番ポートであることを示している。
 [1.3 サーバECU100aの構成]
 図4は、本実施の形態における、サーバECU100aの構成を示す図である。サーバECU100aは、例えばプロセッサ、メモリおよび通信インタフェース等を備えるコンピュータにより実現され、通信部101と、アプリ部102と、アプリ認証情報保持部103と、サービスポリシ保持部104とを備えて構成される。
 なお、サーバECU100b、クライアントECU100c、または、クライアントECU100dは、サーバECU100aと同様の構成であるため、これらの説明を省略する。
 通信部101は、他のECUとの通信を行う通信インタフェースである。例えば、通信部101は、イーサネットの通信インタフェースであり、この場合、イーサネットを介して仲介ECU200に接続している。通信部101は、イーサネットからメッセージを受信し、アプリ部102へ通知する。また、通信部101は、アプリ部102からの要求に応じたメッセージをイーサネットへ送出する。
 アプリ部102は、サーバECU100aのメインの機能を実現するアプリケーションを実行する。例えばサーバECU100aまたはECU100bの場合は、アプリ部102は、サービス指向型通信のサービスの提供をするアプリケーションを含む。例えばクライアントECU100cまたはECU100dの場合は、アプリ部102は、サービスの提供を受けるアプリケーションを含む。
 またアプリ部102は、アプリ認証情報保持部103に格納されている情報を参照し、仲介ECU200に対して、自身のサービスへのアクセス権限を認証する情報を送信する。さらにアプリ部102は、サービスポリシ保持部104を参照して、サービスポリシを仲介ECU200へ通知する。
 アプリ認証情報保持部103は、アプリ部102が持つサービスに対するアクセス権限を証明するサービス権限証明書に関する情報を保持している。アプリ認証情報の詳細は後述する。
 サービスポリシ保持部104は、サービスに対するセキュリティポリシ、リアルタイム性または信頼性に関わるポリシを示した情報を保持している。サービスポリシの詳細は後述する。
 [1.4 仲介ECU200の構成]
 図5は、本実施の形態における、仲介ECU200の構成を示す図である。
 図5において仲介ECU200は、通信制御部201と、サービス管理部202と、代理送信部203と、異常監視部204と、サービス情報保持部205と、車両状態保持部206とを備えて構成される。
 通信制御部201は、他のECUとの通信を行う通信インタフェースである。通信制御部201は、例えば、4つのイーサネットポートをもち、それぞれのイーサネットポートがサーバECU100aおよび100b、ならびに、クライアントECU100cおよび100dと通信可能に接続されている。通信制御部201は、サーバECU100aおよび100b、ならびに、クライアントECU100cおよび100dとの間で、イーサネットのフレームを送信または受信する。
 また、通信制御部201は、ネットワークに流れるフレームに含まれるメッセージを受信し、サービス管理部202に通知するとともに、サービス管理部202からの送信要求を受けて、イーサネットにメッセージを含むフレームを送信する。通信制御部201は、受信したメッセージに含まれる宛先に応じて、適切なポートへとメッセージの転送を行うイーサネットスイッチの役割をもつ。
 通信制御部201は、サーバECU100aおよび100bが冗長構成をとっている場合には、サーバECU100aからサービス提供フレームを受信したときには、所定期間の待機状態をとり、待機状態においてサーバECU100bからサービス提供フレームを受信した場合には、受信した2つのサービス提供フレームのいずれかをクライアントECU100cまたはECU100dに送信してもよい。
 また、サーバECU100aおよび100bが冗長構成をとっている場合には、クライアントECU100cまたはECU100dからサービス探索フレームを受信した場合には、受信したサービス探索フレームを、サーバECU100aおよび100bの両方に送信してもよい。
 なお、サーバECU100aおよび100bが冗長構成をとる場合、例えばサーバECU100aが第一サーバユニットまたはメインサーバに相当し、サーバECU100bが第二サーバユニットまたはサブサーバに相当する。
 サービス管理部202は、受信したサービス指向型通信のメッセージに対して、サービス情報保持部205に格納されているサービスポリシ、および、車両状態保持部206に格納される車両状態に基づいて、サービスの仲介を実行する。サービスの仲介は、サーバECUとクライアントECUとの間で、サービス提供に係るフレームを中継(または転送)することで、サーバECUからクライアントECUへのサービス提供を成立させることをいう。
 サービス管理部202は、サービスの仲介において、通信制御部201が受信したフレームに含まれるサービスの識別子と、フレームの送信元または宛先を示す識別子と、フレームの種別との組合せが適切であるか否かの判定をし、判定の結果の出力をする。サービスの仲介に係る処理については後で詳しく説明する。
 サービスの仲介方法が、代理送信「有り」である場合は、サービス管理部202は、代理送信に対応するサービスに関するメッセージを代理送信部203に提供する。また、代理送信部203からの送信要求にしたがって、サービス管理部202は、通信制御部201にメッセージの送信を要求する。
 さらにサービス管理部202は、サービスの通信に異常が発生していないかを監視するためにメッセージを異常監視部204に通知する。
 サービス管理部202は、サーバECU100aおよび100bが通信可能状態にあるか否かを示す通信状態情報を保持していて、保持している通信状態情報をクライアントECU100cおよび100dに送信してもよい。
 このとき、サービス管理部202は、サーバECU100aおよび100bのうちの一のサーバECUが通信不可能状態であることを検出した場合に、通信状態情報を参照して、通信可能状態であるサーバECUから受信したサービス提供フレームをクライアントECU100cおよび100dに送信してもよい。
 また、サービス管理部202が行う判定の結果の出力は、判定の結果を示す情報を表示画面に表示すること、または、判定の結果を示す情報をネットワークを介して外部装置に送信することを含み得る。外部装置は、車載ネットワークシステムの外部の装置であり、車載ネットワークシステムにネットワークにより接続されている装置である。
 代理送信部203は、サーバECU100aもしくはECU100b、または、クライアントECU100cもしくはECU100dを代理して通信フレームを送信する処理である代理送信処理を実行する。
 代理送信部203は、サービスポリシの仲介方法が、代理送信「有り」である場合に、サーバECU100aまたはECU100bに代わり、仲介ECU200がメッセージの送受信の主体となる。具体的には、代理送信部203は、サーバECU100aまたはECU100bからサービスの提供情報を含むOfferメッセージを受信した場合には、サーバECU100aまたはECU100bの代理として仲介ECU200をサービスの提供者として、クライアントECU100cまたはECU100dにサービスの提供情報を含むOfferを送信することで転送する。
 また、代理送信部203は、クライアントECU100cまたはECU100dからサービスの要求メッセージを受信した場合には、クライアントECU100cまたはECU100dの代理として仲介ECU200をサービスの享受者として、サーバECU100aまたはECU100bに送信することで、転送する。
 さらに、代理送信部203は、サーバECU100aまたはECU100bからの返信または通知メッセージを受信した場合には、サーバECU100aまたはECU100bの代理として仲介ECU200が送信者となって、上記返信または通知メッセージをクライアントECU100cまたはECU100dに転送する。
 このようにサービスポリシの仲介方法が、代理送信「有り」である場合は、仲介ECU200は、サーバECU100aまたはECU100bに対してはクライアントECU100cまたはECU100dとして振る舞い、クライアントECU100cまたはECU100dに対してはサーバECU100aまたはECU100bとして振る舞うことで仲介を行う。
 代理送信部203は、サービスの信頼性向上のために、サーバECU100aおよびECU100bが冗長構成をとっている場合は、サーバECU100aまたはECU100bに対してクライアントECU100cまたはECU100dからのメッセージを転送する。代理送信部203は、サーバECU100aまたはECU100bからのメッセージについては、メインサーバのメッセージを転送することがあるが、サブサーバのメッセージを転送してもよい。また、代理送信部203は、メインサーバとサブサーバの両方のメッセージの受信を待ってから、受信した両方のメッセージを比較して適切な内容のメッセージをクライアントECU100cまたはECU100dに転送することがある。サーバECU100aまたはECU100bからのメッセージの転送は、サービスポリシに応じて決定される。
 代理送信部203は、車両状態保持部206が保持している状態情報に応じて、代理送信処理を実行するか否かを制御してもよい。
 異常監視部204は、サービス指向型通信に異常が発生していないかを確認する。具体例として、異常監視部204は、サーバECU100aもしくはECU100b、または、クライアントECU100cもしくはECU100dからの通信が所定期間途絶え、サーバECU100aもしくはECU100b、または、クライアントECU100cもしくはECU100dからサービスの提供または購読を停止するメッセージ、通信エラー、侵入検知システムによる異常アラート、サブサーバ起動時のメインサーバとサブサーバとの出力の不整合等を検出したか否かを判定する。異常監視部204は、これらの事象を検出したと判定した場合に、ECU100aまたはECU100bに異常が発生していると判断し、サービス情報保持部205に格納されているサービスポリシ、および、車両状態保持部206に格納されている車両状態に基づいて、安全にサービスの提供を継続させるためにサブサーバへの切り替えを行うかを判断する。
 サービス情報保持部205は、各サービスに関するサーバECU100aまたはECU100b、および、クライアントECU100cまたはECU100dの情報と、サービスポリシとが格納されている。サービス情報の詳細は後述する。
 車両状態保持部206は、車両の状態を示す状態情報を保持している。車両状態保持部206は、状態情報の一例である、車両走行に関わる状態を保持することで、サービスの特性に応じて、安全にサービスを継続すべきか停止すべきかを判断するための情報を保持する。車両状態の詳細は後述する。
 [1.5 アプリ認証情報保持部に格納されるアプリ認証情報の一例]
 図6Aは、アプリ認証情報保持部103に格納されているアプリ認証情報の第一例を示す図である。具体的には、図6Aに示されるアプリ認証情報は、メインサーバであるサーバECU100aのアプリ認証情報保持部103に格納されているアプリ認証情報である。
 図6Aに示されるように、アプリ認証情報にはサービスに対するアクセス権限(言い換えれば、サービスを提供するサーバとしての権限)を持つことを示す秘密情報が保持されている。
 メインサーバ公開鍵は、メインサーバ秘密鍵で生成される署名を検証するための鍵であり、この鍵を用いてアプリ部102はサブサーバの公開鍵などに署名を生成し、仲介ECU200が生成した署名を検証することで、冗長構成をとるサブサーバの権限をメインサーバから付与することができる。
 セッション鍵は、仲介ECU200と共有することで、ペイロードの暗号化に用いる。
 サブサーバ公開鍵とサブサーバ秘密鍵とは、メインサーバが生成する、あるいは予め保持しているもので、サブサーバにメインサーバのもつサービスに対するアクセス権限を付与するために利用する。
 なお、サブサーバが当初よりサブサーバ公開鍵とサブサーバ秘密鍵とを保持している場合には、メインサーバであるサーバECU100aのアプリ認証情報保持部103に、サブサーバ公開鍵とサブサーバ秘密鍵とが格納されている必要はない。
 サービス権限証明書は、アプリベンダまたは車両メーカ等によって作成され、サービスIDごとに、サービスに対するアクセス権限が記載されている。
 図6Aにおいて、メインサーバ公開鍵は0x123456789・・・であり、メインサーバ秘密鍵は0xabcdefabcdef・・・であり、セッション鍵は0xa787c89de989・・・であり、サブサーバ公開鍵は0x1a2b3c4d5e6f・・・であり、サブサーバ秘密鍵は0xfedcba・・・である。サービス権限証明書には、サービスIDが10のサービスに対するサーバ権限(「サーバとしての権限」ともいう)が記載されている。これは、サーバECU100aが、上記サービスを提供するサーバとしての権限を有することがアプリベンダまたは車両メーカ等により証明されていることを示す記載であるとも言える。
 なお、本実施の形態では、アプリ認証情報が平文で保持されている場合を例として示しているが、アプリ認証情報が暗号化されて保持されていてもよい。また、アプリ認証情報がアプリ部102から直接読み出すことができないセキュアなメモリに格納されていてもよい。
 図6Bは、本実施の形態における、アプリ認証情報保持部103に格納されているアプリ認証情報の第二例を示す図である。具体的には、図6Bに示されるアプリ認証情報は、サブサーバであるサーバECU100bのアプリ認証情報保持部103に格納されているアプリ認証情報である。
 図6Bに示されるアプリ認証情報は、図6Aに示されるアプリ認証情報のうち、メインサーバ公開鍵とメインサーバ秘密鍵とを除く情報を含んでいる。
 図6Bに示されるアプリ認証情報に含まれる各情報は、図6Aに示されるアプリ認証情報に含まれるものと同様であるので、詳細な説明を省略する。
 なお、クライアントECUも、サーバECUが保持しているアプリ認証情報と同様のアプリ認証情報を保持している。
 図6Cは、本実施の形態における、アプリ認証情報の第三例を示す図である。具体的には、図6Cに示されるアプリ認証情報は、クライアントECU100cまたは100dが保持しているアプリ認証情報である。
 図6Cに示されるように、アプリ認証情報にはサービスに対するアクセス権限(言い換えれば、サービスの提供を受けるクライアントとしての権限)を持つことを示す秘密情報が保持されている。
 図6Cに示されるアプリ認証情報に含まれる各情報は、図6Aに示されるアプリ認証情報に含まれるものと同様であるが、メインサーバ公開鍵およびメインサーバ秘密鍵に代えて、それぞれ、クライアント公開鍵およびクライアント秘密鍵が含まれる点で異なる。また、サービス権限証明書には、サービスIDが10のサービスに対するクライアント権限(「クライアントとしての権限」ともいう)が記載されている。これは、クライアントECU100cまたは100dが、上記サービスの提供を受けるクライアントとしての権限を有することがアプリベンダまたは車両メーカ等により証明されていることを示す記載であるとも言える。
 [1.6 サービスポリシ保持部に格納されるサービスポリシの一例]
 図7は、サービスポリシ保持部104に格納されるサービスポリシの一例を示す図である。サービスポリシは、サービスIDごとに、サブサーバ候補の有無とアドレス、代理送信の有無、冗長構成をとるサブサーバへの異常発生時における切り替え方法、切り替え時の車両状態と切り替え方法とを示した切り替えポリシ、および、セキュリティポリシが格納されている。
 図7に示されるサービスIDが0x10であるサービスについて説明する。
 0x10のサービスIDについて、サブサーバの候補は「有り」であり、192.168.1.XXのアドレスのECUがサブサーバの候補であることを示している。代理送信は「有り」であり、切り替え方法はホットスタンバイであり、つまりメインサーバが起動している際に、サブサーバも起動している場合に切り替えが可能であることを示している。また、切り替えポリシは「いつでも可」であり、車両の走行状態によらず、サービスを提供するサーバECUが切り替わることを許容している。セキュリティポリシとしては、SDのメッセージの仲介と、監視とが設定されている。
 セキュリティポリシとしてのSDメッセージの仲介は、仲介ECU200により実施される。仲介ECU200は、通常時はブロードキャストで送信されるOfferメッセージを終端し、適切なサーバECUおよびクライアントECUを検証することで、ネットワーク上に存在する攻撃者が、サービスIDの情報を不正に取得することを防止することができる。仲介ECU200は、サービスにアクセス可能なクライアントECUのみが、Findメッセージを仲介ECU200に送信し、認証されることで、適切なサーバECUの情報を取得できるようにアクセス制御を行う。
 仲介ECU200は、SDメッセージの仲介の際に、Offerメッセージのペイロードを、予め共有したセッション鍵により暗号化していてもよい。これによりネットワーク上のメッセージを不正に取得する攻撃者が存在したとしても、サービスIDに関わる情報の漏洩を防止できる。
 セキュリティポリシとしての監視は、当該サービスIDのメッセージに異常が発生していないかを監視することである。Ethernet(登録商標)では、CANに比べて高速・大容量の通信が発生するため、監視対象を絞ることで、仲介ECU200の処理負荷を低減させつつ、安全性に影響のあるメッセージなどを効率的に監視することが可能になる。
 次に0x20のサービスIDについては、サブサーバの候補が「有り」(192.168.1.20)であり、代理送信は「無し」であり、切り替え方法はany(つまりホットスタンバイ、コールドスタンバイともに可能)であり、切り替えポリシについては、走行中の場合はホットスタンバイのみを許可している。また、セキュリティポリシについてはSDの仲介のみが設定されている。
 次に、0x30のサービスIDについては、サブサーバの候補が「有り」(192.168.1.XX)で、代理送信は「無し」であり、切り替え方法はコールドスタンバイであり、切り替えポリシは停車中のみサーバECUの切り替えを許可している。また、セキュリティポリシは、初回の登録時のみSDの仲介が設定されている。
 仲介ECU200は、初回の登録時のみSDの仲介が設定されていることにより初回登録時以外はSDの送信に仲介ECU200を介する必要がなくなる。そのため、上記設定がなされていると、サーバECUとクライアントECUとが、直接に、サービス検出のメッセージをやり取りすることが可能になり、通信のリアルタイム性が向上する。一方で、不正なECUによるなりすましの発生リスクが高まるため、セキュリティが求められないサービスまたはリアルタイム性が重要なサービスに適した設定となる。
 [1.7 サービス情報保持部に格納されるサービス情報の一例]
 図8Aは、仲介ECU200のサービス情報保持部205に格納されるサービス情報の一例を示す図である。図8Aに示すようにサービス情報は、サーバECUまたはクライアントECUから通知されるサービスポリシに含まれる情報に基づき設定される。サービス情報は、サービスIDごとにメインサーバのアドレスと状態、サブサーバのアドレスと状態、サービスについて発生している異常の有無、クライアントECUのアドレス、および、サーバECUから受信したサービスポリシ(代理送信の有無、切り替えポリシ、セキュリティポリシ)を含む。サービスポリシは、サーバECU100aおよび100bと仲介ECU200とで共有しており、その他の情報は、ネットワークの状態に応じて変化し得る。
 図8Aでは、サービスIDが0x10であるサービスのメインサーバのアドレスは192.168.1.10であり、メインサーバの状態はアクティブであり、サブサーバのアドレスは192.168.1.20であり、サブサーバの状態はアクティブであり、異常発生は「無し」であり、クライアントECUは192.168.1.30である。サービスポリシは図7と同様であるので説明および記載を省略している。
 次に、サービスIDが0x20であるサービスのメインサーバのアドレスは192.168.1.10であり、メインサーバの状態はアクティブであり、サブサーバのアドレスは192.168.1.20であり、サブサーバの状態は停止であり、異常発生は「無し」であり、クライアントECUは192.168.1.31である。サービスポリシは記載が省略されている。
 サービスIDが0x30であるサービスのメインサーバのアドレスは192.168.1.10であり、メインサーバの状態はアクティブであり、サブサーバのアドレスは192.168.1.20であり、サブサーバの状態は停止であり、異常発生は「無し」であり、クライアントECUは特に該当なしである。認証を必要とせずにサービスの提供を受けられるため、仲介ECU200ではクライアントECUの管理を行っていないことを示している。サービスポリシは記載が省略されている。
 [1.8 アクセス制御情報の一例]
 図8Bは、仲介ECU200のサービス管理部202が有するアクセス制御情報の一例を示す図である。図8Bに示されるアクセス制御情報は、通信制御部201が受信したフレームを仲介することが適切であるか否かを、サービス管理部202が判定する際に用いられる情報である。図8Bに示されるアクセス制御情報は、一例として、仲介すべきであるフレームについての、サービスの識別子と、送信元または宛先を示す識別子と、種別との組合せを示す情報である。サービス管理部202は、アクセス制御情報に示される組合せのいずれかに該当するフレームの仲介を許可し、アクセス制御情報に示される組合せのいずれにも該当しないフレームの仲介を禁止する。
 図8Bに示されるアクセス制御情報は、サービスIDが0x10であるサービスについて、仲介すべきであるフレームについての、サービスの識別子と、送信元または宛先を示す識別子と、種別との組合せを示している。
 例えば、送信元アドレスが192.168.1.10(つまりメインサーバのアドレス)であり、フレームの種別がOfferメッセージであるフレームは、仲介すべきであることが示されている。送信元アドレスが192.168.1.20(つまりサブサーバのアドレス)であり、フレームの種別がOfferメッセージであるフレームは、仲介すべきであることが示されている。宛先アドレスが192.168.1.30(つまりクライアントECUのアドレス)であり、フレームの種別がOfferメッセージであるフレームは、仲介すべきであることが示されている。
 また、送信元アドレスが192.168.1.30(つまりクライアントECUのアドレス)であり、フレームの種別がFindメッセージであるフレームは、仲介すべきであることが示されている。宛先アドレスが192.168.1.10(つまりメインサーバのアドレス)であり、フレームの種別がFindメッセージであるフレームは、仲介すべきであることが示されている。宛先アドレスが192.168.1.20(つまりサブサーバのアドレス)であり、フレームの種別がFindメッセージであるフレームは、仲介すべきであることが示されている。
 なお、図8Bに示されるアクセス制御情報において、「any」と記載されている欄は、どのようなアドレスであってもよいことを示している。
 なお、アクセス制御情報として、仲介すべきでないフレームについての、サービスの識別子と、送信元または宛先を示す識別子と、種別との組合せを示す情報を用いることもできる。その場合、サービス管理部202は、アクセス制御情報に示される組合せのいずれかに該当するフレームの仲介を禁止し、アクセス制御情報に示される組合せのいずれにも該当しないフレームの仲介を許可する。
 なお、ここでは、アクセス制御情報をテーブルの形式で示したが、アクセス制御情報は、テーブルの形式に限定されない。サービス管理部202が上記と同様の判定をすることができる根拠となる情報であれば、他の形式でもよく、例えば、アルゴリズムとして表現されてもよい。
 [1.9 車両状態保持部に格納される車両状態の一例]
 図9は、仲介ECU200の車両状態保持部206に格納される車両状態の一例を示す図である。図9に示されるように、車両状態には当該車載ネットワークを備えている車両の状態が格納されている。
 図9では車両状態が、走行中であることを示している。車両の走行状態は車載ネットワークを通じて他のECUから仲介ECU200に通知され得る。
 仲介ECU200が車両状態を把握することで、サービスの特性に応じてサービス指向型通信のメッセージを仲介すること、または、サブサーバへの切り替えタイミングを制御することが可能になる。
 なお、本実施の形態では、車両状態が走行中である例を示したが、車両状態はこれだけに限らない。車両状態は、例えば停止中、走行中、高速走行中など車両が走行しているかどうかの状態を含み得る。また、車両状態は、特定の機能が動作しているかの状態を付け加えてもよい。機能の例としては自動運転機能、クルーズコントロール、自動駐車機能、または、緊急自動ブレーキ等がある。また、車両が充電中または放電中であるなど、電力に関する状態が加わってもよい。
 例えば、車両状態が自動運転機能である場合は、特定のサービスのリアルタイム性(またはセキュリティ)の重要性が高まるため、仲介ECU200は、代理送信の有無を切り替えることで、リアルタイム性またはセキュリティを向上させることが可能となる。具体的には、仲介ECU200は、代理送信を「無し」とすることで、サーバECUとクライアントECUとが直接に通信を行うようにしてリアルタイム性を向上させることができる。また、仲介ECU200は、代理送信を「有り」とすることで、仲介ECU200がメッセージの検証を行うようにしてセキュリティを向上させることができる。
 また、サービスによっては継続的な動作が必要となる場合があり、メインサーバに異常が発生した場合でも、サブサーバをスタンバイさせておくことで、シームレスにサブサーバを切り替え、堅牢性を高めることができる。このようなサービスにおいて、安全性を重視するため、車両状態が停車時または特定の機能が停止している時のみに、仲介ECU200はサブサーバへの切り替えを行うようにしてもよい。
 [1.10 仲介ECUのサービス情報登録シーケンス]
 図10は、本実施の形態における、仲介ECU200のサービス情報登録シーケンスを示す図である。
 図10は、仲介ECU200が、サーバECU100aとクライアントECU100cとの通信を仲介することにより、サービス検出が行われるまでのシーケンスを示している。このときに仲介ECU200は、サービス情報の更新を行う。
 仲介ECU200は、具体的には、以下の処理を実行する。
 すなわち、通信制御部201は、サービスの提供の前に、提供されるサービスを示す第一サービス情報を含むOfferメッセージを、サーバECU100aから受信する。また、通信制御部201は、サービスの提供の前に、Findメッセージであって、サービス探索の対象を示す第二サービス情報を含むFindメッセージを、クライアントECU100cから受信する。サービス管理部202は、通信制御部201が受信したFindメッセージに含まれる第二サービス情報と同一の第一サービス情報を含むOfferメッセージを、受信したFindメッセージの送信元であるクライアントECU100cに、通信制御部201により送信する。ここで、Offerメッセージがサービス提供フレームに相当し、Findメッセージがサービス探索フレームに相当する。
 上記処理を以下で詳細に説明する。
 ステップS101において、サーバECU100aは、自身が提供するサービスを示す情報を含むOfferメッセージ(単に「Offer」とも表記する)を仲介ECU200に送信する。このとき、サーバECU100aは、サービスに関するアクセス権限を示したサービス権限証明書(図6A参照)と、サービスのポリシに関する情報とをOfferメッセージに含めて送信する。
 ステップS102において、仲介ECU200は、ステップS101でサーバECU100aが送信したOfferメッセージを受信し、サービス権限証明書を検証し、サーバECU100aが当該サービスに対するサーバの権限を持つことを確認する。仲介ECU200は、検証が成功した場合に、当該Offerフレームを有効と判定する。
 ステップS103において、仲介ECU200は、ステップS101でサーバECU100aが送信したOfferメッセージに含まれるサーバECU100aの情報(IPアドレス、ポート番号等)とサービスポリシとに基づいてサービス情報を更新する。
 ステップS104において、クライアントECU100cは、提供を受けたいサービスの情報を含むFindメッセージ(単に「Find」とも表記する)を仲介ECU200に送信する。このとき、クライアントECU100cは、サービスの提供を受けたいサービスのクライアント権限を持つことを示すサービス権限証明書(図6C参照)を、Findメッセージに含めて送信する。
 ステップS105において、仲介ECU200は、ステップS104でクライアントECU100cが送信したFindメッセージを受信し、サービス権限証明書を検証し、クライアントECU100cが当該サービスに対するクライアントの権限をもつことを確認する。仲介ECU200は、検証が成功した場合に、当該Findフレームを有効と判定する。
 ステップS106において、仲介ECU200は、サービス情報にクライアントの情報を追加する。
 ステップS107において、仲介ECU200は、OfferメッセージをクライアントECU100cに送信する。このとき、当該サービスの代理送信が「有り」である場合は、仲介ECU200は、仲介ECU200をサービス提供者として、OfferメッセージをクライアントECU100cに送信する。代理送信が「無し」である場合は、サーバECU100aをサービス提供者として、OfferメッセージをクライアントECU100cに送信する。
 ステップS108において、クライアントECU100cは、ステップS107で仲介ECU200が送信したOfferメッセージを受信し、受信したOfferメッセージに基づいてサーバ情報を登録する。
 [1.11 仲介ECU200によるSD仲介のみの場合の通信シーケンス]
 図11Aは、本実施の形態における、SD仲介のみを行うサービスの通信シーケンスを示す図である。
 図11Aは、仲介ECU200が、セキュリティポリシにおいてSD仲介のみと設定されており、代理送信が「無し」と設定されている場合の通信シーケンスの一例を示している。なお、図11Aに示されるシーケンスは図10で示すSD仲介が完了した後のシーケンスを示している。
 ステップS109において、クライアントECU100cは、登録したサーバ情報に基づいてサービスのSubscribeメッセージをサーバECU100aに送信する。送信されたSubscribeメッセージは、仲介ECU200の通信制御部201の一のポートにより受信され別のポートから送信されることで、サーバECU100aに転送される。このように、クライアントECU100cから仲介ECU200を経由してサーバECU100aに送信されるメッセージは、仲介ECU200の通信制御部201のポートによる受信及び送信により転送される。以降でも同様とする。
 ステップS110において、サーバECU100aは、ステップS109でクライアントECU100cが送信したSubscribeを受信し、SubscribeAckメッセージをクライアントECU100cに返信する。送信されたSubscribeAckメッセージは、仲介ECU200の通信制御部201の一のポートにより受信され別のポートから送信されることで、クライアントECU100cに転送される。このように、サーバECU100aがクライアントECU100cに送信するメッセージは、仲介ECU200の通信制御部201のポートによる受信及び送信により転送される。以降でも同様とする。
 ステップS111において、サーバECU100aは、クライアントECU100cにサービスを提供するSOME/IPメッセージを送信する。
 ステップS112において、クライアントECU100cは、ステップS111でサーバECU100aが送信したSOME/IPメッセージを受信する。
 ステップS113において、サーバECU100aは、ステップS112のSOME/IPメッセージの受信から所定期間経過後にSOME/IPメッセージを送信する。
 ステップS114において、クライアントECU100cは、ステップS113でサーバECU100aが送信したメッセージを受信する。ステップS114の後、サーバECU100aとクライアントECU100cとの通信が続く。
 [1.12 仲介ECU200による代理送信を行う場合の通信シーケンス]
 図11Bは、本実施の形態における、代理送信を行うサービスの通信シーケンスを示す図である。
 図11Bは、仲介ECU200が代理送信「有り」と設定されている場合の通信シーケンスの一例を示している。なお、図11Bに示されるシーケンスは図10で示すSD仲介が完了した後のシーケンスを示している。
 図11Bにおいて、図11Aにおける処理と同じ処理については、同じ符号を付し、詳細な説明を省略する。
 ステップS121において、仲介ECU200の代理送信部203は、ステップS109でクライアントECU100cが送信したSubscribeメッセージを受信し、受信したSubscribeメッセージの送信元(つまりサービス享受者)を仲介ECU200のIPアドレスに変更し、変更後のSubscribeメッセージをサーバECU100aに送信する。なお、ステップS121において、サーバ側のIPアドレスが変更され、クライアント側のIPアドレスが変更されないようにしてもよい。また、ステップS121において、クライアント側のIPアドレスが変更され、サーバ側のIPアドレスが変更されないようにしてもよい。なお、IPアドレスに代えて任意の識別子が用いられてもよい。以降でも同様である。
 ステップS122において、仲介ECU200の代理送信部203は、ステップS110でサーバECU100aが送信したSubscribeAckメッセージを受信し、受信したSubscribeAckメッセージの送信元(つまりサービス提供者)を仲介ECU200のIPアドレスに変更し、変更後のSubscribeAckメッセージをクライアントECU100cに送信する。
 ステップS123において、仲介ECU200の代理送信部203は、ステップS111でサーバECU100aが送信したメッセージを受信し、受信したメッセージの送信元(つまりサービス提供者)を仲介ECU200に変更し、変更後のメッセージをクライアントECU100cに送信する。
 ステップS124において、仲介ECU200の代理送信部203は、ステップS113でサーバECU100aが送信したメッセージを受信し、受信したメッセージの送信元(つまりサービス提供者)を仲介ECU200に変更し、変更後のメッセージをクライアントECU100cに送信する。
 [1.13 サブサーバによるホットスタンバイ開始時の登録シーケンス]
 図12は、本実施の形態における、仲介ECU200のサブサーバ登録シーケンスを示す図である。図12は、サブサーバであるサーバECU100bがホットスタンバイを行う時のサブサーバ登録シーケンスを示している。
 なお、図12に示される処理は、サーバECU100aおよび100bが冗長構成をとり始めるときの処理であるとも言える。
 ステップS201において、メインサーバであるサーバECU100aは、サブサーバであるサーバECU100bに対して、サブサーバ起動メッセージを送信する。このときサーバECU100aは、サービスに対するサブサーバの権限がメインサーバより与えられたことを示すサブサーバ証明書をサブサーバ起動メッセージに含める。
 ステップS202において、サーバECU100bは、ステップS201でサーバECU100aが送信したサブサーバ起動メッセージを受信し、受信したサブ起動メッセージに対応するサービスを提供するアプリを起動する。
 ステップS203において、サブサーバであるサーバECU100bは、Offerメッセージを仲介ECU200に送信する。このときサーバECU100bは、サブサーバの権限を持つことを示す認証情報をOfferメッセージに含めて送信する。
 ステップS204において、仲介ECU200は、ステップS203でサーバECU100bが送信したOfferを受信し、受信したOfferメッセージに含まれるサービス情報と認証情報とを検証する。
 ステップS205において、仲介ECU200は、サービス情報のサブサーバの状態をアクティブに更新し、サブサーバのアドレスを登録する。
 [1.14 代理送信有の時の通信シーケンス]
 図13は、本実施の形態における、仲介ECU200による代理送信の通信シーケンスを示す図である。図13は、仲介ECU200による代理送信が「有り」となっているサービスに関する通信シーケンスを示す。なお、図13に示されるシーケンスは、図10におけるサービス情報登録シーケンス、および、図12のサブサーバの起動シーケンスが完了した後のシーケンスを示す。
 図13において、サーバECU100aおよび100bは冗長構成をとっている。
 また、クライアントECU100cがSubscribeメッセージを仲介ECU200に送信し、仲介ECU200がクライアントECUとしてSubscribeメッセージをサーバECUに送信したことで、クライアントECU100cと仲介ECU200とのセッションと、サーバECU100aおよびサーバECU100bと仲介ECU200とのセッションが確立しているものとする。
 ステップS206において、メインサーバであるサーバECU100aは、サービスIDが10であるメッセージを仲介ECU200へ送信する。仲介ECU200は、送信されたメッセージを受信し、所定期間の待機状態をとる。
 ステップS207において、サブサーバであるサーバECU100bは、上記と同様にサービスIDが10のメッセージを仲介ECU200へ送信する。
 ステップS208において、仲介ECU200は、メインサーバであるサーバECU100aからステップS206で受信したメッセージと、サブサーバであるサーバECU100bからステップS207で受信したメッセージとの比較を行う。仲介ECU200によるメッセージの比較は、例えばメッセージに含まれるペイロードが一致する、または、差異が所定の誤差の範囲内に収まっていること等の検証を行う。
 ステップS209において、仲介ECU200は、サーバECUとして、クライアントECU100cに対してサービスIDが10であるメッセージを送信する。このときに送信されるメッセージは、メインサーバであるサーバECU100aから受信したメッセージが転送されたものであってもよい。また、上記メッセージは、サブサーバであるサーバECU100bから受信したメッセージが転送されたものであってもよい。ただし、サーバECU100aから受信したメッセージに不整合が発生している場合などは、仲介ECU200は、メッセージを破棄することがある。また、所定期間の間にメインサーバあるいはサブサーバのみからメッセージを受信した場合は、仲介ECU200は受信したメッセージに含まれるペイロードをそのまま転送する場合もあり得る。詳細は、図14で説明する。
 ステップS210において、クライアントECU100cは、ステップS209で仲介ECU200が送信したメッセージを受信する。
 [1.15 代理送信において異常発生時の通信シーケンス]
 図14は、本実施の形態における、異常発生時の代理送信の通信シーケンスを示す図である。図14は、仲介ECU200による代理送信が「有り」となっているサービスに関して、通信の異常が発生した場合の通信シーケンスを示している。なお、図14に示されるシーケンスは、図10におけるサービス情報登録シーケンス、および、図12のサブサーバの起動シーケンスが完了した後のシーケンスを示す。
 また、クライアントECU100cがSubscribeメッセージを仲介ECU200に送信し、仲介ECU200がクライアントECUとして、SubscribeメッセージをサーバECUに送信することで、クライアントECU100cと仲介ECU200とのセッション、および、サーバECU100aおよびサーバECU100bと仲介ECU200とのセッションが、確立しているものとする。
 図14において、サーバECU100aおよび100bは冗長構成をとっている。
 ステップS211において、サーバECU100bは、サービスIDが10のメッセージを仲介ECU200に送信する。仲介ECU200は、送信されたメッセージを受信し、所定期間の待機状態をとる。
 ステップS212において、仲介ECU200は、メインサーバであるサーバECU100aとの通信の途絶を検知する。仲介ECU200は、所定期間の待機状態において、メインサーバのサーバECU100aからのメッセージを受信していないことを検知することで、メインサーバとの通信の途絶を検知する。
 ステップS213において、仲介ECU200は、サブサーバであるサーバECU100bのメッセージに基づいて、サービスIDが10のメッセージをクライアントECU100cに送信する。
 なお、仲介ECU200は、上記メッセージを送信するか否かを、サービスの種別に応じて制御してもよい。また、仲介ECU200は、上記メッセージを送信するか否かを、車両の状態を示す状態情報に応じて制御してもよい。
 ステップS214において、仲介ECU200は、サービス情報を異常発生「有り」に更新し、また、メインサーバの状態を「停止」に更新する。また、仲介ECU200は、サブサーバに異常が発生した場合に行う所定の処理を実行してもよい。上記更新処理が、上記所定の処理に含まれていてもよい。
 ステップS215において、クライアントECU100cは、メッセージを受信する。
 [1.16 異常発生時のサブサーバへの切り替えシーケンス]
 図15は、本実施の形態における、異常発生時のサブサーバへの切り替えシーケンスを示す図である。図15は、仲介ECU200が、サーバECU100aの異常を検出し、サブサーバへ切り替えることで、サービスの提供を継続する時のシーケンスを示している。なお、図15に示されるシーケンスは、図10で示すSD仲介が完了した後のシーケンスを示す。また車両状態は「停車中」であるとする。
 図15において、サーバECU100aおよび100bは冗長構成をとっている。
 ステップS301において、サーバECU100aは、何らかの原因によりサービスの提供を停止するとき、StopOfferメッセージ(単に「StopOffer」とも表記する)をブロードキャストすることでクライアントECU100cに受信させる。
 ステップS302において、クライアントECU100cは、ステップS301でStopOfferを受信したことに応じて、サービスの提供を受けるのを停止する。
 ステップS303において、仲介ECU200は、StopOfferメッセージを受信したことに基づいて、メインサーバであるサーバECU100aに異常が発生していることを検出する。
 ステップS304において、仲介ECU200は、サーバの切り替えを実施するために、現在の車両状態を取得する。
 ステップS305において、仲介ECU200は、車両状態が「停車中」である場合、サーバの切り替えが可能と判断し、サービス情報に基づきサブサーバを起動させるメッセージである起動メッセージをサーバECU100bに送信する。また、仲介ECU200は、車両状態が「走行中」である場合は、サーバの切替が不可と判断し、処理を終了する。
 ステップS306において、サーバECU100bは、仲介ECU200が送信した起動メッセージを受信したことに応じて、サービスIDが30であるサービスを提供するためのアプリを起動する。
 ステップS307において、サーバECU100bは、Offerメッセージをブロードキャストすることで、クライアントECU100cにサーバ情報を通知する。
 ステップS308において、クライアントECU100cは、ステップS307でOfferメッセージを受信したことに応じて、サーバ情報をサブサーバであるサーバECU100bに更新する。これにより、クライアントECU100cは、ステップS301で停止されたサービスID30のサービスの提供を再度受けることが可能になる。
 [1.17 仲介ECUのSD処理フローチャート]
 図16は、仲介ECU200によるSDメッセージに対する処理を示すフローチャートである。
 ステップS400において、仲介ECU200は、サーバECU100aもしくは100b、または、クライアントECU100cもしくは100dからメッセージを受信する。
 ステップS401において、仲介ECU200は、ステップS400で受信したメッセージがサービスのOfferメッセージであるか否かを判定する。Offerメッセージであると判定した場合は、仲介ECU200はステップS402を実行し、Offerメッセージでないと判定した場合は、仲介ECU200はステップS410を実行する。
 ステップS402において、仲介ECU200は、ステップS400で受信したOfferメッセージに関連するサービス情報が、自身の保持するサービス情報保持部205にすでに登録されているサービスであるかを判断する。登録済みのサービスである場合は、仲介ECU200はステップS403を実行する。そうでない場合は、仲介ECU200は、ステップS407を実行する。
 ステップS403において、仲介ECU200は、ステップS400で受信したOfferメッセージに関するサービスが既にサービス情報保持部205に登録されている場合は、サービス情報保持部205に保持されている対応するサービスについてSDの仲介の有無を確認する。SD仲介が「有り」である場合は、仲介ECU200はステップS405を実行する。そうでない場合は、仲介ECU200はステップS404を実行する。
 ステップS404において、仲介ECU200は、ステップS400で受信したOfferメッセージを、ヘッダ情報に従って転送する。
 ステップS405において、仲介ECU200は、ステップS400で受信したOfferメッセージに含まれる情報がサービス情報保持部205に格納されているサービス情報と整合するか否かを判定する。具体的には、仲介ECU200は、Offerメッセージに含まれるサービスIDと、サービス情報に含まれるサーバのサービスIDが整合しているか否かを判定する。
 Offerメッセージに含まれる情報がサービス情報と整合すると判定した場合は、仲介ECU200は、ステップS406を実行し、そうでない場合は、ステップS408を実行する。
 ステップS406において、仲介ECU200は、ステップS400で受信したOfferメッセージに含まれる情報に基づいてサービス情報を更新し、処理を終了する。
 ステップS407において、仲介ECU200は、ステップS400で受信したOfferメッセージに含まれる認証情報を検証し、検証が成功するか否かを判定する。認証情報の検証に成功した場合は、仲介ECU200は、ステップS409を実行し、そうでない場合は、ステップS408を実行する。
 ステップS408において、仲介ECU200は、ステップS400で受信したOfferメッセージを破棄する。
 ステップS409において、仲介ECU200は、ステップS400で受信したOfferメッセージに含まれるサービスポリシに基づいて、サービス情報保持部205に格納されるサービス情報を更新し、処理を終了する。
 ステップS410において、仲介ECU200は、ステップS400で受信したメッセージがFindメッセージであるか否を判定する。Findメッセージであると判定した場合は、仲介ECU200は、ステップS411を実行し、そうでない場合は、処理を終了する。
 ステップS411において、仲介ECU200は、サービス情報保持部205に、ステップS400で受信したFindメッセージの送信元であるクライアントECUの情報が登録されているか否かを判定する。クライアントECUの情報が登録されていると判定した場合は、仲介ECU200は、ステップS412を実行し、そうでない場合には、ステップS413を実行する。
 ステップS412において、仲介ECU200は、サービス情報に基づきサーバ情報を含むOfferメッセージをクライアントECUに対して送信し、終了する。
 ステップS413において、仲介ECU200は、ステップS400で受信したFindメッセージに含まれる認証情報を検証し、検証が成功するか否かを判定する。認証情報の検証に成功した場合は、仲介ECU200は、ステップS414を実行し、そうでない場合は、ステップS415を実行する。
 ステップS414において、仲介ECU200は、サービス情報保持部205に格納されるサービス情報に、クライアント情報を登録し、ステップS412を実行する。
 ステップS415において、仲介ECU200は、ステップS400で受信したFindメッセージを破棄する。
 なお、本実施の形態では、サービス情報の整合の判定が成功した場合にサーバ情報を更新している(ステップS406)が、サービス情報の整合の判定(ステップS405)の代わりに認証情報の検証(ステップS407)を実施し、検証に成功した場合にサーバ情報を更新してもよい。
 [1.18 仲介ECUのメッセージ送信処理フローチャート]
 図17は、本実施の形態における、仲介ECU200によるSOME/IPメッセージ(より具体的には、SDメッセージ以外のSOME/IPメッセージ)に対する処理を示すフローチャートである。
 ステップS501において、仲介ECU200は、SDメッセージ以外のSOME/IPメッセージを受信する。
 ステップS502において、仲介ECU200は、ステップS501で受信したメッセージに対応するサービスが監視対象であるか否かを判定する。監視対象であると判定した場合は、仲介ECU200は、ステップS503を実行し、そうでない場合は、仲介ECU200は、ステップS505を実行する。
 ステップS503において、仲介ECU200は、ステップS501で受信したメッセージがサービス情報保持部205に格納されているサービス情報に合致するか否かを判定する。具体的には、仲介ECU200は、ステップS501で受信したメッセージが、サーバから送信されるメッセージ(Notification、または、Response)であれば、そのメッセージの送信元が、登録されたサーバ情報と合致し、かつ、そのメッセージの宛先が、登録されたクライアント情報と合致するか否かを判定する。仲介ECU200は、ステップS501で受信したメッセージが、クライアントから送信されるメッセージ(Request、または、Request no Response)であれば、そのメッセージの送信元が、登録されたクライアント情報に合致し、かつ、そのメッセージの宛先が、登録されたサーバの情報と合致するか否かを判定する。メッセージがサービス情報に合致すると判定した場合は、仲介ECU200は、ステップS504を実行し、サービス情報に合致しない場合は、ステップS506を実行する。
 ステップS504において、仲介ECU200は、対象のサービスの代理送信の有無を、サービス情報保持部205に格納されるサービス情報を参照することで取得する。代理送信が「無し」である場合は、仲介ECU200は、ステップS505を実行する。代理送信が「有り」である場合は、仲介ECU200は、ステップS507を実行する。
 ステップS505において、仲介ECU200は、受信したメッセージを転送する。
 ステップS506において、仲介ECU200は、受信したメッセージを破棄する。
 ステップS507において、仲介ECU200は、受信したメッセージのサービスが代理送信「有り」である場合、受信したメッセージの種類がRequestであるか否かを判定する。受信したメッセージの種類がRequestである場合は、仲介ECU200は、ステップS508を実行する。受信したメッセージの種類がRequestでない場合は、仲介ECU200は、ステップS509を実行する。
 ステップS508において、仲介ECU200は、サービス情報保持部205に格納されるサービス情報を参照し、アクティブなサーバに対して、受信したRequestメッセージを転送し、処理を終了する。このとき、仲介ECU200は、Requestメッセージに含まれる送信元を、仲介ECU200に書き換えて、Requestメッセージを転送する。
 ステップS509において、仲介ECU200は、ステップS501で受信したメッセージがサーバから送信されたものであるとして、対象のサービスについて他にアクティブなサーバが存在するか否かを判定する。このとき、仲介ECU200は、サービス情報保持部205に格納されるサービス情報を参照することで上記判定をする。他にアクティブなサーバが存在しないと判定した場合は、仲介ECU200は、ステップS511を実行する。アクティブなサーバが存在する場合は、仲介ECU200は、ステップS510を実行する。
 ステップS510において、仲介ECU200は、他のアクティブなサーバからメッセージを既に受信しているか否かを判定する。メッセージの受信確認は、例えば、あらかじめサーバからの受信メッセージを所定期間保持しておくようにしておき、保持しているメッセージ内に、該当するサーバからのメッセージが存在するか否かを判定することで行う。他のアクティブなサーバECUからメッセージを受信した場合は、仲介ECU200は、ステップS511を実行し、そうでない場合は、ステップS513を実行する。
 ステップS511において、仲介ECU200は、メッセージの選択を行う。メッセージの選択方法は、例えば、メインサーバのメッセージをより優先的に選択する方法、より最近に受信したメッセージをより優先的に選択する方法、および、複数のメッセージの比較を行い、中間値に該当するものまたは中間値に近いものをより優先的に選択する方法などが考えられる。
 ステップS512において、仲介ECU200は、メッセージを代理送信する。
 ステップS513において、仲介ECU200は、所定期間待ち、他のアクティブなサーバECUからメッセージを受信するか否かを判定する。
 ステップS514において、仲介ECU200は、サーバに異常が発生したとして、サービス情報保持部205に保持されているサーバ情報のうち、アクティブになっており、かつメッセージの受信がなかったサーバについて、サーバ情報を停止に更新する。
 [1.19 メインサーバの通信異常検知時の切り替えフローチャート]
 図18は、本実施の形態における、メインサーバの通信異常が検知されたときのサーバ切り替え処理を示すフローチャートである。
 ステップS601において、仲介ECU200は、メインサーバの通信異常を検知し、サービス情報保持部205に格納されているサービス情報のうちメインサーバの情報、および、異常検知情報を更新する。メインサーバの通信異常は、例えばメインサーバからのエラーメッセージの通知、StopOfferメッセージの通知、または、所定期間の通信途絶等により検知され得る。
 ステップS602において、仲介ECU200は、サービス情報保持部205に格納されているサービス情報を参照し、サブサーバがアクティブであるか否かを判定する。サブサーバがアクティブであると判定した場合は、仲介ECU200は、ステップS603を実行する。そうでない場合は、仲介ECU200は、ステップS606を実行する。
 ステップS603において、仲介ECU200は、車両状態保持部206に格納されている車両状態と、サービス情報のうちのサービスポリシとを参照し、車両状態が切り替えポリシ(ホットスタンバイ)に合致しているか否かを判定する。車両状態が切り替えポリシに合致したと判定した場合は、仲介ECU200は、ステップS604を実行する。そうでない場合は、仲介ECU200は、何もせずに処理を終了する。
 ステップS604において、仲介ECU200は、対象サービスの代理送信の有無を取得する。対象サービスが代理送信「有り」である場合は、仲介ECU200は、何もせずに、終了する、すなわち、サブサーバによりサービスを継続する。対象サービスが代理送信「無し」である場合は、仲介ECU200は、ステップS605を実行する。
 ステップS605において、仲介ECU200は、クライアントECUに対して、サービスの提供元としてサブサーバの情報を含めたOfferメッセージを送信することで、サーバECUの切り替えを通知し、処理を終了する。
 ステップS606において、仲介ECU200は、車両状態が切り替えポリシ(コールドスタンバイ)に合致するか否かを確認する。車両状態が切り替えポリシ(コールドスタンバイ)に合致した場合は、仲介ECU200は、ステップS607を実行する。そうでない場合は、仲介ECU200は、処理を終了する。
 ステップS607において、仲介ECU200は、サブサーバの起動を行う。サブサーバの起動は、例えば当該サービスを提供するアプリケーションの起動を、サブサーバへ要求するメッセージを送信することによって行う。
 ステップS608において、仲介ECU200は、サブサーバ起動後に送信されるOfferメッセージに基づいて認証情報を検証し、サーバ情報を取得することで、サービス情報保持部205のサービス情報を更新する。
 ステップS609において、仲介ECU200は、クライアントECUに対して、サービスの提供元としてサブサーバの情報を含めたOfferメッセージを送信する。
 [1.20 実施の形態の効果]
 実施の形態に係る車載ネットワークシステムでは、仲介ECU200がSOME/IP SD通信に関して、認証情報を検証することで、正規のサーバまたはクライアントであるかを認証する。これにより、不正なECUによるサービスへのアクセス権を管理することが可能になり不正なECUによるなりすましを防止し、セキュリティが高まる。
 さらに、仲介ECU200は、サービスポリシに応じて、サービス指向型通信の仲介方法を変更する。これにより、高いセキュリティが要求されるメッセージについては、仲介ECU200による監視および代理送信を行うことで、当該サービスに関するメッセージを監視しつつ、サーバの情報を秘匿することが可能になる。また、高いリアルタイム性が要求されるメッセージについては、サービスの検出時のみ仲介を行うことで、セキュリティを高めつつ、リアルタイム性を維持することが可能となる。
 さらに、仲介ECU200は、サービスポリシおよび車両状態に応じて、サービスの提供元に異常が発生した場合にサブのサーバへ切り替える方法を選択する。これによりサービスの種類によって、サービスが車両走行に与える影響を考慮しつつ、サービスの堅牢性を高めることが可能になる。
 (実施の形態の変形例)
 本実施の形態において、サービス提供に係る通信のアクセス制御を適切に行うサービス仲介装置の別の形態について説明する。
 図19Aは、本変形例におけるサービス仲介装置300の構成を示す図である。サービス仲介装置300は、上記実施の形態の仲介ECU200に相当する。
 図19Aに示されるように、サービス仲介装置300は、通信制御部301と、サービス管理部302とを備える。
 通信制御部301は、サーバユニットからクライアントユニットへサービス指向型通信によってサービスを提供するサービス提供システムにおいて、サーバユニットおよびクライアントユニットそれぞれに接続され、サーバユニットまたはクライアントユニットから、サービスの提供に用いられるフレームを受信する。通信制御部301は、上記実施の形態の通信制御部201に相当する。
 サービス管理部302は、通信制御部301が受信したフレームに含まれるサービスの識別子と、フレームの送信元または宛先を示す識別子と、フレームの種別との組合せが適切であるか否かの判定をし、判定の結果の出力をする。サービス管理部302は、上記実施の形態のサービス管理部202に相当する。
 なお、サービス仲介装置300は、上記実施の形態の仲介ECU200が備える代理送信部203に相当する代理送信部303を備えてもよい。
 また、サービス仲介装置300は、上記実施の形態の仲介ECU200が備える車両状態保持部206に相当する車両状態保持部304を備えてもよい。
 図19Bは、本変形例におけるサービス仲介装置300の処理を示すフロー図である。
 ステップS1において、通信制御部301は、サーバユニットまたはクライアントユニットから、サービスの提供に用いられるフレームを受信する。
 ステップS2において、サービス管理部302は、通信制御部301がステップS1で受信したフレームに含まれるサービスの識別子と、フレームの送信元または宛先を示す識別子と、フレームの種別との組合せが適切であるか否かの判定をする。
 ステップS3において、サービス管理部302は、ステップS2における判定の結果を出力する。
 以上の一連の処理により、サービス仲介装置300は、サービス提供に係る通信のアクセス制御を適切に行う。
 (その他の変形例)
 なお、本開示を上記実施の形態に基づいて説明してきたが、本開示は、上記実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
 (1)上記の実施の形態では、SOME/IP通信の例として処理動作を説明したが、これに限定されることなく、その他のサービス指向型通信、または、Publish/Subscribe型通信であってもよい。例えばData Distiribution Service(DDS)通信であってもよい。
 (2)上記の実施の形態では、SDメッセージの処理においてOfferとFindとの処理例を図16に示したが、別のSDメッセージの種類を処理してもよい。例えば、Subscribeについても同様に、クライアント情報の確認を行ってもよい。これによりメッセージの監視の対象範囲が広まりセキュリティ向上が期待できる。
 (3)上記の実施の形態では、車載ネットワークシステムとして、サーバECUとクライアントECUとに、ECUの種類を分けたが、実際にはサーバECUがクライアントECUであってもよいし、クライアントECUがサーバECUの役割を担ってもよい。本実施の形態では、特定のサービスに注目してサーバECUまたはクライアントECUと呼んでいるに過ぎない。
 (4)上記の実施の形態では、アプリ認証情報をECUが通知し、仲介ECU200が認証情報を検証していたが、認証情報を予め仲介ECU200が保持していてもよい。または、工場の組み立て段階で初回起動時に、通知された認証情報を検証し、不揮発メモリに保持していてもよい。これにより、車両起動時に毎回認証情報の検証を行う必要がなくなり、車載ネットワークの通信量削減および、仲介ECU200の処理負荷低減に効果的である。
 (5)上記の実施の形態では、アプリ認証情報は平文で保持されていたが、暗号化されて保持されていてもよい。同様にサービスポリシも暗号化されて保持されていてもよい。
 (6)上記の実施の形態では、仲介ECU200に複数ポートを持つイーサネットスイッチが存在し、各ECUは仲介ECU200を介した通信を行う例を示したが、仲介ECU200にイーサネットスイッチが存在しなくてもよい。例えば、サーバECUとクライアントECUは、仲介ECU200のみと通信することで、サービスの提供を行ってもよい。これにより仲介ECU200の物理的な配置によらず、サービスの仲介を実現することが可能となる。
 (7)上記の実施の形態では、記載が省略されているが、カーメーカやアプリベンダの公開鍵が保持されており、アプリ認証情報の正当性を検証する。
 (8)上記の実施の形態では、イーサネットの通信は平文で行われているとしているが、IPsec、MACsecまたはTLS等の暗号化通信をしていてもよい。また、事前に共有したセッション鍵を用いてペイロードを暗号化してもよい。これによりネットワークにアクセスし、盗聴を行う攻撃者に対して、サービスに関する情報を秘匿することが可能となり効果的である。
 (9)上記の実施の形態では、全てのネットワークが接続されている例を示したが、Virtual LAN(VLAN)によって論理的に分離してもよい。これにより、セキュリティ強度が高まり効果的である。
 (10)上記の実施の形態では、アプリ認証情報の一例にセッション鍵が保持されている例を示したが、セッション鍵は必須の構成ではない。
 (11)上記の実施の形態では、サービス情報の一例に、メイン状態としてIPアドレスと状態を保持する例を示したが、保持する情報はこれに限らない。例えばサービスを提供するポート番号が含まれてもよい。同様にクライアントの情報としてポート番号が含まれてもよい。これにより、例えば正規のIPアドレスのサーバ上に不正なアプリケーションが動作し、不正なポート番号からの通信を検知することが可能となり、セキュリティ向上に効果的である。
 (12)上記の実施の形態では、代理送信の有無は、サービスポリシにより決定されていたが、車両状態と組み合わせて決定されてもよい。例えば、車両状態に応じてリアルタイム性の要求が変更されるようなサービスについては、車両状態に応じて代理送信の有無を切り替えてもよい。
 (13)上記の実施の形態では、代理送信の有無は、サービスポリシにより決定されていたが、メッセージの種類に応じて決定されてもよい。図19Cに、仲介ECU200によりサービス仲介方法が決定されるフローチャートを示す。図19Cでは、サービスごとに設定される属性に基づいて、仲介方法が決定される例を示している。サービスの属性としては、サービスの種類(状態通知、制御信号、診断、アップデート)、状態信号の属性(公開・非公開、制御判断情報、ユーザ通知情報)であってもよい。
 ステップS701において、仲介ECU200は、サービスの属性を受信する。サービスの属性は、Offerメッセージに含まれてもよいし、SOME/IPメッセージ以外でやりとりされてもよいし、予め保持しているサービスごとのマニフェストファイルに記載してあってもよい。
 ステップS702において、仲介ECU200は、サービスの種類が状態通知であるか否かを判定する。状態通知の種類のサービスであると判定した場合は、仲介ECU200は、ステップS703を実行する。状態通知のサービスでない場合は、ステップS710を実行する。
 ステップS703において、仲介ECU200は、サービスの状態信号の属性が公開情報であるか否かを判定する。サービスの状態信号の属性が公開情報であると判定した場合は、仲介ECU200は、ステップS704を実行する。サービスの状態信号の属性が公開情報でないと判定した場合は、仲介ECU200は、ステップS705を実行する。
 ここで、サービスの状態信号は、サービスにより通知される状態通知をいう。状態信号は属性を有する。例えば、状態信号が、ネットワークシステムに参加するすべてのECUに取得可能な情報であれば、「公開情報」の属性が付与される。また、制御ECUが、状態信号を基に制御を行う場合は、「制御指示情報(コマンド情報)」、または、「制御判断情報(センサ情報)」の属性が付与される。また、制御ECUの制御に、直接には関係しない情報として、ドライバーなどのユーザに対して音声または画面を通して情報を通知するための信号には、「ユーザ通知情報」の属性が付与される。これら状態信号の属性に応じて、セキュリティレベル(つまり、サービス仲介、または、代理送信の有無)が決定されてもよい。
 ステップS704において、仲介ECU200は、サービスがどのクライアントに提供されても問題がないことから、当該サービスの仲介方法を、サービス仲介「無し」、かつ、代理送信「無し」、と設定し、処理を終了する。
 ステップS705において、仲介ECU200は、サービスの状態信号の属性が、制御の判断に用いられる情報であるか否かを判定する。サービスの状態信号の属性が、制御の判断に用いられる情報であると判定した場合は、仲介ECU200は、ステップS707を実行する。サービスの状態信号の属性が、制御の判断に用いられる情報でないと判定した場合は、仲介ECU200は、ステップS708を実行する。
 ステップS707において、仲介ECU200は、リアルタイム性が要求されることから、当該サービスの仲介方法を、代理送信「無し」、かつ、サービスの仲介「有り」、と設定し、処理を終了する。
 ステップS708において、仲介ECU200は、サービスの状態信号の属性がユーザ通知情報であるか否かを判定する。サービスの状態信号の属性がユーザ通知情報であると判定した場合は、ステップS709を実行する。状態がユーザ通知情報でない場合は、仲介ECU200は、ステップS710を実行する。
 ステップS709において、仲介ECU200は、リアルタイム性よりも情報の信頼性が求められることから、当該サービスの仲介方法を、代理送信「有り」、かつ、サービス仲介「有り」と設定し、処理を終了する。
 ステップS710において、仲介ECU200は、デフォルトの設定として、サービス仲介「有り」、かつ、代理送信「無し」を当該サービスの仲介方法として設定する。
 (14)上記の実施の形態では、仲介ECU200が認証情報を検証することで、アクセス権限を管理したが、認証情報の検証を行わなくてもよい。
 (15)上記の実施の形態では、サービス情報の不整合が発生したときに、仲介ECU200はメッセージを破棄したが、サービス情報の不整合が発生したときの処理は、メッセージの破棄に限らない。例えば、仲介ECU200は、不整合に関する情報をログとして保存してもよいし、外部へ通知してもよい。図20に、外部へ通知されるログの一例を示す。外部に通知されるログは、ディスプレイに可視化のために表示されてもよい。
 図20では、異常検知ログのシリアルIDであるログIDが100200であり、異常の種類を伝える異常コードが0x10(サービスポリシ違反)であることを示している。また検出内容の詳細については、サービスIDが0x10のサービスにおいて、アクセス元情報の異常を検出したことを示している。異常を検出したオリジナルのパケットもログに含まれており、異常検知時に行った対応については、オリジナルパケットの破棄と、サブサーバへの切り替えを試みたが車両状態が切り替えポリシの条件を満たさなかったため、未切り替えの状態であることを示している。
 (16)上記の実施の形態では、メインサーバの異常検知時に仲介ECU200がサブサーバへ切り替える処理を示したが、異常検知時以外にも仲介ECU200はサブサーバの切り替えを行ってもよい。例えば、メインサーバの処理負荷や、通信帯域の増加に応じて、仲介ECU200はサブサーバへ切り替えることで負荷分散を行ってもよい。また、車両状態に応じてサブサーバを選択してもよい。例えば車両状態ごとにサーバの負荷を保持しており、仲介ECU200は最も負荷の低いサーバへ切り替えるとしてもよい。また、サーバの優先度が設けられており、仲介ECU200はサーバの優先度に従ってサーバが選択してもよい。例えば車両状態、通信帯域、サーバ負荷、動作中の機能に応じて仲介ECU200は優先度を算出し、優先度に従って適切なサーバが選択されるとしてもよい。
 (17)上記の実施の形態では、サブサーバは1つである例を示したが、サブサーバは複数あってもよい。
 (18)上記の実施の形態では、代理送信時に、仲介ECU200は複数のサーバからのメッセージの受信を待っていたが、最初に受信したメッセージをクライアントに転送してもよい。これにより通信の遅延が少なくなり効果的である。また、メッセージの転送後に、仲介ECU200は他サーバからのメッセージとの比較を行うことで異常な通信の発生を検知してもよい。これにより不正な通信を検知することも可能となりセキュリティ向上に効果的である。
 (19)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 (20)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されてもよい。
 また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
 (21)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
 (22)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
 また、本開示は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
 また、本開示は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
 また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
 また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
 (23)上記実施の形態では、自動車を対象としたサイバーフィジカルシステムのセキュリティ対策として説明したが、適用範囲はこれに限られない。従って、自動車を対象とした攻撃の可視化のためのユーザインタフェース(UI)についても適用範囲はこれに限られない。自動車に限らず、建機、農機、船舶、鉄道、飛行機などのモビリティにも適用してもよく、また、工場やビルなどの産業制御システムで利用される通信ネットワークや、組込みデバイスを制御するための通信ネットワークに適用してもよい。
 (24)上記実施の形態では、自動車を対象としたサイバーフィジカルシステムのセキュリティ対策として説明したが、セキュリティ機能の各処理の判断結果や出力結果をサイバーフィジカルシステムにおける攻撃の可視化のためのユーザインタフェース(UI)として表示しても良い。自動車に限らず、建機、農機、船舶、鉄道、飛行機などのモビリティにも適用してもよく、また、工場やビルなどの産業制御システムで利用される通信ネットワークや、組込みデバイスを制御するための通信ネットワークに適用してもよい。
 (25)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
 本開示は、サービス指向型通信を採用した車載ネットワークにおいて、攻撃者が不正なフレームを送信したとしても、仲介者による認証情報の検証を行う。さらに、サービスポリシと車両状態に応じた仲介方法を提供することで、サービスに応じたセキュリティとリアルタイム性を実現することが可能となり効果的である。
 100a、100b サーバECU
 100c、100d クライアントECU
 101 通信部
 102 アプリ部
 103 アプリ認証情報保持部
 104 サービスポリシ保持部
 200 仲介ECU
 201、301 通信制御部
 202、302 サービス管理部
 203、303 代理送信部
 204 異常監視部
 205 サービス情報保持部
 206、304 車両状態保持部
 300 サービス仲介装置

Claims (16)

  1.  サーバユニットからクライアントユニットへサービス指向型通信によってサービスを提供するサービス提供システムにおいて、サーバユニットおよびクライアントユニットそれぞれに接続され、前記サーバユニットまたは前記クライアントユニットから、前記サービスの提供に用いられるフレームを受信する通信制御部と、
     前記通信制御部が受信した前記フレームに含まれるサービスの識別子と、前記フレームの送信元または宛先を示す識別子と、前記フレームの種別との組合せが適切であるか否かの判定をし、前記判定の結果の出力をするサービス管理部とを備える
     サービス仲介装置。
  2.  前記通信制御部は、さらに、
     前記サービスの提供の前に、提供される前記サービスを示す第一サービス情報を含むサービス提供フレームを、前記サーバユニットから受信し、
     前記サービスの提供の前に、サービス探索フレームであって、サービス探索の対象を示す第二サービス情報を含むサービス探索フレームを、前記クライアントユニットから受信し、
     前記サービス管理部は、さらに、
     前記通信制御部が受信した前記サービス探索フレームに含まれる前記第二サービス情報と同一の前記第一サービス情報を含む前記サービス提供フレームを、受信した前記サービス探索フレームの送信元である前記クライアントユニットに、前記通信制御部により送信する
     請求項1に記載のサービス仲介装置。
  3.  前記サービス提供フレームは、前記サービス提供フレームに含まれる前記第一サービス情報が示すサービスを提供するサーバとしての権限を前記サーバユニットが有することを示す第一認証情報を含み、
     前記サービス探索フレームは、前記サービス探索フレームに含まれる前記第二サービス情報が示す前記サービスの提供を受けるクライアントとしての権限を前記クライアントユニットが有することを示す第二認証情報を含み、
     前記サービス管理部は、さらに、
     前記サービス提供フレームに含まれる前記第一認証情報の検証が成功した場合に、前記サービス提供フレームを有効と判定し、
     前記サービス探索フレームに含まれる前記第二認証情報の検証が成功した場合に、前記サービス探索フレームを有効と判定し、
     前記サービス提供フレームおよび前記サービス探索フレームを有効と判定した場合に、前記サービス提供フレームを前記クライアントユニットに、前記通信制御部により送信する
     請求項2に記載のサービス仲介装置。
  4.  前記通信制御部は、
     前記サービスを提供する前記サーバユニットから、前記サービスの提供に用いられる第一フレームを受信した場合に、前記サービスの提供を受ける前記クライアントユニットに前記第一フレームを送信し、
     前記サービスの提供を受ける前記クライアントユニットから、前記サービスの提供に用いられる第二フレームを受信した場合に、前記サービスを提供する前記サーバユニットに前記第二フレームを送信する
     請求項1~3のいずれか1項に記載のサービス仲介装置。
  5.  前記サービス仲介装置は、代理送信処理を実行する代理送信部を備え、
     前記代理送信処理は、
     前記第一フレームを前記通信制御部が受信した場合に、前記第一フレームに含まれる送信元を示す情報を、前記サービス仲介装置の識別子に変更してから、前記第一フレームを前記クライアントユニットに送信する処理、または、
     前記第二フレームを前記通信制御部が受信した場合に、前記第二フレームに含まれる送信元を示す情報を、前記サービス仲介装置の識別子に変更してから、前記第二フレームを前記サーバユニットに送信する処理を含む
     請求項4に記載のサービス仲介装置。
  6.  前記サーバユニット、前記クライアントユニットおよび前記サービス仲介装置は、車両に搭載されており、
     前記サービス仲介装置は、さらに、前記車両の状態を示す状態情報を保持している車両状態保持部を備え、
     前記代理送信部は、前記車両状態保持部が保持している前記状態情報に応じて、前記代理送信処理を実行するか否かを制御する
     請求項5に記載のサービス仲介装置。
  7.  前記サーバユニットは、第一サーバユニットと第二サーバユニットとを含み、
     前記通信制御部は、
     前記第一サーバユニットから前記サービス提供フレームを受信した場合には、所定期間の待機状態をとり、
     前記待機状態において前記第二サーバユニットから前記サービス提供フレームを受信した場合には、受信した2つの前記サービス提供フレームのいずれかを前記クライアントユニットに送信する
     請求項2~6のいずれか1項に記載のサービス仲介装置。
  8.  前記通信制御部は、
     前記待機状態において前記第二サーバユニットから前記サービス提供フレームを受信しない場合には、前記第一サーバユニットから受信した前記サービス提供フレームを前記クライアントユニットに送信し、かつ、前記第二サーバユニットに異常が発生した場合に行う所定の処理を実行する
     請求項7に記載のサービス仲介装置。
  9.  前記通信制御部は、
     前記待機状態において前記第二サーバユニットから前記サービス提供フレームを受信しない場合には、前記第一サーバユニットから受信した前記サービス提供フレームを前記クライアントユニットに送信するか否かを、前記サービスの種別に応じて制御する
     請求項7に記載のサービス仲介装置。
  10.  前記サーバユニット、前記クライアントユニットおよび前記サービス仲介装置は、車両に搭載されており、
     前記サービス仲介装置は、さらに、前記車両の状態を示す状態情報を保持している車両状態保持部を備え、
     前記通信制御部は、
     前記待機状態において前記第二サーバユニットから前記サービス提供フレームを受信しない場合には、前記第一サーバユニットから受信した前記サービス提供フレームを前記クライアントユニットに送信するか否かを、前記車両状態保持部が保持している前記状態情報に応じて制御する
     請求項7に記載のサービス仲介装置。
  11.  前記サーバユニットは、第一サーバユニットと第二サーバユニットとを含み、
     前記通信制御部は、
     前記クライアントユニットから前記サービス探索フレームを受信した場合には、受信した前記サービス探索フレームを、前記第一サーバユニットおよび前記第二サーバユニットの両方に送信する
     請求項2~10のいずれか1項に記載のサービス仲介装置。
  12.  前記サーバユニットは、複数のサーバユニットを含み、
     前記サービス管理部は、
     前記複数のサーバユニットが通信可能状態にあるか否かを示す通信状態情報を保持していて、
     保持している前記通信状態情報を前記クライアントユニットに送信する
     請求項2~11のいずれか1項に記載のサービス仲介装置。
  13.  前記サービス管理部は、前記複数のサーバユニットのうちの一のサーバユニットが通信不可能状態であることを検出した場合に、前記通信状態情報を参照して、前記複数のサーバユニットのうち通信可能状態であるサーバユニットから受信した前記サービス提供フレームを前記クライアントユニットに送信する
     請求項12に記載のサービス仲介装置。
  14.  前記判定の結果の出力は、
     前記判定の結果を示す情報を表示画面に表示すること、または、
     前記判定の結果を示す情報をネットワークを介して外部装置に送信することを含む
     請求項1~13のいずれか1項に記載のサービス仲介装置。
  15.  サーバユニットからクライアントユニットへサービス指向型通信によってサービスを提供するサービス提供システムにおいて、サーバユニットおよびクライアントユニットそれぞれに接続される通信制御部により、前記サーバユニットまたは前記クライアントユニットから、前記サービスの提供に用いられるフレームを受信し、
     前記通信制御部が受信した前記フレームに含まれるサービスの識別子と、前記フレームの送信元または宛先を示す識別子と、前記フレームの種別との組合せが適切であるか否かの判定をし、前記判定の結果の出力をする
     サービス仲介方法。
  16.  請求項15に記載のサービス仲介方法をコンピュータに実行させるプログラム。
PCT/JP2021/044367 2021-01-14 2021-12-02 サービス仲介装置、サービス仲介方法、および、プログラム WO2022153708A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2022575125A JPWO2022153708A1 (ja) 2021-01-14 2021-12-02
EP21919597.1A EP4280089A4 (en) 2021-01-14 2021-12-02 SERVICE INTERMEDIATION DEVICE, SERVICE INTERMEDIATION METHOD AND PROGRAM
CN202180089935.XA CN116685971A (zh) 2021-01-14 2021-12-02 服务中介装置、服务中介方法和程序
US18/220,072 US20230353656A1 (en) 2021-01-14 2023-07-10 Service broker, service brokering method, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/JP2021/001066 WO2022153442A1 (ja) 2021-01-14 2021-01-14 サービス仲介装置およびサービス仲介方法
JPPCT/JP2021/001066 2021-01-14

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/220,072 Continuation US20230353656A1 (en) 2021-01-14 2023-07-10 Service broker, service brokering method, and recording medium

Publications (1)

Publication Number Publication Date
WO2022153708A1 true WO2022153708A1 (ja) 2022-07-21

Family

ID=82448077

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2021/001066 WO2022153442A1 (ja) 2021-01-14 2021-01-14 サービス仲介装置およびサービス仲介方法
PCT/JP2021/044367 WO2022153708A1 (ja) 2021-01-14 2021-12-02 サービス仲介装置、サービス仲介方法、および、プログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/001066 WO2022153442A1 (ja) 2021-01-14 2021-01-14 サービス仲介装置およびサービス仲介方法

Country Status (5)

Country Link
US (1) US20230353656A1 (ja)
EP (1) EP4280089A4 (ja)
JP (1) JPWO2022153708A1 (ja)
CN (1) CN116685971A (ja)
WO (2) WO2022153442A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240187401A1 (en) * 2022-12-01 2024-06-06 GM Global Technology Operations LLC Securing in-vehicle service oriented architecture with mac generate allow list
JP7507536B1 (ja) 2023-04-25 2024-06-28 パナソニックオートモーティブシステムズ株式会社 監視システム及び制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019009559A (ja) * 2017-06-22 2019-01-17 株式会社デンソー サーバ
WO2021002013A1 (ja) * 2019-07-04 2021-01-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置および異常検知方法
WO2021002010A1 (ja) * 2019-07-04 2021-01-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正フレーム検知装置および不正フレーム検知方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9912754B2 (en) * 2015-05-01 2018-03-06 GM Global Technology Operations LLC Vehicular data isolation device
JP6547154B2 (ja) * 2016-11-30 2019-07-24 本田技研工業株式会社 通信システム
US10917387B2 (en) * 2017-04-11 2021-02-09 Panasonic Intellectual Property Management Co., Ltd. Information processing device, information processing system, information processing method, and information processing program
US10827019B2 (en) * 2018-01-08 2020-11-03 All Purpose Networks, Inc. Publish-subscribe broker network overlay system
WO2019168907A1 (en) * 2018-02-27 2019-09-06 Excelfore Corporation Broker-based bus protocol and multi-client architecture
CN113196266A (zh) * 2018-10-02 2021-07-30 大众汽车股份公司 使用车辆的车辆计算单元执行一个或多个车辆应用的方法、车辆计算单元、用于提供用于车辆应用的许可信息清单的方法、用于车辆应用的许可信息清单和计算机程序
US10951728B2 (en) * 2019-02-11 2021-03-16 Blackberry Limited Proxy for access of a vehicle component
IT201900006242A1 (it) * 2019-04-23 2020-10-23 Italdesign Giugiaro Spa Perfezionamenti nella trasmissione di dati o messaggi a bordo di un veicolo mediante un protocollo di comunicazione SOME/IP

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019009559A (ja) * 2017-06-22 2019-01-17 株式会社デンソー サーバ
WO2021002013A1 (ja) * 2019-07-04 2021-01-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置および異常検知方法
WO2021002261A1 (ja) * 2019-07-04 2021-01-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 異常検知装置および異常検知方法
WO2021002010A1 (ja) * 2019-07-04 2021-01-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 不正フレーム検知装置および不正フレーム検知方法

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
EP4280089A4 (en) 2024-07-10
CN116685971A (zh) 2023-09-01
EP4280089A1 (en) 2023-11-22
WO2022153442A1 (ja) 2022-07-21
JPWO2022153708A1 (ja) 2022-07-21
US20230353656A1 (en) 2023-11-02

Similar Documents

Publication Publication Date Title
JP7496823B2 (ja) 不正フレーム検知装置および不正フレーム検知方法
JP7037550B2 (ja) ネットワークトラフィックのセキュア通信
US20230388131A1 (en) Systems And Methods For Enabling Trusted Communications Between Controllers
US8544081B2 (en) Secure network architecture
CN106576096B (zh) 用于对具有不等能力的设备的认证的装置、方法及介质
JP6144783B2 (ja) 情報中心のネットワークにおけるトラストアンカーを用いたプロトコルのルーティングに基づく名前/プレフィックスの増加
CN103875226B (zh) 用于网络环境中主机发起的防火墙发现的系统和方法
WO2021002013A1 (ja) 異常検知装置および異常検知方法
US20110164752A1 (en) Detection of Stale Encryption Policy By Group Members
WO2022153708A1 (ja) サービス仲介装置、サービス仲介方法、および、プログラム
EP2095598B1 (en) Secure network architecture
CN113271283B (zh) 消息接入方法及系统
EP1976219A1 (en) Secure network architecture
EP4261718A1 (en) Communication control method and communiation device
Burgardt In-Vehicle Network Security: Attacks and Countermeasures
US12149506B2 (en) Data routing options for a VPN
US20240195795A1 (en) Computer-implemented methods and systems for establishing and/or controlling network connectivity
JP5149740B2 (ja) 中継端末および通信システム

Legal Events

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

Ref document number: 21919597

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022575125

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 202180089935.X

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021919597

Country of ref document: EP

Effective date: 20230814