(57)【特許請求の範囲】
【請求項１】
ネットワークを通じて互いに通信可能なサーバ装置と複数のクライアント装置とから構成され、
前記クライアント装置は、
メインプログラム、およびサーバ装置や他のクライアント装置と通信を行うための外部通信用プログラムを記憶する記憶手段と、
前記メインプログラムおよび外部通信用プログラムを実行するプロセッサと、
前記メインプログラムおよび外部通信用プログラムのダイジェスト値を計算するコード測定手段と、
時間を計測するタイマ手段と、
前記タイマ手段によって所定時間の経過が計測された場合に、少なくとも前記外部通信用プログラムの実行を停止させる制御手段と、
を有し、
前記サーバ装置は、
クライアント装置と通信するための外部通信手段と、
各クライアント装置について、前記メインプログラムおよび外部通信用プログラムの正しいダイジェスト値を記憶する正常状態記憶手段と、
を有し、
システム起動時に、
前記クライアント装置は、前記タイマ手段による時間の計測を開始するとともに、前記コード測定手段によって計算された前記メインプログラムおよび外部通信用プログラムのダイジェスト値を前記サーバ装置へ送信し、
前記サーバ装置は、前記クライアント装置から受信したダイジェスト値が前記正常状態記憶手段に記憶されている正しいダイジェスト値と一致するか否かを判定し、一致する場合は前記クライアント装置に対して正常である旨を通知する正常通知を送信し、
前記クライアント装置は、前記所定時間の経過前に前記サーバ装置から前記正常通知を受信した場合は前記タイマ手段による計測を停止させる、
コンピュータシステム。
【請求項２】
前記クライアント装置のコード測定手段、タイマ手段、および制御手段は耐タンパ性デバイスによって構成される、
請求項１に記載のコンピュータシステム。
【請求項３】
前記サーバ装置は、クライアント装置から受信したダイジェスト値が前記正常状態記憶手段に記憶されている正しいダイジェスト値と一致しない場合は、前記クライアント装置に対して異常である旨を通知する異常通知を送信し、
前記クライアント装置は、前記サーバ装置から前記異常通知を受信した場合は、前記タイマ手段による前記所定時間の経過が計測される前であっても、前記制御手段によって少なくとも前記外部通信用プログラムの実行を停止させる、
請求項１または２に記載のコンピュータシステム。
【請求項４】
前記サーバ装置は、ネットワークに接続された装置に対してＤｏＳ攻撃を行う攻撃手段と、ＤｏＳ攻撃を行うタイミングを予告する攻撃予告手段と、を備え、
前記クライアント装置は、攻撃予告を受信した場合は、ＤｏＳ攻撃が行われる間は外部通信用プログラムによるネットワーク機能を無効にする
請求項１〜３のいずれかに記載のコンピュータシステム。
【請求項５】
前記攻撃予告は、正常であると判定されたクライアント装置のみが解読可能に暗号化されて通信される
請求項４に記載のコンピュータシステム。
【請求項６】
ネットワークを通じて互いに通信可能なサーバ装置と複数のクライアント装置とから構成され、
前記クライアント装置は、
メインプログラム、およびサーバ装置や他のクライアント装置と通信を行うための外部通信用プログラムを記憶する記憶手段と、
前記メインプログラムおよび外部通信用プログラムを実行するプロセッサと、
少なくとも前記外部通信用プログラムによるネットワーク機能を無効にする制御手段と、
を有し、
前記サーバ装置は、
クライアント装置と通信するための外部通信手段と、
ネットワークに接続された装置に対してＤｏＳ攻撃を行う攻撃手段と、
ＤｏＳ攻撃を行うタイミングを予告する攻撃予告手段と、
を有し、
前記クライアント装置は、攻撃予告を受信した場合は、ＤｏＳ攻撃が行われる間は外部通信用プログラムによるネットワーク機能を無効にする、
コンピュータシステム。
【請求項７】
前記クライアント装置は、前記メインプログラムおよび外部通信用プログラムのダイジェスト値を計算するコード測定手段をさらに有し、
前記サーバ装置は、各クライアント装置について、メインプログラムおよび外部通信用プログラムの正しいダイジェスト値を記憶する正常状態記憶手段をさらに有し、
システム起動時に、前記クライアント装置は、前記コード測定手段によって計算されたメインプログラムおよび外部通信用プログラムのダイジェスト値を前記サーバ装置へ送信し、前記サーバ装置は、クライアント装置から受信したダイジェスト値が前記正常状態記憶手段に記憶されている正しいダイジェスト値と一致するか否かを判定することにより、クライアント装置の正当性を検証し、
前記攻撃予告は、正当であると検証されたクライアント装置のみが解読可能に暗号化されて通信される、
請求項６に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを安全に実行可能なコンピュータシステムに関し、特に、システム起動時に正当性が検証されたクライアント装置に暗号鍵を配布して暗号通信を行うコンピュータシステムにおいて、不正なクライアント装置による攻撃を防止する技術に関する。
【背景技術】
【０００２】
コンピュータシステムの普及に伴い、セキュリティ保証の重要性がますます高まっている。たとえば、近年電子化が進められている車載コンピュータシステムにおいて、プログラムが改ざんされるなどして他のＥＣＵや他の車両に対して誤った情報が送出されると危険である。したがって、コンピュータシステムにおいて実行するプログラムが、悪意者による改ざんを受けておらず製造者によって提供された正しいプログラムであることを保証する必要性が高まっている。このようにプログラムの正当性を保証する技術として、車載コンピュータシステムを起動する際に、各ノード（ＥＣＵ）の搭載プログラムが正しいことを確認した後に起動を行うことが提案されている（非特許文献１）。非特許文献１では、システム起動時に、クライアント装置がプログラムのダイジェスト値を算出してサーバ装置（ゲートウェイＥＣＵなど）に送信し、正当性が検証されればサーバ装置から暗号鍵が送信される。以降の通信は配布された暗号鍵を用いた暗号通信により行われるので、不正なノードは通信を傍受したり、誤った情報を他のノードに送信したりすることができなくなる。
【０００３】
また、コンピュータシステムに対する攻撃としてＤｏＳ（Denial of Service）攻撃が
知られている。広域ネットワークでは、ＤｏＳ攻撃を防止するために、ファイヤウォールやゲートウェイでメッセージフィルタリングを行って攻撃ノードからの通信を妨害している（特許文献１−３）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１１０１６６号公報
【特許文献２】特開２００６−６７０７８号公報
【特許文献３】特開２００４−３１８７４２号公報
【非特許文献】
【０００５】
【非特許文献１】H. Oguma, et. al., New Attestation-Based Security Architecture for In-Vehicle Communication, GLOBECOM 2008.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１の手法は、プログラムの正当性が保証された装置間で暗号通信を行っているので、不正な装置による通信の傍受や、なりすましによって誤った情報を他のノードに送信したりすることは防止できる。しかしながら、不正な装置がネットワークにアクセスすることは禁止していないので、ネットワークに対する攻撃を防止できない。例えば、不正ＥＣＵがＤｏＳ攻撃を実施した場合に通信遅延が発生してしまうことが考えられる。例えば、車載ネットワークにおけるＥＣＵ間の通信は低遅延であることが求められ、操舵・制動命令などに到着遅延が発生すると大きなトラブルが起きうる。
【０００７】
特許文献１−３の手法は、メッセージフィルタリングによってＤｏＳ攻撃などの被害拡
大を防いでいるが、車載ネットワークなどのように計算機資源の乏しい機器から構成されるシステムでは、メッセージフィルタリングが困難である。また、メッセージ解析による通信遅延が発生するため、低遅延通信が求められるネットワークには適さない。
【０００８】
本発明はこのような問題点を考慮してなされたものであり、その目的は、計算機資源の乏しい装置から構成されるコンピュータシステムにおいて、不正な装置からのネットワークに対する攻撃を防止することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明の第一の態様に係るコンピュータシステムは、ネットワークを通じて互いに通信可能なサーバ装置と複数のクライアント装置とから構成される。クライアント装置は、メインプログラム、およびサーバ装置や他のクライアント装置と通信を行うための外部通信用プログラムを記憶する記憶手段と、前記メインプログラムおよび外部通信用プログラムを実行するプロセッサと、前記メインプログラムおよび外部通信用プログラムのダイジェスト値を計算するコード測定手段と、時間を計測するタイマ手段と、前記タイマ手段によって所定時間の経過が計測された場合に、少なくとも前記外部通信用プログラムの実行を停止させる制御手段と、を有する。サーバ装置は、クライアント装置と通信するための外部通信手段と、各クライアント装置について、メインプログラムおよび外部通信用プログラムの正しいダイジェスト値を記憶する正常状態記憶手段と、を有する。
【００１０】
本発明の第一の態様に係るコンピュータシステムでは、システム起動時に、前記クライアント装置が、前記タイマ手段による時間の計測を開始するとともに、前記コード測定手段によって計算されたメインプログラムおよび外部通信用プログラムのダイジェスト値を前記サーバ装置へ送信し、前記サーバ装置は、クライアント装置から受信したダイジェスト値が前記正常状態記憶手段に記憶されている正しいダイジェスト値と一致するか否かを判定し、一致する場合は前記クライアント装置に対して正常である旨を通知する正常通知を送信し、前記クライアント装置は、前記所定時間の経過前に前記サーバ装置から正常通知を受信した場合は前記タイマ手段による計測を停止させる。
【００１１】
本発明の第一の態様によれば、クライアント装置のメインプログラムおよび外部通信用プログラムの正当性がサーバ装置によって正当であると検証された場合に、タイマ手段を停止できる。クライアント装置が不正であると判断された場合は、タイマ手段による計測が継続し、所定時間経過後に少なくともネットワーク機能が停止され不正クライアント装置からネットワークに対して攻撃ができなくなる。したがって、クライアント装置のメインプログラムや外部通信用プログラムが改ざんされた場合であっても、この不正クライアント装置によるネットワークへの攻撃を防止できる。
【００１２】
本発明の第一の態様において、クライアント装置のコード測定手段、タイマ手段、および制御手段は耐タンパ性デバイスによって構成されることが好ましい。耐タンパ性デバイスであれば、改ざんや内部情報の不正取得に対する耐性があり、より安全が確保される。
【００１３】
また、本発明の第一の態様において、サーバ装置が、クライアント装置から受信したダイジェスト値が正常状態記憶手段に記憶されている正しいダイジェスト値と一致しない場合は、クライアント装置に対して異常である旨を通知する異常通知を送信し、クライアント装置は、サーバ装置から異常通知を受信した場合は、タイマ手段による所定時間の経過が計測される前であっても、制御手段によって少なくとも前記外部通信用プログラムの実行を停止させる、ことが好ましい。
【００１４】
正常通知を受信しないことをもってクライアント装置の改ざんを検出する場合は、正常
通知の遅延等を考慮して、異常と判断するまでの時間（所定時間）を長く取る必要がある。上記のように、サーバ装置から異常通知を送信すれば、所定時間が経過する前にネットワーク機能を停止させることができる。
【００１５】
また、本発明の第一の態様において、サーバ装置は、ＤｏＳ攻撃を行うタイミングを予告する攻撃予告手段と、を備えることも好ましい。そして、前記クライアント装置は、攻撃予告を受信した場合は、ＤｏＳ攻撃が行われる間は外部通信用プログラムによるネットワーク機能を無効にすることが好ましい。
【００１６】
上述のようにサーバ装置から正常通知の受信をトリガとして、タイマ手段による計測を停止させる手法では、クライアントＥＣＵにタイマ手段とネットワーク機能を停止させる制御手段とが含まれる必要がある。すなわち、正当なクライアント装置のメインプログラムや外部通信用プログラムが改ざんされた場合に、上記のタイマ手段を利用した仕組みによりネットワーク機能を停止できる。一方、不正なクライアント装置が新たにネットワークに追加された場合には、上記の方法では対処できない。そこで、サーバ装置側からネットワーク内の装置に対してＤｏＳ攻撃を行うこととして、タイマ手段や制御手段などを持たない不正クライアント装置のネットワーク機能を停止させる。なお、正常なクライアント装置はＤｏＳ攻撃の予告が通知されたときに、その間だけネットワーク機能を停止させるので、ＤｏＳ攻撃を回避することができる。
【００１７】
ここで、サーバ装置が行う攻撃予告の通知は、正常であると判定されたクライアント装置のみが解読可能に暗号化されて通信されることが好ましい。このようにすれば、不正クライアント装置は攻撃のタイミングがわからないのでサーバ装置からの攻撃を回避できなくなる。
【００１８】
サーバ装置からネットワーク内の装置に対してＤｏＳ攻撃を行う手法は、タイマ手段と組み合わせずに単独でも採用可能である。すなわち、本発明の第二の態様に係るコンピュータシステムは、ネットワークを通じて互いに通信可能なサーバ装置と複数のクライアント装置とから構成され、前記クライアント装置は、メインプログラム、およびサーバ装置や他のクライアント装置と通信を行うための外部通信用プログラムを記憶する記憶手段と、前記メインプログラムおよび外部通信用プログラムを実行するプロセッサと、を有し、前記サーバ装置は、クライアント装置と通信するための外部通信手段と、各クライアント装置について、ネットワークに接続された装置に対してＤｏＳ攻撃を行う攻撃手段と、ＤｏＳ攻撃を行うタイミングを正常であると判定されたクライアント装置に対して予告する攻撃予告手段と、を有する。
前記サーバ装置の攻撃予告手段は、前記暗号鍵による暗号通信によってＤｏＳ攻撃を行うタイミングを正常であると判定されたクライアント装置に対して通知し、前記クライアント装置は、攻撃予告を受信した場合は、ＤｏＳ攻撃が行われる間は外部通信用プログラムによるネットワーク機能を無効にする。
【００１９】
本発明の第二の態様によれば、正常なクライアント装置のメインプログラムや外部通信用プログラムが改ざんされた場合であっても、ネットワークに不正なクライアント装置が新たに接続された場合であっても、不正なクライアント装置からのネットワークに対する攻撃を防止することができる。
【００２０】
本発明の第二の態様において、前記クライアント装置は、前記メインプログラムおよび外部通信用プログラムのダイジェスト値を計算するコード測定手段をさらに有し、前記サーバ装置は、各クライアント装置について、メインプログラムおよび外部通信用プログラムの正しいダイジェスト値を記憶する正常状態記憶手段をさらに有し、システム起動時に、前記クライアント装置は、前記コード測定手段によって計算されたメインプログラムお
よび外部通信用プログラムのダイジェスト値を前記サーバ装置へ送信し、前記サーバ装置は、クライアント装置から受信したダイジェスト値が前記正常状態記憶部に記憶されている正しいダイジェスト値と一致するか否かを判定することにより、クライアント装置の正当性を検証し、前記攻撃予告は、正当であると検証されたクライアント装置のみが解読可能に暗号化されて通信される、ことが好ましい。
【００２１】
このようにすれば、不正クライアント装置は攻撃のタイミングがわからないのでサーバ装置からの攻撃を回避できなくなる。
【００２２】
なお、本発明は、上記手段の少なくとも一部を有するコンピュータシステムとして捉えることができる。また、本発明は、上記処理の少なくとも一部を含む不正クライアント装置からの攻撃防止方法、およびこの方法を実行するプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００２３】
本発明によれば、計算機資源の乏しい装置から構成されるコンピュータシステムであっても、不正な装置からのネットワークに対する攻撃を防止することができる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態におけるシステム概要を示す図である。
【図２】第１の実施形態におけるクライアントＥＣＵ（クライアント装置）およびサーバＥＣＵ（サーバ装置）の機能構成を示す図である。
【図３Ａ】第１の実施形態におけるクライアントＥＣＵ（クライアント装置）のハードウェア構成を示す図である。
【図３Ｂ】第１の実施形態におけるサーバＥＣＵ（サーバ装置）のアーキテクチャを示す図である。
【図４】第１の実施形態におけるシステム起動時のクライアントＥＣＵ（クライアント装置）での処理の流れを示すフローチャートである。
【図５】第１の実施形態におけるシステム起動時のサーバＥＣＵ（サーバ装置）での処理の流れを示すフローチャートである。
【図６】第２の実施形態におけるクライアントＥＣＵ（クライアント装置）およびサーバ装置の機能構成を示す図である。
【図７】第２の実施形態におけるサーバ装置からの不正クライアントへの反撃を行うときの処理の流れを示すフローチャートである。
【図８】第２の実施形態におけるサーバＥＣＵ（サーバ装置）から攻撃予告メッセージを受信したときのクライアントＥＣＵ（クライアント装置）の処理の流れを示すフローチャートである。
【図９】第３の実施形態におけるクライアントＥＣＵ（クライアント装置）およびサーバＥＣＵ（サーバ装置）の機能構成を示す図である。
【発明を実施するための形態】
【００２５】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【００２６】
（第１の実施形態）
〈構成〉
図１は本実施形態に係るコンピュータシステムの概略構成を示す図である。本実施形態に係るコンピュータシステムは、複数のクライアント装置１００と、サーバ装置２００とから構成される。各クライアント装置１００はサーバ装置２００と車載ネットワークを介して通信可能に構成されている。本システムを車載システムに適用した場合、クライアン
ト装置１００はセンサやアクチュエータを制御する個々のＥＣＵ（Electronic Control Unit）に相当するものであり、クライアント装置１００は計算機資源の乏しい装置である
。サーバ装置２００はシステム内に１台のみあればよいものであるため、豊富な計算機資源を備えセキュリティが確保された装置として構成することができる。サーバ装置２００は、既存の車載システムに新しい装置として追加されても良いが、ゲートウェイＥＣＵやカーナビゲーション装置（ナビ制御ＥＣＵ）などの装置の一機能として実装されても良い。また、ここでは車載システムを例に説明を行うが、本実施形態に係るコンピュータシステムは、その他の任意のコンピュータシステムに対して適用することができる。以下、クライアント装置をクライアントＥＣＵ、サーバ装置をサーバＥＣＵと称する。
【００２７】
図２は、クライアントＥＣＵ（クライアント装置）１００およびサーバＥＣＵ（サーバ装置）２００の機能構成を示す図である。図３Ａ，３Ｂはそれぞれ、クライアントＥＣＵ１００およびサーバＥＣＵ２００のハードウェア構成を示す図である。
【００２８】
クライアントＥＣＵ１００は、外部通信部１０２、暗号関連処理部１０４、構成証明部１０６、ユニークＩＤ記憶部１０８、メインプログラム記憶部１１０、タイマ１１２、外部通信制御部１１４を備える。外部通信部１０２は、車載システム内の他のクライアントＥＣＵ１００やサーバＥＣＵ２００と通信を行う機能を有する。暗号関連処理部１０４は、データの暗号化および復号処理や、署名の付加や検証処理などの機能を有する。なお、後で詳しく説明するように、本実施形態においては、送受信装置のユニークＩＤを利用して共通鍵を生成する。暗号関連処理部１０４は、この共通鍵を生成するための鍵生成機能（鍵生成関数）も備えている。構成証明部１０６は、システム起動時にクライアントＥＣＵ１００内のプログラムが改ざんされていないことを検証する。構成証明部１０６は、汎用記憶デバイス内のプログラムのダイジェスト値を求める機能を有し、本発明のコード測定手段に相当する。構成証明部１０６が求めるダイジェスト値は、ＳＨＡ−１，ＳＨＡ−２５６などのハッシュ関数によって求めたダイジェスト値（ハッシュ値）であってもよく、ＭＤ５などその他のアルゴリズムによって求めたダイジェスト値であっても良い。ユニークＩＤ記憶部１０８は、クライアントＥＣＵ１００に固有のＩＤを記憶する。メインプログラム記憶部１１０は、クライアントＥＣＵがセンサＥＣＵやアクチュエータＥＣＵとして機能するために必要なメインプログラムを記憶する。タイマ１１２は時間の計測を行い、所定時間が経過するとタイマイベントを発生させる。外部通信制御部１１４は外部通信部１０２の機能の有効／無効を制御する。
【００２９】
クライアントＥＣＵ１００は、図３Ａに示すように、大略、耐タンパ性デバイス１２０とＣＰＵ（Central Processing Unit）１３０と汎用記憶デバイス１４０から構成されて
いる。耐タンパ性デバイスとは、内部情報の不正取得や改ざんに対して耐性のあるデバイスのことである。本実施形態では、耐タンパ性デバイス１２０によって暗号関連処理部１０４、構成証明部１０６、ユニークＩＤ記憶部１０８、タイマ１１２、外部通信制御部１１４の機能を実現する。また、フラッシュメモリなどの汎用記憶デバイス１４０には、メインプログラム１４１、外部通信用プログラム１４２が記憶されており、これらのプログラムをＣＰＵ１３０が実行することによって、ＥＣＵとしての機能や、外部通信部１０２の機能が実現される。なお、耐タンパ性デバイス１２０も、その内部にＣＰＵや記憶装置などを有しており、記憶装置内に格納されたプログラムを実行することで前記の各機能部が実現されることは同様である。
【００３０】
次に、サーバＥＣＵ２００の機能構成を、図２を参照して説明する。サーバＥＣＵ２００は、大略、外部通信部２０２、暗号関連処理部２０４、測定結果判定部２０６、正常状態記憶部２０８を備える。外部通信部２０２は、車載システム内のクライアントＥＣＵ１００と通信を行う機能を有する。暗号関連処理部２０４は、データの暗号化および復号処理や、署名の付加や検証処理などの機能を有する。なお、サーバＥＣＵ２００の暗号関連
処理部２０４もクライアントＥＣＵと同様に、送受信装置のユニークＩＤに基づく共通鍵生成機能を備える。測定結果判定部２０６は、クライアントＥＣＵが有する各種プログラムが正しいか否か判定する機能を有する。本実施形態においては、クライアントＥＣＵから各種プログラムのハッシュ値（ダイジェスト値）が送信される。正常状態記憶部２０８には各クライアントＥＣＵが現在有しているプログラムの正しいハッシュ値が格納されており、測定結果判定部２０６はクライアントＥＣＵから送信されるハッシュ値が正常状態記憶部２０８に格納されているハッシュ値と同じであれば、クライアントＥＣＵのプログラムが正常である（改ざんされていない）と判断する。
【００３１】
図３Ｂに示すように、サーバＥＣＵ２００が有する外部通信部２０２、暗号関連処理部２０４、測定結果判定部２０６、正常状態記憶部２０８は、セキュアドメイン２３０において実行される。サーバＥＣＵ２００が、ゲートウェイ装置のＥＣＵ内に設けられる場合は、ゲートウェイ装置としての機能は一般ドメイン２４０において実行される。セキュアドメインは、信頼性が確保されたプログラムのみが実行可能な環境であり、一般ドメイン２４０からのアクセスが禁止される。また、セキュアドメインと一般ドメインとは独立しており、一般ドメインにおいて異常が発生した場合であってもセキュアドメインに悪影響が及ぶことはない。このようなセキュアドメインは、たとえば、ＡＲＭ社のＴｒｕｓｔＺｏｎｅテクノロジー（同社の商標）によって実現することができる。
【００３２】
〈システム起動時のプログラム検査処理〉
次に、図４、図５を参照して、本車載コンピュータシステムにおけるシステム起動時の処理を説明する。図４はシステム起動時のクライアントＥＣＵ１００の処理を示すフローチャートであり、図５はシステム起動時のサーバＥＣＵ２００の処理を示すフローチャートである。
【００３３】
まず、図４を参照してクライアントＥＣＵ１００の処理を説明する。イグニッションのオンにより車載システムに電源が供給されてシステムが起動すると（Ｓ１００）、各クライアントＥＣＵ１００はタイマ１１２を起動して（Ｓ１０２）時間の計測を始めるとともに、構成証明部１０６がメインプログラム記憶部１１０内のメインプログラム１４１および外部通信用プログラム１４２のハッシュ値（ダイジェスト値）を求める（Ｓ１０４）。ここで、ハッシュ値はメインプログラム１４１と外部通信用プログラム１４２のそれぞれに対して求めても良いし、汎用記憶デバイス１４０の全体を対象として一つのハッシュ値を求めても良い。構成証明部１０６は、算出したハッシュ値をユニークＩＤとともにサーバＥＣＵ２００へ送信し（Ｓ１０６）、プログラムの検査結果がサーバＥＣＵ２００から送信されるのを待つ（Ｓ１０８−Ｓ１１０）。サーバＥＣＵ２００から応答があり（Ｓ１０８−ＹＥＳ）かつ、その応答結果がプログラムの改ざんがないことを示している（以下「ＳＷ正常」という）場合（Ｓ１１２−ＹＥＳ）は、タイマ１１２を停止させて（Ｓ１１４）起動処理を継続する（Ｓ１１６）。なお、サーバＥＣＵ２００からの応答結果には、後述するように構成証明トークンが含まれるので、これ以降のサーバＥＣＵ２００との通信や他のクライアントＥＣＵの通信にはこの構成証明トークンを利用した暗号通信を実施する。これにより、プログラムの改ざんが無く正当であると判定されたＥＣＵ同士で安全な通信が実行できる。
【００３４】
一方、サーバＥＣＵ２００から応答がないままタイマ１１２がタイムアウトした場合（Ｓ１１０−ＹＥＳ）や、サーバＥＣＵ２００からの応答結果がプログラムの改ざんがあることを示している（以下「ＳＷ異常」という）場合（Ｓ１１２−ＮＯ）には、外部通信制御部１１４が、外部通信用プログラム１４２の実行を停止することで外部通信部１０２の機能を停止させる（Ｓ１１８）。これにより、クライアントＥＣＵ１００のプログラムが改ざんされている場合には、ネットワーク機能が利用できず、不正ＥＣＵによるネットワークへの攻撃が防止できる。なお、プログラムに改ざんがある場合には、ネットワーク機
能を停止させるだけでなく、メインプログラムを含む機能を停止させてもかまわない。
【００３５】
次に、図５を参照してサーバＥＣＵ２００の処理を説明する。サーバＥＣＵ２００は、クライアントＥＣＵ１００からプログラムのハッシュ値を受信する（Ｓ２００）と、測定結果判定部２０６が、正常状態記憶部２０８を利用してクライアントＥＣＵ１００から受信したプログラムのハッシュ値が正しいか否か検査する（Ｓ２０２）。なお、前述したように正常状態記憶部２１４には、クライアントＥＣＵ１００ごとにメインプログラム１４１および外部通信用プログラム１４２の正しいハッシュ値が格納されている。クライアントＥＣＵ１００から受信したハッシュ値と正常状態記憶部２０８に格納されているハッシュ値が一致する場合（Ｓ２０４−ＹＥＳ）は、測定結果判定部２０６はクライアントＥＣＵ１００にＳＷ正常の通知を送信する（Ｓ２０６）。ここで、ＳＷ正常通知には、暗号関連処理部２０４によって生成された構成証明トークン（非特許文献１参照）を含ませ、以降の通信はこの暗号鍵を使って暗号化して実施する。一方、クライアントＥＣＵ１００から受信したハッシュ値と正常状態記憶部２０８に格納されているハッシュ値が一致しない場合（Ｓ２０４−ＮＯ）には、測定結果判定部２０６はＳＷ異常の通知を送信する（Ｓ２０８）。
【００３６】
なお、上記の説明ではクライアントＥＣＵのプログラムに改ざんがある時に、サーバＥＣＵからクライアントＥＣＵに対してＳＷ異常を通知している。これにより、タイマがタイムアウトする前に不正なクライアントのネットワーク機能を停止させることができる。サーバＥＣＵからの通知が遅延することを考慮して、タイマのタイムアウト時間を長く設定する場合があるが、サーバＥＣＵから異常通知を行えば長いタイムアウト時間の経過前にネットワーク機能を停止できる。もちろん、サーバＥＣＵからの異常通知は省略が可能であり、タイマのタイムアウトのみにしたがってネットワーク機能を停止させても良い。また、外部通信用プログラムがサーバからの異常通知を無視するように改ざんされる危険性を考慮すると、タイマによるネットワーク機能停止機構は省略しないことが好ましい。
【００３７】
〈暗号処理〉
システム起動時におけるクライアントＥＣＵ１００とサーバＥＣＵ２００との間の通信は、秘匿・署名通信によって、盗聴や改ざんを防ぐことが好ましい。暗号化通信を行うにあたって、共通鍵方式および公開鍵方式のいずれを採用しても良いが、計算量を考慮して本実施形態では共通鍵方式による秘匿・署名通信を採用する。共通鍵方式を採用する場合も、システム内で１つの共通鍵を採用する方式と、装置ペアごとに異なる共通鍵を採用する方式が考えられるが、システム内で共通の鍵を採用した場合は鍵漏洩時になりすましによって誤動作を引き起こすことが可能であり危険である。そこで、本実施形態では、通信相手ごとに異なる共通鍵を用いるために、ＫＰＳ（Key Predistribution System）を採用する。この処理は公知の技術であり、非特許文献１などでも説明されているので簡単に説明する。
【００３８】
ＫＰＳでは、以下の鍵生成関数を用いて共通鍵を作成する。
【数１】
0005598164.tif 000002
ここで行列{aij}は対称行列、すなわち、aij=ajiであり、ｘ、ｙは各装置のＩＤ、Ｔはセキュリティパラメーター、ｑは素数である。
【００３９】
クライアントＥＣＵ１００およびサーバＥＣＵ２００の暗号関連処理部には、自装置のＩＤをＡとして以下の鍵生成関数ＫＡ（ｙ）が格納される。
【数２】
0005598164.tif 000003
他の装置と通信を行う場合には、通信相手のＩＤ（Ｂとする）を取得して、ＫＡ（Ｂ）を共通鍵として用いる。ＫＡ（Ｂ）＝ＫＢ（Ａ）であるので、互いのＩＤを交換することで通信相手も同一の共通鍵を生成できる。
【００４０】
なお、ＫＰＳは情報量的安全性に基づいた鍵管理方式であり、セキュリティパラメーターＴ個以下の鍵生成関数が漏洩した場合でも、他の鍵を推測できないことが証明されている。
【００４１】
本実施形態におけるシステム起動時のクライアントＥＣＵ１００とサーバＥＣＵ２００との間の処理は、このような鍵生成アルゴリズムによって生成された共通鍵によって秘匿化される。また、メインプログラム起動後のユニキャスト通信（サーバとクライアントの間およびクライアント同士の間）の通信も、この鍵生成アルゴリズムによって生成された共通鍵によって秘匿化される。
【００４２】
システム起動時のプログラム検査によって、クライアントＥＣＵ１００のプログラムが改ざんされていないことが確認された場合には、サーバＥＣＵ２００からクライアントＥＣＵ１００に対して、構成証明トークンを送信する。この構成証明トークンは、システムが起動するたびにサーバＥＣＵ２００によって新しく生成される乱数値であり、システム稼働中は同一の値が使用される。プログラムの検証を通過した装置では、それ以降の他の装置との通信にこの構成証明トークンを利用することで、自身が正規のプログラムであることを提示する。たとえば、ユニキャスト通信においては、メッセージに構成証明トークンを含めて、ＫＰＳ鍵生成アルゴリズムによって生成される通信相手との共通鍵を用いて秘匿・署名通信を行う。ユニキャスト通信を受信した装置では、正しい構成証明トークンが含まれているメッセージのみを処理し、その他のメッセージを破棄することで構成証明が行われた装置とだけ通信を行う。また、ブロードキャスト通信の場合は、構成証明トークンを共通鍵として秘匿・署名通信を行う。ブロードキャスト通信を受信した装置では、構成証明トークンによって復号・署名検証が行えるメッセージだけを処理することで、構成証明が行われた装置とだけ通信を行う。もちろんユニキャスト通信においても構成証明トークンを共通鍵として秘匿・署名通信をしてもかまわない。このように起動時に各種プログラムの正当性が検証されないと、他の装置との通信が一切行えなくなる。
【００４３】
（本実施形態の作用・効果）
本実施形態では、システム起動時にクライアントＥＣＵの汎用記憶デバイス内のプログラムの正当性を検証し、正当性が検証されたクライアントＥＣＵに配布される構成証明トークンを利用して暗号通信を行っている。これにより改ざんされた不正なクライアントＥＣＵによる情報の傍受や、不正なクライアントＥＣＵから送信される誤った情報による誤動作を防止できる。
【００４４】
さらに、クライアントＥＣＵのプログラムが改ざんされていることが検知された場合に、クライアントＥＣＵの外部通信機能（ネットワーク機能）を停止させているので、ネットワークに対するＤｏＳ攻撃なども防止できる。不正クライアントが構成証明トークンを受信しないだけでネットワーク機能が有効であれば大量のメッセージをネットワークに送出して通信遅延を発生させることが可能であるが、ネットワーク機能を停止させることでこのような攻撃も防止できる。しかも、不正クライアントからの攻撃をメッセージ解析などの処理を行わずに防止できるので、計算資源の乏しい機器から構成されるシステムでも
有効に利用できる。
【００４５】
クライアントＥＣＵにおける構成証明部、タイマ、外部通信制御部などのプログラム検証のための機能部は耐タンパ性デバイスで構成されているため、その機能を改ざんすることはできない。したがって、汎用記憶デバイスに記憶されているプログラム（メインプログラムおよび外部通信用プログラム）に改ざんが加えられても、プログラムの正当性の検証および改ざんが検知された際のネットワーク機能の停止は確実に実行できる。
【００４６】
＜第２の実施形態＞
〈概要〉
本実施形態では、第１の実施形態とは異なる方法により不正クライアントＥＣＵのネットワーク機能を停止させる。第１の実施形態では、不正クライアントのネットワーク機能を停止させるためには、タイマと外部通信制御部が不正クライアントＥＣＵに搭載されていることが必要であった。つまり、第１の実施形態では正規クライアントに対してメインプログラムや外部通信用プログラムの改ざんが行われた場合に、そのネットワーク機能を停止させることができるものの、正規のＥＣＵが不正ＥＣＵに付け替えられたり、不正ＥＣＵがネットワークに新たに追加されたりする状況には対処できない。そこで本実施形態では、不正クライアントにタイマや外部通信制御部が存在しない場合でも、不正クライアントのネットワーク機能を停止させる。
【００４７】
より具体的には、本実施形態ではサーバＥＣＵからネットワークに接続された装置にＤｏＳ攻撃を仕掛けるようにし、正当性が検証されたクライアントのみが読み取り可能なように攻撃時期の予告を行う。したがって、不正クライアントは攻撃時期がわからないのでサーバＥＣＵからの攻撃によりネットワーク機能が停止する。一方、正規のクライアントは予告された攻撃の間だけネットワーク機能を一時的に停止することで、サーバＥＣＵからの攻撃を避けられる。
【００４８】
〈機能構成〉
図６は、本実施形態におけるクライアントＥＣＵ１００およびサーバＥＣＵ２００の機能構成を示す図である。なお、図６に示すクライアントＥＣＵの機能構成は、正規のクライアントＥＣＵが有する機能を示すものである。第１の実施形態と比較して、クライアントＥＣＵ１００にメッセージ処理部１１６が新たに設けられ、タイマ１１２が除かれている点が相違する。メッセージ処理部１１６は、後述するサーバＥＣＵ２００からの攻撃予告メッセージを解釈して、サーバＥＣＵ２００がネットワークに対して攻撃を行う期間だけ、外部通信制御部１１４に対して外部通信機能を停止させるように指示する。メッセージ処理部１１６は、耐タンパ性デバイスにより構成される。
【００４９】
また、サーバＥＣＵ２００は、第１の実施形態と比較して、反撃制御部２１０、メッセージ処理部２１２および反撃メッセージ生成部２１４を備える点が相違する。反撃制御部２１０は、ネットワークに対してＤｏＳ攻撃を行うタイミングとその攻撃持続時間を決定する制御部である。メッセージ処理部２１２は、ＤｏＳ攻撃を行うタイミングをネットワーク内の正規クライアントに対して通知するための攻撃予告メッセージを生成する。反撃メッセージ生成部２１４は、ＤｏＳ攻撃のためにネットワーク内にブロードキャストするメッセージを生成する。
【００５０】
〈システム起動時のプログラム検査処理〉
システム起動時のクライアントＥＣＵ１００のプログラム検査処理は、タイマ１１２が存在しない点を除いて第１の実施形態（図４）と同様である。すなわち、汎用記憶デバイス１４０内のメインプログラムおよび外部通信用プログラムのダイジェスト値を算出してサーバＥＣＵ２００へ送信する。サーバＥＣＵ２００でダイジェスト値が正しいか否か判
定し、正しければ構成証明トークンとともに正規のクライアントである旨の通知をクライアントＥＣＵ１００へ送信する。正当性が検証されたクライアントＥＣＵ１００は以降の通信では構成証明トークンを利用して暗号通信を実施する。なお、本実施形態においては、タイマ１１２が存在しないので、サーバＥＣＵ２００から応答がない場合には、クライアントＥＣＵにおける起動処理が進まないことになる。もちろん、サーバＥＣＵ２００からプログラムが改ざんされている旨をクライアントＥＣＵ１００へ通知して、クライアントＥＣＵ１００の実行を停止しても良い。
【００５１】
〈サーバＥＣＵからの反撃処理〉
次に、図７、図８を参照してサーバＥＣＵからの反撃（ＤｏＳ攻撃）処理および、正規クライアントにおける攻撃回避の処理について説明する。図７に示すように、反撃制御部２１０が次回の攻撃を実施する時刻とその攻撃持続時間を決定する（Ｓ３０２）。サーバＥＣＵ２００が攻撃を行う間クライアントＥＣＵ１００はネットワーク機能を切断するため、攻撃の実行はシステム本来の機能に悪影響を与える。そこで、サーバＥＣＵ２００の攻撃実行時期を、システムに与える影響ができるだけ少ない時期とすることが好ましい。例えば、本システムを車載コンピュータシステムとして構成する場合は、車両が停止すると予測されるタイミングまたは実際に停止しているタイミングを攻撃の時期として決定することが好ましい。車両停止中であればネットワーク機能の停止による悪影響が少ないと考えられるためである。反撃制御部２１０は、たとえばカーナビゲーション装置や外部通信部などから交通信号が停止信号になるタイミングを取得してそのタイミングに攻撃を行っても良い。また、速度センサやブレーキセンサなどから実際に車両が停止中であると判定でき、かつ、今後一定時間以上停止中が継続するタイミングを反撃のタイミングとしても良い。
【００５２】
反撃制御部２１０が次回の反撃タイミングを決定したら、メッセージ処理部２１２が反撃予告メッセージを生成する（Ｓ３０４）。この反撃予告メッセージには、次回の攻撃開始時刻および攻撃持続時間が含まれる。暗号関連処理部２０４は、生成された反撃予告メッセージを構成証明トークンにより秘匿化する（Ｓ３０６）。そして、外部通信部２０２が秘匿化されたメッセージを正規クライアントに対して送信する（Ｓ３０８）。ここでは、構成証明トークンにより秘匿化された反撃予告メッセージをネットワーク内にブロードキャストすることで、構成証明トークンを有するクライアントすなわち正規クライアントのみに反撃予告メッセージを送信する。もちろん、反撃予告メッセージをＫＰＳによる共通鍵で秘匿化して、正規クライアントのそれぞれに対してユニキャスト送信する構成としてもかまわない。
【００５３】
反撃予告メッセージの送信後、反撃制御部は決定した攻撃時刻が到来するまで休眠する。攻撃時刻が到来したら（Ｓ３１０−ＹＥＳ）、反撃制御部２１０は、反撃メッセージ生成部２１４に対して、不正クライアントを攻撃するためのメッセージを生成するよう依頼する（Ｓ３１２）。そして、外部通信部２０２は、生成された攻撃メッセージを、決定した時間の間だけネットワークへ対してブロードキャスト送信する（Ｓ３１４）。このようにサーバＥＣＵからネットワーク内の装置に対してＤｏＳ攻撃をしかけることで、反撃予告メッセージを解読できない不正クライアントＥＣＵの機能を停止させることができる。
【００５４】
図８を参照して正規クライアントがサーバＥＣＵ２００からの攻撃を回避する処理について説明する。サーバＥＣＵ２００から送信される反撃予告メッセージを受信すると、暗号関連処理部１０４がメッセージを復号し（Ｓ４０２）、メッセージ処理部１１６が復号されたメッセージを解析して（Ｓ４０４）、外部通信制御部１１４に渡す。外部通信制御部１１４は取得した反撃予告メッセージから、サーバＥＣＵ２００による次回の攻撃のタイミングをその持続時間を認識し（Ｓ４０６）、反撃予告メッセージにより指示された時刻まで休眠する（S４０８）。指示された攻撃時刻が到来したら（Ｓ４１０−ＹＥＳ）、
外部通信制御部１１４は、外部通信部の機能を指示された時間の間だけ無効にして、クライアントＥＣＵをネットワークから切断する（Ｓ４１２）。攻撃の期間が終了したら、外部通信制御部１１４は外部通信部の機能を再び有効にしてクライアントＥＣＵをネットワークに再接続する（Ｓ４１４）。
【００５５】
〈本実施形態の作用・効果〉
本実施形態によれば、サーバＥＣＵからネットワーク内に対してＤｏＳ攻撃を行うため、その攻撃期間中にネットワーク機能が有効であるクライアントの動作を停止させることができる。ここで、正当性が検証された正規クライアントのみが解読可能な反撃予告メッセージをあらかじめ送信しているので、正規クライアントは攻撃の間ネットワーク機能を一時的に無効にすることでＤｏＳ攻撃の影響を避けることができる。本実施形態では、機能を停止させるべき不正クライアントＥＣＵに特段の処理部（第１の実施形態におけるタイマ手段と外部通信制御部）を必要としないため、正規クライアントのプログラムが改ざんされた場合だけでなく、ネットワークに不正クライアントが新規に追加された場合であっても、不正クライアントの動作を停止させることができる。
【００５６】
（第３の実施形態）
第３の実施形態は、第１の実施形態と第２の実施形態の両方の手法を組み合わせた実施形態である。図９に本実施形態におけるクライアントＥＣＵ１００およびサーバＥＣＵ２００の機能構成を示す。図９に示すように、本実施形態におけるクライアントＥＣＵ１００には、タイマ１１２とメッセージ処理部１１６の両方が含まれる。サーバＥＣＵ２００は第２の実施形態と同様である。本実施形態においては、システム起動時に図４、図５に示すプログラム検査処理が実行され、システム起動後に定期的に図７、図８に示すサーバＥＣＵからの攻撃処理が実施される。
【００５７】
本実施形態によれば、正規クライアントのメインプログラムや外部通信用プログラムが改ざんされたクライアントを確実に停止することができるとともに、ＥＣＵの交換やネットワークに新たに追加された不正ＥＣＵのネットワーク機能を停止させることができる。
【符号の説明】
【００５８】
１００  クライアントＥＣＵ
１０２  外部通信部、    １０４  暗号関連処理部、    １０６  構成証明部（コード測定部）、    １０８  ユニークＩＤ記憶部、    １１０  メインプログラム記憶部、  
１１２  タイマ、    １１４  外部通信制御部、    １１６  メッセージ処理部
２００  サーバＥＣＵ
２０２  外部通信部、    ２０４  暗号関連処理部、    ２０６  測定結果判定部、  
２０８  正常状態記憶部、    ２１０  反撃制御部、    ２１２  メッセージ処理部、
２１４  反撃メッセージ生成部
【図１】
0005598164.tif 000004
【図２】
0005598164.tif 000005
【図３Ａ】
0005598164.tif 000006
【図３Ｂ】
0005598164.tif 000007
【図４】
0005598164.tif 000008
【図５】
0005598164.tif 000009
【図６】
0005598164.tif 000010
【図７】
0005598164.tif 000011
【図８】
0005598164.tif 000012
【図９】
0005598164.tif 000013