IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人名古屋大学の特許一覧 ▶ 株式会社オートネットワーク技術研究所の特許一覧 ▶ 住友電装株式会社の特許一覧 ▶ 住友電気工業株式会社の特許一覧

特開2024-100524車載装置、情報処理方法及び、車載システム
<>
  • 特開-車載装置、情報処理方法及び、車載システム 図1
  • 特開-車載装置、情報処理方法及び、車載システム 図2
  • 特開-車載装置、情報処理方法及び、車載システム 図3
  • 特開-車載装置、情報処理方法及び、車載システム 図4
  • 特開-車載装置、情報処理方法及び、車載システム 図5
  • 特開-車載装置、情報処理方法及び、車載システム 図6
  • 特開-車載装置、情報処理方法及び、車載システム 図7
  • 特開-車載装置、情報処理方法及び、車載システム 図8
  • 特開-車載装置、情報処理方法及び、車載システム 図9
  • 特開-車載装置、情報処理方法及び、車載システム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024100524
(43)【公開日】2024-07-26
(54)【発明の名称】車載装置、情報処理方法及び、車載システム
(51)【国際特許分類】
   H04L 9/16 20060101AFI20240719BHJP
   G06F 21/64 20130101ALI20240719BHJP
   G06F 21/60 20130101ALI20240719BHJP
【FI】
H04L9/16
G06F21/64
G06F21/60 320
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023004583
(22)【出願日】2023-01-16
(71)【出願人】
【識別番号】504139662
【氏名又は名称】国立大学法人東海国立大学機構
(71)【出願人】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(71)【出願人】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(71)【出願人】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】倉地 亮
(72)【発明者】
【氏名】高田 広章
(72)【発明者】
【氏名】上田 浩史
(57)【要約】
【課題】車載ECUから、サービスの要求に関する要求データが送信された際、当該要求データに対し適切なセキュリティ処理を施した提供データを出力することができる車載装置等を提供する。
【解決手段】車載装置は、車両に搭載される車載ECUと通信可能に接続される車載装置であって、前記車載ECUからのサービスの要求に関する処理を行う制御部を備え、前記制御部は、前記車載ECUからのサービスの要求に関する要求データを取得し、取得した要求データに基づき、前記車載ECUに提供するサービス及び、サービスを提供する際のセキュリティレベルを特定し、特定したセキュリティレベルに基づき、前記車載ECUにサービスを提供するための提供データを生成し、生成した提供データを前記車載ECUへ出力する。
【選択図】図1
【特許請求の範囲】
【請求項1】
車両に搭載される車載ECUと通信可能に接続される車載装置であって、
前記車載ECUからのサービスの要求に関する処理を行う制御部を備え、
前記制御部は、
前記車載ECUからのサービスの要求に関する要求データを取得し、
取得した要求データに基づき、前記車載ECUに提供するサービス及び、サービスを提供する際のセキュリティレベルを特定し、
特定したセキュリティレベルに基づき、前記車載ECUにサービスを提供するための提供データを生成し、
生成した提供データを前記車載ECUへ出力する
車載装置。
【請求項2】
セキュリティレベルに基づく提供データの生成処理は、メッセージ認証コードの付与処理、デジタル署名の付与処理、及び提供データに含まれるペイロードの暗号化処理の内の少なくとも1つ以上のセキュリティ処理を含み、
前記制御部は、特定したセキュリティレベルに応じて、提供データを生成する際のセキュリティ処理を異ならせる
請求項1に記載の車載装置。
【請求項3】
前記制御部は、セキュリティレベルの増加に応じて、提供データの生成処理に含まれるセキュリティ処理の種類数を増加する
請求項2に記載の車載装置。
【請求項4】
前記制御部は、アクセス可能な記憶領域に記憶されており、セキュリティレベルに関する設定情報を含むサービステーブルを参照することにより、セキュリティレベルを特定する
請求項1に記載の車載装置。
【請求項5】
前記制御部は、
前記車両内における通信に影響を与える攻撃が実施された場合、前記サービステーブルに含まれているセキュリティレベルに関する設定情報を変更し、
変更されたセキュリティレベルに基づき生成した提供データを、前記車載ECUへ再送する
請求項4に記載の車載装置。
【請求項6】
前記制御部は、
取得した要求データの正当性を判定し、
正当性の判定結果が肯定的である場合、提供データを出力し、
正当性の判定結果が否定的である場合、提供データを出力しない
請求項1に記載の車載装置。
【請求項7】
前記制御部は、
正当性の判定結果が肯定的である場合、セッション鍵を生成し、
前記セッション鍵を含めた提供データを前記車載ECUへ出力する
請求項6に記載の車載装置。
【請求項8】
前記車載ECUからの要求データは、前記車載ECUが保持する秘密鍵に対応した公開鍵を含み、
前記制御部は、前記車載ECUの公開鍵を用いて暗号化した提供データを、前記車載ECUへ出力する
請求項1に記載の車載装置。
【請求項9】
前記車載ECUとの通信のプロコトルは、SOME/IP(Scalable service-Oriented MiddlewarE over IP)であり、
要求データは、SOME/IPにおけるFind Serviceに相当し、
提供データは、SOME/IPにおけるOffer Serviceに相当する
請求項1から請求項8のいずれか1項に記載の車載装置。
【請求項10】
前記車載ECUと車載装置とは単一の装置として構成され、
前記車載ECUと車載装置との間における通信は、車載装置におけるアプリケーション間の通信に相当する
請求項9に記載の車載装置。
【請求項11】
車両に搭載される車載ECUと通信可能に接続されるコンピュータに、
前記車載ECUからのサービスの要求に関する要求データを取得し、
取得した要求データに基づき、前記車載ECUに提供するサービス及び、サービスを提供する際のセキュリティレベルを特定し、
特定したセキュリティレベルに基づき、前記車載ECUにサービスを提供するための提供データを生成し、
生成した提供データを前記車載ECUへ出力する
処理を実行させる情報処理方法。
【請求項12】
車両に搭載される車載ECUと、前記車載ECUと通信可能に接続される車載装置とを含む車載システムであって、
前記車載ECUは、
サービスの要求に関する要求データを生成し、
生成した要求データを前記車載装置へ出力し、
前記車載装置は、
前記車載ECUから要求データを取得し、
取得した要求データに基づき、前記車載ECUに提供するサービス及び、サービスを提供する際のセキュリティレベルを特定し、
特定したセキュリティレベルに基づき、前記車載ECUにサービスを提供するための提供データを生成し、
生成した提供データを前記車載ECUへ出力する
車載システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車載装置、情報処理方法及び、車載システムに関する。
【背景技術】
【0002】
従来、車両に搭載されたECU(Electronic Control Unit)等の複数の装置間で行われる通信に用いられる通信プロトコルには、CAN(Controller Area Network)の通信プロトコルが広く採用されていた。
【0003】
特許文献1においては、車両のCANに接続され、装置診断コマンドにより車載機器に動作を実行させて、この車載機器が送信する状態応答データを取り込み、車載機器の動作状態を判断する検知・制御統合装置が提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009-220800号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の検知・制御統合装置は、車載ECU(Electronic Control Unit)から、サービスの要求に関する要求データが送信された際、当該要求データに対し適切なセキュリティ処理を施した提供データの生成及び出力を行う点が、考慮されていない。
【0006】
本開示の目的は、車載ECUから、サービスの要求に関する要求データが送信された際、当該要求データに対し適切なセキュリティ処理を施した提供データを出力することができる車載装置等を提供する。
【課題を解決するための手段】
【0007】
本開示の一態様に係る車載装置は、車両に搭載される車載ECUと通信可能に接続される車載装置であって、前記車載ECUからのサービスの要求に関する処理を行う制御部を備え、前記制御部は、前記車載ECUからのサービスの要求に関する要求データを取得し、取得した要求データに基づき、前記車載ECUに提供するサービス及び、サービスを提供する際のセキュリティレベルを特定し、特定したセキュリティレベルに基づき、前記車載ECUにサービスを提供するための提供データを生成し、生成した提供データを前記車載ECUへ出力する。
【発明の効果】
【0008】
本開示の一態様によれば、車載ECUから、サービスの要求に関する要求データが送信された際、当該要求データに対し適切なセキュリティ処理を施した提供データを出力する車載装置等を提供することができる。
【図面の簡単な説明】
【0009】
図1】実施形態1に係る車載装置を含む車載システムの構成を例示する模式図である。
図2】車載装置の物理構成を例示するブロック図である。
図3】サービステーブルを例示した説明図である。
図4】セキュリティ処理テーブルを例示した説明図である。
図5】保護のあるSOME/IPメッセージを例示した説明図である。
図6】車載装置(サーバ)と車載ECU(クライアント)との処理シーケンスを例示した説明図である。
図7】車載装置の制御部の処理を例示するフローチャートである。
図8】実施形態2(セキュリティレベルの動的変更)に係る車載装置(サーバ)と車載ECU(クライアント)との処理シーケンスを例示した説明図である。
図9】車載装置の制御部の処理を例示するフローチャートである。
図10】実施形態3(車載装置内のプロセス間通信)に係る車載装置の制御部に含まれる機能部を例示する機能ブロック図である。
【発明を実施するための形態】
【0010】
[本開示の実施形態の説明]
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0011】
(1)本開示の一態様に係る車載装置は、車両に搭載される車載ECUと通信可能に接続される車載装置であって、前記車載ECUからのサービスの要求に関する処理を行う制御部を備え、前記制御部は、前記車載ECUからのサービスの要求に関する要求データを取得し、取得した要求データに基づき、前記車載ECUに提供するサービス及び、サービスを提供する際のセキュリティレベルを特定し、特定したセキュリティレベルに基づき、前記車載ECUにサービスを提供するための提供データを生成し、生成した提供データを前記車載ECUへ出力する。
【0012】
本態様にあたっては、車両に搭載される車載装置と車載ECUとは、車載ネットワークを介して相互に通信し、車載装置が実行するサービスに関する要求及び提供に関する通信を行う。例えば、後方カメラに関する処理を担う車載装置は、当該後方カメラが撮像した画像(サービスのインスタンス)を、車載ネットワークを介して出力するサービスを実行する。車載ECUは、車載装置に対し後方カメラに関するサービスを要求することにより、車載装置から当該サービスの提供を受けることができ、車載装置から取得したサービスのインスタンス(例えば、後方カメラの画像)を用いて、例えば後方における人検知処理等の各種アプリケーションを実行することができる。又は、車載装置は、車載ECUからサービスに対応するアプリケーション名を含む要求データを取得することにより、当該アプリケーション名に応じて提供するサービスを特定するものであってもよい。車載装置の制御部は、このようなサービスの要求及び提供に関する通信処理を行うにあたり、車載ECUからの要求データ(サービスの要求に関するデータ)に基づき、車載ECUに提供するサービスのみならず、当該サービスを提供する際のセキュリティレベルを特定する。車載装置の制御部は、特定したセキュリティレベルに基づき、要求データに応答する提供データを生成し、生成した提供データを車載ECUへ出力するため、当該提供データのセキュリティレベルを車載ECUからの要求に応じて担保することができる。このようにサービスに関する要求及び提供に関する通信におけるデータ(メッセージ)単位にて、適正なセキュリティレベルとなるようにセキュリティ処理を施すことができる。更にサービスに関する要求及び提供に関する通信に用いるデータに対し、セキュリティレベルに応じた処理を施すため、当該要求及び提供に関する通信を行う際のセッション確立等の前処理を不要とすることができる。すなわち、例えばTLS(Transport Layer Security)等のセキュリティ確保のための前処理としてのセッション確立に関する処理を不要とでき、通信におけるオーバヘッドを低減することができる。
【0013】
(2)本開示の一態様に係る車載装置は、セキュリティレベルに基づく提供データの生成処理は、メッセージ認証コードの付与処理、デジタル署名の付与処理、及び提供データに含まれるペイロードの暗号化処理の内の少なくとも1つ以上のセキュリティ処理を含み、前記制御部は、特定したセキュリティレベルに応じて、提供データを生成する際のセキュリティ処理を異ならせる。
【0014】
本態様にあたっては、セキュリティレベルに基づく提供データの生成処理は1つ以上のセキュリティ処理を含む。当該セキュリティ処理は、メッセージ認証コードの付与処理、デジタル署名の付与処理、及び提供データに含まれるペイロードの暗号化処理の内の少なくとも1つのセキュリティ処理を含む。このように提供データの生成処理にて行われるセキュリティ処理は、複数種類から成るため、提供データの生成処理に含まれるセキュリティ処理の種類又は組み合わせを異ならせることができ、セキュリティ処理のバリエーション化を図ることができる。
【0015】
(3)本開示の一態様に係る車載装置は、前記制御部は、セキュリティレベルの増加に応じて、提供データの生成処理に含まれるセキュリティ処理の種類数を増加する。
【0016】
本態様にあたっては、セキュリティレベルは、例えば3段階等の複数のレベル(低:レベル1<レベル2<レベル3:高)にて、定義されている。車載装置の制御部は、セキュリティレベルの増加に応じて、提供データの生成処理に含まれるセキュリティ処理の種類数を増加するため、高いセキュリティレベルが要求されサービスのメッセージ(センサ情報等)に対しては、不正な攻撃等に対する堅牢性を向上させることができる。又、比較的に低いセキュリティレベルが要求されサービスのメッセージ(センサ情報等)に対しては、施すセキュリティ処理の種類数を少なくすることにより、サービスの提供における処理負荷の低減等を図ることができる。
【0017】
(4)本開示の一態様に係る車載装置は、前記制御部は、アクセス可能な記憶領域に記憶されており、セキュリティレベルに関する設定情報を含むサービステーブルを参照することにより、セキュリティレベルを特定する。
【0018】
本態様にあたっては、車載装置の制御部は、アクセス可能な記憶領域に記憶されているサービステーブルを参照することにより、車載ECUから要求されたサービスのセキュリティレベルを特定する。例えば、車載装置の記憶部等、車載装置の制御部からアクセス可能な記憶領域に記憶されているサービステーブルには、当該車載装置が提供可能なサービスの名称(サービス名)とセキュリティレベルとがテーブル形式にて関連付けられている。車載装置の制御部は、このようにサービス名とセキュリティレベルとが関連付けられたサービステーブルを参照することにより、車載ECUからの要求データに応じて、要求されるサービスのセキュリティレベルを効率的に特定することができる。
【0019】
(5)本開示の一態様に係る車載装置は、前記制御部は、前記車両内における通信に影響を与える攻撃が実施された場合、前記サービステーブルに含まれているセキュリティレベルに関する設定情報を変更し、変更されたセキュリティレベルに基づき生成した提供データを、前記車載ECUへ再送する。
【0020】
本態様にあたっては、車載装置の制御部は、例えばIDS(Intrusion Detection System)の機能を発揮し、車両内における通信に影響を与える攻撃、すなわち車載ネットワークにおける不正な攻撃を検出する。又は、車載装置の制御部は、IDS等の不正検出機能を有する他のECU等から、不正検出を示すアラート等のメッセージを取得するものであってもよい。又は、要求データを送信した車載ECUから、セキュリティレベルの変更要求を含む要求データを受信した場合、車両に対し攻撃が実施された判断するものであってもよい。車載装置の制御部は、このように車載ネットワーク上の通信を介して車両に対し攻撃が実施されたと判断した場合、サービステーブルに含まれているセキュリティレベルに関する設定情報を変更、すなわち当該セキュリティレベルを上昇させるようにサービステーブルを修正する。車載装置の制御部は、セキュリティレベルを変更した旨を示すべく、変更されたセキュリティレベルに基づき提供データを生成し、生成した提供データを、車載ECUへ再送する。このように車載装置の制御部は、車両に対する攻撃に応じて、動的にサービステーブルにて定義されているセキュリティレベルを変更(上昇)させ、より高いセキュリティレベルに応じたセキュリティ処理を施した提供データを生成し、車載ECUに提供(送信)する。従って、車載ECUに対するサービスの提供(センサ情報等を含むメッセージの送信)を継続しつつ、車両に対する攻撃状態に応じた適切な通信セキュア環境を担保することができる。
【0021】
(6)本開示の一態様に係る車載装置は、前記制御部は、取得した要求データの正当性を判定し、正当性の判定結果が肯定的である場合、提供データを出力し、正当性の判定結果が否定的である場合、提供データを出力しない。
【0022】
本態様にあたっては、車載ECUから取得した要求データには、例えば、要求データの送信元である車載ECUを示すデジタル署名等、当該要求データの送信元正当性を担保する情報が含まれている。車載装置の制御部は、要求データに含まれるデジタル署名等に基づき、当該要求データの正当性を判定し、判定結果が肯定的(正当)である場合、提供データを車載ECUへ出力し、判定結果が否定的(不正)である場合、提供データを車載ECUへ出力しない。このようにサービスに関する要求及び提供に関する通信において、サービスの提供の起因となる要求データに対しても、セキュリティ的な観点からの判定処理を行い、判定結果が否定的である場合は提供データの出力を行わないため、例えば不正な車載ECU等へサービスが提供されることを効果的に抑制することができる。
【0023】
(7)本開示の一態様に係る車載装置は、前記制御部は、正当性の判定結果が肯定的である場合、セッション鍵を生成し、前記セッション鍵を含めた提供データを前記車載ECUへ出力する。
【0024】
本態様にあたっては、車載装置の制御部は、車載ECUから取得した要求データに対する正当性の判定結果が肯定的である場合、例えば発生させた乱数を用いた共通鍵から成るセッション鍵を生成する。車載装置の制御部は、生成したセッション鍵を含めた、又は付与した提供データを車載ECUへ出力し、以降、サービスの提供(サービスに対応するセンサ情報等の送信)において、当該セッション鍵にて暗号化したメッセージ、すなわち暗号化したセンサ情報等をペイロードに格納したメッセージを車載ECUへ出力する。車載ECUは、車載装置から取得した提供データに含まれるセッション鍵を用いて、以降、車載装置から送信されるサービスのメッセージ(暗号化されたセンサ情報等)を復号することにより、当該サービスの提供を受けることができる。このようにサービスに関する要求及び提供に関する通信の実行都度、生成したセッション鍵を用いて暗号化することにより、当該サービスの提供のための送信されるメッセージに対する堅牢性を担保することができる。
【0025】
(8)本開示の一態様に係る車載装置は、前記車載ECUからの要求データは、前記車載ECUが保持する秘密鍵に対応した公開鍵を含み、前記制御部は、前記車載ECUの公開鍵を用いて暗号化した提供データを、前記車載ECUへ出力する。
【0026】
本態様にあたっては、車載ECUからの要求データは、車載ECUが保持する秘密鍵に対応した公開鍵を含む。この場合、車載ECUからの要求データには、当該車載ECU自身を証明する公開鍵証明書が含まれており、公開鍵は、当該公開鍵証明書に含まれる(公開鍵証明書内に存在する)ものであってもよい。車載装置の制御部は、車載ECUからの要求データに含まれる公開鍵を用いて提供データのペイロードを暗号化し、当該暗号化した提供データを車載ECUへ出力する。このように要求データに応答する提供データに対しても、暗号化を行うものであり、当該暗号化は、車載ECUからの公開鍵による非対称鍵を用いるため、提供データに対する堅牢性を担保することができる。
【0027】
(9)本開示の一態様に係る車載装置は、前記車載ECUとの通信のプロコトルは、SOME/IP(Scalable service-Oriented MiddlewarE over IP)であり、要求データは、SOME/IPにおけるFind Serviceに相当し、提供データは、SOME/IPにおけるOffer Serviceに相当する。
【0028】
本態様にあたっては、車載装置と車載ECUとにおけるサービスに関する要求及び提供に関する通信のプロコトルは、SOME/IP(Scalable service-Oriented MiddlewarE over IP)である。この際、車載ECUが送信する要求データは、SOME/IPにおける”Find Service”に相当し、すなわち車載ECUは、SOME/IP-SD(Service Discovery)におけるクライアントに相当する。車載装置が送信する提供データは、SOME/IPにおける”Offer Service”に相当し、すなわち車載装置は、SOME/IP-SD(Service Discovery)におけるサーバに相当する。このように車載装置と車載ECUとがSOME/IPの通信プロコトルによる通信を行うにあたり、車載装置及び車載ECUにより送受信される”Find Service”及び”Offer Service”に対し、メッセージ単位でのセキュリティ処理を施すことが可能となり、SOME/IPを用いた通信における堅牢性を担保することができる。
【0029】
(10)本開示の一態様に係る車載装置は、前記車載ECUと車載装置とは単一の装置として構成され、前記車載ECUと車載装置との間における通信は、車載装置におけるアプリケーション間の通信に相当する。
【0030】
本態様にあたっては、車載ECUと車載装置とは単一の装置として構成され、車載ECUと車載装置との間における通信、すなわちサービスに関する要求及び提供に関する通信は、車載装置におけるアプリケーション間の通信(プロセス間通信)として実行される。このように車載ネットワークを介して、異なる通信ノード間における通信のみならず、単一の装置である車載装置に対しても、サービスに関する要求及び提供に関する通信における堅牢性を担保することができる。すなわち、単一の装置として構成される車載装置が複数のアプリケーションを実行する際、これらアプリケーション間にてサービスに関する要求及び提供に関するプロセス間通信が行われる場合であっても、通信における堅牢性を担保することができる。又は、車載装置に例えばHypervisor(ハイパーバイザー)等の仮想化システムが適用され、当該車載装置が、仮想化システムによって生成された複数の仮想環境(仮想マシン)として動作する場合、これら複数の仮想マシンそれぞれが実行するアプリケーション間でのサービスの要求及び提供に関する通信における堅牢性を担保することができる。
【0031】
(11)本開示の一態様に係る情報処理方法は、車両に搭載される車載ECUと通信可能に接続されるコンピュータに、前記車載ECUからのサービスの要求に関する要求データを取得し、取得した要求データに基づき、前記車載ECUに提供するサービス及び、サービスを提供する際のセキュリティレベルを特定し、特定したセキュリティレベルに基づき、前記車載ECUにサービスを提供するための提供データを生成し、生成した提供データを前記車載ECUへ出力する処理を実行させる。
【0032】
本態様にあたっては、コンピュータを、車載ECUから、サービスの要求に関する要求データが送信された際、当該要求データに対し適切なセキュリティ処理を施した提供データを出力することができる車載装置として機能させる情報処理方法を提供することができる。
【0033】
(12)本開示の一態様に係る車載システムは、車両に搭載される車載ECUと、前記車載ECUと通信可能に接続される車載装置とを含む車載システムであって、前記車載ECUは、サービスの要求に関する要求データを生成し、生成した要求データを前記車載装置へ出力し、前記車載装置は、前記車載ECUから要求データを取得し、取得した要求データに基づき、前記車載ECUに提供するサービス及び、サービスを提供する際のセキュリティレベルを特定し、特定したセキュリティレベルに基づき、前記車載ECUにサービスを提供するための提供データを生成し、生成した提供データを前記車載ECUへ出力する。
【0034】
本態様にあたっては、車載ECUから、サービスの要求に関する要求データが送信された際、当該要求データに対し適切なセキュリティ処理を施した提供データを出力することができる車載装置を含む車載システム提供することができる。
【0035】
[本開示の実施形態の詳細]
本発明をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載装置2を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【0036】
(実施形態1)
以下、実施の形態について図面に基づいて説明する。図1は、実施形態1に係る車載装置2を含む車載システムの構成を例示する模式図である。図2は、車載装置2の物理構成を例示するブロック図である。車載システムSは、車両Cに搭載された車載装置2を主たる装置として構成され、当該車載装置2は、車載ネットワークを介して1つ以上の車載ECU6と通信可能に接続される。更に、車載装置2は、車外通信装置1を介して、インターネット等の車外ネットワークに接続される外部サーバ又はスマートホン等の携帯端末等と通信可能に接続されるものであってもよい。
【0037】
車載装置2は、例えば、SOME/IPサーバとして機能し、車載ECU6はSOME/IPクライアントとして機能する。詳細は後述するが、車載装置2と車載ECU6とは、SOME/IP通信を用いて、車載装置2からのサービスの提供に伴うメッセージ(要求データ:Find Service、提供データ:Offer Service)の送受信を行う。なお、車載装置2と車載ECU6との通信プロトコルは、SOME/IPに限定されず、サービスの要求(Find Service等と同様の要求データ)及び提供(Offer Service等と同様の提供データ)に伴うメッセージの送受信を行う他の通信プロトコルに対して用いるものであってもよい。
【0038】
SOME/IPサーバとして機能する車載装置2は、当該車載装置2に接続される各種センサ等、及び複数の車載ECU6それぞれに接続される各種センサ等が検出したセンサ情報を取得(アップリンク)し、記憶部4に記憶されているデータベース(DB)に保存することにより、サービスのインスタンスである各種センサ情報等を一元管理するものであってもよい。車載装置2は、更に車外通信装置1を介して、外部サーバ又は携帯端末(スマートホン)等から、サービスのインスタンスとなる各種データを取得し、データベース(DB)に保存するものであってもよい。車載装置2は、このようにデータベース(DB)にて一元管理した各種センサ情報等を、サービスを要求する車載ECU6に対し、SOME/IP通信を用いて提供(ダウンリンク)するものであってもよい。
【0039】
車両Cには、車外通信装置1、車載装置2、及び種々の車載機器(アクチュエータ、センサ)を制御するための複数の車載ECU6が、搭載されている。車外通信装置1と車載装置2とは、例えばシリアルケーブル等のハーネスにより通信可能に接続されている。車載装置2及び車載ECU6は、Ethernet(イーサネット:登録商標)等の通信プロトコルに対応した車載ネットワーク7によって通信可能に接続されており、車載装置2は、IPパケットの中継機能を有するイーサスイッチ(レイヤー2スイッチ又はレイヤー3スイッチ)として機能するものであってもよい。
【0040】
車外通信装置1は、車外通信部(図示せず)及び、車載装置2と通信するための入出力I/F(図示せず)(インターフェイス)を含む。車外通信部は、LTE、4G、5G、WiFi等の移動体通信のプロトコルを用いて無線通信をするための通信装置であり、車外通信部に接続されたアンテナ11を介して外部サーバ又は携帯端末等とデータの送受信を行う。車外通信装置1と外部サーバとの通信は、例えば公衆回線網又はインターネット等の外部ネットワークを介して行われる。
【0041】
車載装置2は、SOME/IPサーバとして機能し、例えばヴィークルコンピュータ等の中央制御装置にて構成され、車両Cの全体的な制御を行う統合ECUである。車載装置2は、更にイーサスイッチ(レイヤー2スイッチ又はレイヤー3スイッチ)等の中継装置(GW)として機能するものであってもよい。車載装置2は、通信に関する中継に加え、二次電池等の電源装置から出力された電力を分配及び中継し、自装置(車載装置2)に接続されるアクチュエータ等の車載機器に電力を供給する電力分配装置としても機能するPLB(Power Lan Box)であってもよい。又は、車載装置2は、車両C全体をコントロールするボディECUの一機能部として構成されるものであってもよい。更に、車載装置2は、IDS(Intrusion Detection System)等の侵入検知装置として機能するものであってもよい。
【0042】
車載装置2は、制御部3、記憶部4及び車内通信部5を含む。制御部3は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等により構成してあり、記憶部4に予め記憶された制御プログラムP(プログラム製品)及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。
【0043】
記憶部4は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラムP及び処理時に参照するデータが予め記憶してある。記憶部4に記憶された制御プログラムP(プログラム製品)は、車載装置2が読み取り可能な記録媒体Mから読み出された制御プログラムP(プログラム製品)を記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムPをダウンロードし、記憶部4に記憶させたものであってもよい。
【0044】
記憶部4には、当該車載装置2に接続される各種センサ等、及び複数の車載ECU6それぞれに接続される各種センサ等が検出したセンサ情報を保存及び管理するデータベース(DB)が記憶されているものであってもよい。当該データベース(DB)に保存されている各種センサ情報等は、SOME/IP通信を用いて、SOME/IPクライアントである車載ECU6それぞれに対し、サービスとして提供される。
【0045】
車内通信部5は、例えばイーサネット(TCP/IP)等の通信プロトコルを用いた入出力インターフェイス(イーサネットPHY部)である。イーサネットPHY部等にて構成される車内通信部5は、車載装置2と車載ECU6とが通信するための物理層に対応した通信部として機能する。
【0046】
車内通信部5は、複数個設けられており、車内通信部5夫々に、車載ネットワーク7を構成する通信線71(イーサネットケーブル)夫々が接続されている。このように車内通信部5を複数個設けることにより、車載ネットワーク7を複数個のセグメントに分け、各セグメントに車載ECU6を、当該車載ECU6の機能に応じて接続するものであってもよい。車載装置2の制御部3は、車内通信部5を介して車載ネットワーク7に接続されている車載ECU6と相互に通信する。
【0047】
車載ECU6は、SOME/IPクライアントとして機能し、車載装置2と同様に制御部、記憶部及び車内通信部を含む。車載ECU6には、例えば、LiDAR(Light Detection and Ranging)、人感センサ、CMOSカメラ、赤外線センサ等の各種センサが接続されており、これら各種センサ等から取得した各種センサ情報を車載装置2に送信するものであってもよい。車載ECU6は、更に各種スイッチ、カーエアコン、ランプ装置、エンジン又は駆動モータ等のパワートレイン装置等のアクチュエータが接続され、これらアクチュエータを制御する個別ECUとして構成されるものであってもよい。車載ECU6は、更にIDS(Intrusion Detection System)等の侵入検知装置として機能するものであってもよい。
【0048】
図3は、サービステーブルを例示した説明図である。図4は、セキュリティ処理テーブルを例示した説明図である。車載装置2の記憶部4等、車載装置2の制御部3がアクセス可能な記憶領域には、サービスに対するセキュリティレベルに関する設定情報(サービステーブル)、及び当該セキュリティレベルに応じたセキュリティ処理に関する情報(セキュリティ処理テーブル)が、例えばテーブル形式にて記憶されている。
【0049】
サービステーブルは、管理項目(フィールド)として、例えば、クライアントIP、アプリケーション名、サービス名、及びセキュリティレベルを含む。クライアントIPの管理項目には、例えばSOME/IPのクライアントである車載ECU6のIPアドレスが格納される。又は、当該IPアドレスに替えてMAC(Media Access Control address)アドレスが格納されるものであってもよい。車載装置2の制御部3は、要求データを取得した場合、当該要求データの送信アドレスと、サービステーブルのクライアントIPの管理項目にて予め定義されているIPアドレスとを対比することにより、要求データの正当性を判定するものであってもよい。
【0050】
アプリケーション名の管理項目には、例えばSOME/IPのクライアントである車載ECU6が実行するアプリケーションの名称であり、当該車載ECU6が要求するサービスに対応するアプリケーションの名称が格納される。車載装置2の制御部3は、要求データを取得した場合、当該要求データに含まれるアプリケーション名と、サービステーブルのアプリケーション名の管理項目にて予め定義されているアプリケーション名とを対比することにより、要求データの正当性を判定するものであってもよい。
【0051】
サービス名の管理項目には、同一レコードにて格納されるアプリケーション名に対応するサービスの名称(サービスのインスタンスの名称)が格納される。サービス名の管理項目にて定義(格納)されているサービスが、SOME/IP-SD(Service Discovery)に基づき要求及び提供の対象となるサービスに相当する。
【0052】
セキュリティレベルの管理項目には、同一レコードにて格納されるサービス名に対応するセキュリティレベルの値が格納される。本実施形態において、当該セキュリティレベルの値は、数字にて示され、値が大きくなるほど、セキュリティレベルが高くなるように設定(低:レベル1<レベル2<レベル3・・・<レベルN:高)されている。当該セキュリティレベルは、一例として3レベルにて設定されるものであってもよく、更に細分化して4レベル以上(4段階以上)にてセキュリティレベルが設定されるものであってもよい。
【0053】
SOME/IPクライアントとして機能する車載ECU6から送信される要求データ(Find Service)には、当該車載ECU6が実行するアプリケーション名(AppA)が含まれている。SOME/IPサーバとして機能する車載装置2は、車載ECU6から取得した要求データ(Find Service)に含まれるアプリケーション名(AppA)に基づき、サービステーブルを参照することにより、対応するサービス名を特定することができる。又は、車載ECU6から要求データ(Find Service)にサービス名(service)が含まれており、車載装置2は、当該要求データに応じて、提供するサービスを特定するものであってもよい。
【0054】
セキュリティ処理テーブルは、管理項目(フィールド)として、例えば、セキュリティレベル及びセキュリティ処理を含む。セキュリティレベルの管理項目には、サービステーブルのセキュリティレベルの管理項目にて定義されているセキュリティレベルの値が格納される。従って、セキュリティ処理テーブルとサービステーブルとは、当該セキュリティレベルの管理項目により正規化される。
【0055】
セキュリティ処理の管理項目には、同一レコードにて格納されるセキュリティレベルの値に対応するセキュリティ処理の処理内容が格納される。例えば、セキュリティレベルが3段階(低:レベル1<レベル2<レベル3:高)に設定されている際、セキュリティレベルが最も低いレベル1である場合、セキュリティ処理は、SOME/IPに関するメッセージに対し、メッセージ認証コード(MAC:Message Authentication Code)を付与する。又は、セキュリティ処理は、SOME/IPに関するメッセージに対し、更にカウンタを付与するものであってもよい。MACを付与することにより、メッセージが途中で改竄やすり替えに合っていないか(メッセージの完全性)を検証することができる。これにより、メッセージの改竄又は再送攻撃に対応することができる。
【0056】
セキュリティレベルが中間に位置するレベル2である場合、セキュリティ処理は、SOME/IPに関するメッセージに対し、MACの付与に替えて(MACの代わりに)、車載装置2自身を示すデジタル署名を付与する。又は、セキュリティ処理は、SOME/IPに関するメッセージに対し、MACの付与に加えて、更に車載装置2自身を示すデジタル署名を付与するものであってもよい。又は、セキュリティ処理は、SOME/IPに関するメッセージに対し、更にロースベースを付与するものであってもよい。デジタル署名を付与することにより、SOME/IPに関し車載装置2が送信したメッセージ(情報)が署名した車載装置2(本人)のものであること(正当な発信元から発信さらたメッセージ)と、及び改竄されていないことを証明することができる。これにより、メッセージの送信元になりすます攻撃、ロールベースに関する攻撃に対応することができる。
【0057】
セキュリティレベルが最も高いレベル3である場合、セキュリティ処理は、MACに替えて(MACの代わりに)付与したデジタル署名に加え、更にSOME/IPに関するメッセージにおけるペイロード(ペイロードに格納されるセンサ情報等)を暗号化する処理を含む。又は、セキュリティ処理は、MAC及びデジタル署名の付与に加え、更にSOME/IPに関するメッセージにおけるペイロード(ペイロードに格納されるセンサ情報等)を暗号化する処理を含むものであってもよい。当該ペイロードの暗号化処理を行うにあたり、車載装置2の制御部3は、セッション鍵を生成し、生成したセッション鍵を提供データ(OfferService)に含めて、車載ECU6へ出力するものであってもよい。これにより、メッセージの盗聴攻撃に対応することができる。このような高いセキュリティレベルに設定するサービスのインスタンスは、例えば、GPS情報、インフォテイメントシステムの著作権情報、スマートホン等の携帯端末の情報等であり、これら情報の保護を効率的に図ることができる。
【0058】
図5は、保護のあるSOME/IPメッセージを例示した説明図である。SOME/IP(Scalable service-Oriented MiddlewarE over IP)は、車載ネットワーク7にて送受信されるメッセージの制御に用いられるサービス指向のミドルウェアであり、OSI(Open System Interconnection)においては、レイヤー4(TCP/UDP等)よりも上位レイヤーのプロトコルとして定義される。SOME/IPメッセージは、送信元アドレス及び送信先アドレス等を含むヘッダ領域、センサ情報等の提供されるサービスに対応するデータを格納するペイロード領域を含む。更に、当該SOME/IPメッセージは、本実施形態によるセキュリティレベルに応じて保護されることにより、カウント及びロールベース(デジタル署名)等から成る付帯情報、及びメッセージ認証コード(MAC:Message Authentication Code)を含む。これら付帯情報及びMACは、ペイロード領域に格納されるものであってもよい。
【0059】
上述のとおり、SOME/IPメッセージに対する保護は、セキュリティレベルに応じて施され、例えば、レベル1ではMAC(及びカウント)の付与、レベル2では更にロールベース(デジタル署名)の付与、レベル3では更にペイロードの暗号化(セッション鍵による暗号化)が行われる。このようにSOME/IPメッセージに対し、当該メッセージに対応するサービスのセキュリティレベルに応じて、施されるセキュリティ処理の種類を増加することにより、SOME/IPメッセージに対する保護態様のバリエーション化を図ることができる。
【0060】
図6は、車載装置2(サーバ)と車載ECU6(クライアント)との処理シーケンスを例示した説明図である。本実施形態においては、車載装置2はSOME/IP-SD(Service Discovery)のサーバとして機能し、車載ECU6はクライアントとして機能する。
【0061】
車載装置2及び車載ECU6それぞれは、公開鍵証明書それぞれを保持(記憶)しており、車載装置2と車載ECU6とは、相互認証を実現するものであってもよい。その上で、車載装置2及び車載ECU6は、SOME/IPプロコトルによる要求データ(Find Service)及び提供データ(Offer Service)におけるペイロードにセキュリティレベルに応じた情報を付与することにより、認証プロコトルを実現するものであってもよい。車載装置2及び車載ECU6は、要求データ(Find Service)及び提供データ(Offer Service)の送受信後に行われるサブスクライブ要求データ等(Subscribe Eventgroup、Subscribe Event ACK)においても、セキュリティレベルに応じたセキュリティ処理を施すものであってもよい。
【0062】
車載ECU6は、要求データ(Find Service)を車載装置2に出力(送信)する(S01)。車載ECU6は、提供を要求するサービスに対応する(サービスを利用する)アプリケーション(AppA)を含めた要求データを生成する。車載ECU6は、更に、当該要求データに車載ECU6自身の公開鍵証明書(CertA)、車載ECU6自身の秘密鍵によるデジタル署名(SigA)を含めて、要求データを生成するものであってもよい。車載ECU6は、このように生成した要求データを車載装置2に出力(送信)する。
【0063】
車載装置2は、車載ECU6から取得した要求データに基づき、サービス及びセキュリティレベルを特定する(S02)。車載装置2は、車載ECU6から要求データを取得し、当該要求データに含まれるデジタル署名(SigA)の検証を行うことにより、要求データの正当性、すなわち要求データの送信元が真の車載ECU6であるかの判定を行う。当該判定の結果が否定的な結果である場合、車載装置2は、当該要求データへの対応を行わず、すなわち提供データを送信しないものであってもよい。また、事前共有鍵を用いてAEAD(認証付き暗号:Authenticated Encryption with Associated Data)により当該要求データ等を暗号化し、MACを付与して転送してもよい。AEADを用いることにより、暗号化と認証を同時に実行するものとなり、要求データ等に対する秘匿性、完全性、及び認証性を同時に担保することができる。
【0064】
当該判定の結果が肯定的な結果である場合、すなわち要求データの送信元が真の車載ECU6であると判定した場合、車載装置2は、要求データに含まれるアプリケーション(AppA)の名称、又は要求データに含まれる公開鍵証明書(CertA)の内容から、サービスを受信するアプリケーションが要求するサービスの名称と、当該サービスを提供する際のセキュリティレベルを特定する。車載装置2は、当該サービス及びセキュリティレベルを特定するにあたり、記憶部4に記憶されているサービステーブルを参照するものであってもよい。車載装置2は、この際、サービステーブルにて定義されている各種内容と、車載ECU6からの要求データに基づく内容とが適合しない等の問題がある場合、当該要求データへの対応を行わず、すなわち提供データを送信しないものであってもよい。
【0065】
車載装置2は、セッション鍵を生成する(S03)。車載装置2は、これら判定結果等に基づき、車載ECU6からの要求データが正当であると判断(判定)した場合、任意又は既知の手段を用いてセッション鍵(共通鍵:enckey)を生成する。
【0066】
車載装置2は、生成したセッション鍵を含めた提供データ(Offer Service)を車載ECU6に出力(送信)する(S04)。車載装置2は、生成したセッション鍵(enckey)、車載装置2自身の公開鍵証明書(PubkeyB)、及び特定したセキュリティレベル(SecLevel)を含めた(ペイロードに格納)した提供データ(Offer Service)を生成し、車載ECU6に出力(送信)する。この際、車載装置2は、当該生成した提供データのペイロードを、車載ECU6からの要求データに含まれる公開鍵証明書(CertA)内に存在する公開鍵で暗号化し、当該暗号化した提供データを車載ECU6に出力(送信)するものであってもよい。この手順により、対応する秘密鍵の所有者であるもの(通信ノード)のみが復号できることが保証され、セッション鍵の機密性が確保される。
【0067】
車載ECU6は、提供データを取得し、提供データに含まれるセッション鍵(enckey)を解凍(復号)する(S05)。車載ECU6は、車載装置2からの暗号化された提供データを取得し、車載ECU6自身の公開鍵証明書(CertA)に対応する秘密鍵を用いて、当該暗号化された提供データのペイロードを復号する。車載ECU6は、提供データに含まれる車載装置2自身の公開鍵証明書(PubkeyB)の正当性を検証し、正当であると判定して場合、当該提供データに含まれるセッション鍵(enckey)及びセキュリティレベル(SecLevel)を取得する。車載ECU6は、これらセッション鍵(enckey)及びセキュリティレベル(SecLevel)を取得することにより、提供されるサービスのセキュリティレベルを認識すると共に、以降、セッション鍵にてペイロードが暗号化されたメッセージを復号することができる。また、このセッション鍵により事前共有鍵を更新しても良いものとする。
【0068】
車載装置2と車載ECU6とによるSOME/IP通信において、要求データ(Find Service)及び提供データ(Offer Service)の送受信が行われた後、サブスクライブ要求データ等(Subscribe Eventgroup、Subscribe Event ACK)においても、セキュリティレベルに応じたセキュリティ処理が施されるものであってもよい。車載装置2は、ACKを車載ECU6に送信した後、提供するサービスのデータ(センサ情報等)を含むメッセージ(Event/Field Notification)に対し、セキュリティレベルに応じたセキュリティ処理を施した上で車載ECU6に送信する。上述のとおり、車載装置2からのメッセージ(Event/Field Notification)は、例えば、セッション鍵を用いたペイロードの暗号化、MAC及びデジタル署名の付与等、セキュリティレベルに応じた各種のセキュリティ処理が施される。
【0069】
本実施形態にて説明するセキュリティ処理の形態は、セキュリティレベルが比較的に高い(例えば、レベル3)場合を想定するものであり、これに限定されない。セキュリティレベルが比較的に低い(例えば、レベル1、2)場合、車載装置2はセッション鍵(enckey)を生成することなく、MAC及びデジタル署名の付与等のセキュリティ処理を施した提供データを生成及び出力するものであってもよい。この場合、提供するサービスに応じて車載装置2が送信するメッセージ(Event/Field Notification)についても、ペイロードは暗号化することなく平文とし、MAC及びデジタル署名の付与等のセキュリティ処理のみが、行われるものであってもよい。
【0070】
図7は、車載装置2の制御部3の処理を例示するフローチャートである。車載装置2の制御部3は、例えば車両Cが起動状態又は停止状態(IGスイッチ又はパワースイッチが、オン又はオフ)において、定常的に以下の処理を行う。
【0071】
車載装置2の制御部3は、車載ECU6からのサービスの要求に関する要求データを取得する(S101)。SOME/IPのクライアントとして機能する車載ECU6は、要求データ(Find Service)をSOME/IPのサーバとして機能する車載装置2に送信する。車載ECU6は、当該要求データに、サービスに対応するアプリケーション名(AppA)、車載ECU6自身の公開鍵証明書(CertA)、及び車載ECU6自身の秘密鍵によるデジタル署名(SigA)を含めるものであってもよい。
【0072】
車載装置2の制御部3は、要求データが正当であるか否かを判定する。(S102)。車載装置2の制御部3は、例えば要求データに含まれるデジタル署名(SigA)を検証することにより、要求データの正当性の判定、すなわち要求データが正当であるか否かを判定する。
【0073】
要求データが正当でない判定した場合(S102:NO)、すなわち要求データが不正であると判定した場合、車載装置2の制御部3は、不正な要求データを取得した旨を出力する(S1021)。車載装置2の制御部3は、要求データが正当でない、すなわち要求データが不正であると判定した場合、不正な要求データを取得した旨を、当該不正な要求データの受信時点と関連付けて記憶部4に記憶する。車載装置2の制御部3は、不正な要求データの受信時点と関連付けて記憶部4に記憶するにあたり、記憶部4に記憶されている異常履歴データベースに当該不正な要求データに関する事項を保存するものであってもよい。車載装置2の制御部3は、不正な要求データを取得した旨を、HMI(Human Machine Interface)装置への表示出力、車外通信装置1を介して外部サーバへ送信するものであってもよい。
【0074】
要求データが正当であると判定した場合(S102:YES)、車載装置2の制御部3は、車載ECU6に提供するサービス及びセキュリティレベルを特定する(S103)。車載装置2の制御部3は、要求データに含まれるアプリケーションの名称に基づき、サービステーブルを参照することにより、当該アプリケーションに対応するサービス及び、当該サービスを提供する際のセキュリティレベルを特定する。
【0075】
車載装置2の制御部3は、特定したセキュリティレベルに基づき提供データを生成する(S104)。例えば、セキュリティレベルが3段階(低:レベル1<レベル2<レベル3:高)に設定されている場合、車載装置2の制御部3は、特定したセキュリティレベルに応じたセキュリティ処理を施した提供データを生成する。
【0076】
車載装置2の制御部3は、例えば、記憶部4に記憶されているセキュリティ処理テーブルを参照することにより、セキュリティレベルに応じたセキュリティ処理を決定するものであってもよい。例えば、セキュリティレベルが最も低いレベル1である場合、車載装置2の制御部3は、車載ECU6と共有している秘密鍵を用いて生成したMACを付与した提供データを生成する。セキュリティレベルが中間に位置するレベル2である場合、車載装置2の制御部3は、MACの付与に加え、更に車載装置2自身を示すデジタル署名を付与した提供データを生成する。
【0077】
セキュリティレベルが最も高いレベル3である場合、車載装置2の制御部3は、MAC及びデジタル署名の付与に加え、更に車載ECU6からの公開鍵にて暗号化した提供データを生成する。この際、車載装置2の制御部3は、更にセッション鍵を含めて提供データを生成するものであってもよい。当該セッション鍵は、サービスを提供するにあたり送信するデータを暗号化する際、車載装置2及び車載ECU6にて共通鍵として用いられるものであってもよい。すなわち、サービスを提供するにあたり送信されるメッセージのペイロードは、車載装置2の制御部3が当該セッション鍵を用いることにより暗号化されるものであってもよい。この場合、車載ECU6は、車載装置2からのサービスの提供に応じて送信されるメッセージのペイロードを、セッション鍵を用いて復号する。
【0078】
このように車載装置2の制御部3は、セキュリティレベルに応じることにより、例えば、生成したセッション鍵(enckey)、車載装置2自身の公開鍵証明書(PubkeyB)、及び特定したセキュリティレベル(SecLevel)を含めた(ペイロードに格納)した提供データ(Offer Service)を生成する。車載装置2の制御部3は、更に、車載ECU6からの要求データに含まれる公開鍵(公開鍵証明書内に存在)を用いて、提供データ(Offer Service)のペイロードを暗号化するものであってもよい。
【0079】
このように車載装置2の制御部3は、セキュリティレベルの増加に応じて、すなわちセキュリティレベルが高くなるにつれ、提供データを生成する際に用いるセキュリティ処理の種類を増加するものであってもよい。又は、車載装置2の制御部3は、セキュリティレベルの増加に応じて、例えばMACを生成する際に用いる乱数の桁数を増加する等、MAC等のセキュリティオブジェクトに対する解読難易性を向上させるものであってもよい。
【0080】
車載装置2の制御部3は、セキュリティレベルに応じて生成した提供データを車載ECU6へ出力する(S105)。車載装置2の制御部3は、セキュリティレベルに応じて生成及び暗号化した提供データ(Offer Service)を車載ECU6へ出力する。
【0081】
車載装置2の制御部3は、セキュリティレベルに応じて、サービスの提供を開始する(S106)。車載装置2の制御部3は、セキュリティレベルに応じて、サービスの提供に伴うメッセージ(Event/Field Notification)を、セッション鍵を用いて暗号化して車載ECU6に送信する。又は、セキュリティレベルが比較的に低い場合、ペイロードを暗号化することなく平文とし、MAC及びデジタル署名の付与等がされたメッセージ(Event/Field Notification)を、車載ECU6に送信するものであってもよい。車載装置2の制御部3は、S106又はS1021の処理の実行後、本フローにおける一連の処理を終了する。又は、車載装置2の制御部3は、S106又はS1021の処理の実行後、再度S101からの処理を実行すべく、ループ処理を行うものであってもよい。
【0082】
車載装置2の制御部3は、複数のサービスの提供を行う場合、当該サービス毎にプロセスを生成し、これら複数のサービスの提供に関する処理を複数のプロセスにより並列処理するものであってもよい。車載装置2の制御部3は、提供するサービスの個数に応じて、複数のプロセスにより並列処理を行う場合、これらサービスのセキュリティレベルに応じて、当該サービスを実行するプロセスへ割り当てるリソース量を変更するものであってもよい。すなわち、セキュリティレベルの高いサービスを提供するためのプロセスに対しては、セキュリティレベルの低いサービスを提供するためのプロセスよりも、CPU割当時間、メモリ占有量、又はスレッド数等のハードウェアリソースを多く設定する(割り当てる)ものであってもよい。これにより、セキュリティレベルが高いサービスに関する処理を比較的に優先して実行することができる。
【0083】
(実施形態2)
図8は、実施形態2(セキュリティレベルの動的変更)に係る車載装置2(サーバ)と車載ECU6(クライアント)との処理シーケンスを例示した説明図である。実施形態2の車載装置2及び車載ECU6は、実施形態1にて提供するサービスに応じたメッセージ(Event/Field Notification)が車載装置2から車載ECU6に対し、周期的、定期的又は定常的に送信された後、当該サービスのセキュリティレベルが変更されるイベント等に関する処理(シーケンス)を示すものである。
【0084】
車載ECU6は、セキュリティレベルの変更に関する要求データ(Find Service)を車載装置2に出力(送信)する(S21)。車載ECU6は、例えば、自身に対する攻撃又は車載ネットワーク7における攻撃を検出した場合、セキュリティレベルの変更に関する要求データを生成し、車載装置2に出力(送信)する。車載ECU6は、実施形態1の要求データと同様にアプリケーション(AppA)、車載ECU6自身の公開鍵証明書(CertA)、及び車載ECU6自身の秘密鍵によるデジタル署名(SigA)を含め、更にセキュリティレベルの変更(増加)の要求(変更後のセキュリティレベルの値:rSecLevel)を含めて要求データを生成する。車載ECU6は、変更後のセキュリティレベルの値(rSecLevel)を含む要求データを車載装置2に出力(送信)する。
【0085】
車載装置2は、車載ネットワーク7に対し攻撃を受けたと判定する(S22)。車載装置2は、セキュリティレベルの変更に関する要求データを車載ECU6から取得した場合、車載ネットワーク7に対し攻撃を受けたと判定する。又は、車載装置2は、セキュリティレベルの変更に関する要求データを車載ECU6から取得しない場合であっても、例えばIDS等の機能を発揮し、車両C内における通信に影響を与える攻撃、すなわち車載ネットワーク7における不正な攻撃を検出した場合、攻撃を受けたと判定するものであってもよい。
【0086】
車載装置2は、セキュリティレベルの変更を行う(S23)。車載装置2は、車載ECU6から取得した要求データに含まれるアプリケーション名(AppA)及びセキュリティレベルの値(rSecLevel)に基づき、サービステーブルにて定義されているサービスのセキュリティレベルを変更する。当該セキュリティレベルの変更により、対象となるサービスのセキュリティレベルは、攻撃が検出されるより前のセキュリティレベルよりも高いセキュリティレベルに設定される。
【0087】
車載装置2は、セッション鍵を生成する(S24)。車載装置2は、実施形態1の処理S03と同様にセッション鍵を再度、生成(再生成)する。このようにセッション鍵を再生成することにより、攻撃検出の前後において、車載装置2と車載ECU6との間におけるSOME/IP通信にて用いられるセッション鍵を異ならせることができる。
【0088】
車載装置2は、セキュリティレベルの変更に関する提供データ(Offer Service)を車載ECU6に出力(送信)する(S25)。車載装置2は、実施形態1のS04と同様に、再生成したセッション鍵(enckey)、車載装置2自身の公開鍵証明書(PubkeyB)、及び変更後のセキュリティレベル(SecLevel)を含めた(ペイロードに格納した)提供データ(Offer Service)を生成し、車載ECU6に出力(送信)する。
【0089】
車載ECU6は、再送された提供データを取得し、提供データに含まれるセッション鍵(enckey)を解凍(復号)する(S26)。車載ECU6は、実施形態1と同様に取得した提供データを、秘密鍵を用いて復号することにより、提供データに含まれるセッション鍵(enckey)を解凍(復号)する。当該セッション鍵(enckey)は、攻撃検出をトリガーとして再生成されたセッション鍵である。車載ECU6は、提供データに含まれるセキュリティレベル(SecLevel)を参照することにより、変更されたセキュリティレベルを認識することができる。車載ECU6は、変更されたセキュリティレベルを認識すると共に、車載装置2から再送されたセッション鍵を用いて、攻撃を検出した後においても、車載装置2からのサービスの提供を継続して受けることができ、当該サービスの提供に伴い送信されたメッセージ(Event/Field Notification)を用いて、アプリケーションを実行することができる。
【0090】
図9は、車載装置2の制御部3の処理を例示するフローチャートである。車載装置2の制御部3は、例えば車両Cが起動状態又は停止状態(IGスイッチ又はパワースイッチが、オン又はオフ)において、定常的に以下の処理を行う。
【0091】
車載装置2の制御部3は、実施形態1の処理S101からS106と同様にS201からS206までの処理を行う。車載装置2の制御部3は、これら処理を行うことにより、実施形態1と同様にセキュリティレベルに応じて、サービスの提供を開始している状態であり、すなわちサービスの提供に伴うメッセージ(サービスに対応するセンサ情報等をペイロードに格納したメッセージ)を、クライアントである車載ECU6に継続的に送信(出力)している。
【0092】
車載装置2の制御部3は、攻撃を検出したか否かを判定する(S207)。車載装置2の制御部3は、例えば、車載ECU6からの攻撃を受けている旨の通知を取得した場合、又は車載装置2が有するIDSの機能により車両C内における通信に影響を与える攻撃、すなわち車載ネットワーク7における不正な攻撃を検出した場合、攻撃を検出したと判定する。車載ECU6からの攻撃を受けている旨の通知は、例えば、当該車載ECU6から、現時点にて提供を受けているサービスのセキュリティレベルの変更を要求するための要求データ(Find Service)によるものであってもよい。この際、車載装置2の制御部3は、車載ECU6からセキュリティレベルの変更を要求するための要求データ(Find Service)を取得した場合、車載ネットワーク7における不正な攻撃を検出したと判定するものであってもよい。攻撃を検出していないと判定した場合(S207:NO)、車載装置2の制御部3は、再度S207の処理を実行すべくループ処理を行う。
【0093】
攻撃を検出したと判定した場合(S207:YES)、車載装置2の制御部3は、変更したセキュリティレベルに基づき提供データを生成する(S208)。攻撃を検出したと判定した場合、車載装置2の制御部3は、車載ECU6からの要求データ(Find Service)に基づき、現時点に提供しているサービスのセキュリティレベルを変更し、変更したセキュリティレベルに基づき提供データを生成する。
【0094】
車載装置2の制御部3は、例えば、例えば、記憶部4に記憶されているサービステーブルを参照し、当該サービスの現時点におけるセキュリティレベルを特定する。その上で、車載装置2の制御部3は、車載ECU6からの要求データに含まれる変更後のセキュリティレベルの値(rSecLevel)に基づき、サービステーブルを変更する。これにより、対象となるサービス(現時点に提供しているサービス)が現時点のセキュリティレベルよりも高いセキュリティレベルとなるように、サービステーブルを設定することができる。例えば、対象となるサービスの現時点のセキュリティレベルが1の場合、車載装置2の制御部3は、当該セキュリティレベルを2に変更する。対象となるサービスの現時点のセキュリティレベルが2の場合、車載装置2の制御部3は、当該セキュリティレベルを3に変更する。対象となるサービスの現時点のセキュリティレベルが最上位の値(例えば3等)である場合、車載装置2の制御部3は、当該最上位の値であるセキュリティレベルを維持するものであってもよい。
【0095】
車載装置2の制御部3は、検出した攻撃の影響度(深刻度)に応じて、セキュリティレベルの増加度合を異ならせるものであってもよい。車載装置2が例えばIDS(Intrusion Detection System)の機能を有する場合、当該IDSの機能を用いて検出した攻撃の影響度を導出し、例えば、車両Cにおける制御等に対する影響度が高い場合はセキュリティレベルを2段階増加させ、影響度が低い場合はセキュリティレベルを1段階増加させるものであってもよい。セキュリティレベルを増加させることにより、SOME/IP通信におけるオーバヘッドも増加するものとなるが、攻撃による車両Cの制御等に対する影響度を鑑みて、セキュリティレベルを増加(変更)することにより、当該オーバヘッドが過度に発生することを抑制することができる。
【0096】
車載装置2の制御部3は、このように車載ネットワーク7における不正な攻撃を検出した場合、実施形態1のS1021と同様に、攻撃を検出した旨を当該攻撃の検出時点と関連付けて、記憶部4に記憶(異常履歴データベースに保存)するものであってもよい。車載装置2の制御部3は、更に攻撃を検出した旨を、HMI(Human Machine Interface)装置への表示出力、車外通信装置1を介して外部サーバへ送信するものであってもよい。
【0097】
車載装置2の制御部3は、提供データを車載ECU6へ再送する(S209)。車載装置2の制御部3は、セキュリティレベルを変更した旨を示す提供データを生成(再生成)し、当該再生成した提供データを車載ECU6へ再送する。車載装置2の制御部3は、提供データに、例えば、変更したセキュリティレベルの値、自身を示す公開鍵証明書、及びセッション鍵を含めるものであってもよい。この際、車載装置2の制御部3は、セッション鍵についても再度、生成(再生成)し、再生成したセッション鍵を含めて、セキュリティレベルを変更した旨を示す提供データを車載ECU6へ再送するものであってもよい。
【0098】
セッション鍵は、当該提供データの再送以降において、サービスの提供に伴いサーバである車載装置2が、クライアントである車載ECU6にメッセージを送信する際、メッセージのペイロードに含まれるデータ(センサ情報等のサービスのインスタンス)を暗号化及び復号化する際に用いられる。従って、攻撃の検出に応じて、すなわち攻撃検出の前後において、車載装置2と車載ECU6との間におけるSOME/IP通信にて用いられるセッション鍵を異ならせることにより、当該サービスの提供のための送信されるメッセージに対する堅牢性を担保することができる。
【0099】
車載装置2の制御部3は、変更したセキュリティレベルにてサービスの提供を継続する(S210)。車載装置2の制御部3は、変更したセキュリティレベル、すなわち対象となるサービスのセキュリティレベルが変更されたサービステーブルを参照し、当該変更されたセキュリティレベルに応じて、サービスの提供に伴うメッセージを生成し、当該メッセージを車載ECU6に送信する。これにより、車載ネットワーク7に対する攻撃が行われた場合であっても、車載装置2の制御部3は、当該攻撃に対する堅牢性を担保しつつ、車載ECU6に対するサービスの提供を継続することができる。
【0100】
(実施形態3)
図10は、実施形態3(車載装置2内のプロセス間通信)に係る車載装置2の制御部3に含まれる機能部を例示する機能ブロック図である。本実施形態においては、実施形態1における車載装置2(SOME/IPサーバ)と車載ECU6(SOME/IPクライアント)とは、単一の装置として構成され、すなわち車載装置2がSOME/IPサーバ及びSOME/IPクライアントの双方の機能を有し、双方の処理を担う。
【0101】
車載装置2の制御部3は、記憶部4に記憶されている制御プログラムを実行することにより、アプリケーション実行部301、SOME/IPマスタ部302、及びプラットフォーム部303として機能する。すなわち、記憶部4に記憶されている制御プログラムは、サービスを利用するアプリケーションプログラム、SOME/IPプロコトルに基づく通信プログラム、通信ソケットモジュール及びソフトウェアライブラリ等にて構成されるプラットフォーム部303を含む。
【0102】
アプリケーション実行部301は、サービスを利用するアプリケーションプログラムを実行することにより、サービスのインスタンスであるセンサ情報又はカメラ画像等を用いて、各種の制御処理又は情報処理を行う。SOME/IPマスタ部302は、SOME/IP通信に関する制御全般を行う。更にSOME/IPマスタ部302は、車載装置2に接続される各種センサ等、及び車載ネットワーク7に接続される複数の車載ECU6それぞれに接続される各種センサ等が検出したセンサ情報を取得し、記憶部4に記憶されているデータベース(DB)に保存するものであってもよい。SOME/IPマスタ部302は、当該データベースに一元的に保存された各種センサ情報等をサービスのインスタンスとして、SOME/IP通信を用いてアプリケーション実行部301に提供するものであってもよい。プラットフォーム部303は、アプリケーション実行部301とSOME/IPマスタ部302とによるプロセス間通信、すなわちSOME/IP通信のレイヤーよりも下位レイヤーにおけるプロコトルでの制御全般を行う。
【0103】
アプリケーション実行部301は、SOME/IPクライアントに相当し、SOME/IPマスタ部302は、SOME/IPサーバに相当する。これらアプリケーション実行部301とSOME/IPマスタ部302との通信は、例えばループバックアドレスを用いることにより、車載装置2内におけるIP通信として実行されるものとなる。従って、SOME/IPクライアントとして機能するアプリケーション実行部301と、SOME/IPサーバとして機能するSOME/IPマスタ部302とは、実施形態1及び2の車載装置2と車載ECU6と同様に、セキュリティレベルに応じたセキュリティ処理が施されたSOME/IP通信、すなわち保護されたSOME/IPメッセージの送受信を行うことができる。このように実施形態1及び2にて示されるSOME/IP通信に関するセキュリティ処理を、単一の装置(通信ノード)である車載装置2に対しても適用することができ、当該セキュリティ処理の可用性を拡大することができる。
【0104】
単一の装置(通信ノード)である車載装置2に対しSOME/IP通信に関するセキュリティ処理を適用する形態は、ハードウェアリソースがOS(operating system)等によりダイレクトに制御される実環境である場合に限定されない。本実施形態によるSOME/IP通信に関するセキュリティ処理は、例えばHypervisor(ハイパーバイザー)等の仮想化システムにて生成された複数の仮想環境(仮想マシン)間でのSOME/IP通信に適用されるものであってもよい。すなわち、これら複数の仮想マシンのいずれかの仮想マシンがSOME/IPサーバとして機能し、他の仮想マシンがSOME/IPクライアントとして機能するものであってもよい。このように仮想環境(仮想マシン)に対しても、実施形態1及び2にて示されるSOME/IP通信に関するセキュリティ処理を適用することにより、当該セキュリティ処理の可用性を拡大することができる。
【0105】
今回開示された実施形態は全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【0106】
特許請求の範囲に記載されている複数の請求項に関して、引用形式に関わらず、相互に組み合わせることが可能である。特許請求の範囲では、複数の請求項に従属する多項従属請求項を記載してもよい。多項従属請求項に従属する多項従属請求項を記載してもよい。多項従属請求項に従属する多項従属請求項が記載されていない場合であっても、これは、多項従属請求項に従属する多項従属請求項の記載を制限するものではない。
【符号の説明】
【0107】
C 車両
S 車載システム
1 車外通信装置
11 アンテナ
2 車載装置(SOME/IPサーバ)
3 制御部
301 アプリケーション実行部
302 SOME/IPマスタ部
303 プラットフォーム部
4 記憶部
5 車内通信部
M 記録媒体
P 制御プログラム(プログラム製品)
6 車載ECU(SOME/IPクライアント)
7 車載ネットワーク
71 通信線
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10