(57)【要約】【課題】ＥＣＵの交換が容易に行えるような車両システムの認証処理を提供する。【解決手段】マスタＥＣＵと一般ＥＣＵとから構成される車両システムであって、マスタＥＣＵは、マスタＥＣＵ秘密鍵と一般ＥＣＵ公開鍵を備え、一般ＥＣＵは、一般ＥＣＵ秘密鍵と、マスタＥＣＵ電子証明書を備える。電子証明書には対応するＥＣＵに関する所定データ（例えばプログラムのダイジェスト値）が含まれる。一般ＥＣＵは、所定データを含む送信データに電子署名を付してマスタＥＣＵに送信し、マスタＥＣＵは、電子署名と所定データの検証を行い、正しければ一般ＥＣＵが正当であると判断する。マスタＥＣＵは、マスタＥＣＵの所定データおよびセッション鍵を含む送信データに電子署名を付して一般ＥＣＵに送信し、一般ＥＣＵは、電子署名と所定データの検証を行い、正しければ送信データに含まれるセッション鍵を今後の通信の際の共通鍵として用いる。【選択図】図３
2017079369.tif 000002
【特許請求の範囲】
【請求項１】
マスタＥＣＵと一般ＥＣＵとから構成される車両システムであって、
マスタＥＣＵは、
当該マスタＥＣＵの秘密鍵（マスタＥＣＵ秘密鍵）と、
前記一般ＥＣＵの公開鍵（一般ＥＣＵ公開鍵）に対応する電子証明書（一般ＥＣＵ電子証明書）であって、前記一般ＥＣＵに関する所定データを含む電子証明書と、
を備え、
一般ＥＣＵは、
当該一般ＥＣＵの秘密鍵（一般ＥＣＵ秘密鍵）と、
前記マスタＥＣＵの公開鍵（マスタＥＣＵ公開鍵）に対応する電子証明書（マスタＥＣＵ電子証明書）であって、前記マスタＥＣＵに関する所定データを含む電子証明書と、
を備え、
前記一般ＥＣＵは、当該一般ＥＣＵの所定データを含む送信データに対して前記一般ＥＣＵ秘密鍵による電子署名を付して、前記マスタＥＣＵに送信し、
前記マスタＥＣＵは、前記一般ＥＣＵから送信された電子署名付きの送信データを前記一般ＥＣＵ電子証明書を用いて検証し、かつ、当該送信データに含まれる前記所定データが前記一般ＥＣＵ電子証明書に含まれるものと一致するかを検証し、いずれも正しいと判断されたときに、前記一般ＥＣＵが正当であると判断し、
前記マスタＥＣＵは、当該マスタＥＣＵの所定データおよびセッション鍵を含む送信データに対して前記マスタＥＣＵ秘密鍵による電子署名を付して、前記一般ＥＣＵに送信し、
前記一般ＥＣＵは、前記マスタＥＣＵから送信された電子署名付きの送信データを前記マスタＥＣＵ電子証明書を用いて検証し、かつ、当該送信データに含まれる前記所定データが前記マスタＥＣＵ電子証明書に含まれるものと一致するかを検証し、いずれも正しいと判断された場合に、前記マスタＥＣＵが正当であると判断して前記送信データに含まれるセッション鍵を今後の通信の際の共通鍵として用いる、
車両システム。
【請求項２】
前記一般ＥＣＵは複数存在し、
前記マスタＥＣＵは、それぞれの一般ＥＣＵに対応する一般ＥＣＵ電子証明書を備えており、
前記マスタＥＣＵは、それぞれの一般ＥＣＵに対して同一の鍵をセッション鍵として送信し、
前記一般ＥＣＵは、前記マスタＥＣＵおよび他の一般ＥＣＵとの間の通信に、前記セッション鍵を共通鍵として用いる、
請求項１に記載の車両システム。
【請求項３】
前記一般ＥＣＵに関する所定データは、当該一般ＥＣＵの実行プログラムの正しいダイジェスト値であり、
前記マスタＥＣＵに関する所定データは、当該マスタＥＣＵの実行プログラムの正しいダイジェスト値であり、
前記一般ＥＣＵおよび前記マスタＥＣＵは、実行プログラムのダイジェスト値を算出して、当該ダイジェスト値を含む送信データに電子署名を付して送信する、
請求項１または２に記載の車両システム。
【請求項４】
前記一般ＥＣＵに関する所定データは、当該一般ＥＣＵのＩＤであり、
前記マスタＥＣＵに関する所定データは、当該マスタＥＣＵのＩＤであり、
前記一般ＥＣＵおよび前記マスタＥＣＵは、セキュアブートを用いて実行プログラムの完全性を確認した後に、ＩＤを含む送信データに電子署名を付して送信する、
請求項１または２に記載の車両システム。
【請求項５】
前記マスタＥＣＵおよび前記一般ＥＣＵは、ルート認証局の公開鍵であるルート公開鍵を書き替え不可能なメモリに記憶する、
請求項１から４のいずれか１項に記載の車両システム。
【請求項６】
前記マスタＥＣＵおよび前記一般ＥＣＵは、ルート認証局の公開鍵であるルート公開鍵を書き替え可能なメモリに記憶し、当該書き替え可能なメモリにルート公開鍵を記憶する際に、当該ルート公開鍵に前記マスタＥＣＵ秘密鍵または前記一般ＥＣＵ秘密鍵を用いて電子署名を関連づけて記憶する、
請求項１から４のいずれか１項に記載の車両システム。
【請求項７】
前記マスタＥＣＵが前記マスタＥＣＵ電子証明書を有しており、
前記一般ＥＣＵが前記一般ＥＣＵ電子証明書を有しており、
前記一般ＥＣＵが前記マスタＥＣＵ電子証明書を有していない場合には、前記一般ＥＣＵは、前記電子署名を付した送信データとともに、前記一般ＥＣＵ電子証明書を前記マスタＥＣＵに送信し、
前記マスタＥＣＵは、ルート公開鍵を用いて前記一般ＥＣＵ電子証明書を用いて検証し、前記一般ＥＣＵ電子証明書が正当である場合に、前記一般ＥＣＵ電子証明書を記憶し、
前記マスタＥＣＵが前記一般ＥＣＵ電子証明書を有していない場合には、前記マスタＥＣＵは、前記電子署名を付した送信データとともに、前記マスタＥＣＵ電子証明書を前記一般ＥＣＵに送信し、
前記一般ＥＣＵは、ルート公開鍵を用いて前記マスタＥＣＵ電子証明書を用いて検証し、前記マスタＥＣＵ電子証明書が正当である場合に、前記マスタＥＣＵ電子証明書を記憶する、
請求項１から６のいずれか１項に記載の車両システム。
【請求項８】
マスタＥＣＵと一般ＥＣＵとから構成される車両システムにおける認証方法であって、
マスタＥＣＵは、
当該マスタＥＣＵの秘密鍵（マスタＥＣＵ秘密鍵）と、
前記一般ＥＣＵの公開鍵（一般ＥＣＵ公開鍵）に対応する電子証明書（一般ＥＣＵ電子証明書）であって、前記一般ＥＣＵに関する所定データを含む電子証明書と、
を備え、
一般ＥＣＵは、
当該一般ＥＣＵの秘密鍵（一般ＥＣＵ秘密鍵）と、
前記マスタＥＣＵの公開鍵（マスタＥＣＵ公開鍵）に対応する電子証明書（マスタＥＣＵ電子証明書）であって、前記マスタＥＣＵに関する所定データを含む電子証明書と、
を備え、
前記一般ＥＣＵは、当該一般ＥＣＵの所定データを含む送信データに対して前記一般ＥＣＵ秘密鍵による電子署名を付して、前記マスタＥＣＵに送信し、
前記マスタＥＣＵは、前記一般ＥＣＵから送信された電子署名付きの送信データを前記一般ＥＣＵ電子証明書を用いて検証し、かつ、当該送信データに含まれる前記所定データが前記一般ＥＣＵ電子証明書に含まれるものと一致するかを検証し、いずれも正しいと判断されたときに、前記一般ＥＣＵが正当であると判断し、
前記マスタＥＣＵは、当該マスタＥＣＵの所定データおよびセッション鍵を含む送信データに対して前記マスタＥＣＵ秘密鍵による電子署名を付して、前記一般ＥＣＵに送信し、
前記一般ＥＣＵは、前記マスタＥＣＵから送信された電子署名付きの送信データを前記マスタＥＣＵ電子証明書を用いて検証し、かつ、当該送信データに含まれる前記所定データが前記マスタＥＣＵ電子証明書に含まれるものと一致するかを検証し、いずれも正しい
と判断された場合に、前記マスタＥＣＵが正当であると判断して前記送信データに含まれるセッション鍵を今後の通信の際の共通鍵として用いる、
ことを特徴とする、認証方法。
【請求項９】
前記一般ＥＣＵは複数存在し、
前記マスタＥＣＵは、それぞれの一般ＥＣＵに対応する一般ＥＣＵ電子証明書を備えており、
前記マスタＥＣＵは、それぞれの一般ＥＣＵに対して同一の鍵をセッション鍵として送信し、
前記一般ＥＣＵは、前記マスタＥＣＵおよび他の一般ＥＣＵとの間の通信に、前記セッション鍵を共通鍵として用いる、
請求項８に記載の認証方法。
【請求項１０】
前記一般ＥＣＵに関する所定データは、当該一般ＥＣＵの実行プログラムの正しいダイジェスト値であり、
前記マスタＥＣＵに関する所定データは、当該マスタＥＣＵの実行プログラムの正しいダイジェスト値であり、
前記一般ＥＣＵおよび前記マスタＥＣＵは、実行プログラムのダイジェスト値を算出して、当該ダイジェスト値を含む送信データに電子署名を付して送信する、
請求項８または９に記載の認証方法。
【請求項１１】
前記一般ＥＣＵに関する所定データは、当該一般ＥＣＵのＩＤであり、
前記マスタＥＣＵに関する所定データは、当該マスタＥＣＵのＩＤであり、
前記一般ＥＣＵおよび前記マスタＥＣＵは、セキュアブートを用いて実行プログラムの完全性を確認した後に、ＩＤを含む送信データに電子署名を付して送信する、
請求項８または９に記載の認証方法。
【請求項１２】
前記マスタＥＣＵが前記マスタＥＣＵ電子証明書を有しており、
前記一般ＥＣＵが前記一般ＥＣＵ電子証明書を有しており、
前記一般ＥＣＵが前記マスタＥＣＵ電子証明書を有していない場合には、前記一般ＥＣＵは、前記電子署名を付した送信データとともに、前記一般ＥＣＵ電子証明書を前記マスタＥＣＵに送信し、
前記マスタＥＣＵは、ルート公開鍵を用いて前記一般ＥＣＵ電子証明書を用いて検証し、前記一般ＥＣＵ電子証明書が正当である場合に、前記一般ＥＣＵ電子証明書を記憶し、
前記マスタＥＣＵが前記一般ＥＣＵ電子証明書を有していない場合には、前記マスタＥＣＵは、前記電子署名を付した送信データとともに、前記マスタＥＣＵ電子証明書を前記一般ＥＣＵに送信し、
前記一般ＥＣＵは、ルート公開鍵を用いて前記マスタＥＣＵ電子証明書を用いて検証し、前記マスタＥＣＵ電子証明書が正当である場合に、前記マスタＥＣＵ電子証明書を記憶する、
請求項８から１１のいずれか１項に記載の認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＥＣＵを有する車両システムにおけるＥＣＵ間の認証に関する。
【背景技術】
【０００２】
近年、車両に搭載されるコンピュータ（ＥＣＵ（Electronic Control Unit））の数が
増加し、ＥＣＵ間で連携をとって高度な制御が行われている。このような車両ネットワークシステムに対して、不正データの混入、ＥＣＵプログラムの不正な書き換え、不正ＥＣＵへの置換、不正ＥＣＵの追加などの攻撃が考えられる。
【０００３】
このような攻撃に対する対策として、ＡＵＴＯＳＡＲ規格では共通鍵を利用したメッセージ認証が提案されている。例えば、エンジン起動時に共通鍵を用いたチャレンジレスポンス認証を行い、認証に成功したらセッション鍵を配布する。以降は、メッセージ送信時にこのセッション鍵を用いたメッセージ認証コード（ＭＡＣ）によるメッセージ認証を行う。
【０００４】
また、特許文献１は、アドホックネットワークＩＤと、当該ＩＤにより特定されるアドホックネットワークから除外される特定のデバイスを指定する排除リストと、認証局によって生成された装置証明書とを記憶したデバイスが、互いに装置証明書を交換してアドホックネットワークに構成できるデバイスであるかどうかを確認して、有効なデバイス同士でアドホックネットワークを構成することを開示する。この際、排除リストに登録されたデバイスとは相互認証を実施しないことで、排除リストに登録されたデバイスのネットワークへの参加を回避する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−０７４３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＡＵＴＯＳＡＲのように共通鍵を用いた認証では、共通鍵を事前に配布する必要があるため、特にＥＣＵ故障交換時においてどのように共通鍵を新しいＥＣＵに導入するかが問題となる。あらかじめ共通鍵が導入されたＥＣＵを用意しておくことも考えられるが、そうすると膨大な量の交換用ＥＣＵをあらかじめ用意する必要がある。また、後から共通鍵を書き換え可能な仕組みを採用すると、そこがセキュリティホールとなり得る。
【０００７】
特許文献１に記載の手法では、排除リストを用いてネットワークに参加できないデバイスを特定しているため、排除リストを随時変更する必要がある。排除リストの更新が間に合わないと、ネットワークに参加すべきでない不正なデバイスがネットワークに参加してしまう。
【０００８】
本発明は上記の問題点を考慮してなされたものであり、ＥＣＵの交換時においても容易に適用可能な、車両システム内の認証技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第一の態様は、マスタＥＣＵと一般ＥＣＵとから構成される車両システムであって、公開鍵暗号方式を用いてマスタＥＣＵと一般ＥＣＵが相互認証を行う。この際、電子証明書の中にＥＣＵに関する所定データを含ませることでＥＣＵの正当性の検証を行う
。
【００１０】
本態様において、マスタＥＣＵは、当該マスタＥＣＵの秘密鍵（マスタＥＣＵ秘密鍵）と、前記一般ＥＣＵの公開鍵（一般ＥＣＵ公開鍵）に対応する電子証明書（一般ＥＣＵ電子証明書）を備える。当該一般ＥＣＵ電子証明書には、前記一般ＥＣＵに関する所定データが含まれる。また、一般ＥＣＵは、当該一般ＥＣＵの秘密鍵（一般ＥＣＵ秘密鍵）と、前記マスタＥＣＵの公開鍵（マスタＥＣＵ公開鍵）に対応する電子証明書（マスタＥＣＵ電子証明書）を備える。当該マスタＥＣＵ電子証明書には、前記マスタＥＣＵに関する所定データが含まれる。
【００１１】
前記一般ＥＣＵは、当該一般ＥＣＵの所定データを含む送信データに対して前記一般ＥＣＵ秘密鍵による電子署名を付して、前記マスタＥＣＵに送信する。
【００１２】
前記マスタＥＣＵは、前記一般ＥＣＵから送信された電子署名付きの送信データを前記一般ＥＣＵ電子証明書を用いて検証し、かつ、当該送信データに含まれる前記所定データを前記一般ＥＣＵ電子証明書に含まれるものと一致するかを検証し、いずれも正しいと判断されたときに、前記一般ＥＣＵが正当であると判断する。
【００１３】
電子署名の検証が成功することにより、送信データの送信元とデータの内容が正しいことがわかる。すわなち、なりすましや改ざんが行われていないことが分かる。また、送信された所定データが、電子証明書内に格納されたものと一致することで一般ＥＣＵのプログラムが改ざんされていないことが分かる。
【００１４】
そして、前記マスタＥＣＵは、前記一般ＥＣＵの正当性が確認された後に、当該マスタＥＣＵの所定データおよびセッション鍵を含む送信データに対して前記マスタＥＣＵ秘密鍵による電子署名を付して、前記一般ＥＣＵに送信する。セッション鍵を送信する際には送信先の一般ＥＣＵのみが読み取れるように暗号化して送信するとよい。具体的には、一般ＥＣＵの公開鍵を用いて暗号化して送信するよい。このセッション鍵は、相互認証の完了後において、マスタＥＣＵと一般ＥＣＵの間の通信の際に共通鍵として用いられるものである。
【００１５】
前記一般ＥＣＵは、前記マスタＥＣＵから送信された電子署名付きの送信データを前記マスタＥＣＵ電子証明書を用いて検証し、かつ、当該送信データに含まれる前記所定データが前記マスタＥＣＵ電子証明書に含まれるものと一致するかを検証し、いずれも正しいと判断された時に、前記マスタＥＣＵが正当であると判断する。この処理は、マスタＥＣＵによる一般ＥＣＵの正当性検証と同様である。マスタＥＣＵの正当性が確認できた場合には、一般ＥＣＵは、前記マスタＥＣＵが正当であると判断して前記送信データに含まれるセッション鍵を今後の通信の際の共通鍵として用いる。
【００１６】
このようにすれば、マスタＥＣＵと一般ＥＣＵが相互認証を行って、セッション鍵（共通鍵）の交換を行ってその後の通信に利用することができる。ここで、本態様においては、公開鍵暗号方式を利用しており、マスタＥＣＵおよび一般ＥＣＵには、電子証明書を格納している。電子証明書自体は秘匿化する必要がない情報であるため、通常のメモリに格納することができる。したがって、ＥＣＵの交換の際には他のＥＣＵに格納されている当該交換対象のＥＣＵについての電子証明書を更新すれば良いだけなので、ＥＣＵの交換が容易である。言い換えると、交換用のＥＣＵを過剰に用意する必要もないし、ＥＣＵの交換のためにセキュリティホールとなるような仕組みを導入する必要もない。
【００１７】
本態様において、前記一般ＥＣＵは複数存在し、前記マスタＥＣＵは、それぞれの一般ＥＣＵに対応する一般ＥＣＵ電子証明書を備えており、前記マスタＥＣＵは、それぞれの
一般ＥＣＵに対して同一の鍵をセッション鍵として送信し、前記一般ＥＣＵは、前記マスタＥＣＵおよび他の一般ＥＣＵとの間の通信に、前記セッション鍵を共通鍵として用いる、ことも好ましい。
【００１８】
このようにすれば、それぞれの一般ＥＣＵはマスタＥＣＵとの間で相互認証を行うだけで、セッション鍵を共有できる。すなわち、それぞれの一般ＥＣＵはマスタＥＣＵとの認証を介して互いの認証を行える。
【００１９】
本態様において、前記一般ＥＣＵに関する所定データは、当該一般ＥＣＵの実行プログラムの正しいダイジェスト値（ハッシュ値）とすることができる。この場合、前記一般ＥＣＵは、実行プログラムのダイジェスト値を算出して、当該ダイジェスト値を含む送信データに対して前記一般ＥＣＵ秘密鍵による電子署名を付して、前記マスタＥＣＵに送信する、とよい。
【００２０】
このようにすれば、一般ＥＣＵのプログラムが改ざんされた場合には、送信データに含まれるダイジェスト値と電子証明書に含まれるダイジェスト値が一致せず、マスタＥＣＵは一般ＥＣＵの実行プログラムが改ざんされたことを検知できる。
【００２１】
また、本態様において、前記一般ＥＣＵに関する所定データは、当該一般ＥＣＵのＩＤ（一意に識別可能なデータ）とすることもできる。この場合、前記一般ＥＣＵは、セキュアブートを用いて実行プログラムの完全性を確認した後に、当該一般ＥＣＵのＩＤを含む送信データに対して前記一般ＥＣＵ秘密鍵による電子署名を付して、前記マスタＥＣＵに送信する、とよい。
【００２２】
このように、一般ＥＣＵがセキュアブートを用いて実行プログラムが改ざんされていない事を確認してから一般ＥＣＵのＩＤを送信することによっても、一般ＥＣＵの実行プログラムの完全性を担保することができる。
【００２３】
本態様においては、電子証明書を利用しているので、各ＥＣＵはルート認証局の公開鍵であるルート公開鍵を記憶する。ここで、各ＥＣＵはルート公開鍵を、書き換え不可能なメモリに記憶しても良いし、書き換え可能なメモリに記憶しても良い。ルート公開鍵の更新が不要な場合には、書き替え不可能なメモリに記憶すると良い。一方、ルート公開鍵の更新が必要となる場合には、書き換え可能なメモリに記憶する必要がある。この場合は、ルート公開鍵の改ざんを防止するために、自装置の秘密鍵（マスタＥＣＵ秘密鍵または一般ＥＣＵ秘密鍵）を用いて電子署名を作成して関連づけて記憶すると良い。
【００２４】
本態様において、マスタＥＣＵがあらかじめ一般ＥＣＵ電子証明書を備えたり、一般ＥＣＵがあらかじめマスタＥＣＵ電子証明書を備えていなくてもよく、相互認証処理において電子証明書を配布するようにしてもよい。この場合、マスタＥＣＵはマスタＥＣＵ電子証明書をあらかじめ備えており、一般ＥＣＵは一般ＥＣＵ電子証明書を予め備えている必要がある。具体的には、前記一般ＥＣＵが前記マスタＥＣＵ電子証明書を有していない場合には、前記一般ＥＣＵは、前記電子署名を付した送信データとともに、前記一般ＥＣＵ電子証明書を前記マスタＥＣＵに送信し、前記マスタＥＣＵは、ルート公開鍵を用いて前記一般ＥＣＵ電子証明書を用いて検証し、前記一般ＥＣＵ電子証明書が正当である場合に、前記一般ＥＣＵ電子証明書を記憶する。また、前記マスタＥＣＵが前記一般ＥＣＵ電子証明書を有していない場合には、前記マスタＥＣＵは、前記電子署名を付した送信データとともに、前記マスタＥＣＵ電子証明書を前記一般ＥＣＵに送信し、前記一般ＥＣＵは、ルート公開鍵を用いて前記マスタＥＣＵ電子証明書を用いて検証し、前記マスタＥＣＵ電子証明書が正当である場合に、前記マスタＥＣＵ電子証明書を記憶する。
【００２５】
このような構成によれば、車両システム内の各ＥＣＵが他のＥＣＵの電子証明書をあらかじめ保有していなくてもＥＣＵ間の相互認証が可能となる。したがって、ＥＣＵ交換時に、他のＥＣＵの電子証明書を更新する作業を省略することが可能となる。
【００２６】
なお、本発明は、上記手段の少なくとも一部を含む車両システムとして捉えることもできる。本発明は、上記手段の少なくとも一部が実行する車両システムにおける認証方法として捉えることもできる。また、本発明は、この方法をコンピュータに実行させるためのコンピュータプログラム、あるいはこのコンピュータプログラムを非一時的に記憶したコンピュータ可読記憶媒体として捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００２７】
本発明によれば、車両システム内の認証処理を、ＥＣＵの交換時においても容易に適用可能とすることができる。
【図面の簡単な説明】
【００２８】
【図１】図１は第１の実施形態におけるシステム概要図である。
【図２】図２は第１の実施形態における電子証明書のフォーマットを示す図である。
【図３】図３は第１の実施形態にＥＣＵの相互認証処理の流れを示すフローチャートである。
【図４】図４Ａは第１の実施形態における車両組み立て時の電子証明書の作成・配布方法を説明する図であり、図４Ｂは交換用ＥＣＵの出荷時の電子証明書の作成・配布方法を説明する図である。
【図５】図５は第２の実施形態における電子証明書のフォーマットを示す図である。
【図６】図６は第２の実施形態にＥＣＵの相互認証処理の流れを示すフローチャートである。
【図７】図７Ａは第３の実施形態にかかる交換用ＥＣＵの構成を示し、図７Ｂは第３の実施形態におけるＥＣＵの相互認証処理の流れを示すフローチャートである。
【図８】図８は変形例におけるＥＣＵの機能構成を示す図である。
【発明を実施するための形態】
【００２９】
（第１の実施形態）
＜構成＞
第１の実施形態にかかる車両システムについて、図１を参照しながら説明する。車両システムは、ＣＡＮバスシステムに接続された複数のコンピュータ（ＥＣＵ）から構成される。図１では、マスタＥＣＵ（１００ｍ）、一般ＥＣＵａ（１００ａ）、一般ＥＣＵｂ（１００ｂ）、一般ＥＣＵｃ（１００ｃ）の４つのＥＣＵが接続されているが、車両システムにおけるＥＣＵの数は特に限定されない。
【００３０】
それぞれのＥＣＵ１００は、プロセッサ（演算装置）、セキュリティチップ（耐タンパデバイス）、メモリ、通信装置などを有する。なお、セキュリティチップは、他のプロセッサとは独立して機能し、プログラムやデータを安全に格納しかつ実行できる。マスタＥＣＵ１００ｍは、ハードウェア構成上は一般ＥＣＵと特に異なる点はないが、演算資源が豊富なＥＣＵをマスタＥＣＵとすることが好ましい。
【００３１】
各ＥＣＵの機能構成はほぼ同様であるため、マスタＥＣＵ１００ｍを例にとって説明する。マスタＥＣＵ１００ｍは、ＲＯＭ（読み込み専用メモリ）１１０ｍ内に、実行プログラム１１１ｍおよびルート証明書１１２ｍを記憶する。実行プログラム１１１ｍは、システム起動後にマスタＥＣＵｍが提供する機能を記述したプログラムである。ルート証明書１１２ｍは、ルート認証局の公開鍵に対応する電子証明書である。
【００３２】
また、マスタＥＣＵ１００ｍは、耐タンパデバイス１２０ｍ内に、暗号エンジン１２１ｍおよび秘密鍵１２２ｍを記憶する。暗号エンジン１２１ｍは、秘密鍵・公開鍵のペアの生成、公開鍵の出力、暗号化処理、復号処理、電子署名付与、電子署名検証、ハッシュ値演算などの機能を提供する。また、秘密鍵１２２ｍは、マスタＥＣＵ１００ｍの秘密鍵である。
【００３３】
また、マスタＥＣＵ１００ｍは、フラッシュメモリ（読み書き可能メモリ）１３０ｍに、システム内の全ての一般ＥＣＵの電子証明書（ここでは、一般ＥＣＵａ、一般ＥＣＵｂ、一般ＥＣＵｃに対応する電子証明書１３１ａ，１３１ｂ，１３１ｃ）を記憶する。
【００３４】
なお、マスタＥＣＵと一般ＥＣＵとの相違点は、フラッシュメモリに格納される電子証明書の種類である。上述のように、マスタＥＣＵは全ての一般ＥＣＵの電子証明書を格納するのに対し、一般ＥＣＵはマスタＥＣＵの電子証明書１３１ｍのみをフラッシュメモリに格納する。
【００３５】
＜電子証明書＞
図２は、電子証明書のフォーマットを示す図である。図２では、例として一般ＥＣＵａの公開鍵に対応する電子証明書のフォーマットを示している。一般ＥＣＵａの電子証明書１３１は、一般ＥＣＵａの公開鍵２１、一般ＥＣＵａの秘密鍵の有効期限２２、その他の情報２３、一般ＥＣＵａに格納されるべき真正なプログラム１１１ａのダイジェスト値２４、これら全体に対する電子署名２５から構成される。電子証明書１３１は、例えば、Ｘ．５０９  ｖ３規格を採用することができる。この規格では拡張領域が用意されているので、この拡張領域にプログラムのダイジェスト値２４を格納することができる。
【００３６】
ダイジェスト値は、要約値やハッシュ値とも呼ばれ、元となるデータから一定の計算手順により求められる固定長の値である。元となるデータが少しでも異なれば得られるダイジェスト値は大きく異なる。異なるデータから同じダイジェスト値が得られることもあるが（ダイジェスト値の衝突）、同じダイジェスト値が得られる元データを効率的に探索することはできないので、ダイジェスト値を用いてデータの同一性を検証できる。
【００３７】
＜認証手順＞
次に、図３のフローチャートを参照して、車両システムにおけるＥＣＵ間の相互認証処理の流れについて説明する。本実施形態では、それぞれの一般ＥＣＵがマスタＥＣＵとの間で相互認証を行って、セッション鍵（共通鍵）を交換する。マスタＥＣＵは全ての一般ＥＣＵに対して同一のセッション鍵を配布することで、システム内の全てのＥＣＵの間でセッション鍵を用いた通信が行える。
【００３８】
図３は、マスタＥＣＵｍと一般ＥＣＵａの間で相互認証を行う場合の例である。この処理は、例えば、車両を工場から出荷するタイミング、共通鍵を更新するタイミング、ＥＣＵを交換したタイミングなどに行うことが好ましい。ただし、車両システムの起動時に毎回行うようにしてもかまわない。
【００３９】
まず、マスタＥＣＵｍが暗号エンジン１２１ｍによって乱数ｒｍを生成する（Ｓ１０１）。同様に、一般ＥＣＵａが暗号エンジン１２１ａによって乱数ｒａを生成する（Ｓ２０１）。これらの乱数を生成する理由は、今後のメッセージ交換処理が今回のセッションにおける認証処理であることを担保するためである。これらの乱数は必ずしも利用する必要はなく省略してもかまわない。
【００４０】
マスタＥＣＵｍは、乱数ｒｍを一般ＥＣＵａに送信する（Ｓ１０２）。すると、一般Ｅ
ＣＵａは、耐タンパデバイス１２０ａ内の暗号エンジン１２１ａを用いて、実行プログラム１１１ａのダイジェスト値Ｄａを算出する（Ｓ２０２）。また、一般ＥＣＵａは、暗号エンジン１２１ａを用いて、ダイジェスト値Ｄａ、乱数ｒｍ、乱数ｒａの連結値に対する電子署名Ｓ１を作成する（Ｓ２０３）。電子署名Ｓ１は、ダイジェスト値Ｄａ、乱数ｒｍ、乱数ｒａの連結値のハッシュ値を一般ＥＣＵａの秘密鍵１２２ａで暗号化したデータである。一般ＥＣＵａは、ダイジェスト値Ｄａ、乱数ｒｍ、乱数ｒａおよびその電子署名Ｓ１をマスタＥＣＵｍに送信する（Ｓ２０４）。
【００４１】
マスタＥＣＵｍは、暗号エンジン１２１ｍによって、セッション鍵Ｋを生成する（Ｓ１０３）。セッション鍵Ｋは、具体的には、乱数である。上述したように、車両システム内で一つのセッション鍵を共有して用いるため、相互認証処理時に一回のみセッション鍵を生成すれば十分である。
【００４２】
マスタＥＣＵｍは、一般ＥＣＵａから電子署名付きのメッセージを受信すると、一般ＥＣＵａの電子証明書を用いて電子署名の完全性を確認する（Ｓ１０４）。具体的には、受信したダイジェスト値Ｄａ、乱数ｒｍ、乱数ｒａのダイジェスト値を求めるとともに、電子署名を一般ＥＣＵａの公開鍵（電子証明書に含まれる）で復号する。これらの値が一致すれば、データの送信元が一般ＥＣＵａであること、および、送信データに改ざんがないことが保証できる。電子署名の完全性が確認できない場合には、なりすましや改ざんの恐れがあるので処理を中止する。
【００４３】
次に、マスタＥＣＵｍは、送信データに含まれる一般ＥＣＵａのプログラムのダイジェスト値Ｄａと、一般ＥＣＵａの電子証明書に含まれるダイジェスト値２４が一致するか照合する（Ｓ１０５）。これらのダイジェスト値が一致する場合には、一般ＥＣＵａに格納されているプログラム１１１ａが真正なものであること、すなわち改ざんなどがされていないことが分かる。ここまでの処理により、マスタＥＣＵｍは一般ＥＣＵａが正当なものであることを確認できる。一方、ダイジェスト値が一致しない場合には、プログラムが改ざんされている恐れがあるので処理を中止する。
【００４４】
マスタＥＣＵｍは、暗号エンジン１２１ｍを用いて、ステップＳ１０３で生成したセッション鍵Ｋを一般ＥＣＵａの公開鍵（電子証明書に含まれる）で暗号化して暗号化セッション鍵ＥＫを得る（Ｓ１０６）。また、マスタＥＣＵｍは、暗号エンジン１２１ｍを用いて、プログラム１１１ｍのダイジェスト値Ｄｍを算出する（Ｓ１０７）。さらに、マスタＥＣＵｍは、暗号エンジン１２１ｍを用いて、ダイジェスト値Ｄｍ、乱数ｒｍ、乱数ｒａ、暗号化セッション鍵ＥＫの連結値に対する電子署名Ｓ２を作成する（Ｓ１０８）。電子署名Ｓ２は、ダイジェスト値Ｄｍ、乱数ｒｍ、乱数ｒａ、暗号化セッション鍵ＥＫの連結値のハッシュ値をマスタＥＣＵｍの秘密鍵１２２ｍで暗号化したデータである。マスタＥＣＵｍは、ダイジェスト値Ｄｍ、乱数ｒｍ、乱数ｒａ、暗号化セッション鍵ＥＫおよびその電子署名Ｓ２を一般ＥＣＵａに送信する（Ｓ１０９）。
【００４５】
一般ＥＣＵａは、マスタＥＣＵｍから電子署名付きのメッセージを受信すると、マスＥＣＵｍの電子証明書を用いて電子署名の完全性を確認する（Ｓ２０５）。具体的には、受信したダイジェスト値Ｄｍ、乱数ｒｍ、乱数ｒａ、暗号化セッション鍵ＥＫのダイジェスト値を求めるとともに、電子署名をマスタＥＣＵｍの公開鍵（電子証明書に含まれる）で復号する。これらの値が一致すれば、データの送信元がマスタＥＣＵｍであること、および、送信データに改ざんがないことが保証できる。電子署名の完全性が確認できない場合には、なりすましや改ざんの恐れがあるので処理を中止する。
【００４６】
次に、一般ＥＣＵａは、送信データに含まれるマスタＥＣＵｍのプログラムのダイジェスト値Ｄｍと、マスタＥＣＵｍの電子証明書に含まれるダイジェスト値２４が一致するか
照合する（Ｓ２０６）。これらのダイジェスト値が一致する場合には、マスタＥＣＵｍに格納されているプログラム１１１ｍが真正なものであること、すなわち改ざんなどがされていないことが分かる。ここまでの処理により、一般ＥＣＵａはマスタＥＣＵｍが正当なものであることを確認できる。一方、ダイジェスト値が一致しない場合には、プログラムが改ざんされている恐れがあるので処理を中止する。
【００４７】
一般ＥＣＵａは、マスタＥＣＵｍの正当性が確認できたら、暗号化セッション鍵ＥＫを一般ＥＣＵａ自身の秘密鍵１２２ａによって復号する（Ｓ２０７）。これにより、マスタＥＣＵｍと一般ＥＣＵａの間でセッション鍵Ｋを共有することができる。この後は、マスタＥＣＵｍと一般ＥＣＵａの間で、セッション鍵を用いて安全な通信を行う。例えば、セッション鍵を用いて送信メッセージのＭＡＣ（メッセージ認証コード）を生成・送信することで通信の安全性を確保する。
【００４８】
なお、上述したように、それぞれの一般ＥＣＵがマスタＥＣＵｍとの間で相互認証をして、同一のセッション鍵ＫをマスタＥＣＵｍから受信する。したがって、車両システム内の全てのＥＣＵで同一のセッション鍵Ｋを共有できるので、一般ＥＣＵ間の通信でもセッション鍵Ｋを用いた通信が実行可能である。
【００４９】
このような認証処理を行うことで、車両システム内のＥＣＵが正当なものであり、かつ実行プログラムが真正なものであることを、公開鍵暗号方式を用いて確認することができる。また、相互認証がされたＥＣＵ間でセッション鍵を共有することができる。
【００５０】
＜電子証明書の作成・配布方法＞
以下、車両システムにおける電子証明書の作成・配布方法について説明する。
【００５１】
図４Ａは、車両組み立て時における電子証明書の作成・配布方法を説明する図である。車両組み立て工場の管理装置は、１台の車両に搭載される全てのＥＣＵに対して、公開鍵ペア作成コマンドおよび公開鍵取り出しコマンドを発行する（Ｓ３０１）。このコマンドを受け取ったＥＣＵは、暗号エンジンを用いて秘密鍵と公開鍵のペアを生成し（Ｓ３０２）、メモリに格納するとともに、公開鍵を管理装置に送信する（Ｓ３０３）。管理装置は、ＥＣＵの公開鍵と、ＥＣＵに搭載する真正なプログラムのダイジェスト値を認証局（ルート認証局）に送信して、電子証明書の作成を依頼する（Ｓ３０４）。認証局では、受け取った公開鍵とプログラムダイジェスト値に対する電子証明書を作成して管理装置に送信する（Ｓ３０５）。作成される電子証明書は、図２に示すように、ＥＣＵの公開鍵とプログラムダイジェスト値を含み、これら全体に対する認証局の秘密鍵による電子署名が付されたものである。管理装置は、認証局から電子証明書を受領すると、ＥＣＵのメモリに対して実行プログラムと電子証明書とルート証明書を保存する（Ｓ３０７，Ｓ３０８）。ここで、実行プログラムは、それぞれにＥＣＵに対応するものがＲＯＭに格納される。また、電子証明書はフラッシュメモリに格納される。また、マスタＥＣＵには全ての一般ＥＣＵの電子証明書が格納され、一般ＥＣＵにはマスタＥＣＵの電子証明書のみが格納される。ルート証明書は、認証局の公開鍵に対する電子証明書である。ルート証明書は、各ＥＣＵのＲＯＭに格納される。
【００５２】
このようにすることで、図１に示すような、車両システムの構成を作成することができる。
【００５３】
図４Ｂを参照して、交換用のＥＣＵの作成・配布方法について説明する。この場合も、図４ＡのステップＳ３０１〜Ｓ３０６の方法によって、交換用ＥＣＵのプログラムダイジェスト値を含む電子証明書を、認証局に依頼して作成する。管理装置は、図４Ｂに示すように、交換用ＥＣＵ１００に対して実行プログラム１１１およびルート証明書１１２を保
存するとともに、ＥＣＵとは別媒体のメモリ２００（フラッシュメモリやＣＤ−ＲＯＭなど）に対して交換用ＥＣＵの電子証明書１３１を保存する。交換用ＥＣＵ１００は、その電子証明書１３１を格納した記憶媒体２００とともに出荷される。
【００５４】
次に、車両システムにおいて、ＥＣＵを交換する際の手順について説明する。
【００５５】
交換用ＥＣＵが一般ＥＣＵである場合には、記憶媒体２００に格納されている交換用ＥＣＵの電子証明書を車両システム内のマスタＥＣＵに送信して、マスタＥＣＵのフラッシュメモリ内の電子証明書を更新する。なお、マスタＥＣＵでは、この電子証明書の正当性をルート証明書によって検証することができる。また、交換用ＥＣＵは、マスタＥＣＵからその電子証明書を受信してフラッシュメモリ内に格納する。この電子証明書の正当性は、上記と同様にルート証明書によって検証できる。
【００５６】
交換ＥＣＵがマスタＥＣＵである場合には、記憶媒体２００に格納されている交換用ＥＣＵの電子証明書を、車両システム内の全ての一般ＥＣＵに送信して一般ＥＣＵのフラッシュメモリ内の電子証明を更新する。また、交換用ＥＣＵは、車両システム内の全ての一般ＥＣＵから電子証明書を受信してフラッシュメモリ内に格納する。上記と同様に電子証明書の正当性はルート証明書によって検証できる。
【００５７】
このように、不正なＥＣＵが取り付けられた場合にはその電子証明書の検証に失敗することから、不正ＥＣＵの取り付けを検出することができる。また、正しいＥＣＵではあるが格納されているプログラムが改ざんされて正しいものでない場合には、相互認証処理（図３）において検出することができる。また、電子証明書はフラッシュメモリに格納すれば良く、対タンパ性デバイスに格納する必要がないので、ＥＣＵの交換のためにセキュリティホールとなるようなインタフェースを用意しないでよい。また、ＥＣＵの交換時に認証局との間での通信（ホットライン）が不要であることからも、ＥＣＵの交換が容易である。
【００５８】
（第２の実施形態）
第１の実施形態では、プログラムダイジェスト値を電子証明書に格納するとともに、認証処理において自装置のプログラムダイジェスト値を認証先のＥＣＵに送信してプログラムの真正性を確認していた。本実施形態では、プログラムの正当性の検証方法が第１の実施形態とは異なり、各ＥＣＵがセキュアブートを用いてプログラムの正当性を検証する。
【００５９】
第２の実施形態におけるＥＣＵの構成は第１の実施形態（図１）とほぼ同様であるので、詳しい説明は省略する。第１の実施形態との相違点は、電子証明書に含まれるデータである。
【００６０】
図５は、第２の実施形態における電子証明書のフォーマットを示す図である。第１の実施形態では電子証明書１３１の拡張領域にＥＣＵに格納されるべき正しいプログラムのダイジェスト値２４が格納されていたが、本実施形態ではこれに代えてＥＣＵの識別子（ＩＤ）２６が格納される。ＥＣＵの識別子は、ＥＣＵが一意に特定できるデータであれば任意の形式であってかまわない。
【００６１】
また、本実施形態では、プログラムの正当性をセキュアブートによって確認するので、耐タンパデバイス内にＥＣＵに格納されるプログラムの正しいダイジェスト値が格納される。このプログラムダイジェスト値は、第１の実施形態において電子証明書の拡張領域に格納されるものと同一である。
【００６２】
図６は、第２の実施形態における、車両システムでのＥＣＵ間の相互認証処理の流れを
示すフローチャートである。本実施形態では、まず、マスタＥＣＵｍと一般ＥＣＵａのそれぞれにおいて、セキュアブートの手法を用いて実行プログラムの正当性を検証する（Ｓ３０１，Ｓ４０１）。セキュアブートでは、暗号化エンジンがメモリ内に格納されているプログラムのダイジェスト値を計算し、耐タンパデバイス内に格納されている正しいプログラムのダイジェスト値と比較して、一致すればプログラムが正当であると判断し、一致しなければプログラムが不正であると判断する。マスタＥＣＵｍおよび一般ＥＣＵは、セキュアブートによりプログラムが正当であると判断された場合のみ、ステップＳ３０１およびＳ４０１以降の処理を実行する。
【００６３】
以降の処理は、第１の実施形態と基本的に同様であり、プログラムダイジェストを算出して送信する代わりに、ＥＣＵ識別子を送信する点が異なる。例えば、一般ＥＣＵａでは、ステップＳ４０３、Ｓ４０４において、自装置のＥＣＵＩＤａ、乱数ｒｍ，乱数ｒａの連結値に対する電子署名Ｓ１を作成して、これらのデータと電子署名をマスタＥＣＵに送信する。マスタＥＣＵｍにおける電子署名の完全性検証処理（Ｓ３０５）は第１の実施形態と同様である。また、ステップＳ３０６において、認証先の一般ＥＣＵａから送信されたデータ（ＥＣＵＩＤａ）と電子証明書内に格納されたデータが一致するかどうかによってＥＣＵの正当性を検証する点は、第１の実施形態と同じである。ただし、用いるデータが、プログラムのダイジェスト値であるか、ＥＣＵの識別子であるかが相違する。マスタＥＣＵｍから一般ＥＣＵａに向けて送信する処理（ステップＳ３０８〜Ｓ３０９，Ｓ４０５〜Ｓ４０７）も上記と同様である。
【００６４】
このような処理によって、第１の実施形態と同様の効果を得ることができる。なお、車両組み立て時の電子証明書の作成・配布方法や、交換用ＥＣＵの作成・配布方法および交換時の手順は、第１の実施形態と同様である。
【００６５】
（第３の実施形態）
上記第１および第２の実施形態においては、ＥＣＵを交換する際に、交換用ＥＣＵの電子証明書を車両システム内の他のＥＣＵにインストールする作業を行っている。本実施形態においては、この作業を省略してＥＣＵ交換時の作業負荷を低減可能とする。
【００６６】
図７Ａは、本実施形態にかかる交換用ＥＣＵｒの構成を示す図である。第１の実施形態においては交換用ＥＣＵｒの電子証明書をＥＣＵ本体とは異なる記憶媒体に格納している（図４Ｂ）が、本実施形態では、交換用ＥＣＵｒの電子証明書１３１ｒをＥＣＵｒのフラッシュメモリ１３０ｒ内に格納する。
【００６７】
本実施形態では、ＥＣＵを交換する際には、単にＥＣＵを交換する工程のみを行い、車両システム内の他のＥＣＵの電子証明書を更新する処理は行わない。そのため、ＥＣＵの交換直後は、交換用ＥＣＵｒは他のＥＣＵの電子証明書を保持せず、また、他のＥＣＵは交換用ＥＣＵｒの電子証明書を保持していない。
【００６８】
図７Ｂは、本実施形態におけるＥＣＵ間（ここでは、マスタＥＣＵｍと一般ＥＣＵａの間）の相互認証処理の流れを示すフローチャートである。本実施形態においては、ＥＣＵが認証相手の電子証明書を保持していない場合があるので、第１の実施形態と比較して追加の処理が必要となる。なお、交換されたＥＣＵが、マスタＥＣＵｍと一般ＥＣＵａのどちらであっても（あるいは両方であっても）、この処理によってＥＣＵ間の相互認証が行える。また、図７Ｂのフローチャートは、第１の実施形態における処理（図３）との相違点が明確になるように、図３に示す処理内容の一部を省略あるいは簡略化して示している。
【００６９】
まず、マスタＥＣＵが相互認証処理を開始する（Ｓ８００）。具体的には、ステップＳ
１０１と同様に、マスタＥＣＵｍは乱数ｒａを生成して一般ＥＣＵａに送信する。一般ＥＣＵａは、相互認証処理が開始されると、マスタＥＣＵｍの電子証明書ｍをメモリ内に保有しているか否かを判断する（Ｓ８０１）。
【００７０】
一般ＥＣＵａが電子証明書ｍを保有している場合（Ｓ８０１−ＹＥＳ）には、第１の実施形態と同様に一般ＥＣＵｒの実行プログラム１１１ｒのダイジェスト値Ｄａ、乱数ｒｍ、ｒａとこれらの連結値に対する電子署名Ｓ１とをマスタＥＣＵｍに送信する（Ｓ８０２）。この処理は、図３のステップＳ２０２〜Ｓ２０４の処理と同様である。
【００７１】
一方、一般ＥＣＵａが電子証明書ｍを保有していない場合（Ｓ８０１−ＮＯ）には、一般ＥＣＵｒの実行プログラム１１１ｒのダイジェスト値Ｄａ、乱数ｒｍ、ｒａに加えて、自装置の電子証明書ａも合わせて送信する（Ｓ８０３）。この際、電子証明書ａも電子署名Ｓ１の対象としてもよいし、電子証明書ａは電子署名Ｓ１の対象としなくてもよい。
【００７２】
マスタＥＣＵｍは、一般ＥＣＵａからプログラムのダイジェスト値Ｄａを含むデータを受信したら、この受信データに電子証明書ａ（より正確にはデータ送信元の電子証明書）が含まれているか判断する（Ｓ８０４）。受信データに電子証明書ａが含まれている場合（Ｓ８０４−ＹＥＳ）には、マスタＥＣＵｍは、当該電子証明書ａが登録済み（メモリに保有済み）であるか否かを判断する（Ｓ８０５）。マスタＥＣＵｍが電子証明書ａを保有していない場合（Ｓ８０５−ＮＯ）には、マスタＥＣＵｍは、ルート証明書１１２ｍを用いて暗号化エンジン１２１ｍによって電子証明書ａの正当性を確認し、正当性が確認できたら電子証明書ａを登録（メモリに記憶）する（Ｓ８０６）。なお、電子証明書ａの正当性が確認できない場合には、認証処理を中断し以降の処理は行わない。
【００７３】
一方、マスタＥＣＵｍが受信したデータに電子証明書ａが含まれない（Ｓ８０４−ＮＯ）か、受信データに含まれる電子証明書ａが既に登録済みである（Ｓ８０５−ＹＥＳ）には、ステップＳ８０６の処理は行われない。
【００７４】
次に、マスタＥＣＵｍは、電子証明書ａを用いて一般ＥＣＵａから受信したデータの正当性を確認する（Ｓ８０７）。具体的には、電子署名の検証と、ダイジェスト値の検証（受信データに含まれるダイジェスト値と電子証明書ａに含まれるダイジェスト値の比較）が行われる。この処理は、図３のステップＳ１０４〜Ｓ１０５と同様である。
【００７５】
マスタＥＣＵｍは、一般ＥＣＵａの正当性が確認できたら、自装置のプログラム１１１ｍのダイジェスト値Ｄｍ、乱数ｒｍ，ｒａ、および暗号化したセッション鍵ＥＫに加えて、自装置の電子証明書ｍに、電子署名を付して送信する（Ｓ８０８）。この処理は、図３のステップＳ１０６〜Ｓ１０９および上記ステップＳ８０３と同様である。なお、電子証明書ｍは常に送信しなくてもよく、一般ＥＣＵａから送信されたデータに一般ＥＣＵａの電子証明書ａが含まれている場合のみ、電子証明書ｍを送信するようにしてもよい。そうでない場合には、一般ＥＣＵａは電子証明書ｍを保有しているためである。
【００７６】
一般ＥＣＵａは、マスタＥＣＵｍから電子証明書ｍを含むデータを受信すると、電子証明書ｍの正当性を確認し、正当性が確認できたら当該電子証明書ｍを登録（メモリに記憶）する（Ｓ８０９）。そして、一般ＥＣＵａは、電子証明書ｍを用いて、マスタＥＣＵｍから送信されたデータの正当性を確認し、正当性が確認できたら電子証明書ｍを登録（メモリに記憶）する（Ｓ８０９）。この処理は、図３のステップＳ２０５〜Ｓ２０７の処理と同様である。なお、電子証明書ｍの正当性が確認できない場合には、認証処理を中断し以降の処理は行わない。これ以降の処理は図３のフローチャート同様であるため説明を省略する。
【００７７】
本実施形態によれば、ＥＣＵの交換時に車両システム内のＥＣＵに格納されている電子証明書を更新しなくても、交換後にＥＣＵ間で正しく相互認証を行うことができる。つまり、ＥＣＵ交換時の作業の負担を軽減することができる。
【００７８】
本実施形態では、ＥＣＵの交換後の最初の相互認証処理において電子証明書の配付およびその検証処理が必要となるため、工数が増えて認証完了までに要する時間が増加する。しかしながら、電子証明書の配付（登録）が完了した後は、第１の実施形態と同様の処理内容によって相互認証処理を行える。
【００７９】
上記の説明においては、第１の実施形態と同様に実行プログラムのダイジェスト値を用いて相互認証を行う例を説明したが、本実施形態はセキュアブート技術とＥＣＵの識別子を用いて相互認証を行う第２の実施形態にも適用可能である。
【００８０】
また、上記の説明においてはＥＣＵ交換時を例にとって説明しているが、車両の組み立て時にも上記と同様の方法を用いて各ＥＣＵの電子証明書を登録することもできる。
【００８１】
（変形例）
上記の実施形態はあくまでも一例であって、本発明はその要旨を逸脱しない範囲内で適宜変更して実施しうる。
【００８２】
例えば、上記の説明では、ＥＣＵの実行プログラム１１１をＲＯＭ１１０に格納しているが、実行プログラムはフラッシュメモリ（読み書き可能メモリ）１３０に格納してもかまわない。フラッシュメモリにプログラムを格納するとプログラムの改ざんが比較的容易になるが、プログラムが改ざんされてもプログラムダイジェスト値を用いた認証処理によって改ざんを検知することができるためである。
【００８３】
また、上記の説明では、マスタＥＣＵから一般ＥＣＵに送信するセッション鍵のみを暗号化して送信しているが、相互認証処理においてＥＣＵ間で送信されるメッセージを全て暗号化して送信しても良い。具体的には、通信相手の公開鍵を用いて送信データを暗号化して送信することで、通信相手のみが読み取り可能とすることができる。
【００８４】
また、上記の説明では、乱数ｒｍ、乱数ｒａを用いているが、これら認証時に送信されるメッセージが今回のセッションにおけるものであることを担保するためであり、これらの乱数は用いなくてもかまわない。
【００８５】
また、上記の説明では、ルート証明書は更新する必要がないものとしてＲＯＭに格納しているが、ルート認証局における秘密鍵の更新に対応するために、ルート証明書をフラッシュメモリに格納するようにしても良い。この場合の構成を図８に示す。図８に示すように、ルート証明書１１２がフラッシュメモリに格納される。フラッシュメモリに格納されたルート証明書１１２は改ざんされる恐れがあるので、この場合には、ルート証明書１１２を受け入れる（記憶する）際に、ＥＣＵの秘密鍵１２２を用いてルート証明書の電子署名１３２を作成してフラッシュメモリに格納する。これにより、ルート証明書１１２が正しいものであることをＥＣＵが確認できる。ルート証明書の更新に対応する別の方法は、ルート証明書をセキュアストレージに格納する方法である。
【００８６】
また、上記の説明では、車両システム内にマスタＥＣＵが１つのみ存在する例を示したが、車両システム内に複数のマスタＥＣＵが存在してもかまわない。この場合、それぞれのマスタＥＣＵがそれぞれ独自のグループを形成して、グループ内で独自のセッション鍵を用いるようにしても良いし、全てのグループで同一のセッション鍵を用いるようにしても良い。また、マスタＥＣＵと一般ＥＣＵの構成を３階層以上の構成とし、最上位のマス
タＥＣＵが配下のＥＣＵとの間で相互認証を行ってセッション鍵を共有し、第２レベルのマスタＥＣＵが配下のＥＣＵとの間で相互認証を行うようにしても良い。このようにすれば、マスタＥＣＵにかかる負荷を分散し、かつ車両システム全体の健全性確認に要する時間を短縮することができる。また、マスタＥＣＵを採用することなく、それぞれのＥＣＵが１対１で相互認証を行ってセッション鍵を共有する場合も上記と同様の方法によって行うことができる。
【符号の説明】
【００８７】
１００  ＥＣＵ（Electronic Control Unit）
１１０  ＲＯＭ（読み込み専用メモリ）
１１１  実行プログラム
１１２  ルート証明書
１２０  耐タンパデバイス
１２１  暗号エンジン
１２２  秘密鍵
１３０  フラッシュメモリ
１３１  電子証明書
【図１】
2017079369.tif 000003
【図２】
2017079369.tif 000004
【図３】
2017079369.tif 000005
【図４】
2017079369.tif 000006
【図５】
2017079369.tif 000007
【図６】
2017079369.tif 000008
【図７】
2017079369.tif 000009
【図８】
2017079369.tif 000010