(57)【特許請求の範囲】
【請求項１】
所定の暗号鍵で暗号化された更新データを車外から受信する更新データ取得部と、
鍵管理サーバから前記暗号化された更新データの復号鍵を受信する鍵取得部と、
該鍵取得部で受信した前記復号鍵が記憶される鍵記憶部と、
前記更新データ取得部で取得した前記更新データを前記鍵記憶部で記憶された復号鍵に基づいて復号する復号部と、
該復号部により復号された更新データを用いて更新対象データの書換を行うデータ書換部と、
前記復号部による前記更新データの復号途中であるか否か、および前記データ書換部による前記更新対象データの書換途中であるか否かを判断する状態検知部と、
を有し、
前記鍵取得部は、
前記状態検知部により前記復号部による復号の途中、および前記データ書換部による前記更新対象データへの書換の途中の何れでもないと判断されたことを条件として、
前記鍵管理サーバに対して前記復号鍵の更新の有無を確認し、
前記復号鍵の更新が有る場合には前記鍵管理サーバに対して更新後の前記復号鍵の配送を要求する鍵取得依頼信号を送出する、車載ゲートウェイ。
【請求項２】
請求項１に記載の車載ゲートウェイであって、
前記状態検知部が、所定の理由により、前記復号部による複合の途中もしくは前記データ書換部による前記更新対象データへの書換の途中であると判断した場合、
前記所定の理由の解消により、前記復号部もしくは前記データ書換部は前記複合または前記更新対象データへの書換を再開することを特徴とする車載ゲートウェイ。
【請求項３】
請求項１に記載の車載ゲートウェイであって、
前記状態検知部が、所定の理由により、前記復号部による複合の途中もしくは前記データ書換部による前記更新対象データへの書換の途中であると判断した場合には、
前記所定の理由が解消し、前記復号または前記更新対象データへの書換が完了するまでは、前記鍵管理サーバに対する前記複合鍵の更新の有無の確認を行わないことを特徴とする車載ゲートウェイ。
【請求項４】
請求項１に記載の車載ゲートウェイであって、前記鍵取得部は、前記鍵記憶部に記憶した復号鍵を、前記鍵取得依頼信号の結果として取得した復号鍵で更新する、車載ゲートウェイ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載ゲートウェイ、鍵管理装置に関する。
【背景技術】
【０００２】
近年、安全運転支援や自動運転技術の進展により車両がサーバ／クラウドなどの車外システムと繋がるようになっている。車外と通信のセキュリティを確保するために暗号鍵の管理が必要になる。【０００３】
本技術分野の背景技術として特開２０１２−１４７２７０号公報（特許文献１）がある。この公報には、「道路交通における路側機２と車載機３との通信及び車載機３同士での通信に関して、データを共通鍵で暗号化することによりセキュリティを維持する通信システム又は通信方法であって、通信は、データを共通鍵で暗号化して行われ、車載機３は、自分が最新と認識する共通鍵のほかに、過去の共通鍵も記憶している。そして、車載機３は、通信相手からデータを受け取り、受け取ったデータを、最新と認識する共通鍵によって復調することを試み、復調できない場合、過去の共通鍵によって復調できるか否かの判断を行い、その判断結果に応じて少なくとも自他の共通鍵の相対的な新旧について判断する。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１４７２７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
車両に配備されたセンタ通信に用いる鍵は、セキュリティを担保するために適宜更新する必要があるが、車両は常にセンタと通信できる状態であるとは限らない。例えば電源が入っていない、通信圏外であるなどの場合がある。このとき鍵の更新タイミングがセンタとずれる場合がある。ダウンロード済みの暗号化データ（ＯＴＡ更新ファーム等）がある状態でエンジンＯＦＦとなり更新途中である場合に、暗号鍵が更新されると、データの復号ができなくなり、結果としてデータ復号が途中で失敗してしまう。例えば、データがＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）の更新ファームであった場合、復号失敗によりＥＣＵが動作しなくなるという課題がある。【０００６】
特許文献１に記載の技術は、車載機器ユニットであるＥＣＵの鍵の新旧を判断するが、ＥＣＵ内の鍵を更新するタイミングを制御する方法は特許文献１には開示されていない。
そこで本発明の一態様は、更新データの復号処理が途中であるかどうかを判定し、鍵の更新確認を実施するタイミングを制御することで、セキュリティの強度を保ちつつ利便性を高めることを目的する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一態様は以下の構成を採用する。所定の鍵で暗号化された更新データを車外から受信する更新データ取得部と、車外から鍵を受信する鍵取得部と、該鍵取得部で取得した前記鍵が記憶された鍵記憶部と、前記更新データ取得部で取得した前記更新データを前記鍵記憶部で記憶された鍵に基づいて復号化する復号化部と、を有し、前記更新データ取得部は、前記復号化部での前記更新データの復号化完了よりも後に、鍵取得依頼信号を送出する。
【発明の効果】
【０００８】
本発明の一態様は、更新データの復号処理が途中であるかどうかを判定し、鍵の更新確認を実施するタイミングを制御することで、セキュリティの強度を保ちつつ利便性を高める。
【図面の簡単な説明】
【０００９】
【図１】実施例１における情報システムの構成例を示すブロック図である。
【図２】実施例１における車載システム１の構成例を示すブロック図である。
【図３】実施例１における鍵管理サーバ２の構成例を示すブロック図である。
【図４】実施例１におけるＯＴＡサーバ３の構成例を示すブロック図である。
【図５】実施例１における確認処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１１】
本実施形態は、情報システムの一例を説明する。
【００１２】
図１は、鍵管理システムの一例である情報システムの構成例を示すブロック図である。
情報システムは、例えば、相互に通信可能な、車載システム１と、鍵管理サーバ２と、ＯＴＡサーバ３と、を含む。
【００１３】
なお、情報システムに含まれる各構成は図１で示していない経路によって接続されていてもよい。また、情報システム内のある構成が他の構成を含んでもよい。例えば、ＯＴＡサーバ３が鍵管理サーバ２を含んでもよい。
【００１４】
車載システム１は、ネットワーク等を通じて鍵管理サーバ２及びＯＴＡサーバ３と通信する機能を備えた自動車である。車載システム１は、車載機器である複数のＥＣＵを備え、各ＥＣＵは車内のネットワークで接続されている。
【００１５】
鍵管理サーバ２は、ネットワーク等を介して車載システム１、ＯＴＡサーバ３等と通信を行うサーバである。鍵管理サーバ２は、ＰＫＩ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）の公開鍵証明書や秘密鍵、又は共通鍵暗号の共通鍵を安全に格納するサーバである。
【００１６】
鍵管理サーバ２において、他のアプリケーションが動作してもよい。また、鍵管理サーバ２の機能が複数のサーバやストレージなどの筐体に分かれ、それらが組み合わさった構成になっていてもよい。また、サーバに限らず同様の処理が可能な情報機器などであってもよい。これらのことは、ＯＴＡサーバ３についても同様である。
【００１７】
また図示してはいないが、鍵管理サーバ２は、鍵の発行、更新、及び失効を外部から指示として受ける機能を備えてもよい。外部からの指示はネットワーク経由でもよいし、画面などの操作でもよい。
【００１８】
ＯＴＡサーバ３は、ネットワーク等を通じて車載システム１及び鍵管理サーバ２と通信を行うサーバである。ＯＴＡサーバ３は、鍵管理サーバ２と同一の要素であってもよい。
【００１９】
ＯＴＡサーバ３は、車載システム１のＥＣＵと通信を行うことで、更新プログラムの配信を行う。更新プログラムはＯＴＡサーバ３によって暗号化されて配信され、車載システム１のＥＣＵによって復号される。またＯＴＡサーバ３は、更新プログラム以外の配信機能を備えたサービスサーバであってもよい。例えば地図情報を配信するサーバ、あるいは一般に暗号化されたデータをやりとりするサーバであることが考えられる。もしくは車載システム１が暗号化したデータをアップロードし、サーバで復号する形態であってもよい。
【００２０】
また図示してはいないが、ＯＴＡサーバ２は、更新プログラムの登録などの指示を外部から受ける機能を備えてもよい。外部からの指示はネットワーク経由でもよいし、画面などの操作でもよい。
【００２１】
鍵管理サーバ２とＯＴＡサーバ３との間の通信は、例えば、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）、ＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、若しくはＷＡＮ
（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の無線通信、又は有線ＬＡＮ、インターネット、若しくは専用回線等を用いた有線通信である。
【００２２】
車載システム１と鍵管理サーバ２との間の通信、および、車載システム１とＯＴＡサーバ３との間の通信は、例えば、ＬＴＥ、３Ｇ、ＷｉＭＡＸ、無線ＬＡＮ又はＷＡＮ等の無線通信である。情報システム内の各構成間の通信は、別のネットワークであってもよいし、同一のネットワークであってもよい。
【００２３】
図２は、車載システム１の構成例を示すブロック図である。車載システム１は、例えば、ＣＡＮ（Ｃｏｎｔｒｏｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などで互いに結線されている、サーバ通信ＥＣＵ１０、メインＥＣＵ１１、及び１以上のＥＣＵ１２を備える。サーバ通信ＥＣＵ１０、メインＥＣＵ１１、及びＥＣＵ１２は、例えば、ＣＡＮ  ＦＤ（ＣＡＮ  ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｄａｔａ  Ｒａｔｅ）、Ｅｔｈｅｒｎｅｔ（登録商標、以下同）、又はＦｌｅｘＲａｙ等（登録商標、以下同）によって結線されていてもよい。
【００２４】
サーバ通信ＥＣＵ１０は、鍵管理サーバ２やＯＴＡサーバ３等の他の構成要素と通信を行う。サーバ通信ＥＣＵ１０は、ＬＴＥ、３Ｇ、ＷｉＭＡＸ、無線ＬＡＮおよびＷＡＮ等の無線通信を行うためのモジュールである。
【００２５】
なお、サーバ通信ＥＣＵ１０は、メインＥＣＵ１１又はＥＣＵ１２に含まれていてもよい。また、車載システム１は、用途や通信方式に応じた複数のサーバ通信ＥＣＵ１０を含んでもよい。またその他の通信を実施するモジュールと共用になっていても構わない。なお、サーバ通信ＥＣＵ１０は、無線通信の場合、アンテナ、および変復調回路等を含んでもよい。有線通信の場合は、コネクタ、および変復調回路等を含んでもよい。
【００２６】
メインＥＣＵ１１は、例えば、互いにバス線などで結線された、制御部１１０、記憶部１１１、通信部１１２を備える。メインＥＣＵ１１は、例えば、暗号処理を高速化する暗号処理部等を、さらに含んでもよい。メインＥＣＵ１１は、例えば車載ゲートウェイであることが考えられる。
【００２７】
通信部１１２は、メインＥＣＵ１１が車載システム１の他の構成要素と通信を行う。通信部１１２は、例えば、ＣＡＮ、ＣＡＮ  ＦＤ、Ｅｔｈｅｒｎｅｔ、又はＦｌｅｘＲａｙなどによる通信を行うためのモジュールである。メインＥＣＵ１１は、用途や通信方式に応じた複数の通信部１１２を含んでもよい。また、通信部１１２は、他の通信を実施するモジュールと共用になっていてもよい。なお、通信部１１２は、無線通信を行う場合、アンテナ及び変復調回路等を含んでもよい。通信部１１２は、有線通信を行う場合は、コネクタ及び変復調回路等を含んでもよい。
【００２８】
制御部１１０は、例えば、プロセッサ（ＣＰＵ、ＭＰＵ、又はＤＳＰ）等から構成され、記憶部１１１等に格納されたプログラムを実行する。記憶部１１１は、制御部１１０が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。記憶部１１１は、例えば、磁気ディスク、ＳＳＤ、ＥＥＰＲＯＭ、又はフラッシュメモリ等の、不揮発性の記憶装置を含む。
【００２９】
また、記憶部１１１は、不揮発性の記憶素子であるＲＯＭ及び揮発性の記憶素子であるＲＡＭを含むメモリを含んでもよい。ＲＯＭは、不変のプログラムなどを格納する。ＲＡＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような高速かつ揮発性の記憶素子であり、制御部１１０が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００３０】
記憶部１１１は、鍵などの情報を安全に保持するＨＳＭ（Ｈａｒｄｗａｒｅ  ｓｅｃｕｒｉｔｙ  ｍｏｄｕｌｅ）を備えてもよい。記憶部１１１は、複数の記憶装置から構成されていてもよく、各プログラム及び各データが当該複数の記憶装置に分けて格納されていてもよい。
【００３１】
記憶部１１１は、例えば、メインＥＣＵ１１を制御するためのソフトウェアが記述されている制御ソフト１１１０と、ＯＴＡ更新データ格納部１１１１、ＯＴＡ状態格納部１１１２、鍵データベース１１１３を備える。
【００３２】
制御ソフト１１１０は、例えば、それぞれプログラムである、鍵取得機能１１１０１、ＯＴＡ制御アプリ１１１０２を備える。鍵取得機能１１１０１は、鍵管理サーバ２に鍵の所定の更新の有無を確認する通信を行い、更新があれば鍵を取得し鍵データベース１１１３を更新する。鍵取得機能１１１０１による鍵更新の有無の確認は、例えば車両が起動した場合や、車両が停車した場合、外部から通知を受けた場合、自らの定期処理、などをきっかけとして実施する。
【００３３】
ＯＴＡ制御アプリ１１１０２はＯＴＡサーバ３から暗号化された更新データを取得し、鍵データベースに格納された鍵で復号化する。また更新対象となるＥＣＵ（例えばＥＣＵ１２）の制御ソフトを更新するための通信制御を行う機能を有する。ＯＴＡ制御アプリ１１１０２は更新データの有無をＯＴＡサーバ３に問い合わせる。確認のための通信は、例えば車両が起動した場合や、車両が停車した場合、外部から通知を受けた場合、自らの定期処理、などをきっかけとして実施する。またＯＴＡ制御アプリ１１１０２は、安全のため、更新中の電源喪失などの異常が発生した場合でも、異常が回復した際に更新を継続する機能を備える。
【００３４】
そのほか、制御ソフト１１１０は、鍵管理サーバ２からの指示を受けて所定の鍵を生成、失効及び削除する機能を含んでもよい。また、複数の機能が単一プログラムである構成でもよい。
【００３５】
また、メインＥＣＵ１１は、鍵管理サーバ２と相互認証してもよい。そのために、記憶部１１１に鍵管理サーバ２と認証するためのＩＤや認証鍵を保持してもよい。
【００３６】
ＯＴＡ更新データ格納部１１１１は、ＯＴＡ制御アプリ１１１０２がＯＴＡサーバ３から取得した更新データを格納する領域である。ＯＴＡ状態格納部１１１２は、ＯＴＡ制御アプリ１１１０２が更新対象となるＥＣＵの制御ソフトを更新中か否かを示す情報であり、状態変数やフラグ等である。ＯＴＡ状態格納部１１１２は鍵取得機能１１１０１が鍵管理サーバ２からの鍵取得に係る処理を実施するか否かを判断するためにも参照される。またＯＴＡ更新データ格納部１１１１やＯＴＡ状態格納部１１１２は不揮発メモリに配置されることが望ましい。
【００３７】
鍵データベース１１１３は、車載システム１の保持する鍵の情報を格納する。鍵データベース１１１３は例えばデータテーブル、データベース、ハッシュテーブル等で構成される。
【００３８】
鍵データベース１１１３は、例えば、鍵ＩＤ欄１１１３１、アプリＩＤ欄１１１３２、鍵値欄１１１３３を含む。鍵ＩＤ欄１１１３１は、鍵値欄１１１３３に含まれる鍵値に対応する鍵ＩＤを格納する。アプリＩＤ欄１１１３１は、車載システム１のアプリケーションを識別するアプリＩＤを格納する。鍵ＩＤ及びアプリＩＤは、例えば、数値列又は文字列である。鍵データベース１１１３は、鍵を一意に識別するためのＩＤをさらに保持してもよい。
【００３９】
鍵値欄１１１３３欄は、鍵値を格納する。鍵値は例えば、公開鍵暗号の秘密鍵と公開鍵証明書の組や、共通鍵暗号の秘密鍵であり、鍵管理サーバ２から取得する。鍵値は例えばＯＴＡ制御アプリ１１１０２によって使用される。
【００４０】
このほか、鍵データベース２１１は、有効・失効といった鍵の状態や、配布日時などを欄の要素として備えてもよい。
【００４１】
ＥＣＵ１２は、例えば、バス線（図示なし）などで互いに結線された、制御部１２０、記憶部１２１、を備える。他に通信部１１２と同様の通信部（図示なし）を備える。
【００４２】
以下、制御部１２０及び記憶部１２１それぞれと、制御部１１０及び記憶部１１１それぞれと、の相違点を説明し、同様の点の説明は省略する。記憶部１２１は、ＥＣＵ１２を制御するためのソフトウェアが記述されている制御ソフト１２１０、及び更新制御機能１２１１を格納する。
【００４３】
制御ソフト１２１０はＥＣＵ１２を制御するためのソフトウェアであり、ＥＣＵ１２のファームウェアやアプリケーションである。更新制御機能１２１１はメインＥＣＵ１１のＯＴＡ制御アプリ１１１０２と通信することで連携し、制御ソフト１２１０等を書き換える機能を有する。
【００４４】
図３は、鍵管理サーバ２の構成例を示すブロック図である。鍵管理サーバ２は、例えば、互いにバス線などで結線された、制御部２０、記憶部２１、及び通信部２２を備える。
なお、鍵管理サーバ２は、例えば、暗号処理を高速化する暗号処理部等をさらに含んでもよい。
【００４５】
なお、鍵管理サーバ２内の各部は、必ずしもバス線により結線されている必要はなく、その他の方法で電気的に繋がっていてもよい。また、鍵管理サーバ２内において、相互に接続されている必要がある部同士が接続されていてもよい。また別個の筐体内の部が電気的又は光配線等で接続されていてもよい。これは、情報システムに含まれる他の装置の構成についても同様である。
【００４６】
制御部２０は、例えば、プロセッサ（ＣＰＵ、ＭＰＵ、又はＤＳＰ）等から構成され、記憶部２１等に格納されたプログラムを実行する。記憶部２１は、制御部２０が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。記憶部２１は、例えば、磁気ディスク、ＳＳＤ、ＥＥＰＲＯＭ、又はフラッシュメモリ等の、不揮発性の記憶装置を含む。
【００４７】
また、記憶部２１は、不揮発性の記憶素子であるＲＯＭ及び揮発性の記憶素子であるＲＡＭを含むメモリを含んでもよい。ＲＯＭは、不変のプログラムなどを格納する。ＲＡＭは、ＤＲＡＭのような高速かつ揮発性の記憶素子であり、制御部２０が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００４８】
記憶部２１は、鍵などの情報を安全に保持するＨＳＭを備えてもよい。記憶部２１は、複数の記憶装置から構成されていてもよく、各プログラム及び各データが当該複数の記憶装置に分けて格納されていてもよい。
【００４９】
通信部２２は、所定のプロトコルに従って、情報システムに含まれる他の構成との通信を制御するネットワークインターフェース装置を含み、上述した無線通信及び有線通信を行うモジュールである。
【００５０】
鍵管理サーバ２は、例えば、通信方式ごとに応じて複数の通信部２２を含んでもよい。
また、通信部２２は、他の通信を実施するモジュールと共用になっていてもよい。なお、通信部２２は、無線通信に用いられるアンテナ及び変復調回路等を含んでもよい。また、通信部２２は、有線通信に用いられるコネクタ及び変復調回路等を含んでもよい。
【００５１】
制御部２０が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介して鍵管理サーバ２に提供され、例えば、記憶部２１に含まれる非一時的記憶媒体である不揮発性の補助記憶装置に格納される。このため、鍵管理サーバ２は、リムーバブルメディアからデータを読み込むインターフェースを有してもよい。
【００５２】
なお、鍵管理サーバ２は、入力インターフェース及び出力インターフェースをさらに有してもよい。入力インターフェースは、キーボードやマウスなどが接続され、オペレータからの入力を受けるインターフェースである。出力インターフェースは、ディスプレイ装置やプリンタなどが接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。
【００５３】
鍵管理サーバ２は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【００５４】
記憶部２１は、制御ソフト２１０と、鍵データベース２１１と、を格納する。制御ソフト２１０は、鍵管理サーバ２を制御するためのソフトウェアが記述されている。制御ソフト２１０は、例えば、通信部２２からの通信、所定のタイマー、又は他の割り込み処理を開始トリガとして、処理フローを実行するソフトウェアである。
【００５５】
制御ソフト２１０は、複数のソフトウェアが連携した複合的なものであってもよい。なお、特に断りなく鍵管理サーバ２又は制御ソフト２１０が処理を実行するような記述をした場合、物理的には制御ソフト２１０のプログラムの記述に則って制御部２０が処理を実行することを示す。上述した制御ソフト２１０の説明、及び制御ソフト２１０と制御部１０との関係の説明は、他の装置に含まれる制御ソフト及び制御部についても同様である。
【００５６】
制御ソフト２１０は、例えば、それぞれプログラムである、鍵管理機能２１０１、車両鍵配信機能２１０２、ＯＴＡサーバ鍵配信機能２１０３を備える。制御ソフト２１０はこれらの機能の組み合わせで実現される。
【００５７】
鍵管理機能２１０１は、車両鍵配送機能２１０２により車載システム１に所定の鍵を配送するよう、または配送する準備を行うよう、指示を行う。また、鍵管理機能２１０１は、ＯＴＡサーバ鍵配信機能２０１３によりＯＴＡサーバ３に所定の鍵を配送するよう指示を行う。鍵管理機能２１０１は、このほか鍵の生成、失効、又は削除を指示してもよい。
また、鍵管理機能２１０１は、鍵データベース２１１を更新する機能を有する。
【００５８】
車両鍵配送機能２１０２は、車両に鍵を配送する。また、車両から所定の鍵の更新があるか問い合わせがある場合に、更新の有無を車両に返答する。
【００５９】
なお図示してはいないが、鍵管理サーバ２は、車載システム１のサーバ通信ＥＣＵ１０やメインＥＣＵ１１と相互認証する機能や、ＯＴＡサーバ３と相互認証する機能を備えてもよい。そのために、サーバ通信ＥＣＵ１０やメインＥＣＵ１１と認証するためのＩＤと認証鍵、及びＯＴＡサーバ３と認証するためのＩＤと認証鍵が、テーブル形式で記憶部２１に格納されていてもよい。
【００６０】
鍵データベース２１１は、鍵管理サーバ２が配布した、車載システム１とＯＴＡサーバ３との間の認証鍵の情報を格納する。鍵データベース２１１は、例えば、鍵管理サーバ２が外部から受ける指示などに従って予め生成される。鍵データベース２１１は、例えばデータベースやハッシュテーブル等で構成される。
【００６１】
鍵データベース２１１は、例えば、鍵ＩＤ欄２１１１、アプリＩＤ欄２１１２、鍵値欄２１１３、配布先欄２１１４を含む。鍵ＩＤ欄２１１１は、鍵値欄２１１３に含まれる鍵値に対応する鍵ＩＤを格納する。アプリＩＤ欄２１１２は、車載システム１に含まれるＥＣＵのアプリケーションを識別するアプリＩＤを格納する。鍵ＩＤ及びアプリＩＤは、例えば、数値列又は文字列である。鍵データベース２１１は、鍵を一意に識別するＩＤをさらに保持してもよい。
【００６２】
鍵値欄２１１３欄は、鍵値を格納する。鍵値は例えば、公開鍵暗号の秘密鍵と公開鍵証明書の組や、共通鍵暗号の秘密鍵である。配布先欄２１１４は鍵の配布先を示す情報を格納する。図示した例では「メインＥＣＵ１１」と記載したが、具体的にはメインＥＣＵ１１を示すＩＤなどである。
【００６３】
このほか、鍵データベース２１１は、有効・失効といった鍵の状態や、配布日時などを欄の要素として備えてもよい。
【００６４】
なお、本実施形態において、情報システムが使用する情報がテーブル形式で表されている例を説明するが、情報システムが使用する情報はデータ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。情報記憶システムが使用する情報は、データ記憶装置における対応するデータ記憶領域に格納される。
【００６５】
図４は、ＯＴＡサーバ３の構成例を示すブロック図である。ＯＴＡサーバ３は、例えば、バス線などで互いに結線された、制御部３０、記憶部３１、及び通信部３２を備える。
ＯＴＡサーバ３は、例えば、暗号処理を高速化する暗号処理部をさらに備えていてもよい。
【００６６】
以下、制御部３０、記憶部３１、及び通信部３２それぞれと、制御部２０、記憶部２１及び通信部２２それぞれと、の相違点を説明し、同様の点の説明を省略する。記憶部３１は、ＯＴＡサーバ３を制御するためのソフトウェアが記述されている制御ソフト３１０、ＯＴＡ更新データ格納部３１１、及びＯＴＡ更新データ用暗号鍵格納部３１２を備える。
【００６７】
制御ソフト３１０は、例えば、それぞれプログラムである、ＯＴＡ更新データ管理機能３１０１、鍵管理サーバ連携機能３１０２を備える。ＯＴＡデータ管理機能３１０１は、更新データを暗号鍵で暗号化し、車載システム１に送付する機能を有する。他に更新データの登録等の機能を備えていてもよい。鍵管理サーバ連携機能３１０２は、鍵管理サーバ２との通信により更新データ用暗号鍵を取得する機能を備える。
【００６８】
ＯＴＡ更新データ格納部３１１は、車載システム１に送付する更新データを格納する。
図では示していないが、更新データは、更新対象となるＥＣＵや車両、ソフトウェアバージョンなどに応じて所定のＩＤと対応づいたデータベース等で管理される。
【００６９】
ＯＴＡ更新データ用暗号鍵格納部３１２は、ＯＴＡ更新データ格納部３１１に格納する更新データを暗号化する更新データ暗号鍵を格納する。更新データ暗号鍵は鍵管理サーバ２から取得する。もしくはＯＴＡサーバ３で鍵を生成しその鍵値を鍵管理サーバ２に登録してもよい。ＯＴＡ更新データ格納部３１１がデータベース等で管理される場合、更新データと更新データ暗号鍵は対応付けて管理される。
【００７０】
なお図示してはいないが、ＯＴＡサーバ２は、車載システム１のサーバ通信ＥＣＵ１０やメインＥＣＵ１１と相互認証する機能や、鍵管理サーバ２と相互認証する機能を備えてもよい。そのために、サーバ通信ＥＣＵ１０やメインＥＣＵ１１と認証するためのＩＤと認証鍵、及び鍵管理サーバと認証するためのＩＤと認証鍵が、テーブル形式で記憶部３１に格納されていてもよい。
【００７１】
以下、図５を用いて情報システムの処理の一例を示す。図５は、メインＥＣＵ１１が鍵管理サーバ２に更新鍵の有無を確認する際、更新データの復号処理が途中か否かを確認する処理を示すシーケンス図である。以下、特に断りがなくとも、鍵管理サーバ２又はＯＴＡサーバ３と、メインＥＣＵ１１との間の通信を、必要に応じてサーバ通信ＥＣＵ１０が中継する。
【００７２】
図示したシーケンスは、メインＥＣＵ１１のＯＴＡ制御アプリ１１１０２、及び、ＯＴＡサーバ３のＯＴＡ更新データ管理機能３１０１、の双方が使用する鍵を、それぞれ予め鍵管理サーバ２から取得済みの状態から開始する。
【００７３】
まず、ＯＴＡサーバのＯＴＡ更新データ管理機能３１０１は、暗号化された更新データをメインＥＣＵ１１に送付する（Ｓ１０１）。メインＥＣＵ１２は取得した更新データをＯＴＡ更新データ格納部１１１１に格納する。Ｓ１０１は、ＯＴＡサーバ３に更新データが登録されたことをきっかけとして開始してもよいし、ＯＴＡサーバ３に更新データが登録されたことをきっかけに送付の準備を行っておき、メインＥＣＵ１１のＯＴＡ制御アプリ１１１０２から所定の通知が来た場合に送付が開始されてもよい。更新データはＯＴＡ更新データ格納部３１１に格納される。また更新データの暗号化は、ＯＴＡ更新データ用暗号鍵格納部３１２に格納された鍵を用い、ＯＴＡサーバ３に更新データが登録された際などに実施する。
【００７４】
続いてＳ１０２において、メインＥＣＵ１１のＯＴＡ制御アプリ１１１０２は、鍵データベース１１１３のアプリＩＤ欄１１１３２がＯＴＡ制御アプリを示すＩＤである鍵値を用い、更新データを復号する。またＯＴＡ制御アプリ１１１０２は、ＯＴＡ状態格納部１１１２を更新中の状態とする。またＯＴＡ制御アプリ１１１０２は、ＥＣＵ１２の更新制御機能１２１１と通信を行うことで、復号した更新データをＥＣＵ１２に送付する。更新データがＥＣＵ１２の制御ソフトである場合、この処理により制御ソフト１２１０が逐次更新される。
【００７５】
ここで、一例として、Ｓ１０２の処理の予期せぬ中断が発生する（Ｓ１０３）。一例として、車載システム１が何らかの理由で停止した場合が考えられ、例えば電源が喪失した場合などが考えられる。このときＥＣＵ１２の制御用ソフト１２１０は更新途中であると考えられ、ＥＣＵ１２が動作しない状態にある場合がある。
【００７６】
ところで、鍵管理サーバ２の鍵管理機能２１０１は、所定のタイミングで鍵更新処理を実施する（Ｓ１０４）。Ｓ１０４の鍵更新処理では、鍵データベース２１１の鍵値が更新される。鍵更新のきっかけは鍵管理サーバ２の外部からの通信による指示、あるいは鍵管理サーバ２に対する操作、あるいは鍵管理機能２１０１の定期処理などであると考えられる。これらのきっかけは鍵ＩＤやアプリＩＤ等が含まれる。Ｓ１０４は、Ｓ１０１からＳ１０３と独立したきっかけで開始することが考えられる。Ｓ１０３とＳ１０４の順序は図示した順序でなくともよい。
【００７７】
続いて鍵管理機能２１０１は、ＯＴＡサーバ鍵配信機能２１０３を用いＯＴＡサーバ３の鍵管理サーバ連携機能３１０２と通信し、所定の鍵をＯＴＡサーバ３に配送する（Ｓ１０５）。鍵を受け取った鍵管理サーバ連携機能３１０２はＯＴＡ更新データ用鍵格納部３１２に格納された鍵を更新する（Ｓ１０６）。
【００７８】
一例として、Ｓ１０３の後に、車載システム１が再稼動するなどによりメインＥＣＵ１１とＥＣＵ１２の動作が再開する（Ｓ１０７）。ここで、メインＥＣＵ１１の鍵取得機能１１１０１は、ＯＴＡ状態格納部１１１２が更新中の状態を示すか否かを判定し（Ｓ１０８）、更新中でない場合（Ｓ１０８  Ｎｏ）、Ｓ１１１に遷移する。更新中の状態である場合（Ｓ１０８  Ｙｅｓ）、更新データの復号・書換えを再開し（Ｓ１０９）、完了したらＯＴＡ状態格納部１１１２の状態を更新中でない状態に変更する（Ｓ１１０）。
【００７９】
続いて、メインＥＣＵ１１の鍵取得機能１１１０１は、鍵管理サーバ２の車両鍵配信機能２１０２と通信し、鍵更新の有無を確認する（Ｓ１１１）。車両鍵配信機能２１０２は鍵データベース２１１の所定の鍵の更新の有無を判定し（Ｓ１１２）、更新がない場合（Ｓ１１２  Ｎｏ）、シーケンスを終了する。更新がある場合（Ｓ１１２  Ｙｅｓ）、その旨を鍵取得機能１１１０１に通知する。通知を受けた鍵取得機能１１１０１は車両鍵配信機能２１０２と通信し、更新鍵を取得する（Ｓ１１３、Ｓ１１４）。鍵取得機能１１１０１は、取得した更新鍵を鍵データベース１１１３に格納する。
【００８０】
なお特にシーケンスに示していないが、情報システム内の各通信処理を実施する場合は、事前に相互認証し、暗号セッション等を確立しておくことが望ましい。
【００８１】
図４に示した処理により、更新データの復号や書換えが完了する前に鍵が更新され、復号ができなくなることでＥＣＵの動作が停止することを防ぐことができる。
【００８２】
なお、本実施形態において説明したステップが、実施されている最中に、何らかのエラーが発生した場合は、当該エラーが情報システムの各構成要素の制御部に通知されてもよい。
【００８３】
また、制御ソフト１１１０、制御ソフト１２１０、更新制御機能１２１１、制御ソフト２１０、及び制御ソフト３１０に含まれる各プログラムは、必要に応じて、実行中の処理を示す情報を表示装置などに表示してもよい。当該各プログラムは、特に一連の処理の完了や、分岐処理の発生を示す情報を表示装置に表示することが望ましい。また、分岐処理における判定を、入力装置を介したユーザが実行してもよい。
【００８４】
また、本実施形態において各ステップ間の情報のやり取りを省略して示している場合があるが、実際には、コマンドに対するレスポンスのペアを成している場合がある。また、各ステップ間の情報のやり取りを一組の双方向矢印で示している場合であっても、当該やり取りにおいて複数のコマンド・レスポンスを含んでいてもよい。また、エンティティ間でデータを送受信するという内容を記述している場合でも、実際の通信は一方のエンティティがクライアント役、他方のエンティティがサーバ役となることで、のコマンド・レスポンスを通じて実施され、その結果として先述のようなデータの送信を実現してもよい。
【００８５】
なお、本発明は上記した各実施例に限定されるものではなく、様々な変形例が含まれる。上記した各実施例は本発明を分かりやすく説明するために詳細に説明されたものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００８６】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納されていてもよい。
【００８７】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００８８】
１  車載システム、２  鍵管理サーバ、３  ＯＴＡサーバ
【図１】
0006663032.tif 000002
【図２】
0006663032.tif 000003
【図３】
0006663032.tif 000004
【図４】
0006663032.tif 000005
【図５】
0006663032.tif 000006