(57)【要約】      （修正有）【課題】車載ネットワークを構成するＥＣＵの共有鍵等を更新する更新メッセージを送信する外部ツールに付与された機密情報が漏洩した場合に全てのＥＣＵが不正に書き換えられるリスクを低減して、外部ツールにＥＣＵ内の共有鍵等を更新させる更新管理方法を提供する。【解決手段】車載ネットワークシステム１０において、マスタＥＣＵは、外部ツール３０から外部ツールの権限を示す更新権限情報である公開鍵証明書を受信して検証する。外部ツールから、ネットワークに接続される１つ又は複数のＥＣＵの共有鍵等の更新を指示する更新メッセージが送信された場合、更新権限情報の検証が成功し、かつ、更新メッセージの送信が外部ツールの権限範囲内であることを更新権限情報が示すときには、ＥＣＵで共有鍵等の更新を行うように更新メッセージをネットワークに転送する。それ以外のときにはＥＣＵによる更新を抑止するために更新メッセージの転送を行わない。【選択図】図１
2020048203.tif 000002
【特許請求の範囲】
【請求項１】
車載ネットワークシステムにおける更新管理装置で実行される更新管理方法であって、
前記車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続され、
前記更新管理装置は、
前記複数の電子ユニットのうちの１つの電子ユニットであり、
前記更新管理装置と前記更新管理装置以外の電子制御ユニットとの間の暗号処理用の第１のセッション鍵の伝達に用いる共有鍵と、前記共有鍵の有効期限とを保持し、
前記更新管理方法は、
前記外部ツールの権限を示す更新権限情報の検証を行い、
前記更新権限情報の検証が成功し、かつ、前記外部ツールから、前記共有鍵の更新を指示する更新メッセージを受信した場合に、前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であるか否かの判定を行い、
（ｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すと判定したときには、前記更新メッセージを前記ネットワークに転送し、
（ｉｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないと判定したときには、前記転送を抑止し、
現在時刻が前記有効期限内であるかどうかを判断し、前記有効期限の一定時間前、又は、前記有効期限が過ぎている場合に、前記共有鍵の更新を促すアラートメッセージを送信する
更新管理方法。
【請求項２】
前記複数の電子制御ユニットは、Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＣＡＮ）プロトコルに従って通信し、
前記外部ツールは、ＣＡＮプロトコルに従って前記更新メッセージを送信する
請求項１記載の更新管理方法。
【請求項３】
前記外部ツールからの前記更新メッセージの送信が前記外部ツールの権限範囲内であるか否かの判定は、前記更新メッセージのメッセージＩＤに基づいて、判定し、前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すと判定したときには、前記メッセージＩＤを有する前記更新メッセージを受信するように定められている前記電子制御ユニットに対して前記更新を実行する
請求項２記載の更新管理方法。
【請求項４】
前記更新権限情報は、前記電子制御ユニットの分類用の複数の機能種別のうち１つ又は複数の機能種別を特定し、特定した当該１つ又は複数の機能種別のいずれかに分類される前記電子制御ユニットに前記更新を行わせる権限を前記外部ツールが有することを表し、
前記更新メッセージのメッセージＩＤに基づいて、前記メッセージＩＤを受信するように定められている前記電子制御ユニットの機能種別が、前記更新権限情報により特定される１つ又は複数の機能種別のいずれかと一致するか否かを判別することにより、前記判定を行う
請求項３記載の更新管理方法。
【請求項５】
前記更新権限情報は、１つ又は複数の前記機能種別を特定するための複数のレベルのうち１つのレベルを示し、相対的に高いレベルは、相対的に低いレベルが特定する１つ又は複数の機能種別を包含した複数の機能種別を特定する
請求項４記載の更新管理方法。
【請求項６】
前記車載ネットワークシステムを搭載する車両の状態が所定状態でないときには、前記更新メッセージの前記ネットワークへの転送を抑止する
請求項１記載の更新管理方法。
【請求項７】
前記車載ネットワークシステムにおける各電子制御ユニットに電力を供給する電池が所定電池残量を有さないときには、前記更新メッセージの前記ネットワークへの転送を抑止する
請求項１記載の更新管理方法。
【請求項８】
（ｉ）前記車載ネットワークシステムを、複数の車載ネットワークシステムの中で識別する識別情報と、（ｉｉ）前記更新メッセージの処理結果を示す結果情報とを前記外部ツールに送信する
請求項１記載の更新管理方法。
【請求項９】
前記更新メッセージが指示する、前記電子制御ユニットが保持するデータの前記更新は、前記電子制御ユニットのファームウェアの更新である
請求項１記載の更新管理方法。
【請求項１０】
前記アラートメッセージは、ディスプレイを制御する電子制御ユニットに送信する、
請求項１記載の更新管理方法。
【請求項１１】
車載ネットワークシステムにおける更新管理装置であって、
前記車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続され、
前記更新管理装置は、
前記複数の電子ユニットのうちの１つの電子ユニットであり、
前記更新管理装置と前記更新管理装置以外の電子制御ユニットとの間の暗号処理用の第１のセッション鍵の伝達に用いられる共有鍵と、前記共有鍵の有効期限とを保持する保持部と、
前記外部ツールから前記外部ツールの権限を示す更新権限情報、及び、前記共有鍵の更新を指示する更新メッセージを、受信する受信部と、
前記受信部により受信された前記更新権限情報を検証する検証部と、
前記検証部による検証が成功し、前記受信部により前記更新メッセージが受信された場合において、（ｉ）前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すときには、前記更新メッセージを前記ネットワークに転送し、（ｉｉ）当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないときには、前記転送を抑止する転送部と、
現在時刻が前記有効期限内であるかどうかを判断する判断部と、
前記有効期限の一定時間前、又は、有効期限が過ぎている場合に、前記共有鍵の更新を促すアラートメッセージを送信する送信部とを備える
更新管理装置。
【請求項１２】
車載ネットワークシステムにおける更新管理装置を制御するための制御プログラムであって、
前記車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続され、
前記更新管理装置は、
前記複数の電子制御ユニットのうちの１つの前記電子制御ユニットであり、
前記更新管理装置と前記更新管理装置以外の電子制御ユニットとの間の暗号処理用の第１のセッション鍵の伝達に用いる共有鍵と、前記共有鍵の有効期限とを保持し、
前記制御プログラムは、
前記外部ツールの権限を示す更新権限情報の検証を行い、
前記更新権限情報の検証が成功し、かつ、前記外部ツールから、前記共有鍵の更新を指示する更新メッセージを受信した場合に、前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であるか否かの判定を行い、
（ｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すと判定したときには、前記更新メッセージを前記ネットワークに転送し、
（ｉｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないと判定したときには、前記転送を抑止し、
現在時刻が前記有効期限内であるかどうかを判断し、前記有効期限の一定時間前、又は、前記有効期限が過ぎている場合に、前記共有鍵の更新を促すアラートメッセージを送信する
制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載ネットワークシステムにおける電子制御ユニットの保持するデータを更新するための更新管理方法、更新管理装置等に関する。
【背景技術】
【０００２】
近年、自動車の中のシステムには、電子制御ユニット（ＥＣＵ：Electronic Control Unit）と呼ばれる装置が多数配置されている。これらのＥＣＵをつなぐネットワークを車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でもＩＳＯ１１８９８−１で規定されている、ＣＡＮ（Controller Area Network）という規格が主流である。ＣＡＮでは、通信路は２本のバスで構成され、バスに接続されているＥＣＵはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。ＣＡＮでは送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にＩＤ（メッセージＩＤと称する）を付けて送信し（つまりバスに信号を送出し）、各受信ノードは予め定められたメッセージＩＤのみを受信する（つまりバスから信号を読み取る）。また、ＣＳＭＡ／ＣＡ（Carrier Sense Multiple Access/Collision Avoidance）方式を採用しており、複数ノードの同時送信時にはメッセージＩＤによる調停が行われ、メッセージＩＤの値が小さいフレームが優先的に送信される。また、車載ネットワークには、ＯＢＤ２（On-Board Diagnostics２）と呼ばれる、外部ツール（例えば故障診断ツール等の外部装置）と通信するインタフェースであるポート（以下、「診断ポート」と称する）が存在し、ＥＣＵの診断に利用される。最近では診断だけでなく、診断ポートを利用してＥＣＵのファームウェアの書き換えも可能になっている。また、診断ポートと接続可能な外部ツールが安価に発売されており、専門業者でなく一般ユーザが使える外部ツールが増えている。
【０００３】
そのため、不正な外部ツールが診断ポートに接続されるリスクは高まっている。不正な外部ツールにより車載ネットワークにおけるＥＣＵのファームウェアを不正に書き換えることで、車体を不正にコントロールすることが可能になる。このように診断ポート経由で不正なファームウェアの書き換えを防止する方法として、外部ツールが送信するファームウェア更新要求メッセージに識別コードが埋め込まれており、識別コードが登録コードと一致した場合にファームウェアの更新を許可する方法が存在する（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１４１９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の方法には、ファームウェアを更新する外部ツールに付与されている識別コードが漏洩した場合に、全てのＥＣＵのファームウェアを不正に書き換えられてしまうリスクが存在する。
【０００６】
本発明は、外部ツールに付与された機密情報が漏洩した場合に全てのＥＣＵのファームウェアが不正に書き換えられるリスクを低減して、外部ツールにファームウェア等のＥＣＵ内のデータを更新させるための更新管理方法を提供する。また、本発明は、リスクを低減して外部ツールにＥＣＵ内のデータを更新させるための更新管理装置、及び、この更新管理装置のための制御プログラムを提供する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明の一態様に係る更新管理方法は、車載ネットワークシステムにおける更新管理装置で実行される更新管理方法であって、前記車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続され、前記更新管理装置は、前記複数の電子ユニットのうちの１つの電子ユニットであり、前記更新管理装置と前記更新管理装置以外の電子制御ユニットとの間の暗号処理用の第１のセッション鍵の伝達に用いる共有鍵と、前記共有鍵の有効期限とを保持し、前記更新管理方法は、前記外部ツールの権限を示す更新権限情報の検証を行い、前記更新権限情報の検証が成功し、かつ、前記外部ツールから、前記共有鍵の更新を指示する更新メッセージを受信した場合に、前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であるか否かの判定を行い、（ｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すと判定したときには、前記更新メッセージを前記ネットワークに転送し、（ｉｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないと判定したときには、前記転送を抑止し、現在時刻が前記有効期限内であるかどうかを判断し、前記有効期限の一定時間前、又は、前記有効期限が過ぎている場合に、前記共有鍵の更新を促すアラートメッセージを送信する。
【０００８】
また、上記課題を解決するために本発明の一態様に係る更新管理装置は、車載ネットワークシステムにおける更新管理装置であって、前記車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続され、前記更新管理装置は、前記複数の電子ユニットのうちの１つの電子ユニットであり、前記更新管理装置と前記更新管理装置以外の電子制御ユニットとの間の暗号処理用の第１のセッション鍵の伝達に用いられる共有鍵と、前記共有鍵の有効期限とを保持する保持部と、前記外部ツールから前記外部ツールの権限を示す更新権限情報、及び、前記共有鍵の更新を指示する更新メッセージを、受信する受信部と、前記受信部により受信された前記更新権限情報を検証する検証部と、前記検証部による検証が成功し、前記受信部により前記更新メッセージが受信された場合において、（ｉ）前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すときには、前記更新メッセージを前記ネットワークに転送し、（ｉｉ）当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないときには、前記転送を抑止する転送部と、現在時刻が前記有効期限内であるかどうかを判断する判断部と、前記有効期限の一定時間前、又は、有効期限が過ぎている場合に、前記共有鍵の更新を促すアラートメッセージを送信する送信部とを備える。
【０００９】
また、上記課題を解決するために本発明の一態様に係る制御プログラムは、車載ネットワークシステムにおける更新管理装置を制御するための制御プログラムであって、前記車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続され、前記更新管理装置は、前記複数の電子制御ユニットのうちの１つの前記電子制御ユニットであり、前記更新管理装置と前記更新管理装置以外の電子制御ユニットとの間の暗号処理用の第１のセッション鍵の伝達に用いる共有鍵と、前記共有鍵の有効期限とを保持し、前記制御プログラムは、前記外部ツールの権限を示す更新権限情報の検証を行い、前記更新権限情報の検証が成功し、かつ、前記外部ツールから、前記共有鍵の更新を指示する更新メッセージを受信した場合に、前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であるか否かの判定を行い、（ｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すと判定したときには、前記更新メッセージを前記ネットワークに転送し、（ｉｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないと判定したときには、前記転送を抑止し、現在時刻が前記有効期限内であるかどうかを判断し、前記有効期限の一定時間前、又は、前記有効期限が過ぎている場合に、前記共有鍵の更新を促すアラートメッセージを送信する。
【００１０】
上記課題を解決するために本発明の一態様に係る更新管理方法は、バスを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続される車載ネットワークシステムにおいて用いられる更新管理方法であって、前記外部ツールの権限を示す更新権限情報を受信して検証し、前記外部ツールから、１つ又は複数の前記電子制御ユニットが保持するデータの更新を指示する更新メッセージが送信された場合において、前記検証が成功し、かつ、当該更新メッセージの送信が当該外部ツールの権限範囲内であることを前記更新権限情報が示すときには、前記更新メッセージに対応して前記１つ又は複数の電子制御ユニットにより前記更新を実行し、前記検証が失敗したとき、又は、当該更新メッセージの送信が当該外部ツールの権限範囲内であることを前記更新権限情報が示さないときには、前記１つ又は複数の電子制御ユニットによる前記更新メッセージに対応した前記更新を抑止する更新管理方法である。
【００１１】
また、上記課題を解決するために本発明の一態様に係る更新管理装置は、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて診断ポートと繋がった１つの電子制御ユニットである更新管理装置であって、前記診断ポートに接続された外部ツールから前記診断ポートを介して送信される、当該外部ツールの権限を示す更新権限情報、及び、１つ又は複数の前記電子制御ユニットが保持するデータの更新を指示する更新メッセージを、受信する受信部と、前記受信部により受信された前記更新権限情報を検証する検証部と、前記受信部により前記更新メッセージが受信された場合において、前記検証部による前記検証が成功し、かつ、当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すときには、前記更新メッセージを前記バスに転送し、前記検証部による前記検証が失敗したとき、又は、当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないときには、前記転送を抑止する転送部とを備える更新管理装置である。
【００１２】
また、上記課題を解決するために本発明の一態様に係る制御プログラムは、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて診断ポートと繋がった１つの電子制御ユニットとしての、プロセッサを有する更新管理装置に、所定の更新管理処理を実行させるための制御プログラムであって、前記更新管理処理は、前記診断ポートに接続された外部ツールから前記診断ポートを介して送信される、当該外部ツールの権限を示す更新権限情報を受信する更新権限情報受信ステップと、前記更新権限情報受信ステップにおいて受信された前記更新権限情報を検証する検証ステップと、前記外部ツールから前記診断ポートを介して送信される、１つ又は複数の前記電子制御ユニットが保持するデータの更新を指示する更新メッセージを受信する更新メッセージ受信ステップと、前記更新メッセージ受信ステップで前記更新メッセージが受信された場合において、前記検証ステップでの前記検証が成功し、かつ、当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すときには、前記更新メッセージを前記バスに転送し、前記検証ステップでの前記検証が失敗したとき、又は、当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないときには、前記転送を抑止する転送制御ステップとを含む制御プログラムである。
【発明の効果】
【００１３】
本発明によれば、外部ツールに付与された機密情報が漏洩した場合に全てのＥＣＵのファームウェアが不正に書き換えられるリスクを低減して、外部ツールにＥＣＵ内のデータを更新させ得る。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係る車載ネットワークシステムの全体構成図である。
【図２】ＣＡＮプロトコルで規定されるデータフレームのフォーマットを示す図である。
【図３】ＥＣＵ及び外部ツールに関わる鍵発行システムを示す図である。
【図４】公開鍵証明書の構成を示す図である。
【図５】公開鍵証明書に記載された更新権限情報のレベルとＥＣＵの機能種別との対応関係を示す図である。
【図６】ＥＣＵが保持する共有鍵を示す図である。
【図７】実施の形態１に係るマスタＥＣＵ（更新管理装置）の構成図である。
【図８】実施の形態１に係るレベル情報を示す図である。
【図９】ＥＣＵの構成図である。
【図１０】受信ＩＤリストを示す図である。
【図１１】実施の形態１に係る共有鍵更新シーケンスを示す図である（図１２に続く）。
【図１２】実施の形態１に係る共有鍵更新シーケンスを示す図である（図１１から続く）。
【図１３】実施の形態２に係る車載ネットワークシステムの全体構成図である。
【図１４】実施の形態２に係るレベル情報を示す図である。
【図１５】実施の形態２に係る共有鍵更新シーケンスを示す図である（図１６に続く）。
【図１６】実施の形態２に係る共有鍵更新シーケンスを示す図である（図１５から続く）。
【図１７】実施の形態３に係るマスタＥＣＵ（更新管理装置）の構成図である。
【図１８】実施の形態３に係る共有鍵と有効期限等とを対応付けた情報を示す図である。
【図１９】実施の形態３に係る共有鍵の更新を促す画面の一例を示す図である。
【図２０】実施の形態４に係る共有鍵更新シーケンスを示す図である（図２１に続く）。
【図２１】実施の形態４に係る共有鍵更新シーケンスを示す図である（図２０から続く）。
【図２２】実施の形態４に係るサーバが保持するログ情報を示す図である。
【発明を実施するための形態】
【００１５】
本発明の一態様に係る更新管理方法は、車載ネットワークシステムにおける更新管理装置で実行される更新管理方法であって、前記車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続され、前記更新管理装置は、前記複数の電子ユニットのうちの１つの電子ユニットであり、前記更新管理装置と前記更新管理装置以外の電子制御ユニットとの間の暗号処理用の第１のセッション鍵の伝達に用いる共有鍵と、前記共有鍵の有効期限とを保持し、前記更新管理方法は、前記外部ツールの権限を示す更新権限情報の検証を行い、前記更新権限情報の検証が成功し、かつ、前記外部ツールから、前記共有鍵の更新を指示する更新メッセージを受信した場合に、前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であるか否かの判定を行い、（ｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すと判定したときには、前記更新メッセージを前記ネットワークに転送し、（ｉｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないと判定したときには、前記転送を抑止し、現在時刻が前記有効期限内であるかどうかを判断し、前記有効期限の一定時間前、又は、前記有効期限が過ぎている場合に、前記共有鍵の更新を促すアラートメッセージを送信する。
【００１６】
また、前記複数の電子制御ユニットは、Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＣＡＮ）プロトコルに従って通信し、前記外部ツールは、ＣＡＮプロトコルに従って前記更新メッセージを送信することとしても良い。
【００１７】
また、前記外部ツールからの前記更新メッセージの送信が前記外部ツールの権限範囲内であるか否かの判定は、前記更新メッセージのメッセージＩＤに基づいて、判定し、前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すと判定したときには、前記メッセージＩＤを有する前記更新メッセージを受信するように定められている前記電子制御ユニットに対して前記更新を実行することとしても良い。
【００１８】
また、前記更新権限情報は、前記電子制御ユニットの分類用の複数の機能種別のうち１つ又は複数の機能種別を特定し、特定した当該１つ又は複数の機能種別のいずれかに分類される前記電子制御ユニットに前記更新を行わせる権限を前記外部ツールが有することを表し、前記更新メッセージのメッセージＩＤに基づいて、前記メッセージＩＤを受信するように定められている前記電子制御ユニットの機能種別が、前記更新権限情報により特定される１つ又は複数の機能種別のいずれかと一致するか否かを判別することにより、前記判定を行うこととしても良い。
【００１９】
また、前記更新権限情報は、１つ又は複数の前記機能種別を特定するための複数のレベルのうち１つのレベルを示し、相対的に高いレベルは、相対的に低いレベルが特定する１つ又は複数の機能種別を包含した複数の機能種別を特定することとしても良い。
【００２０】
また、前記車載ネットワークシステムを搭載する車両の状態が所定状態でないときには、前記更新メッセージの前記ネットワークへの転送を抑止することとしても良い。
【００２１】
また、前記車載ネットワークシステムにおける各電子制御ユニットに電力を供給する電池が所定電池残量を有さないときには、前記更新メッセージの前記ネットワークへの転送を抑止することとしても良い。
【００２２】
また、（ｉ）前記車載ネットワークシステムを、複数の車載ネットワークシステムの中で識別する識別情報と、（ｉｉ）前記更新メッセージの処理結果を示す結果情報とを前記外部ツールに送信することとしても良い。
【００２３】
また、前記更新メッセージが指示する、前記電子制御ユニットが保持するデータの前記更新は、前記電子制御ユニットのファームウェアの更新であることとしても良い。
【００２４】
また、前記アラートメッセージは、ディスプレイを制御する電子制御ユニットに送信することとしても良い。
【００２５】
また、上記課題を解決するために本発明の一態様に係る更新管理装置は、車載ネットワークシステムにおける更新管理装置であって、前記車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続され、前記更新管理装置は、前記複数の電子ユニットのうちの１つの電子ユニットであり、前記更新管理装置と前記更新管理装置以外の電子制御ユニットとの間の暗号処理用の第１のセッション鍵の伝達に用いられる共有鍵と、前記共有鍵の有効期限とを保持する保持部と、前記外部ツールから前記外部ツールの権限を示す更新権限情報、及び、前記共有鍵の更新を指示する更新メッセージを、受信する受信部と、前記受信部により受信された前記更新権限情報を検証する検証部と、前記検証部による検証が成功し、前記受信部により前記更新メッセージが受信された場合において、（ｉ）前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すときには、前記更新メッセージを前記ネットワークに転送し、（ｉｉ）当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないときには、前記転送を抑止する転送部と、現在時刻が前記有効期限内であるかどうかを判断する判断部と、前記有効期限の一定時間前、又は、有効期限が過ぎている場合に、前記共有鍵の更新を促すアラートメッセージを送信する送信部とを備える。
【００２６】
また、上記課題を解決するために本発明の一態様に係る制御プログラムは、車載ネットワークシステムにおける更新管理装置を制御するための制御プログラムであって、前記車載ネットワークシステムは、ネットワークを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続され、前記更新管理装置は、前記複数の電子制御ユニットのうちの１つの前記電子制御ユニットであり、前記更新管理装置と前記更新管理装置以外の電子制御ユニットとの間の暗号処理用の第１のセッション鍵の伝達に用いる共有鍵と、前記共有鍵の有効期限とを保持し、前記制御プログラムは、前記外部ツールの権限を示す更新権限情報の検証を行い、前記更新権限情報の検証が成功し、かつ、前記外部ツールから、前記共有鍵の更新を指示する更新メッセージを受信した場合に、前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であるか否かの判定を行い、（ｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すと判定したときには、前記更新メッセージを前記ネットワークに転送し、（ｉｉ）前記外部ツールによる前記更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないと判定したときには、前記転送を抑止し、現在時刻が前記有効期限内であるかどうかを判断し、前記有効期限の一定時間前、又は、前記有効期限が過ぎている場合に、前記共有鍵の更新を促すアラートメッセージを送信する。
【００２７】
本発明の一態様に係る更新管理方法は、バスを介して通信を行う複数の電子制御ユニットを備え、外部ツールが接続される車載ネットワークシステムにおいて用いられる更新管理方法であって、前記外部ツールの権限を示す更新権限情報を受信して検証し、前記外部ツールから、１つ又は複数の前記電子制御ユニットが保持するデータの更新を指示する更新メッセージが送信された場合において、前記検証が成功し、かつ、当該更新メッセージの送信が当該外部ツールの権限範囲内であることを前記更新権限情報が示すときには、前記更新メッセージに対応して前記１つ又は複数の電子制御ユニットにより前記更新を実行し、前記検証が失敗したとき、又は、当該更新メッセージの送信が当該外部ツールの権限範囲内であることを前記更新権限情報が示さないときには、前記１つ又は複数の電子制御ユニットによる前記更新メッセージに対応した前記更新を抑止する更新管理方法である。これにより、検証可能な更新権限情報により外部ツール毎に、ＥＣＵ内のデータの更新を指示する更新メッセージを送信する権限を異なるように定め得る。そして、車載ネットワークシステムにおける一部のＥＣＵ内のデータの更新メッセージについて送信する権限を有している外部ツールだけがその一部のＥＣＵ内のデータを更新させ得る。また、その一部のＥＣＵ内のデータの更新メッセージについての送信の権限を有している外部ツールについて機密情報が漏洩しても、その一部のＥＣＵ以外のＥＣＵについては不正に書き換えられない。このため、車載ネットワークの全てのＥＣＵのファームウェア等が不正に書き換えられるリスクを低減して、外部ツールにＥＣＵ内のデータを更新させ得る。
【００２８】
また、前記複数の電子制御ユニットは、Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＣＡＮ）プロトコルに従って前記バスを介して通信を行い、前記外部ツールは、ＣＡＮプロトコルに従って前記更新メッセージを送信することとしても良い。これにより、ＣＡＮに従った車載ネットワークシステムにおいて適切に権限を有する外部ツールにＥＣＵ内のデータを更新させ得る。
【００２９】
また、前記外部ツールから前記更新メッセージが送信された場合において、当該更新メッセージのメッセージＩＤに基づいて、当該更新メッセージの送信が当該外部ツールの権限範囲内であることを前記更新権限情報が示すか否かを判定し、当該更新メッセージの送信が当該外部ツールの権限範囲内であることを前記更新権限情報が示すと判定したときには、前記メッセージＩＤを有する前記更新メッセージを受信するように定められている前記電子制御ユニットにより前記更新を実行することとしても良い。これにより、ＣＡＮのフレームのＩＤ（メッセージＩＤ）により更新メッセージでの更新指示の対象となるＥＣＵか否かの区別がなされる。このため、特定の１又は複数のＥＣＵに対しての更新の権限を、他の１又は複数のＥＣＵに対しての更新の権限と区別でき、例えば更新指示の対象となるＥＣＵに応じた権限を有する適切な外部ツールに限ってその更新を許可することが可能になる。
【００３０】
また、前記更新権限情報は、前記電子制御ユニットの分類用の複数の機能種別のうち１つ又は複数の機能種別を特定し、特定した当該１つ又は複数の機能種別のいずれかに分類される前記電子制御ユニットに前記更新を行わせる権限を前記外部ツールが有することを表し、前記外部ツールから前記更新メッセージが送信された場合において、当該更新メッセージのメッセージＩＤに基づいて、当該メッセージＩＤを受信するように定められている前記電子制御ユニットの機能種別が、前記更新権限情報により特定される１つ又は複数の機能種別のいずれかと一致するか否かを判別することにより、前記判定を行うこととしても良い。これにより、ＥＣＵを機能面で分類する機能種別毎に、更新の権限を区別して外部ツールに認定するような運用が可能となる。この認定は、例えば検証可能な更新権限情報の付与により行われる。
【００３１】
また、前記更新権限情報は、１つ又は複数の前記機能種別を特定するための複数のレベルのうち１つのレベルを示し、相対的に高いレベルは、相対的に低いレベルが特定する１つ又は複数の機能種別を包含した複数の機能種別を特定することとしても良い。これにより、外部ツール毎に更新の権限のレベルを異ならせることが可能となる。例えば、低いレベルの権限を有する外部ツールについての機密情報が漏洩してもそのレベルに対応して更新可能なＥＣＵの機能種別以外のＥＣＵ（つまり高いレベルの権限を有する外部ツールによって更新可能なＥＣＵ）については不正に書き換えられない。
【００３２】
また、１つの前記電子制御ユニットである更新管理装置が、当該更新管理装置と繋がった診断ポートに接続された前記外部ツールから前記更新権限情報を受信して前記検証を行い、前記外部ツールから前記更新メッセージが送信された場合に当該更新メッセージを受信し、当該受信した場合において、前記検証が成功し、かつ、当該更新メッセージの送信が当該外部ツールの権限範囲内であることを前記更新権限情報が示すときには、前記更新メッセージを前記バスに転送し、前記検証が失敗したとき、又は、当該更新メッセージの送信が当該外部ツールの権限範囲内であることを前記更新権限情報が示さないときには、前記転送を抑止することとしても良い。これにより、更新管理装置（マスタＥＣＵ）が更新メッセージを他のＥＣＵへ転送するか否かを制御するので、他のＥＣＵは外部ツールの権限に係る検査を省略し得る。
【００３３】
また、前記更新メッセージにセッション鍵を用いた所定暗号処理が施されていなければ当該更新メッセージに対応した前記電子制御ユニットによる前記更新を抑止し、前記更新管理装置は、前記更新権限情報の前記受信を、当該更新権限情報を記載した、前記外部ツールの公開鍵に係る公開鍵証明書の受信により行い、前記検証に成功した場合に、前記外部ツールが前記更新メッセージの送信に際して当該更新メッセージに対して所定暗号処理を施すために用いる前記セッション鍵を、前記外部ツールの公開鍵で暗号化して前記外部ツールに送信することとしても良い。これにより、外部ツールの更新の権限について公開鍵証明書を発行することで認定できる。また、公開鍵証明書における公開鍵を利用して外部ツールによる通信内容に係るセキュリティの確保を図ることが可能になる。
【００３４】
また、前記更新管理装置は、前記外部ツールから前記更新メッセージが送信された場合において、前記車載ネットワークシステムを搭載する車両の状態が所定状態でないときには、前記更新メッセージの前記バスへの転送を抑止することとしても良い。これにより、所定状態として例えば停車状態、エンジンを停止した状態等を定めておくと、例えば走行に関連するＥＣＵの負荷が低下しバストラフィックが比較的少なくなる停車状態等においてＥＣＵ内のデータを更新できるので、例えば更新に不具合が生じる可能性等を低減し得る。
【００３５】
また、前記更新管理装置は、前記外部ツールから前記更新メッセージが送信された場合において、前記車載ネットワークシステムにおける各電子制御ユニットに電力を供給する電池が所定電池残量を有さないときには、前記更新メッセージの前記バスへの転送を抑止することとしても良い。これにより、所定電池残量として例えば電池の残量が更新に足りる程度に十分な量を定めておくと、更新中の電池切れによる不具合を防ぐことが可能となる。
【００３６】
また、前記更新管理装置以外の電子制御ユニットと前記更新管理装置とは、通信内容に係る暗号処理用のセッション鍵の伝達に用いるために相互間で共有する共有鍵を保持し、前記更新メッセージが指示する、前記電子制御ユニットが保持するデータの前記更新は、前記共有鍵の更新であることとしても良い。これにより、外部ツールによりマスタＥＣＵとそれ以外のＥＣＵとの間で共有する共有鍵を更新できるようになる。
【００３７】
また、前記共有鍵の有効期限の一定期間前に前記共有鍵の更新を促す警告情報を出力することとしても良い。これにより、共有鍵の有効期限が切れる前に、鍵更新を促すことができ、共有鍵が有効期限を過ぎて利用し続けられるリスクを低減し得る。
【００３８】
また、前記更新管理装置は、前記車載ネットワークシステムを、複数の車載ネットワークシステムの中で識別する識別情報と前記更新メッセージの処理結果を示す結果情報とを前記外部ツールに送信することとしても良い。これにより、外部ツール側で車両毎（つまり車載ネットワークシステム毎）におけるＥＣＵ内のデータの更新結果を管理することが可能となる。
【００３９】
また、前記外部ツールは、前記結果情報と前記識別情報とをサーバに送信することとしても良い。これにより、サーバにおいて車両毎におけるＥＣＵ内のデータの更新結果を管理することが可能となる。
【００４０】
また、前記更新メッセージが指示する、前記電子制御ユニットが保持するデータの前記更新は、前記電子制御ユニットのファームウェアの更新であることとしても良い。これにより、ＥＣＵのファームウェアの更新についての権限を外部ツール毎に柔軟に設定できるようになる。
【００４１】
また、本発明の一態様に係る更新管理装置は、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて診断ポートと繋がった１つの電子制御ユニットである更新管理装置であって、前記診断ポートに接続された外部ツールから前記診断ポートを介して送信される、当該外部ツールの権限を示す更新権限情報、及び、１つ又は複数の前記電子制御ユニットが保持するデータの更新を指示する更新メッセージを、受信する受信部と、前記受信部により受信された前記更新権限情報を検証する検証部と、前記受信部により前記更新メッセージが受信された場合において、前記検証部による前記検証が成功し、かつ、当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すときには、前記更新メッセージを前記バスに転送し、前記検証部による前記検証が失敗したとき、又は、当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないときには、前記転送を抑止する転送部とを備える更新管理装置である。これにより、外部ツールに付与された機密情報が漏洩した場合に全てのＥＣＵ内のファームウェア等が不正に書き換えられるリスクを低減して、外部ツールにＥＣＵ内のデータを更新させることが可能になる。
【００４２】
また、本発明の一態様に係る制御プログラムは、バスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて診断ポートと繋がった１つの電子制御ユニットとしての、プロセッサを有する更新管理装置に、所定の更新管理処理を実行させるための制御プログラムであって、前記更新管理処理は、前記診断ポートに接続された外部ツールから前記診断ポートを介して送信される、当該外部ツールの権限を示す更新権限情報を受信する更新権限情報受信ステップと、前記更新権限情報受信ステップにおいて受信された前記更新権限情報を検証する検証ステップと、前記外部ツールから前記診断ポートを介して送信される、１つ又は複数の前記電子制御ユニットが保持するデータの更新を指示する更新メッセージを受信する更新メッセージ受信ステップと、前記更新メッセージ受信ステップで前記更新メッセージが受信された場合において、前記検証ステップでの前記検証が成功し、かつ、当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示すときには、前記更新メッセージを前記バスに転送し、前記検証ステップでの前記検証が失敗したとき、又は、当該更新メッセージの送信が前記外部ツールの権限範囲内であることを前記更新権限情報が示さないときには、前記転送を抑止する転送制御ステップとを含む制御プログラムである。このプログラムを更新管理装置にインストールして、プロセッサに実行させることにより、外部ツールに付与された機密情報が漏洩した場合に全てのＥＣＵ内のファームウェア等が不正に書き換えられるリスクを低減して、外部ツールにＥＣＵ内のデータを更新させることが可能になる。
【００４３】
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なＣＤ−ＲＯＭ等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
【００４４】
以下、実施の形態に係る更新管理方法を用いる車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ（工程）及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【００４５】
（実施の形態１）
以下、本発明の実施の形態として、更新管理装置としてのマスタＥＣＵ１００を含む複数のＥＣＵがバスを介して通信する車載ネットワークシステム１０において用いられる更新管理方法について、図面を用いて説明する。
【００４６】
更新管理方法として、本実施の形態では、車載ネットワークシステム１０の診断ポートに外部ツールが接続された場合においてマスタＥＣＵ１００が、外部ツール３０を認証して、一定条件を満たすときに限って外部ツール３０にＥＣＵのデータ（ファームウェア等）の更新を許可する例を示す。
【００４７】
［１．１  車載ネットワークシステム１０の全体構成］
図１は、実施の形態１に係る車載ネットワークシステム１０の全体構成を示す図である。なお、同図には車載ネットワークシステム１０の他に、外部ツール３０が示されている。この外部ツール３０は、例えば各種ＥＣＵの製造、メンテナンスを行う事業者等により製造された、個々の各種外部ツール（例えば後述する外部ツール３０ａ、３０ｂ）を代表して表したものである。車載ネットワークシステム１０は、ＣＡＮプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ等の各種機器が搭載された自動車（車両）におけるネットワーク通信システムである。車載ネットワークシステム１０は、ＣＡＮプロトコルに従ってバスを介してフレームに係る通信を行う複数の装置（ノード）を備え、更新管理方法を用いる。具体的には図１に示すように車載ネットワークシステム１０は、診断ポート６００と、バス５００ａ〜５００ｄと、マスタＥＣＵ（更新管理装置）１００、ヘッドユニット２００、ゲートウェイ３００、各種機器に接続されたＥＣＵ４００ａ〜４００ｆ等のＥＣＵといったバスに接続された各ノードとを含んで構成される。なお、車載ネットワークシステム１０には、マスタＥＣＵ１００及びＥＣＵ４００ａ〜４００ｆ以外にもいくつものＥＣＵが含まれ得るが、ここでは、便宜上マスタＥＣＵ１００及びＥＣＵ４００ａ〜４００ｆに注目して説明を行う。ＥＣＵは、例えば、プロセッサ（マイクロプロセッサ）、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ＲＯＭ、ＲＡＭ等であり、プロセッサにより実行される制御プログラム（コンピュータプログラム）を記憶することができる。例えばプロセッサが、制御プログラムに従って動作することにより、ＥＣＵは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【００４８】
診断ポート６００は、車載ネットワークシステム１０を構成するＥＣＵのメンテナンスを行う際に外部ツール３０を接続するポートであり、マスタＥＣＵ１００とバス５００ｄで繋がっている。診断ポート６００は、例えばＯＢＤ２に準拠したコネクタである。外部ツール３０は、診断ポート６００と接続することにより、車載ネットワークシステム１０へとＣＡＮプロトコルに従ったフレームを送信できる。例えば、外部ツール３０は、ＥＣＵのファームウェア等を更新するための更新メッセージ或いはＥＣＵの故障診断のための診断用のメッセージ等、車載ネットワークシステム１０において予め定められた一定範囲のメッセージＩＤを含むメッセージを送信し得る。ここでは、特に、ＥＣＵのファームウェア及び共有鍵のそれぞれを更新するために予め定められている一定範囲のメッセージＩＤを含む更新メッセージ（つまり更新要求用のフレーム）を外部ツールが送信することに注目して説明する。
【００４９】
マスタＥＣＵ１００は、外部ツール３０の認証を行い、外部ツール３０の証明書（後述する公開鍵証明書）に記載された更新権限情報に基づいて、外部ツールからの更新メッセージに対して更新を許可するか否かに係る判定等を行う役割を有する更新管理装置としての一種のＥＣＵである。また、マスタＥＣＵ１００は、車載ネットワークシステム１０における複数のＥＣＵのうち自装置以外の１以上のＥＣＵそれぞれとの相互間で、フレームでの通信内容に係る暗号処理用のセッション鍵の伝達に用いるための、事前に共有した同一の共有鍵を保持し、セッション鍵を各ＥＣＵに伝達する機能を有する。
【００５０】
ＥＣＵ４００ａ〜４００ｆは、バス５００ａ〜５００ｃのいずれかと接続され、それぞれエンジン３１０、ブレーキ３２０、ドア開閉センサ３３０、窓開閉センサ３４０、エアバッグ３５０、ヘッドユニット２００に接続されている。ＥＣＵ４００ａ〜４００ｅのそれぞれは、接続されている機器（エンジン３１０等）の状態を取得し、定期的に状態を表すフレームをネットワーク（つまりバス）に送信している。ヘッドユニット２００は、例えば、自動車のインストルメントパネル（インパネ）等に設けられた液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）等の表示装置を含み、車両の運転者への報知を行い得る。ヘッドユニット２００に接続されたＥＣＵ４００ｆは、バス５００ｃからフレームを受信して、フレームが表す各種状態を、ヘッドユニット２００の表示装置に表示させる機能を有する。
【００５１】
ゲートウェイ３００は、ＥＣＵ４００ａ及びＥＣＵ４００ｂと繋がるバス５００ａと、マスタＥＣＵ１００及びＥＣＵ４００ｃ〜４００ｅと繋がるバス５００ｂと、ＥＣＵ４００ｆと繋がるバス５００ｃとに接続しており、それぞれのバスから受信したフレームを他のバスに転送する機能を有する。また受信したフレームを転送するかしないかを接続されたバス間毎に切り替えることも可能である。ゲートウェイ３００は一種のＥＣＵである。
【００５２】
車載ネットワークシステム１０においてはＣＡＮプロトコルに従って、マスタＥＣＵ４００を含む各ＥＣＵがバスを介してフレームの授受を行う。ＣＡＮプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがあるが、説明の便宜上、ここではデータフレームを中心に説明する。
【００５３】
［１．２  データフレームフォーマット］
以下、ＣＡＮプロトコルに従ったネットワークで用いられるフレームの１つであるデータフレームについて説明する。
【００５４】
図２は、ＣＡＮプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、ＣＡＮプロトコルで規定される標準ＩＤフォーマットにおけるデータフレームを示している。データフレームは、ＳＯＦ（Start Of Frame）、ＩＤフィールド、ＲＴＲ（Remote Transmission Request）、ＩＤＥ（Identifier Extension）、予約ビット「ｒ」、ＤＬＣ（Data Length Code）、データフィールド、ＣＲＣ（Cyclic Redundancy Check）シーケンス、ＣＲＣデリミタ「ＤＥＬ」、ＡＣＫ（Acknowledgement）スロット、ＡＣＫデリミタ「ＤＥＬ」、及び、ＥＯＦ（End Of Frame）の各フィールドで構成される。
【００５５】
ＳＯＦは、１ｂｉｔのドミナントで構成される。バスがアイドルの状態はレセシブになっており、ＳＯＦによりドミナントへ変更することでフレームの送信開始を通知する。
【００５６】
ＩＤフィールドは、１１ｂｉｔで構成される、データの種類を示す値であるＩＤ（つまりメッセージＩＤ）を格納するフィールドである。複数のノードが同時に送信を開始した場合、このＩＤフィールドで通信調停を行うために、ＩＤが小さい値を持つフレームが高い優先度となるよう設計されている。
【００５７】
ＲＴＲは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント１ｂｉｔで構成される。
【００５８】
ＩＤＥと「ｒ」とは、両方ドミナント１ｂｉｔで構成される。
【００５９】
ＤＬＣは、４ｂｉｔで構成され、データフィールドの長さを示す値である。なお、ＩＤＥ、「ｒ」及びＤＬＣを合わせてコントロールフィールドと称する。
【００６０】
データフィールドは、最大６４ｂｉｔで構成される送信するデータの内容を示す値である。８ｂｉｔ毎に長さを調整できる。送られるデータの仕様については、ＣＡＮプロトコルで規定されておらず、車載ネットワークシステム１０において定められる。従って、車種、製造者（メーカ）等に依存した仕様となる。
【００６１】
ＣＲＣシーケンスは、１５ｂｉｔで構成される。ＳＯＦ、ＩＤフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
【００６２】
ＣＲＣデリミタは、１ｂｉｔのレセシブで構成されるＣＲＣシーケンスの終了を表す区切り記号である。なお、ＣＲＣシーケンス及びＣＲＣデリミタを合わせてＣＲＣフィールドと称する。
【００６３】
ＡＣＫスロットは、１ｂｉｔで構成される。送信ノードはＡＣＫスロットをレセシブにして送信を行う。受信ノードはＣＲＣシーケンスまで正常に受信ができていればＡＣＫスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にＡＣＫスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
【００６４】
ＡＣＫデリミタは、１ｂｉｔのレセシブで構成されるＡＣＫの終了を表す区切り記号である。
【００６５】
ＥＯＦは、７ｂｉｔのレセシブで構成されており、データフレームの終了を示す。
【００６６】
［１．３  鍵発行システム］
図３は、上述したＥＣＵ及び外部ツールに関わる鍵発行システムを示す図である。鍵発行機関２０は、公開鍵証明書４０ａ〜４０ｃ、秘密鍵５０ａ〜５０ｃ、共有鍵６０をメーカ２１に配布する。配布された鍵や証明書は、メーカ２１によって製造段階等において、外部ツール３０ａ、３０ｂ、マスタＥＣＵ１００、ＥＣＵ４００ａ〜４００ｆに書き込まれる。メーカ２１は、例えばＯＥＭメーカ（Original Equipment Manufacturer）、ＥＣＵベンダー等である。公開鍵を記載した公開鍵証明書と、秘密鍵とは、公開鍵基盤（ＰＫＩ：Public Key Infrastructure）で利用され、公開鍵及び秘密鍵が、楕円暗号、ＲＳＡ暗号等の鍵ペアである。この秘密鍵及び公開鍵証明書は、マスタＥＣＵ１００と外部ツール３０ａ〜ｂ間の認証に用いられる。共有鍵６０は、個々の共有鍵を代表的に表している。この共有鍵６０は、共通鍵暗号方式のＡＥＳ（Advanced Encryption Standard）の鍵であり、マスタＥＣＵ１００と他の各ＥＣＵとの間で共有され、フレームに係る暗号処理用のセッション鍵の伝達に用いられる。フレームに係る暗号処理としては、フレームのデータフィールドの内容の暗号化及び復号の他に、例えば、フレームの送信側で、フレームのデータフィールドに、メッセージ認証コード（ＭＡＣ：Message Authentication Code）を生成して付加して送信し、受信側ではそのＭＡＣについて検証する処理が挙げられる。このＭＡＣによりデータの改ざんの検出が可能となる。セッション鍵は、例えばＭＡＣの生成に用いられる。
【００６７】
図３の例では、外部ツール３０ａには、公開鍵証明書４０ａと秘密鍵５０ａとが書き込まれ、外部ツール３０ｂには、公開鍵証明書４０ｂと秘密鍵５０ｂとが書き込まれ、マスタＥＣＵ２０には公開鍵証明書４０ｃと秘密鍵５０ｃと共有鍵６０とが書き込まれ、ＥＣＵ４００ａ〜４００ｆには、共有鍵６０が書き込まれることを示している。図３の例では、公開鍵証明書４０ａに記載された更新権限情報のレベルは３であり、公開鍵証明書４０ｂに記載された更新権限情報のレベルは４である。
【００６８】
［１．４  公開鍵証明書］
図４は、鍵発行機関２０が、外部ツール３０ａ、３０ｂに書き込まれるために発行つまり配布する公開鍵証明書４０ａの構成の一例を示す図である。公開鍵証明書４０ｂも同様の構成を有する。
【００６９】
同図に示すように、公開鍵証明書は、バージョン、発行者、有効期間の開始と終了、証明書識別情報（ＩＤ）、公開鍵、更新権限情報（レベル）、及びこれらに対する署名を含んで構成される。署名は、鍵発行機関２０或いはポータルサーバ等の認証局により付与される。このため、マスタＥＣＵ１００は外部ツール３０の認証を、外部ツール３０から公開鍵証明書を取得して署名の検証等により、行うことができる。
【００７０】
公開鍵証明書中の更新権限情報は、外部ツール３０（外部ツール３０ａ、３０ｂ等）に対して、どの種別のＥＣＵについてのＥＣＵ内のデータの更新を指示する更新メッセージを送信する権限が認められているかについて示す情報であり、具体的には、権限について複数段階に区分されたレベルのうち１つを示す。このため、外部ツール３０について署名主体である認証局等により認定された権限のレベルが更新権限情報に示されていることになる。
【００７１】
なお、マスタＥＣＵ１００に書き込まれる公開鍵証明書４０ｃは、図４に示す構成例のうち更新権限情報以外の各要素を含む。
【００７２】
［１．５  更新権限情報］
図５は、図３の公開鍵証明書に記載された更新権限情報の内容としてのレベル（つまり権限のレベル）と、ＥＣＵの機能の分類用の複数の機能種別との対応関係の一例を示す図である。
【００７３】
まず、ＥＣＵの機能種別について説明する。駆動系機能は、エンジン、モータ、燃料、電池、トランスミッション等の制御といった車両の走行に関連する機能である。駆動系機能の機能種別には、例えば、エンジン３１０に関わるＥＣＵ４００ａが該当する。シャーシ系機能は、ブレーキ、ステアリング等の「曲がる」、「止まる」等といった車両の挙動等の制御に関連する機能である。シャーシ系機能の機能種別には、例えば、ブレーキ３２０に関わるＥＣＵ４００ｂが該当する。ボディ系機能は、ドアロック、エアコン、ライト、ウィンカー等といった車両の装備の制御に関連する機能である。ボディ系機能の機能種別には、例えば、ドア開閉センサ３３０に関わるＥＣＵ４００ｃ及び窓開閉センサ３４０に関わるＥＣＵ４００ｄが該当する。また、安全快適機能は、自動ブレーキ、車線維持機能、車間距離維持機能、衝突防止機能、エアバッグ等といった自動的に安全で快適な運転を実現するための機能である。安全快適機能の機能種別には、エアバッグ３５０に関わるＥＣＵ４００ｅが該当する。ＩＴＳ（Intelligent Transport Systems）系機能は、ＥＴＣ（Electronic Toll Collection System）等の高度道路交通システムに対応した機能である。テレマティクス系機能は、移動体通信を用いたサービスに対応する機能である。インフォテインメント系機能は、カーナビゲーション、オーディオ等に関連したエンターテインメント機能である。インフォテインメント系機能の機能種別には、例えば、ヘッドユニット２００に関わるＥＣＵ４００ｆが該当する。
【００７４】
公開鍵証明書の署名主体である認証局等に認定された、更新権限情報の内容としての権限のレベルは、図５に例示する対応関係等に基づき、上述した複数の機能種別のうち１つ又は複数の機能種別を特定する。そして、その公開鍵証明書を付与された外部ツールは、更新権限情報のレベルにより特定されるその１つ又は複数の機能種別のいずれかに分類されるＥＣＵにそのＥＣＵ内のデータ（ファームウェア、共有鍵）の更新を行わせる権限を、つまりファームウェア或いは共有鍵の更新用の更新メッセージを送信する権限を、有すると認定されていることになる。
【００７５】
図５の例によれば、更新権限について最も高いレベル４から最も低いレベル１の４段階のいずれかのレベルを示す更新権限情報を記載した公開鍵証明書が、個々の外部ツールに付与される（つまり書き込まれる）ことになる。個々の外部ツールは、機能、構成等がそれぞれ相違し得る。このため、例えば、外部ツールが取り扱う対象となるＥＣＵの機能種別、外部ツールの機密性、信頼性、その外部ツールを製造する事業者の信頼性その他の各種事情を勘案して個々の外部ツールに対する更新権限情報を定め得る。なお、図５は、レベルの一例を示すに過ぎず、この例と異なるように、レベルの段階数、レベルと機能種別との対応関係等を定めても良い。また、ある複数のレベル（例えばレベル４及びレベル２）のそれぞれが同じ１つの機能種別と対応するような対応関係を定めても良い。また、機能種別の分類についても図５の例と異なるように定め得る。ここでは、更新権限情報において相対的に高いレベルは、それより低いレベルが特定する１つ又は複数の機能種別を包含した複数の機能種別を特定するもの、つまり高いレベルは低いレベルの権限を包含するものとして説明する。しかし、権限のレベル間において権限の包含関係がないように、レベルと機能種別との対応関係を定めても良い。但し、外部ツールに対して認定された権限のレベルが相対的に低い場合において、車両の走行、挙動等に関連しない一部のＥＣＵ内のデータの更新だけを許可してその一部以外のＥＣＵ内のデータの更新をさせないことは有用である。具体的には、外部ツールについて認められた権限のレベル（つまり更新権限情報の内容であるレベル）が３であれば、その外部ツールは、レベル３以下の全てのレベル（つまりレベル１〜レベル３）それぞれに対応する機能種別に分類される各ＥＣＵに対して更新メッセージを送信してＥＣＵ内のデータの更新を実行させることが許可される。
【００７６】
なお、車載ネットワークシステム１０においてマスタＥＣＵ１００は、外部ツール３０が診断ポート６００に接続された場合に、権限のレベルを定める更新権限情報を外部ツール３０から受信しこの更新権限情報に基づいて、外部ツール３０が送信する更新メッセージに対して、更新を許可するか否かに係る判定を行う。マスタＥＣＵ１００は、この判定において、上述したレベルと機能種別との対応関係（図５参照）に基づいて定められたレベル情報１０４０を参照する。レベル情報１０４０については、図８を用いて後に説明する。
【００７７】
［１．６  共有鍵］
図６は、マスタＥＣＵ１００、ＥＣＵ４００ａ〜４００ｆが保持する共有鍵を示す図である。上述した共有鍵６０は、具体的には同図に示すように、全ＥＣＵで共有される共有鍵６０ａと、ＥＣＵ４００ｆとマスタＥＣＵ１００とで共有される共有鍵６０ｂと、ＥＣＵ４００ｃ、４００ｄとマスタＥＣＵ１００とで共有される共有鍵６０ｃと、ＥＣＵ４００ａ、４００ｂとマスタＥＣＵ１００とで共有される共有鍵６０ｄと、ＥＣＵ４００ｅとマスタＥＣＵ１００とで共有される共有鍵６０ｅがある。
【００７８】
［１．７  マスタＥＣＵ（更新管理装置）１００の構成］
図７は、マスタＥＣＵ１００の構成図である。マスタＥＣＵ１００は、送受信部１０１と、鍵保持部１０２と、判定部１０３と、レベル情報保持部１０４と、フレーム送受信部１６０と、フレーム解釈部１５０と、受信ＩＤ判断部１３０と、受信ＩＤリスト保持部１４０と、フレーム処理部１１０と、フレーム生成部１２０とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、マスタＥＣＵ１００における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
【００７９】
送受信部１０１は、マスタＥＣＵ１００と外部ツール３０（外部ツール３０ａ、３０ｂ）との認証のためにマスタＥＣＵ１００の公開鍵証明書４０ｃの送信及び外部ツール３０からの公開鍵証明書（公開鍵証明書４０ａ或いは公開鍵証明書４０ｂ）を受信する。また、送受信部１０１は、外部ツール３０から診断ポート６００を介してバス５００ｄに対して送信されるＣＡＮプロトコルに従った更新メッセージを受信し、また、更新メッセージによる更新の結果の送信を行う。
【００８０】
鍵保持部１０２は、マスタＥＣＵ１００の公開鍵証明書４０ｃ、秘密鍵５０ｃ、共有鍵６０ａ〜６０ｅを保持する。なお、ＣＡＮプロトコルに従ったデータフレームにおけるデータへの暗号処理としてＭＡＣを付与する場合に用いるＭＡＣ鍵を鍵保持部１０２に保持しても良い。また、外部ツール３０等との間での通信に係る暗号処理に用いるセッション鍵を鍵保持部１０２に保持しても良い。セッション鍵はＭＡＣの生成にも利用され得る。
【００８１】
フレーム送受信部１６０は、バス５００ｂに対して、ＣＡＮプロトコルに従ったフレームを送受信する。つまり、ＥＣＵ４００ａ〜４００ｆからのフレームを受信し、ＥＣＵ４００ａ〜４００ｆへフレームを送信する。バス５００ｂからフレームを１ｂｉｔずつ受信し、フレーム解釈部１５０に伝達する。また、フレーム生成部１２０より通知を受けたフレームの内容をバス５００ｂに１ビットずつ送信する。
【００８２】
フレーム解釈部１５０は、フレーム送受信部１６０よりフレームの値を受け取り、ＣＡＮプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。フレーム解釈部１５０は、ＩＤフィールドと判断した値（メッセージＩＤ）を受信ＩＤ判断部１３０へ転送する。受信ＩＤ判断部１３０から通知される判定結果に応じて、ＩＤフィールドの値と、ＩＤフィールド以降に現れるデータフィールドとを、フレーム処理部１１０へ転送するか、フレームの受信を中止する（つまりそのフレームとしての解釈を中止する）かを決定する。また、ＣＡＮプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するように、フレーム生成部１２０へ通知する。また、フレーム解釈部１５０は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
【００８３】
受信ＩＤ判断部１３０は、フレーム解釈部１５０から通知されるＩＤフィールドの値を受け取り、受信ＩＤリスト保持部１４０が保持しているメッセージＩＤのリストに従い、そのＩＤフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ＩＤ判断部１３０は、フレーム解釈部１５０へ通知する。また、受信ＩＤ判断部１３０は、フレーム解釈部１５０と同様に、判定部１０３に対しても、メッセージＩＤが受信すべきフレームのものであるかどうかの判定を行って判定結果を通知する。
【００８４】
受信ＩＤリスト保持部１４０は、マスタＥＣＵ１００が受信するメッセージＩＤのリストである受信ＩＤリストを保持する。
【００８５】
フレーム生成部１２０は、フレーム解釈部１５０から通知されたエラーフレーム送信の要求に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部１６０へ通知して送信させる。また、判定部１０３よりフレームの生成の指示を受けると、データへの暗号処理（例えばセッション鍵等に対応したＭＡＣの付加等）を施してフレームを構成し、フレーム送受信部１６０へ通知して送信させる。
【００８６】
判定部１０３は、外部ツール３０から受信した、更新権限情報を含む公開鍵証明書を検証することで、外部ツール３０を認証する。判定部１０３が外部ツール３０から受信した公開鍵証明書の検証に成功すると外部ツール３０の認証に成功したことになる。なお、判定部１０３が公開鍵証明書の検証に成功したことは更新権限情報の検証に成功したことでもある。判定部１０３は、送受信部１０１により更新メッセージが受信された場合に、更新権限情報の検証が成功しており、かつ、その更新メッセージの送信が外部ツール３０の権限範囲内であることを更新権限情報が示すか否かを判定することで、更新メッセージに対応した更新を許可するか否かの判定を行う。この判定は、受信した更新メッセージのメッセージＩＤと受信した公開鍵証明書に記載された更新権限情報が示すレベルとが、レベル情報保持部１０４が保持しているレベル情報１０４０（後述）に照らして適切に対応したものであるか否かを判別することにより行われる。判定部１０３は、外部ツール３０によりなされた更新メッセージの送信が外部ツール３０の権限範囲内であることを更新権限情報が示すと判定した場合（つまり許可される更新メッセージであると判定した場合）には、フレーム生成部１２０に、他のＥＣＵへの転送用（つまりバス５００ｂへの送出用）にその（元の）更新メッセージに対応したフレームである新たな更新メッセージを生成するよう指示する。なお、フレーム生成部１２０が転送用に生成する新たな更新メッセージは、元の更新メッセージとメッセージＩＤは同じで更新メッセージのデータフィールド内におけるデータも実質的には同じであり、データに暗号処理を施す場合においてそのデータに施された暗号処理（例えばデータに付加されたＭＡＣ）が異なるものである。フレーム生成部１２０で生成された更新メッセージはフレーム送受信部１６０によりバス５００ｂに送出される。これにより、外部ツール３０からの更新権限情報の検証が成功しており、かつ、外部ツール３０からの更新メッセージが許可される更新メッセージであると判定した場合にはマスタＥＣＵ１００によってその更新メッセージが他のＥＣＵへと（つまりバス５００ｂへと）転送されることになる。また、判定部１０３は、外部ツール３０からの共有鍵の更新用の更新メッセージが許可される更新メッセージであると判定した場合には、鍵保持部１０２に保持されている共有鍵を更新する。
【００８７】
フレーム処理部１１０は、バス５００ｂから受信したフレームのデータに応じて予め定められた処理を行う。フレーム処理部１１０は、例えば、バス５００ｂから更新メッセージによる各ＥＣＵでの更新の結果を示すフレームを受信した場合には、その更新の結果を内容とするメッセージ（フレーム）を生成して送受信部１０１に診断ポート６００へ繋がるバス５００ｄへと送出させる。
【００８８】
レベル情報保持部１０４は、レベル情報１０４０を保持する。
【００８９】
［１．８  レベル情報］
図８は、レベル情報保持部１０４が保持するレベル情報１０４０の一例を示す図である。
【００９０】
レベル情報１０４０は、メッセージＩＤ１０４１とレベル１０４２とを対応付けた情報であり、判定部１０３において外部ツール３０からの更新メッセージを許可するか否かの判定に用いられる。
【００９１】
メッセージＩＤ１０４１は、外部ツール３０から送信され得る更新メッセージのメッセージＩＤを示す。ここでは、ＥＣＵが保持する共有鍵の更新用の更新メッセージについてのメッセージＩＤとして、「０ｘ１００」〜「０ｘ１０４」が定められており、ＥＣＵのファームウェアの更新用の更新メッセージについてのメッセージＩＤとして、「０ｘ２００」〜「０ｘ２０６」が定められているものとして説明する。
【００９２】
レベル１０４２は、対応するメッセージＩＤの更新メッセージを送信するために必要な権限のレベルを示す。このレベルは、更新権限情報の内容としてのレベルと呼応している。例えば、外部ツール３０の公開鍵証明書に記載された更新権限情報が示すレベルの値が、レベル１０４２の値と同じかこれより高い権限を示す値を示せば、そのレベル１０４２の値と対応付けられたメッセージＩＤ１０４１の更新メッセージを送信する権限を外部ツール３０が有することになる。逆に、外部ツール３０の公開鍵証明書に記載された更新権限情報が示すレベルの値が、レベル１０４２の値より低い権限を示す値であれば、そのレベル１０４２と対応付けられたメッセージＩＤ１０４１の更新メッセージを送信する権限を外部ツール３０が有さないことになる。
【００９３】
図８に示すメッセージＩＤ「０ｘ１００」は、マスタＥＣＵ１００及びＥＣＵ４００ａ〜４００ｆが保持している共有鍵６０ａの更新用の更新メッセージについてのメッセージＩＤである。レベル情報１０４０において、このメッセージＩＤ「０ｘ１００」に対応するレベル１０４２の値は、最も高い４と設定されている。この４は、共有鍵６０ａの更新の対象となる各ＥＣＵの機能種別に対応するレベルのうち最も高いレベル（具体的にはＥＣＵ４００ｅの機能種別である安全快適機能に対応するレベル）の値である（図５参照）。
【００９４】
メッセージＩＤ「０ｘ１０１」は、マスタＥＣＵ１００及びＥＣＵ４００ｅが保持している共有鍵６０ｅの更新用の更新メッセージについてのメッセージＩＤである。安全快適機能を有するＥＣＵ４００ｅに対応して、レベル１０４２の値は、４と設定されている。
【００９５】
メッセージＩＤ「０ｘ１０２」は、マスタＥＣＵ１００及びＥＣＵ４００ａ、４００ｂが保持している共有鍵６０ｄの更新用の更新メッセージについてのメッセージＩＤである。駆動系機能を有するＥＣＵ４００ａ及びシャーシ系機能を有するＥＣＵ４００ｂに対応して、レベル１０４２の値は、３と設定されている。
【００９６】
メッセージＩＤ「０ｘ１０３」は、マスタＥＣＵ１００及びＥＣＵ４００ｃ、４００ｄが保持している共有鍵６０ｃの更新用の更新メッセージについてのメッセージＩＤである。ボディ系機能を有するＥＣＵ４００ｃ、４００ｄに対応して、レベル１０４２の値は、２と設定されている。
【００９７】
メッセージＩＤ「０ｘ１０４」は、マスタＥＣＵ１００及びＥＣＵ４００ｆが保持している共有鍵６０ｂの更新用の更新メッセージについてのメッセージＩＤである。インフォテインメント系機能を有するＥＣＵ４００ｆに対応して、レベル１０４２の値は、１と設定されている。
【００９８】
メッセージＩＤ「０ｘ２００」は、マスタＥＣＵ１００のファームウェアの更新用の更新メッセージについてのメッセージＩＤである。このメッセージＩＤに対応するレベル１０４２の値は、マスタＥＣＵ１００を特別に扱って、最高レベルの４と設定されている。
【００９９】
メッセージＩＤ「０ｘ２０１」は、ＥＣＵ４００ｅのファームウェアの更新用の更新メッセージについてのメッセージＩＤである。このメッセージＩＤに対応するレベル１０４２の値は、安全快適機能を有するＥＣＵ４００ｅに対応して、４と設定されている。
【０１００】
メッセージＩＤ「０ｘ２０２」は、ＥＣＵ４００ｂのファームウェアの更新用の更新メッセージについてのメッセージＩＤである。このメッセージＩＤに対応するレベル１０４２の値は、シャーシ系機能を有するＥＣＵ４００ｂに対応して、３と設定されている。
【０１０１】
メッセージＩＤ「０ｘ２０３」は、ＥＣＵ４００ａのファームウェアの更新用の更新メッセージについてのメッセージＩＤである。このメッセージＩＤに対応するレベル１０４２の値は、駆動系機能を有するＥＣＵ４００ａに対応して、３と設定されている。
【０１０２】
メッセージＩＤ「０ｘ２０４」は、ＥＣＵ４００ｃのファームウェアの更新用の更新メッセージについてのメッセージＩＤである。このメッセージＩＤに対応するレベル１０４２の値は、ボディ系機能を有するＥＣＵ４００ｃに対応して、２と設定されている。
【０１０３】
メッセージＩＤ「０ｘ２０５」は、ＥＣＵ４００ｄのファームウェアの更新用の更新メッセージについてのメッセージＩＤである。このメッセージＩＤに対応するレベル１０４２の値は、ボディ系機能を有するＥＣＵ４００ｄに対応して、２と設定されている。
【０１０４】
メッセージＩＤ「０ｘ２０６」は、ＥＣＵ４００ｆのファームウェアの更新用の更新メッセージについてのメッセージＩＤである。このメッセージＩＤに対応するレベル１０４２の値は、インフォテインメント系機能を有するＥＣＵ４００ｆに対応して、１と設定されている。
【０１０５】
［１．９  ＥＣＵ４００ａの構成］
図９は、ＥＣＵ４００ａの構成図である。ＥＣＵ４００ａは、鍵保持部４０２と、フレーム送受信部４６０と、フレーム解釈部４５０と、受信ＩＤ判断部４３０と、受信ＩＤリスト保持部４４０と、フレーム処理部４１０と、フレーム生成部４２０と、データ取得部４７０とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ＥＣＵ４００ａにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ＥＣＵ４００ｂ〜４００ｆも、ＥＣＵ４００ａと基本的に同様の構成を備える。
【０１０６】
鍵保持部４０２は、図６に示した共有鍵を保持する。即ちＥＣＵ４００ａの鍵保持部４０２は、共有鍵６０ａ、６０ｄを保持する。ＣＡＮプロトコルに従ったデータフレームにおけるデータへの暗号処理としてＭＡＣを付与する場合に用いるＭＡＣ鍵を鍵保持部４０２に保持しても良い。また、他のＥＣＵ等との間での通信に係る暗号処理に用いるセッション鍵を鍵保持部４０２に保持しても良い。セッション鍵はＭＡＣの生成にも利用され得る。
【０１０７】
フレーム送受信部４６０は、バス５００ａに対して、ＣＡＮのプロトコルに従ったフレームを送受信する。バス５００ａからフレームを１ｂｉｔずつ受信し、フレーム解釈部４５０に転送する。また、フレーム生成部４２０より通知を受けたフレームの内容をバス５００ａに送信する。
【０１０８】
フレーム解釈部４５０は、フレーム送受信部４６０よりフレームの値を受け取り、ＣＡＮプロトコルにおける各フィールドにマッピングするよう解釈を行う。ＩＤフィールドと判断した値は受信ＩＤ判断部４３０へ転送する。受信ＩＤ判断部４３０から通知される判定結果に応じて、ＩＤフィールドの値（メッセージＩＤ）と、ＩＤフィールド以降に現れるデータフィールドとを、フレーム処理部４１０へ転送するか、その判定結果を受けた以降においてフレームの受信を中止する（つまりそのフレームとしての解釈を中止する）かを決定する。また、ＣＡＮプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するように、フレーム生成部４２０へ通知する。また、フレーム解釈部４５０は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
【０１０９】
受信ＩＤ判断部４３０は、フレーム解釈部４５０から通知されるＩＤフィールドの値を受け取り、受信ＩＤリスト保持部４４０が保持しているメッセージＩＤのリストに従い、そのＩＤフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ＩＤ判断部４３０は、フレーム解釈部４５０へ通知する。
【０１１０】
受信ＩＤリスト保持部４４０は、ＥＣＵ４００ａが受信するメッセージＩＤのリストである受信ＩＤリスト（図１０参照）を保持する。
【０１１１】
フレーム処理部４１０は、受信したフレームのデータに応じてＥＣＵ毎に異なる機能に係る処理を行う。例えば、エンジン３１０に接続されたＥＣＵ４００ａは、エンジン３１０の回転速度と他のＥＣＵから受信したフレームのデータが示す車両の一部の状態との関係に応じて、予め定められた制御を行い得る。
【０１１２】
データ取得部４７０は、ＥＣＵに繋がっている機器、センサの状態を示すデータを取得し、フレーム生成部４２０に通知する。
【０１１３】
フレーム生成部４２０は、フレーム解釈部４５０から通知されたエラーフレーム送信の要求に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部４６０へ通知して送信させる。また、フレーム生成部４２０は、データ取得部４７０より通知されたデータに基づいて定めたデータフィールドの値に、予め定められたメッセージＩＤをつけてデータフレームを構成し、フレーム送受信部４６０へ通知して送信させる。なお、フレーム生成部４２０は、データフィールドの値に、ＭＡＣ鍵或いはセッション鍵を用いて生成したＭＡＣを付加し得る。
【０１１４】
［１．１０  受信ＩＤリスト］
図１０は、ＥＣＵ４００ａの受信ＩＤリスト保持部４４０が保持する受信ＩＤリスト９００の一例を示す。
【０１１５】
図１０の例は、ＥＣＵ４００ａが、メッセージＩＤ「０ｘ１０２」が付された共有鍵の更新用の更新メッセージ、メッセージＩＤ「０ｘ２０３」が付されたファームウェアの更新用の更新メッセージ等を受信することを示している。ＥＣＵ４００ａが受信するメッセージ（フレーム）のメッセージＩＤは、「０ｘ１０２」、「０ｘ２０３」に限られないが、図１０の例では特に更新メッセージのメッセージＩＤに注目して表している。
【０１１６】
なお、マスタＥＣＵ１００の受信ＩＤリスト保持部１４０が保持する受信ＩＤリストも、受信ＩＤリスト９００と同様に、マスタＥＣＵ１００が受信可能なメッセージのメッセージＩＤを列挙した構成である。
【０１１７】
［１．１１  共有鍵更新シーケンス］
以下、更新管理方法の一例として、外部ツール３０ａを診断ポート６００に接続して、外部ツール３０ａから車載ネットワークシステム１０におけるＥＣＵが保持する共有鍵を更新させる場合の動作（共有鍵更新シーケンス）について、図１１及び図１２を用いて説明する。
【０１１８】
図１１及び図１２は、外部ツール３０ａとマスタＥＣＵ１００とＥＣＵ４００ａとの間で行われる共有鍵更新シーケンスの一例を示す図である。ここでは、便宜上、外部ツール３０の１つとしての外部ツール３０ａ、及び、ＥＣＵ４００ａ〜４００ｆのうちの１つであるＥＣＵ４００ａに注目して説明する。また、駆動系機能及びシャーシ系機能を有する各ＥＣＵが保持する共有鍵を更新するために外部ツール３０ａが用いられる場面を想定して説明する。具体的には、駆動系機能を有するＥＣＵ４００ａ及びシャーシ系機能を有するＥＣＵ４００ｂのそれぞれが保持する共有鍵６０ｄの更新のためのメッセージＩＤ「０ｘ１０２」が付された更新メッセージが外部ツール３０ａから車載ネットワークシステム１０へと送信されることになる。ＥＣＵ４００ｂの動作は、ＥＣＵ４００ａの動作と同様であるため、ここでは説明を省略する。
【０１１９】
まず、マスタＥＣＵ１００にバス５００ｄで繋がった診断ポート６００に外部ツール３０ａが物理的に接続された状態で、外部ツール３０ａが、証明書（つまり外部ツール３０ａが保持する公開鍵証明書４０ａ）をバス５００ｄに送出することで、ＥＣＵ１００に対して通信接続のために認証要求を送信する（ステップＳ１００１）。なお、外部ツール３０ａは、例えば、利用者の操作等に応じて車載ネットワークシステム１０のＥＣＵ内のデータ（共有鍵、ファームウェア）の更新用の更新メッセージを送信し得る。但し、更新メッセージによって更新が実現されるためには更新メッセージの送信に先行して、例えば利用者の操作等に応じて、認証要求（証明書）を送信する必要がある。
【０１２０】
マスタＥＣＵ１００の送受信部１０１が公開鍵証明書４０ａを受信して、判定部１０３において、公開鍵証明書４０ａを検証する（ステップＳ１００２）。公開鍵証明書４０ａの検証については、例えば、認証局による署名を検証し、更に、チャレンジレスポンス（ＣＲ）認証方式で公開鍵証明書４０ａに記載された公開鍵と対応する秘密鍵を外部ツール３０ａが保持しているかについて確認する。ＣＲ認証方式では、例えば、マスタＥＣＵ１００は、乱数を外部ツール３０ａに送信し、外部ツール３０ａが乱数を秘密鍵で暗号化した結果である暗号化乱数をマスタＥＣＵ１００に返信すると、マスタＥＣＵは、公開鍵証明書４０ａ内の公開鍵で暗号化乱数を復号し、最初に送信した乱数と等しいかを確認する。ステップＳ１００２における検証に失敗すれば、マスタＥＣＵ１００は、エラー処理を行う（ステップＳ１００３）。ステップＳ１００３でのエラー処理により、外部ツール３０ａからの通信接続が認められなくなり、外部ツール３０ａは例えば更新メッセージを送信してＥＣＵのデータを更新することができなくなる。なお、マスタＥＣＵ１００は、エラー処理として外部ツール３０ａにエラーの旨のレスポンスを返しても良いし、返さなくても良い。
【０１２１】
ステップＳ１００２における検証に成功すれば、マスタＥＣＵ１００は、外部ツール３０ａとの通信において暗号処理を実施するために用いるセッション鍵を、乱数を用いて生成する（ステップＳ１００４）。例えば、更新メッセージ内のデータを暗号化する場合においては、セッション鍵は暗号化のための鍵として用いられ、また、更新メッセージ内のデータにＭＡＣを付加する場合には、セッション鍵はＭＡＣを生成するための鍵として用いられる。
【０１２２】
ステップＳ１００４に続いて、マスタＥＣＵ１００の送受信部１０１は、セッション鍵を外部ツール３０ａの公開鍵で暗号化して、暗号化の結果である暗号化セッション鍵と、マスタＥＣＵ１００の公開鍵証明書４０ｃとを外部ツール３０ａへと送信する（ステップＳ１００５）。
【０１２３】
外部ツール３０ａでは、マスタＥＣＵ１００の公開鍵証明書４０ｃの検証を行う（ステップＳ１００６）。検証に失敗すれば、エラー処理を行う（ステップＳ１００７）。また、検証に成功すれば、外部ツール３０ａは、ステップＳ１００４においてマスタＥＣＵ１００から送信されて受信した暗号化セッション鍵を、外部ツール３０ａの保持する秘密鍵で復号して、セッション鍵を取得する（ステップＳ１００８）。
【０１２４】
ステップＳ１００８の次に、外部ツール３０ａは、メッセージＩＤ「０ｘ１０２」が付された、共有鍵６０ｄの更新用の更新メッセージを生成し、セッション鍵を用いて更新メッセージに暗号処理を実施する（ステップＳ１００９）。更新メッセージへの暗号処理の例としては、データフィールドに、例えば共有鍵６０ｄの更新に必要なデータ（例えばＥＣＵ４００ａにおいて鍵付きハッシュ関数等により更新を行うこととした場合においてはその鍵となるデータ）を格納しそのデータを暗号化する或いはそのデータにＭＡＣを付加する等が挙げられる。また、共有鍵６０ｄの更新にデータを必要としない場合であっても例えば更新メッセージの全体又は一部に対応したＭＡＣをデータフィールドに格納することも可能である。例えば、車載ネットワークシステム１０において、更新メッセージに対応する暗号処理としてどのような処理を行うかについて、行うべき所定暗号処理（つまりセッション鍵を用いた所定暗号処理）を、予め規定しておく。そして、各ＥＣＵはその規定に従って所定暗号処理（例えばＭＡＣの付加）が適切に（つまりセッション鍵を用いた検証に成功するように）実施されている更新メッセージに対応して更新を行い、所定暗号処理が適切に実施されていなければその更新メッセージに対しては更新を抑止する。
【０１２５】
外部ツール３０ａは、ステップＳ１００９で生成した更新メッセージをマスタＥＣＵ１００に送信する（ステップＳ１０１０）。
【０１２６】
ステップＳ１０１０で外部ツール３０ａが送信することでマスタＥＣＵ１００の送受信部１０１が受信したメッセージ（フレーム）のメッセージＩＤが受信すべきＩＤであるか否かを判定部１０３は、受信ＩＤ判断部１３０により判別する（ステップＳ１０１１）。共有鍵の更新用のメッセージＩＤ「０ｘ１００」〜「０ｘ１０４」及びファームウェアの更新用のメッセージＩＤ「０ｘ２００」〜「０ｘ２０６」は受信すべきＩＤであると判別される。ここでは、外部ツール３０ａが更新メッセージを送信することを想定して説明しているので、外部ツール３０ａからのメッセージ（フレーム）を更新メッセージと称しているが、実際には更新メッセージではないことも、あり得るため、ステップＳ１０１１で判別が行われる。つまり、外部ツール３０ａから送信されたメッセージ（フレーム）が、実際に更新メッセージであれば受信すべきと判別されることになる。なお、ここでは説明の便宜上、診断ポート６００に接続された外部ツール３０（例えば外部ツール３０ａ等）からマスタＥＣＵ１００は、更新メッセージ以外のメッセージについてのメッセージＩＤを受信すべきＩＤとして取り扱わないこととしている。
【０１２７】
ステップＳ１０１１において、送受信部１０１が受信したメッセージのメッセージＩＤが、受信すべきＩＤでないと判定した場合には、マスタＥＣＵ１００の判定部１０３は、そのメッセージＩＤのメッセージに係る処理を中止し、送受信部１０１ではＩＤフィールド以降の内容（データフィールド等）を受信せずに処理を終える（ステップＳ１０１２）。
【０１２８】
ステップＳ１０１１において、送受信部１０１が受信したメッセージのメッセージＩＤが、受信すべきＩＤであると判定した場合には、マスタＥＣＵ１００の判定部１０３は、受信したメッセージのメッセージＩＤ「０ｘ１０２」と外部ツール３０ａの公開鍵証明書４０ａに記載された更新権限情報のレベルとが、レベル情報保持部１０４に保持されているレベル情報１０４０におけるメッセージＩＤ１０４１とレベル１０４２との対応関係と合致するか否かにより、受信したメッセージが、許可される更新メッセージであるか否かを判定する（ステップＳ１０１３）。即ち、判定部１０３は、外部ツール３０ａによる更新メッセージの送信が外部ツール３０ａの権限範囲内であることを更新権限情報が示すか否かをレベル情報１０４０に基づいて判定する。受信したメッセージが許可される更新メッセージでなければエラー処理を行う（ステップＳ１０１４）。ステップＳ１０１４でのエラー処理により、更新メッセージに対応した更新は抑止される。ここでは、公開鍵証明書４０ａの更新権限情報のレベルが３である（図３参照）とすると、メッセージＩＤ「０ｘ１０２」の更新メッセージとの対応関係は、レベル情報１０４０が示す対応関係（図８参照）に合致するので、判定部１０３は、外部ツール３０ａから受信した更新メッセージが、許可される更新メッセージであると判定する。
【０１２９】
ステップＳ１０１３において、受信したメッセージの送信が外部ツール３０ａの権限範囲内であると判定した場合（つまり受信したメッセージが許可される更新メッセージであると判定した場合）には、判定部１０３は、フレーム生成部１２０へ転送用の更新メッセージを生成するよう指示する（ステップＳ１０１５）。これによりフレーム生成部１２０では、マスタＥＣＵ１００が外部ツール３０ａから受信した、元の更新メッセージに基づいて、バス５００ｂへの転送用（つまり他のＥＣＵへの転送用）に新たな更新メッセージ（フレーム）を生成する。例えば、マスタＥＣＵ１００が外部ツール３０ａとの通信に用いるセッション鍵と、他のＥＣＵ（少なくともバス５００ｂに接続された各ＥＣＵ）との通信に用いるセッション鍵とを異ならせている場合においては、フレーム生成部１２０は、元の更新メッセージに施された暗号処理が暗号化であれば復号を外部ツール３０ａとの通信用のセッション鍵を用いて行い、その処理の結果に他のＥＣＵとの通信に用いるセッション鍵を用いて暗号化を施すことで新たな更新メッセージを生成する。また、元の更新メッセージに施された暗号処理がＭＡＣの付加であれば、フレーム生成部１２０は、他のＥＣＵとの通信に用いるセッション鍵を用いてＭＡＣを生成して元の更新メッセージのＭＡＣを生成したＭＡＣで置き換えることで新たな更新メッセージを生成する。この場合において、元の更新メッセージのＭＡＣについて検証を行って検証に失敗した場合にエラー処理を行っても良い。また、例えば、マスタＥＣＵ１００が外部ツール３０ａとの通信に用いるセッション鍵と、他のＥＣＵとの通信に用いるセッション鍵とを同一にしている場合においては、フレーム生成部１２０は、元の更新メッセージと同一の新たな更新メッセージを生成する。
【０１３０】
ステップＳ１０１５に続いて、マスタＥＣＵ１００のフレーム生成部１２０が生成した更新メッセージをフレーム送受信部１６０がバス５００ｂに送出する（ステップＳ１０１６）。即ち、マスタＥＣＵ１００は、外部ツール３０ａから更新メッセージが送信された場合において、更新権限情報の検証（つまり公開鍵証明書の検証）が成功しており、かつ、更新メッセージの送信が外部ツール３０ａの権限範囲内であることを更新権限情報が示すときには、更新メッセージをバス５００ｂに転送する。なお、更新権限情報の検証が失敗していたとき、又は、更新メッセージの送信が外部ツール３０ａの権限範囲内であることを更新権限情報が示さないときには、更新メッセージのバス５００ｂへの転送は行われない。
【０１３１】
マスタＥＣＵ１００によりバス５００ｂに送出された更新メッセージは、ゲートウェイ３００によりバス５００ａ及びバス５００ｃに転送される。これにより、ＥＣＵ４００ａ〜４００ｆは、更新メッセージを受信可能になる。従って、あるメッセージＩＤの更新メッセージの送信が外部ツール３０ａの権限範囲内であることを更新権限情報が示すとマスタＥＣＵ１００が判定したときには、そのメッセージＩＤの更新メッセージを受信するように予め定められているＥＣＵにより、更新メッセージに対応した更新が実行され得る。
【０１３２】
ＥＣＵ４００ａ（図９参照）では、フレーム送受信部４６０により更新メッセージを受信し、フレーム解釈部４５０でそのメッセージの内容を解釈し、受信すべきＩＤがどうかを受信ＩＤ判断部４３０へ問い合わせる。受信ＩＤ判断部４３０は、受信ＩＤリスト保持部４４０が保持している受信ＩＤリストを参照し、受信したメッセージのＩＤフィールドの値が、受信すべきＩＤかどうかを判断する（ステップＳ１０１７）。受信ＩＤ判断部４３０が、ステップＳ１０１７において、フレーム送受信部４６０により受信されたメッセージのメッセージＩＤが、受信すべきＩＤでないと判定した場合には、フレーム解釈部４５０は、その受信されたメッセージに係る処理を中止し、フレーム送受信部４６０ではＩＤフィールド以降の内容を受信せずに処理を終える（ステップＳ１０１８）。
【０１３３】
受信ＩＤ判断部４３０が、ステップＳ１０１７において、フレーム送受信部４６０により受信されたメッセージのＩＤフィールドの値が、受信すべきＩＤであると判断した場合は、ＥＣＵ４００ａは、フレーム処理部４１０により、そのメッセージ（つまり更新メッセージ）に対応した処理（つまり共有鍵６０ｄの更新）を実行する（ステップＳ１０１９）。フレーム処理部４１０では、現在、鍵保持部４０２が保持している共有鍵６０ｄから、更新メッセージのデータフィールド内の鍵データを用いて鍵付きハッシュ関数により、更新後となる新たな共有鍵６０ｄを生成する。更新には必ずしも鍵付きハッシュ関数を利用する必要はなく、他の例としては、鍵のないハッシュ関数（一方向性関数）を用いて元の共有鍵を新たな共有鍵に更新することが挙げられる。なお、ＥＣＵ４００ａにおいて、更新メッセージに施された暗号処理（暗号化或いはＭＡＣ付加）に対応する処理（復号或いはＭＡＣ検証）を、セッション鍵を用いて行って更新メッセージの鍵データを取得する。
【０１３４】
ＥＣＵ４００ａは、共有鍵６０ｄの更新後に更新の結果を示すメッセージ（更新結果メッセージと称する）をマスタＥＣＵ１００に伝達されるようにバス５００ａに送出する（Ｓ１０２０）。なお、更新結果メッセージのメッセージＩＤは予め定められており、マスタＥＣＵ１００は更新結果メッセージのメッセージＩＤを受信ＩＤリスト保持部１４０のリストに保持している。更新結果メッセージは、例えば更新を完了した旨（つまり更新成功の旨）を示す。なお、更新に際してエラーが生じたような場合（例えば鍵データのＭＡＣ検証に失敗した場合等）には更新結果メッセージが更新失敗の旨を示すようにしても良い。更新結果メッセージは、ゲートウェイ３００によりバス５００ａからバス５００ｂに転送される。
【０１３５】
マスタＥＣＵ１００は、更新結果メッセージを受信すると、鍵保持部１０２が保持している共有鍵６０ｄ（図６参照）をＥＣＵ４００ａと同様の方法で更新する（ステップＳ１０２１）。なお、マスタＥＣＵ１００は、例えばＥＣＵ４００ａからの更新成功の旨を示す更新結果メッセージとＥＣＵ４００ｂからの更新成功の旨を示す更新結果メッセージとの両方を受けた場合に限って、鍵保持部１０２が保持している共有鍵６０ｄを更新するようにしても良い。
【０１３６】
マスタＥＣＵ１００は、ステップＳ１０２０において受信した更新結果メッセージを、バス５００ｄに送出することで診断ポート６００を介して外部ツール３０ａに送信する（ステップＳ１０２２）。これにより、外部ツール３０ａでは更新結果メッセージを受信して、車載ネットワークシステム１０において目的な更新が完了したこと等を知り、例えば更新の完了を利用者に報知（例えば外部ツール３０ａが表示装置を有していれば表示等）し得る。
【０１３７】
以上、外部ツール３０ａが、ＥＣＵ４００ａ、４００ｂ及びマスタＥＣＵ１００のそれぞれが保持する共有鍵６０ｄの更新用の更新メッセージを送信する例を示したが、他のＥＣＵが保持する共有鍵の更新用の更新メッセージを送信した場合、或いは、ＥＣＵ内のファームウェアの更新用の更新メッセージを送信した場合においても、各装置は同様の動作を行う。なお、外部ツール３０ａは認証要求を１度送信した後において、各更新メッセージを逐次送信しても良い。この場合には、ステップＳ１００１からステップＳ１００８までの処理が一度実行された後に、外部ツール３０ａが各更新メッセージを送信する毎に、ステップＳ１００９以降の処理が繰り返されるようになる。また、ＥＣＵ内のファームウェアの更新用の更新メッセージは、例えば更新後のファームウェアの内容を特定するための情報を含み、更新メッセージの対象となるＥＣＵでは、その更新後のファームウェアの内容を特定するための情報に基づいてファームウェアを書き換える。ファームウェアは、例えば、ＥＣＵ内のプログラム等のソフトウェア、プログラムで用いられるデータを含み、例えば、ＥＣＵ内のプロセッサにおけるマイクロコードを含み得る。またファームウェアは、例えばＥＣＵがＦＰＧＡ（Field Programmable Gate Array）等を含む場合において、回路構成用のデータを含み得る。また、ここでの説明では便宜上、共有鍵とファームウェアとは別々に扱ったが、ファームウェアが共有鍵を含むと扱っても良い。
【０１３８】
［１．１２  実施の形態１の効果］
実施の形態１に係る車載ネットワークシステム１０では、診断ポート６００に接続される外部ツール３０が特定のＥＣＵ内のデータを更新する更新メッセージの送信権限を有するか否か、つまり外部ツール３０が特定のＥＣＵ内のデータを更新する権限を有するか否かを、外部ツール３０に対して認定された権限を示す更新権限情報が示す、ＥＣＵの機能種別に対応して定められたレベルに基づいて、判定している。これにより、不正な外部ツールによるＥＣＵ内の共有鍵或いはファームウェアの更新を防ぐことができる。また。外部ツール毎に、例えば外部ツールの機密性、信頼性、外部ツールを扱う事業者の信頼性その他の各種事情に応じて、更新権限情報のレベルを異ならせて設定（及び認定）できる。レベルを変えた外部ツールを別々のメンテナンス業者等に対して配布することも可能となり、各種事情に応じて柔軟に更新権限を制限した運用が可能になる。例えば、機密性、信頼性等のセキュリティ確保が十分である外部ツールほど、高い権限のレベルを認定する等が可能となる。このように外部ツール毎に更新権限情報のレベルを設定できることは、外部ツールを用途等に応じて効率的に柔軟に設計及び製造するために、或いは、外部ツールの運用上のセキュリティ確保等を用途に応じて柔軟に行うために、有用となる。
【０１３９】
（実施の形態２）
以下、実施の形態１で示した車載ネットワークシステム１０を一部変形してなる車載ネットワークシステム１０ａについて説明する。
【０１４０】
実施の形態１に係る車載ネットワークシステム１０では、診断ポート６００に外部ツール３０が接続された場合においてマスタＥＣＵ１００が、外部ツール３０を認証して、外部ツール３０からの更新メッセージが、更新権限情報が示す権限（レベル）の範囲内である場合に限って、外部ツール３０にその更新メッセージでＥＣＵ内のデータを更新することを許可した。
【０１４１】
本実施の形態に係る車載ネットワークシステム１０ａでは、外部ツール３０の更新メッセージを許可するか否かの判定において、レベルだけでなく車載ネットワークシステム１０ａを搭載している車両の状態、及び、車両における電池の残量の状態を参照する。本実施の形態に係る車載ネットワークシステム１０ａの構成は概ね実施の形態１で示した車載ネットワークシステム１０（図１参照）と同様であり、以下、実施の形態１と同様のものについて同じ符号を用いる。
【０１４２】
［２．１  車載ネットワークシステム１０ａの全体構成］
図１３は、実施の形態２に係る車載ネットワークシステム１０ａの全体構成を示す図である。なお、同図には車載ネットワークシステム１０ａの他に、外部ツール３０が示されている。
【０１４３】
車載ネットワークシステム１０ａでは、車載ネットワークシステム１０（図１）に対して、蓄電池８００とＥＣＵ４００ｇとが追加されている。ここでは、実施の形態１と同様な構成要素の説明を省略する。
【０１４４】
ＥＣＵ４００ｇは、バス５００ｂと接続され、電池（蓄電池）８００の充放電に係る制御を行い、蓄電池８００の残量を取得して管理し、定期的に電池残量の状態を表すフレームをネットワーク（つまりバス５００ｂ）に送信している。
【０１４５】
蓄電池８００は、車載ネットワークシステム１０における各ＥＣＵへ電力を供給する。
【０１４６】
［２．２  レベル情報］
図１４は、実施の形態２におけるマスタＥＣＵ１００のレベル情報保持部１０４が保持するレベル情報２０４０の一例を示す図である。
【０１４７】
レベル情報２０４０は、メッセージＩＤ２０１４とレベル２０４２と電池残量条件２０４３と車両状態条件２０４４とを対応付けた情報であり、判定部１０３において外部ツール３０からの更新メッセージを許可するか否かの判定に用いられる。メッセージＩＤ２０４１及びレベル２０４２は、実施の形態１で示したメッセージＩＤ１０４１及びレベル１０４２と同様である。電池残量条件２０４３は、更新メッセージを許可するために必要とされる電池の残量の条件を示し、例えば、電池の残量が更新に足りる程度に十分な量に設定され、具体例としては満充電の充電量を１００％として充電５０％以上の残量及び充電８０％以上の残量のいずれかが設定される。また、車両状態条件２０４４は、更新メッセージを許可するために必要とされる車両状態の条件を示し、例えば停車状態（車両の速度がゼロとなっている状態）及びエンジンＯＦＦ状態（エンジン３１０を停止した状態）のいずれかが設定される。
【０１４８】
例えば、メッセージＩＤ「０ｘ１０４」の共有鍵の更新用の更新メッセージは、更新権限情報のレベルが１又はそれ以上で、蓄電池８００の電池残量が充電５０％以上で、且つ、車両状態が停車状態であるときに許可されることを示している。また、メッセージＩＤ「０ｘ２０１」のファームウェアの更新用の更新メッセージは、更新権限情報のレベルが４で、蓄電池８００の電池残量が充電８０％以上で、且つ、車両状態がエンジンＯＦＦ状態であるときに許可されることを示している。
【０１４９】
［２．３  共有鍵更新シーケンス］
以下、更新管理方法の一例として、外部ツール３０ａを診断ポート６００に接続して、外部ツール３０ａから車載ネットワークシステム１０ａにおけるＥＣＵが保持する共有鍵を更新させる場合の動作（共有鍵更新シーケンス）について、図１５及び図１６を用いて説明する。
【０１５０】
図１５及び図１６は、外部ツール３０ａとマスタＥＣＵ１００とＥＣＵ４００ａとの間で行われる共有鍵更新シーケンスの一例を示す図である。ここでは、便宜上、外部ツール３０の１つとしての外部ツール３０ａ、及び、ＥＣＵ４００ａ〜４００ｇのうちの１つであるＥＣＵ４００ａに注目して説明する。また、駆動系機能及びシャーシ系機能を有する各ＥＣＵが保持する共有鍵を更新するために外部ツール３０ａが用いられる場面を想定して説明する。具体的には、駆動系機能を有するＥＣＵ４００ａ及びシャーシ系機能を有するＥＣＵ４００ｂのそれぞれが保持する共有鍵６０ｄの更新のためのメッセージＩＤ「０ｘ１０２」が付された更新メッセージが外部ツール３０ａから車載ネットワークシステム１０へと送信されることになる。ＥＣＵ４００ｂの動作は、ＥＣＵ４００ａの動作と同様であるため、ここでは説明を省略する。また、ステップＳ２００１からステップＳ２０１２とステップＳ２０１４からステップＳ２０２２との処理は、実施の形態１で示したステップＳ１００１からステップＳ１０１２とステップＳ１０１４からステップＳ１０２２との処理（図１１及び図１２参照）と同等なので説明を省略し、ここでは、実施の形態１と異なるステップＳ２０１３ａ〜Ｓ２０１３ｃのみを説明する。
【０１５１】
ステップＳ２０１３ａでは、マスタＥＣＵ１００の判定部１０３は、受信したメッセージのメッセージＩＤ「０ｘ１０２」と外部ツール３０ａの公開鍵証明書４０ａに記載された更新権限情報のレベルとが、レベル情報保持部１０４に保持されているレベル情報２０４０におけるメッセージＩＤ２０４１とレベル２０４２との対応関係と合致するか否かにより、受信したメッセージが、適切な更新メッセージとして権限のレベルについての条件を満たすか否かを判定する。即ち、判定部１０３は、外部ツール３０ａによる更新メッセージの送信が外部ツール３０ａの権限範囲内であることを更新権限情報が示すか否かをレベル情報２０４０に基づいて判定する。受信したメッセージが権限のレベルについての条件を満たさない場合にはエラー処理を行う（ステップＳ２０１４）。ここでは、公開鍵証明書４０ａの更新権限情報のレベルが３である（図３参照）とすると、メッセージＩＤ「０ｘ１０２」の更新メッセージとの対応関係は、レベル情報２０４０が示す対応関係（図１４参照）に合致するので、判定部１０３は、外部ツール３０ａから受信した更新メッセージが、レベルの点で適切な更新メッセージであると判定し、次のステップＳ２０１３ｂへ処理を移す。
【０１５２】
ステップＳ２０１３ｂでは、判定部１０３は、蓄電池８００の電池残量が条件を満たすか否かをチェックする。蓄電池８００の電池残量を管理するＥＣＵ４００ｇが定期的に電池残量の状態を示すメッセージ（電池残量フレームと称する）を送信している場合において、マスタＥＣＵ１００は、ＥＣＵ４００ｇからの電池残量フレームをフレーム送受信部１６０で受信する。なお、マスタＥＣＵ１００の受信ＩＤリスト保持部１４０が保持する受信ＩＤリストには、ＥＣＵ４００ｇからの電池残量フレームのメッセージＩＤが含まれているものとする。判定部１０３は、ＥＣＵ４００ｇから受信した電池残量フレームが示す電池残量が、レベル情報保持部１０４に保持されているメッセージＩＤ２０４１に対応する電池残量条件２０４３を満たすか否かをチェックする。電池残量の条件が満たされていれば、次のステップＳ２０１３ｃへ処理を移す。電池残量の条件が満たされていない場合（つまりチェックの結果がＮＧである場合）には、エラー処理を行う（ステップＳ２０１４）。なお、ＥＣＵ４００ｇが定期的に電池残量の状態を示す電池残量フレームを送信しないこととしても良く、この場合には、ステップＳ２０１３ｂにおいてマスタＥＣＵ１００は、例えばＥＣＵ４００ｇに電池残量フレームの送信を依頼するフレームを送信することで、ＥＣＵ４００ｇから電池残量フレームを受信して、更新メッセージが受信された時（つまり現在）における電池残量の状態を取得しても良い。
【０１５３】
ステップＳ２０１３ｃでは、判定部１０３は、車両状態が条件を満たすか否かをチェックする。エンジン３１０に係るＥＣＵ４００ａがエンジン状態や車速等の車両状態情報を示すメッセージ（車両状態フレームと称する）を定期的に送信している場合において、マスタＥＣＵ１００は、ＥＣＵ４００ａからの車両状態フレームをフレーム送受信部１６０で受信する。なお、マスタＥＣＵ１００の受信ＩＤリスト保持部１４０が保持する受信ＩＤリストには、ＥＣＵ４００ａからの車両状態フレームのメッセージＩＤが含まれているものとする。判定部１０３は、ＥＣＵ４００ａから受信した車両状態フレームが示すエンジン状態、車速等の車両状態が、レベル情報保持部１０４に保持されているメッセージＩＤ２０４１に対応する車両状態条件２０４４を満たすか否かをチェックする。車両状態の条件が満たされていれば、判定部１０３は、外部ツール３０ａから受信した更新メッセージが許可されるものであると判定し、ステップＳ２０１５へと処理を移す。また、車両状態の条件が満たされていない場合（つまりチェックの結果がＮＧである場合）には、エラー処理を行う（ステップＳ２０１４）。なお、ＥＣＵ４００ａが定期的に車両状態フレームを送信しないこととしても良く、この場合には、ステップＳ２０１３ｃにおいてマスタＥＣＵ１００は、例えばＥＣＵ４００ａに車両状態フレームの送信を依頼するフレームを送信することで、ＥＣＵ４００ａから車両状態フレームを受信して、更新メッセージが受信された時（つまり現在）における車両状態を取得しても良い。
【０１５４】
［２．４  実施の形態２の効果］
実施の形態２に係る車載ネットワークシステム１０ａでは、外部ツール３０からの更新メッセージに係る処理（更新）を許可するか否かについて、権限のレベルだけでなく電池残量の状態及び車両状態がどのような場合に更新メッセージが送信されたかに応じて判定している。このため、実施の形態１に係る車載ネットワークシステム１０の効果に加え、次の効果を有する。即ち、電池残量を確認することで、ＥＣＵ内のデータ（共有鍵或いはファームウェア）の更新処理が途中で途切れることなく確実に完了させられる。また、車両状態を確認することで、例えば、車両の走行中等のＥＣＵの負荷が高くバストラフィックが増大するときに更新メッセージを転送して更新を行うことを回避でき、更新が成功する可能性を高められる。
【０１５５】
（実施の形態３）
本実施の形態では、実施の形態１に係る車載ネットワークシステム１０におけるマスタＥＣＵ１００を部分的に変形し、共有鍵の有効期限に係る報知を行えるようにした例について説明する。
【０１５６】
［３．１  マスタＥＣＵ（更新管理装置）１００ａの構成］
図１７は、マスタＥＣＵ１００ａの構成図である。マスタＥＣＵ１００ａは、実施の形態１で示したマスタＥＣＵ１００の構成要素に、共有鍵の有効期限をチェックするために、時刻情報取得部１８０と鍵更新確認部１９０とを加えた構成を有する。これらの各構成要素は、機能的な構成要素であり、その各機能は、マスタＥＣＵ１００ａにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。ここでは、実施の形態１で示した構成要素についての説明を省略する。
【０１５７】
時刻情報取得部１８０は、例えばリアルタイムクロック等の計時機構で構成され、現在時刻（つまり現在の日時）を取得して鍵更新確認部１９０に逐次通知する。
【０１５８】
鍵更新確認部１９０は、時刻情報取得部１８０から通知された現在時刻と、鍵保持部１０２が保持している共有鍵について予め定めている有効期限を確認し、予めアラート通知タイミングとして設定されているタイミングを過ぎた時点（つまり有効期限の一定期間前）に、鍵更新アラートメッセージを、フレーム生成部１２０に生成させてフレーム送受信部１６０から送信させる。
【０１５９】
図１８に、鍵保持部１０２が保持している共有鍵それぞれについて、共有鍵識別情報３３１０と有効期限３３１１とアラート通知タイミング３３１２とを対応付けた情報の一例を示す。共有鍵識別情報３３１０は、各共有鍵を区別する情報である。有効期限３３１１は、対応する共有鍵識別情報が指す共有鍵についてセキュリティの確保のために予め定められた有効期限を示す。アラート通知タイミング３３１２は、有効期限より先行して鍵更新を促すべきタイミングを示す。鍵更新確認部１９０は、この図１８に示す情報を参照する。例えば、共有鍵６０ａであれば、有効期限の３ヶ月前から鍵更新アラートメッセージを送信し、共有鍵６０ｄであれば、有効期限の１ヶ月前から鍵更新アラートメッセージを送信する。
【０１６０】
鍵更新アラートメッセージは、ヘッドユニット２００に接続されたＥＣＵ４００ｆにより受信される。ＥＣＵ４００ｆは、鍵更新アラートメッセージを受信すると、共有鍵の有効期限が近付いている旨等を示す、共有鍵の更新を促す警告情報（画面）をヘッドユニット２００の表示装置に表示する。
【０１６１】
［３．２  鍵更新アラートメッセージ］
図１９は、共有鍵の有効期限が近付いた場合に、ヘッドユニット２００の表示装置に表示される画面の一例を示す図である。
【０１６２】
図１９の例では、画面３３２０は、現在日時とＥＣＵの共有鍵の有効期限とを含み、更に、共有鍵の更新を行うためのメンテナンス業者（この例ではディーラー）の連絡先、そのウェブサイトのＵＲＬ（Uniform Resource Locator）を含む。また、画面３３２０は、ナビゲーションシステムにより目的地をディーラーの住所に設定する画面へ遷移するためのＧＵＩ（Graphical User Interface）のボタン３３２１を含む。なお、このディーラーの情報については、例えば販売時等において予めマスタＥＣＵ１００ａに登録されていても良いし、テレマティクス系機能を有するＥＣＵを介して取得しても良い。
【０１６３】
例えば、図１９に例示する画面３３２０を見た運転者が車両を運転して、ディーラー等のメンテナンス業者へ行けば、ディーラー等は、実施の形態１、２等で説明したように、外部ツール３０を用いて車載ネットワークシステムにおけるＥＣＵが保持する共有鍵の更新を実行させ得る。
【０１６４】
［３．３  実施の形態３の効果］
実施の形態３に係る車載ネットワークシステムにおいては、共有鍵の有効期限を管理し、有効期限が近付いた場合に、車両の運転者等に鍵更新を促すような警告情報（画面）をヘッドユニットの表示装置に表示する。これにより、ディーラー等でのメンテナンスを受けるべきことの警告等といった共有鍵に係るセキュリティを確保するための注意喚起が実現される。
【０１６５】
（実施の形態４）
本実施の形態では、実施の形態１に係る車載ネットワークシステム１０におけるマスタＥＣＵ１００を、更新結果メッセージに車両識別情報を付して外部ツール３０へ送信するように変形し、外部ツール３０がサーバ３５と通信するようにした例について説明する。
【０１６６】
［４．１  サーバ］
外部ツール３０と通信するサーバ３５は、車載ネットワークシステム１０が搭載される車両の外部に所在するコンピュータである。複数の車両それぞれに車載ネットワークシステム１０が搭載されていることを前提として、サーバ３５は、外部ツール３０が、どの車両（つまり車載ネットワークシステム）に対して、どのような更新（ＥＣＵ内のデータの更新）を行ったかを管理する。
【０１６７】
［４．２  共有鍵更新シーケンス］
以下、本実施の形態での更新管理方法の一例として、サーバ３５と通信する外部ツール３０ａを、ある車両の車載ネットワークシステム１０における診断ポート６００に接続して、外部ツール３０ａから車載ネットワークシステム１０におけるＥＣＵが保持する共有鍵を更新させる場合の動作（共有鍵更新シーケンス）について、図２０及び図２１を用いて説明する。
【０１６８】
図２０及び図２１は、サーバ３５と通信する外部ツール３０ａとマスタＥＣＵ１００とＥＣＵ４００ａとの間で行われる共有鍵更新シーケンスの一例を示す図である。ステップＳ３００１からステップＳ３０２１までの処理は、実施の形態１で示したステップＳ１００１からステップＳ１０２１までの処理（図１１及び図１２参照）と同等なので説明を省略し、ここでは、実施の形態１と異なるステップＳ３０００ａ、Ｓ３０００ｂ、Ｓ３０２２、Ｓ３０２３及びＳ３０２４のみを説明する。
【０１６９】
ステップＳ３０００ａでは、外部ツール３０ａは、サーバ３５に接続要求を出す。即ち外部ツール３０ａは、例えば予め登録されたＩＤ（例えばツールＩＤ）及びパスワードを用いたログイン要求をサーバ３５に送信する。
【０１７０】
ステップＳ３０００ｂでは、サーバ３５は、外部ツール３０ａからの接続要求を受け、ＩＤ及びパスワードが予め登録されている情報と一致すればログイン処理を行って正常応答を返信する。
【０１７１】
ステップＳ３０００ｂの後において、外部ツール３０ａ、マスタＥＣＵ１００及びＥＣＵ４００ａは、実施の形態１で説明した通りに共有鍵の更新に係る処理を行う。これにより、ステップＳ３０２０では、マスタＥＣＵ１００がＥＣＵ４００ａからの更新結果を示す更新結果メッセージを受信している。
【０１７２】
ステップＳ３０２２では、マスタＥＣＵ１００は、ＥＣＵ４００ａからの更新結果に加えて、車両識別情報を含めたメッセージである車両識別情報付き更新結果メッセージをバス５００ｄに送出することで診断ポート６００を介して外部ツール３０ａに送信する。これにより、外部ツール３０ａでは車両識別情報付き更新結果メッセージを受信する。車両識別情報は、この外部ツール３０ａが接続している車載ネットワークシステムを複数の車載ネットワークシステムの中で識別する情報であれば足り、例えばマスタＥＣＵ１００の公開鍵証明書４０ｃ（図３参照）等である。
【０１７３】
ステップＳ３０２３では、外部ツール３０ａは、受信した車両識別情報付き更新結果メッセージが示す車両識別情報及び更新結果をサーバ３５に送信する。
【０１７４】
ステップＳ３０２４では、サーバ３５は、受信した車両識別情報及び更新結果と、現在日時と、ログイン時に受信していたＩＤと対応付けてログ情報４０００として保存する。
【０１７５】
［４．３  診断ログ情報］
図２２は、サーバ３５が保存するログ情報４０００の一例を示す図である。ログ情報４０００は、車両識別情報４００１と、外部ツールＩＤ４００２と、更新メッセージのメッセージＩＤ４００３と、日時４００４と、更新結果４００５とを含む。
【０１７６】
［４．４  実施の形態４の効果］
本実施の形態では、サーバ３５が、ログ情報４０００を保存し、どの車両がどの外部ツールによって更新されたか等の情報が残るので、メンテナンス状況の把握が可能となる。また、不正な外部ツールが発見された場合にその外部ツールによる影響範囲の特定のためにログ情報４０００が利用できる。
【０１７７】
（他の実施の形態）
以上のように、本発明に係る技術の例示として実施の形態１〜４を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
【０１７８】
（１）上記実施の形態で示した共有鍵は、機能を分類する機能種別により共有範囲を区別している例を示したが、これに限定されることはなく、マスタＥＣＵとその他の１又は複数のＥＣＵとが共有鍵を持ち合う単位は、車載ネットワークシステムにおいて任意に定め得る。例えば、車内ネットワークを複数のドメインに分けてドメイン毎に共有鍵を設定しても良い。その場合、更新のために必要な権限のレベルとしてドメインを区別してレベル情報を設定しても良い。また、上記実施の形態では、外部ツール３０が、機能種別を踏まえて権限のレベルを設定された更新権限情報を含む公開鍵証明書を有する例を示したが、自動車メーカや車種に対応した更新の権限が設定された更新権限情報を含む公開鍵証明書を有しても良い。
【０１７９】
（２）上記実施の形態では、共有鍵の更新は、現在各ＥＣＵが保持している共有鍵から鍵付きハッシュ関数を利用して新たな共有鍵を生成することで行うこととしたが、外部ツール３０が新たな共有鍵自体を更新メッセージに含めて送信しても良い。この場合、共有鍵の値がＣＡＮの１フレーム内に収まらない場合は、複数フレームに分割して送信するようにしても良い。
【０１８０】
（３）上記実施の形態では、外部ツール３０からＥＣＵ内のデータ（共有鍵、ファームウェア等）を更新するための更新メッセージを送信する例を示したが、この他に故障診断用等のメッセージを送信し得る。更新メッセージ以外のメッセージについては、車載ネットワークシステム（例えばマスタＥＣＵ）において、レベル情報に基づく権限の判定を行うことなく、メッセージに対応した処理をすることとしても良い。更に、故障診断用等のメッセージを含む任意のメッセージについて、車載ネットワークシステム（例えばマスタＥＣＵ）においてそのメッセージの送信が外部ツール３０に認められた権限範囲内であるかを権限のレベルを示す権限情報に基づいて判定することとしても良い。
【０１８１】
（４）上記実施の形態では、権限のレベルを１から４に設定しているが、レベルは、４段階でなくても良く、それ以上、それ以下に設定するようにしても良い。
【０１８２】
（５）上記実施の形態で示した機能種別の分類の仕方は一例に過ぎず、例えばより詳細に細分化しても良い。機能種別を最も細かく分類して例えばＥＣＵ毎にＥＣＵ内のデータの更新に係る権限のレベルを設定しても良い。
【０１８３】
（６）実施の形態２では、電池残量条件２０４３として蓄電池８００の満充電に対する割合（パーセント）により区別する例を示したが、蓄電池８００の電圧等で区別しても良い。また、車両の外部に所在する外部電源から蓄電池８００へ充電中か否かを区別する条件を設定しても良い。これにより、例えば、一定の共有鍵、ファームウェアの更新を充電中に限って許可すること等が実現できる。
【０１８４】
（７）実施の形態３では、共有鍵の有効期限が近付いた場合に、鍵更新アラートメッセージに基づき鍵更新の有効期限が近付いている旨等を示す情報（画面）を表示する例を示したが、その情報を繰り返し或いは継続的に表示しても良いし、有効期限が切れた場合に警告を報知（表示等）するようにしても良い。
【０１８５】
（８）実施の形態３では、共有鍵の有効期限切れの確認のために、マスタＥＣＵ１００ａの時刻情報取得部１８０が計時機構で現在時刻を取得する例を示したが、ＷｉＦｉ（登録商標）、携帯電話のキャリア網から現在時刻を示す時刻情報を取得しても、ＧＰＳ（Global Positioning System）信号から時刻情報を取得しても良い。また、マスタＥＣＵ１００ａが、他のＥＣＵから時刻情報を取得しても良い。
【０１８６】
（９）上記実施の形態で示した外部ツール３０は、更新メッセージを、サーバから受信することで取得して、診断ポート６００を介してマスタＥＣＵに転送しても良い。
【０１８７】
（１０）上記実施の形態では、外部ツール３０とマスタＥＣＵとの間で認証を行っているが、ＯＢＤ２に準拠したコネクタ等である診断ポート６００に、認証を担う電子回路（例えばメモリ、プロセッサ等）等を付加し、診断ポート６００において外部ツール３０の認証を行うこととしても良い。この場合に診断ポート６００により外部ツール３０の認証が完了していれば、マスタＥＣＵは外部ツール３０の認証を省略し得る。なお、診断ポート６００により外部ツール３０の認証が完了していても上記実施の形態で示したように外部ツール３０とマスタＥＣＵとの間で認証を行っても良い。なお、診断ポート６００を、ＯＢＤ２に準拠したコネクタ等でなく、他のコネクタで実現しても良い。また、診断ポート６００を、無線通信回路を含めて実現することで外部ツール３０との間で無線通信により接続できるようにしても良い。
【０１８８】
（１１）実施の形態２では、更新メッセージを受信したときにマスタＥＣＵ１００が電池残量の状態及び車両状態をチェックする例を示したが、電池残量及び車両状態のいずれか一方のみをチェックすることとしても良い。また、更新権限情報が権限のレベルを示すのみならず、実施の形態２で示した電池残量条件、車両状態条件等といった更新権限についての条件をも示すこととしても良い。例えば、更新権限情報は、車両状態条件として車両の状態である停車状態、又は、エンジンを停止した状態を特定し、車両が、特定したその状態であるときに更新メッセージを送信することを少なくとも１つの条件としてＥＣＵに更新を行わせる権限を外部ツールが有することを表すこととしても良い。また、例えば、更新権限情報は、電池残量条件としてＥＣＵに電力を供給する電池の残量の状態を特定し、その電池が、特定したその電池残量を有する状態であるときに更新メッセージを送信することを少なくとも１つの条件としてＥＣＵに更新を行わせる権限を外部ツールが有することを表すこととしても良い。そして、例えば、マスタＥＣＵ１００は、レベル情報２０４０における電池残量条件２０４３及び車両状態条件２０４４の代わりに、更新権限情報が示す電池残量条件、車両状態条件に基づいてチェック（ステップＳ２０１３ｂ、Ｓ２０１３ｃ）を行うようにしても良い。これにより、外部ツールに対して、外部ツールの信頼性等に応じて、一定の条件を付した権限を認定して、その条件及び権限のレベルを示す更新権限情報を記載した公開鍵証明書を発行するような運用が可能になる。
【０１８９】
（１２）上記実施の形態では、ＣＡＮプロトコルにおけるデータフレームを標準ＩＤフォーマットで記述しているが、拡張ＩＤフォーマットで合っても良い。拡張ＩＤフォーマットの場合には、標準ＩＤフォーマットにおけるＩＤ位置のベースＩＤと、拡張ＩＤとを合わせて２９ビットでメッセージＩＤを表す。
【０１９０】
（１３）上記実施の形態では、外部ツール３０が接続される診断ポート６００とマスタＥＣＵとを繋ぐバス５００ｄには他のＥＣＵが接続されていない例を示したが、ＥＣＵを接続しても良い。但し、マスタＥＣＵ以外でバス５００ｄに接続されるＥＣＵはそのデータ（共有鍵、ファームウェア等）を、外部ツール３０（例えばマスタＥＣＵによる認証に成功してセッション鍵を得た外部ツール３０）が送信する更新メッセージにより更新され得る。このため、例えば、更新の権限のレベルとして最も低いレベルに対応する機能種別の機能を有するＥＣＵ等に限ってバス５００ｄに接続することが有用となる。
【０１９１】
（１４）上記実施の形態では、外部ツール３０が、認められた権限のレベルを超えてＥＣＵに更新を指示する更新メッセージを送信した場合にマスタＥＣＵが、その更新メッセージが、許可される更新メッセージであるか否かを判定し（ステップＳ１０１３）、許可される更新メッセージでなければエラー処理を行って（ステップＳ１０１４）、更新メッセージに対応した更新を抑止することとした。しかし、マスタＥＣＵ以外のＥＣＵ（例えば更新メッセージによる更新の指示対象となるＥＣＵ）が、外部ツール３０の更新権限情報に基づいて、更新を実行するか抑止するかを切り替えるようにしても良い。即ち、車載ネットワークシステムのいずれかのＥＣＵにおいて、外部ツール３０から更新メッセージが送信された場合において、更新権限情報の検証が成功し、かつ、更新メッセージの送信が外部ツール３０の権限範囲内であることを更新権限情報が示すときには、更新メッセージに対応して１つ又は複数のＥＣＵにより更新を実行し、その検証が失敗したとき、又は、更新メッセージの送信が外部ツール３０の権限範囲内であることを更新権限情報が示さないときには、１つ又は複数のＥＣＵによる更新メッセージに対応した更新を抑止するようにしても良い。なお、実施の形態で示したようにマスタＥＣＵが一括して更新メッセージの転送を行うか否かを切り替える方式は、効率面で有用である。また、ゲートウェイ３００で転送先のバスに接続されたＥＣＵの機能種別或いはそのＥＣＵが受信可能なメッセージＩＤを管理することとし、ゲートウェイ３００が、更新メッセージを受信した場合に、転送先のバスに接続されたＥＣＵの機能種別或いはそのＥＣＵが受信可能なメッセージＩＤに基づいて、不要な更新メッセージの転送を行わないようにしても良い。
【０１９２】
（１５）上記実施の形態で示したマスタＥＣＵ１００、１００ａ、ＥＣＵ４００ａ等の機能構成は、一例に過ぎず、上述した機能構成とは異なる機能分割を行っても良い。例えば、マスタＥＣＵ１００、１００ａは、送受信部１０１の受信機能に相当する受信部、判定部１０３における公開鍵証明書（更新権限情報を含む公開鍵証明書）の検証を担当する検証部、判定部１０３の一部とフレーム生成部１２０の一部とフレーム送受信部１６０の一部とに相当して更新メッセージの送信に係る制御を行う転送部とを含むこととしても良い。この場合に、例えば、受信部は、診断ポート６００に接続された外部ツール３０から診断ポート６００を介して送信される、外部ツール３０の権限を示す更新権限情報、及び、１つ又は複数のＥＣＵが保持するデータの更新を指示する更新メッセージを受信する機能を担う。また、検証部は、受信部により受信された更新権限情報を検証する機能を担う。また、転送部は、受信部により更新メッセージが受信された場合において、検証部による検証が成功し、かつ、更新メッセージの送信が外部ツール３０の権限範囲内であることを更新権限情報が示すときには、更新メッセージをバス５００ｂに転送し、検証部による検証が失敗したとき、又は、更新メッセージの送信が外部ツール３０の権限範囲内であることを更新権限情報が示さないときには、転送を抑止する機能を担う。また、プロセッサを有するマスタＥＣＵ１００、１００ａにおいてプロセッサに実行される制御プログラムは、マスタＥＣＵ１００、１００ａに例えば次の所定の更新管理処理を実行させるためのプログラムであっても良い。所定の更新管理処理は、診断ポートに接続された外部ツールから診断ポートを介して送信される、その外部ツールの権限を示す更新権限情報を受信する更新権限情報受信ステップと、更新権限情報受信ステップにおいて受信された更新権限情報を検証する検証ステップと、外部ツールから診断ポートを介して送信される更新メッセージを受信する更新メッセージ受信ステップと、更新メッセージ受信ステップで更新メッセージが受信された場合において、検証ステップでの検証が成功しており、かつ、その更新メッセージの送信が外部ツールの権限範囲内であることを更新権限情報が示すときには、更新メッセージをＥＣＵとの通信用のバスに転送し、検証ステップでの検証が失敗したとき、又は、その更新メッセージの送信が外部ツールの権限範囲内であることを更新権限情報が示さないときには、転送を抑止する転送制御ステップとを含む。
【０１９３】
（１６）上記実施の形態におけるマスタＥＣＵ及び他のＥＣＵは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア（デジタル回路等）によりその機能を実現することとしても良い。
【０１９４】
（１７）上記実施の形態における各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしても良い。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等を含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全部を含むように１チップ化されても良い。また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡや、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【０１９５】
（１８）上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしても良い。前記ＩＣカード又は前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等から構成されるコンピュータシステムである。前記ＩＣカード又は前記モジュールは、上記の超多機能ＬＳＩを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカード又は前記モジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしても良い。
【０１９６】
（１９）本発明の一態様としては、上記に示す共有鍵更新シーケンス等の更新管理方法であるとしても良い。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Blu-ray（登録商標） Disc）、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【０１９７】
（２０）上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。
【産業上の利用可能性】
【０１９８】
本発明は、車載ネットワークにおいて外部ツールからのＥＣＵのファームウェア等の更新を管理して、不正な書き換え等のリスクを軽減するために利用可能である。
【符号の説明】
【０１９９】
１０，１０ａ  車載ネットワークシステム
２０  鍵発行機関
２１  メーカ
３０，３０ａ，３０ｂ  外部ツール
３５  サーバ
１０１  送受信部
１０２，４０２  鍵保持部
１０３  判定部
１０４  レベル情報保持部
１１０，４１０  フレーム処理部
１２０，４２０  フレーム生成部
１３０，４３０  受信ＩＤ判断部
１４０，４４０  受信ＩＤリスト保持部
１５０，４５０  フレーム解釈部
１６０，４６０  フレーム送受信部
１８０  時刻情報取得部
１９０  鍵更新確認部
２００  ヘッドユニット
３００  ゲートウェイ
３１０  エンジン
３２０  ブレーキ
３３０  ドア開閉センサ
３４０  窓開閉センサ
３５０  エアバッグ
４７０  データ取得部
５００ａ〜５００ｄ  バス
６００  診断ポート
８００  蓄電池
【図１】
2020048203.tif 000003
【図２】
2020048203.tif 000004
【図３】
2020048203.tif 000005
【図４】
2020048203.tif 000006
【図５】
2020048203.tif 000007
【図６】
2020048203.tif 000008
【図７】
2020048203.tif 000009
【図８】
2020048203.tif 000010
【図９】
2020048203.tif 000011
【図１０】
2020048203.tif 000012
【図１１】
2020048203.tif 000013
【図１２】
2020048203.tif 000014
【図１３】
2020048203.tif 000015
【図１４】
2020048203.tif 000016
【図１５】
2020048203.tif 000017
【図１６】
2020048203.tif 000018
【図１７】
2020048203.tif 000019
【図１８】
2020048203.tif 000020
【図１９】
2020048203.tif 000021
【図２０】
2020048203.tif 000022
【図２１】
2020048203.tif 000023
【図２２】
2020048203.tif 000024