説明

コンピュータシステム

【課題】改ざんまたは新しく追加された不正ECUからのネットワークに対する攻撃を比較的少ない計算機資源からなる装置で防止できる技術を提供する。
【解決手段】クライアントECUはシステム起動時に、タイマによる時間の計測を開始するとともに、メインプログラム等のダイジェスト値を算出してサーバECUへ送信する。サーバECUは、受信したダイジェスト値が正しいか否か判断し、判断結果をクライアントECUへ通知する。クライアントECUは、正常通知を受信したらタイマを停止するが、応答がない場合や異常通知を受信した場合はネットワーク機能(外部通信用プログラム)を停止させる。また、正規ECUのみが解読可能なように攻撃時期を予告した上で、サーバECUからネットワークに対してDoS攻撃を仕掛けることも好ましい。不正ECUのみがDoS攻撃の対象となりその機能を停止させることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムを安全に実行可能なコンピュータシステムに関し、特に、システム起動時に正当性が検証されたクライアント装置に暗号鍵を配布して暗号通信を行うコンピュータシステムにおいて、不正なクライアント装置による攻撃を防止する技術に関する。
【背景技術】
【0002】
コンピュータシステムの普及に伴い、セキュリティ保証の重要性がますます高まっている。たとえば、近年電子化が進められている車載コンピュータシステムにおいて、プログラムが改ざんされるなどして他のECUや他の車両に対して誤った情報が送出されると危険である。したがって、コンピュータシステムにおいて実行するプログラムが、悪意者による改ざんを受けておらず製造者によって提供された正しいプログラムであることを保証する必要性が高まっている。このようにプログラムの正当性を保証する技術として、車載コンピュータシステムを起動する際に、各ノード(ECU)の搭載プログラムが正しいことを確認した後に起動を行うことが提案されている(非特許文献1)。非特許文献1では、システム起動時に、クライアント装置がプログラムのダイジェスト値を算出してサーバ装置(ゲートウェイECUなど)に送信し、正当性が検証されればサーバ装置から暗号鍵が送信される。以降の通信は配布された暗号鍵を用いた暗号通信により行われるので、不正なノードは通信を傍受したり、誤った情報を他のノードに送信したりすることができなくなる。
【0003】
また、コンピュータシステムに対する攻撃としてDoS(Denial of Service)攻撃が
知られている。広域ネットワークでは、DoS攻撃を防止するために、ファイヤウォールやゲートウェイでメッセージフィルタリングを行って攻撃ノードからの通信を妨害している(特許文献1−3)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−110166号公報
【特許文献2】特開2006−67078号公報
【特許文献3】特開2004−318742号公報
【非特許文献】
【0005】
【非特許文献1】H. Oguma, et. al., New Attestation-Based Security Architecture for In-Vehicle Communication, GLOBECOM 2008.
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1の手法は、プログラムの正当性が保証された装置間で暗号通信を行っているので、不正な装置による通信の傍受や、なりすましによって誤った情報を他のノードに送信したりすることは防止できる。しかしながら、不正な装置がネットワークにアクセスすることは禁止していないので、ネットワークに対する攻撃を防止できない。例えば、不正ECUがDoS攻撃を実施した場合に通信遅延が発生してしまうことが考えられる。例えば、車載ネットワークにおけるECU間の通信は低遅延であることが求められ、操舵・制動命令などに到着遅延が発生すると大きなトラブルが起きうる。
【0007】
特許文献1−3の手法は、メッセージフィルタリングによってDoS攻撃などの被害拡
大を防いでいるが、車載ネットワークなどのように計算機資源の乏しい機器から構成されるシステムでは、メッセージフィルタリングが困難である。また、メッセージ解析による通信遅延が発生するため、低遅延通信が求められるネットワークには適さない。
【0008】
本発明はこのような問題点を考慮してなされたものであり、その目的は、計算機資源の乏しい装置から構成されるコンピュータシステムにおいて、不正な装置からのネットワークに対する攻撃を防止することを目的とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本発明の第一の態様に係るコンピュータシステムは、ネットワークを通じて互いに通信可能なサーバ装置と複数のクライアント装置とから構成される。クライアント装置は、メインプログラム、およびサーバ装置や他のクライアント装置と通信を行うための外部通信用プログラムを記憶する記憶手段と、前記メインプログラムおよび外部通信用プログラムを実行するプロセッサと、前記メインプログラムおよび外部通信用プログラムのダイジェスト値を計算するコード測定手段と、時間を計測するタイマ手段と、前記タイマ手段によって所定時間の経過が計測された場合に、少なくとも前記外部通信用プログラムの実行を停止させる制御手段と、を有する。サーバ装置は、クライアント装置と通信するための外部通信手段と、各クライアント装置について、メインプログラムおよび外部通信用プログラムの正しいダイジェスト値を記憶する正常状態記憶手段と、を有する。
【0010】
本発明の第一の態様に係るコンピュータシステムでは、システム起動時に、前記クライアント装置が、前記タイマ手段による時間の計測を開始するとともに、前記コード測定手段によって計算されたメインプログラムおよび外部通信用プログラムのダイジェスト値を前記サーバ装置へ送信し、前記サーバ装置は、クライアント装置から受信したダイジェスト値が前記正常状態記憶手段に記憶されている正しいダイジェスト値と一致するか否かを判定し、一致する場合は前記クライアント装置に対して正常である旨を通知する正常通知を送信し、前記クライアント装置は、前記所定時間の経過前に前記サーバ装置から正常通知を受信した場合は前記タイマ手段による計測を停止させる。
【0011】
本発明の第一の態様によれば、クライアント装置のメインプログラムおよび外部通信用プログラムの正当性がサーバ装置によって正当であると検証された場合に、タイマ手段を停止できる。クライアント装置が不正であると判断された場合は、タイマ手段による計測が継続し、所定時間経過後に少なくともネットワーク機能が停止され不正クライアント装置からネットワークに対して攻撃ができなくなる。したがって、クライアント装置のメインプログラムや外部通信用プログラムが改ざんされた場合であっても、この不正クライアント装置によるネットワークへの攻撃を防止できる。
【0012】
本発明の第一の態様において、クライアント装置のコード測定手段、タイマ手段、および制御手段は耐タンパ性デバイスによって構成されることが好ましい。耐タンパ性デバイスであれば、改ざんや内部情報の不正取得に対する耐性があり、より安全が確保される。
【0013】
また、本発明の第一の態様において、サーバ装置が、クライアント装置から受信したダイジェスト値が正常状態記憶手段に記憶されている正しいダイジェスト値と一致しない場合は、クライアント装置に対して異常である旨を通知する異常通知を送信し、クライアント装置は、サーバ装置から異常通知を受信した場合は、タイマ手段による所定時間の経過が計測される前であっても、制御手段によって少なくとも前記外部通信用プログラムの実行を停止させる、ことが好ましい。
【0014】
正常通知を受信しないことをもってクライアント装置の改ざんを検出する場合は、正常
通知の遅延等を考慮して、異常と判断するまでの時間(所定時間)を長く取る必要がある。上記のように、サーバ装置から異常通知を送信すれば、所定時間が経過する前にネットワーク機能を停止させることができる。
【0015】
また、本発明の第一の態様において、サーバ装置は、DoS攻撃を行うタイミングを予告する攻撃予告手段と、を備えることも好ましい。そして、前記クライアント装置は、攻撃予告を受信した場合は、DoS攻撃が行われる間は外部通信用プログラムによるネットワーク機能を無効にすることが好ましい。
【0016】
上述のようにサーバ装置から正常通知の受信をトリガとして、タイマ手段による計測を停止させる手法では、クライアントECUにタイマ手段とネットワーク機能を停止させる制御手段とが含まれる必要がある。すなわち、正当なクライアント装置のメインプログラムや外部通信用プログラムが改ざんされた場合に、上記のタイマ手段を利用した仕組みによりネットワーク機能を停止できる。一方、不正なクライアント装置が新たにネットワークに追加された場合には、上記の方法では対処できない。そこで、サーバ装置側からネットワーク内の装置に対してDoS攻撃を行うこととして、タイマ手段や制御手段などを持たない不正クライアント装置のネットワーク機能を停止させる。なお、正常なクライアント装置はDoS攻撃の予告が通知されたときに、その間だけネットワーク機能を停止させるので、DoS攻撃を回避することができる。
【0017】
ここで、サーバ装置が行う攻撃予告の通知は、正常であると判定されたクライアント装置のみが解読可能に暗号化されて通信されることが好ましい。このようにすれば、不正クライアント装置は攻撃のタイミングがわからないのでサーバ装置からの攻撃を回避できなくなる。
【0018】
サーバ装置からネットワーク内の装置に対してDoS攻撃を行う手法は、タイマ手段と組み合わせずに単独でも採用可能である。すなわち、本発明の第二の態様に係るコンピュータシステムは、ネットワークを通じて互いに通信可能なサーバ装置と複数のクライアント装置とから構成され、前記クライアント装置は、メインプログラム、およびサーバ装置や他のクライアント装置と通信を行うための外部通信用プログラムを記憶する記憶手段と、前記メインプログラムおよび外部通信用プログラムを実行するプロセッサと、を有し、前記サーバ装置は、クライアント装置と通信するための外部通信手段と、各クライアント装置について、ネットワークに接続された装置に対してDoS攻撃を行う攻撃手段と、DoS攻撃を行うタイミングを正常であると判定されたクライアント装置に対して予告する攻撃予告手段と、を有する。
前記サーバ装置の攻撃予告手段は、前記暗号鍵による暗号通信によってDoS攻撃を行うタイミングを正常であると判定されたクライアント装置に対して通知し、前記クライアント装置は、攻撃予告を受信した場合は、DoS攻撃が行われる間は外部通信用プログラムによるネットワーク機能を無効にする。
【0019】
本発明の第二の態様によれば、正常なクライアント装置のメインプログラムや外部通信用プログラムが改ざんされた場合であっても、ネットワークに不正なクライアント装置が新たに接続された場合であっても、不正なクライアント装置からのネットワークに対する攻撃を防止することができる。
【0020】
本発明の第二の態様において、前記クライアント装置は、前記メインプログラムおよび外部通信用プログラムのダイジェスト値を計算するコード測定手段をさらに有し、前記サーバ装置は、各クライアント装置について、メインプログラムおよび外部通信用プログラムの正しいダイジェスト値を記憶する正常状態記憶手段をさらに有し、システム起動時に、前記クライアント装置は、前記コード測定手段によって計算されたメインプログラムお
よび外部通信用プログラムのダイジェスト値を前記サーバ装置へ送信し、前記サーバ装置は、クライアント装置から受信したダイジェスト値が前記正常状態記憶部に記憶されている正しいダイジェスト値と一致するか否かを判定することにより、クライアント装置の正当性を検証し、前記攻撃予告は、正当であると検証されたクライアント装置のみが解読可能に暗号化されて通信される、ことが好ましい。
【0021】
このようにすれば、不正クライアント装置は攻撃のタイミングがわからないのでサーバ装置からの攻撃を回避できなくなる。
【0022】
なお、本発明は、上記手段の少なくとも一部を有するコンピュータシステムとして捉えることができる。また、本発明は、上記処理の少なくとも一部を含む不正クライアント装置からの攻撃防止方法、およびこの方法を実行するプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0023】
本発明によれば、計算機資源の乏しい装置から構成されるコンピュータシステムであっても、不正な装置からのネットワークに対する攻撃を防止することができる。
【図面の簡単な説明】
【0024】
【図1】本実施形態におけるシステム概要を示す図である。
【図2】第1の実施形態におけるクライアントECU(クライアント装置)およびサーバECU(サーバ装置)の機能構成を示す図である。
【図3A】第1の実施形態におけるクライアントECU(クライアント装置)のハードウェア構成を示す図である。
【図3B】第1の実施形態におけるサーバECU(サーバ装置)のアーキテクチャを示す図である。
【図4】第1の実施形態におけるシステム起動時のクライアントECU(クライアント装置)での処理の流れを示すフローチャートである。
【図5】第1の実施形態におけるシステム起動時のサーバECU(サーバ装置)での処理の流れを示すフローチャートである。
【図6】第2の実施形態におけるクライアントECU(クライアント装置)およびサーバ装置の機能構成を示す図である。
【図7】第2の実施形態におけるサーバ装置からの不正クライアントへの反撃を行うときの処理の流れを示すフローチャートである。
【図8】第2の実施形態におけるサーバECU(サーバ装置)から攻撃予告メッセージを受信したときのクライアントECU(クライアント装置)の処理の流れを示すフローチャートである。
【図9】第3の実施形態におけるクライアントECU(クライアント装置)およびサーバECU(サーバ装置)の機能構成を示す図である。
【発明を実施するための形態】
【0025】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【0026】
(第1の実施形態)
〈構成〉
図1は本実施形態に係るコンピュータシステムの概略構成を示す図である。本実施形態に係るコンピュータシステムは、複数のクライアント装置100と、サーバ装置200とから構成される。各クライアント装置100はサーバ装置200と車載ネットワークを介して通信可能に構成されている。本システムを車載システムに適用した場合、クライアン
ト装置100はセンサやアクチュエータを制御する個々のECU(Electronic Control Unit)に相当するものであり、クライアント装置100は計算機資源の乏しい装置である
。サーバ装置200はシステム内に1台のみあればよいものであるため、豊富な計算機資源を備えセキュリティが確保された装置として構成することができる。サーバ装置200は、既存の車載システムに新しい装置として追加されても良いが、ゲートウェイECUやカーナビゲーション装置(ナビ制御ECU)などの装置の一機能として実装されても良い。また、ここでは車載システムを例に説明を行うが、本実施形態に係るコンピュータシステムは、その他の任意のコンピュータシステムに対して適用することができる。以下、クライアント装置をクライアントECU、サーバ装置をサーバECUと称する。
【0027】
図2は、クライアントECU(クライアント装置)100およびサーバECU(サーバ装置)200の機能構成を示す図である。図3A,3Bはそれぞれ、クライアントECU100およびサーバECU200のハードウェア構成を示す図である。
【0028】
クライアントECU100は、外部通信部102、暗号関連処理部104、構成証明部106、ユニークID記憶部108、メインプログラム記憶部110、タイマ112、外部通信制御部114を備える。外部通信部102は、車載システム内の他のクライアントECU100やサーバECU200と通信を行う機能を有する。暗号関連処理部104は、データの暗号化および復号処理や、署名の付加や検証処理などの機能を有する。なお、後で詳しく説明するように、本実施形態においては、送受信装置のユニークIDを利用して共通鍵を生成する。暗号関連処理部104は、この共通鍵を生成するための鍵生成機能(鍵生成関数)も備えている。構成証明部106は、システム起動時にクライアントECU100内のプログラムが改ざんされていないことを検証する。構成証明部106は、汎用記憶デバイス内のプログラムのダイジェスト値を求める機能を有し、本発明のコード測定手段に相当する。構成証明部106が求めるダイジェスト値は、SHA−1,SHA−256などのハッシュ関数によって求めたダイジェスト値(ハッシュ値)であってもよく、MD5などその他のアルゴリズムによって求めたダイジェスト値であっても良い。ユニークID記憶部108は、クライアントECU100に固有のIDを記憶する。メインプログラム記憶部110は、クライアントECUがセンサECUやアクチュエータECUとして機能するために必要なメインプログラムを記憶する。タイマ112は時間の計測を行い、所定時間が経過するとタイマイベントを発生させる。外部通信制御部114は外部通信部102の機能の有効/無効を制御する。
【0029】
クライアントECU100は、図3Aに示すように、大略、耐タンパ性デバイス120とCPU(Central Processing Unit)130と汎用記憶デバイス140から構成されて
いる。耐タンパ性デバイスとは、内部情報の不正取得や改ざんに対して耐性のあるデバイスのことである。本実施形態では、耐タンパ性デバイス120によって暗号関連処理部104、構成証明部106、ユニークID記憶部108、タイマ112、外部通信制御部114の機能を実現する。また、フラッシュメモリなどの汎用記憶デバイス140には、メインプログラム141、外部通信用プログラム142が記憶されており、これらのプログラムをCPU130が実行することによって、ECUとしての機能や、外部通信部102の機能が実現される。なお、耐タンパ性デバイス120も、その内部にCPUや記憶装置などを有しており、記憶装置内に格納されたプログラムを実行することで前記の各機能部が実現されることは同様である。
【0030】
次に、サーバECU200の機能構成を、図2を参照して説明する。サーバECU200は、大略、外部通信部202、暗号関連処理部204、測定結果判定部206、正常状態記憶部208を備える。外部通信部202は、車載システム内のクライアントECU100と通信を行う機能を有する。暗号関連処理部204は、データの暗号化および復号処理や、署名の付加や検証処理などの機能を有する。なお、サーバECU200の暗号関連
処理部204もクライアントECUと同様に、送受信装置のユニークIDに基づく共通鍵生成機能を備える。測定結果判定部206は、クライアントECUが有する各種プログラムが正しいか否か判定する機能を有する。本実施形態においては、クライアントECUから各種プログラムのハッシュ値(ダイジェスト値)が送信される。正常状態記憶部208には各クライアントECUが現在有しているプログラムの正しいハッシュ値が格納されており、測定結果判定部206はクライアントECUから送信されるハッシュ値が正常状態記憶部208に格納されているハッシュ値と同じであれば、クライアントECUのプログラムが正常である(改ざんされていない)と判断する。
【0031】
図3Bに示すように、サーバECU200が有する外部通信部202、暗号関連処理部204、測定結果判定部206、正常状態記憶部208は、セキュアドメイン230において実行される。サーバECU200が、ゲートウェイ装置のECU内に設けられる場合は、ゲートウェイ装置としての機能は一般ドメイン240において実行される。セキュアドメインは、信頼性が確保されたプログラムのみが実行可能な環境であり、一般ドメイン240からのアクセスが禁止される。また、セキュアドメインと一般ドメインとは独立しており、一般ドメインにおいて異常が発生した場合であってもセキュアドメインに悪影響が及ぶことはない。このようなセキュアドメインは、たとえば、ARM社のTrustZoneテクノロジー(同社の商標)によって実現することができる。
【0032】
〈システム起動時のプログラム検査処理〉
次に、図4、図5を参照して、本車載コンピュータシステムにおけるシステム起動時の処理を説明する。図4はシステム起動時のクライアントECU100の処理を示すフローチャートであり、図5はシステム起動時のサーバECU200の処理を示すフローチャートである。
【0033】
まず、図4を参照してクライアントECU100の処理を説明する。イグニッションのオンにより車載システムに電源が供給されてシステムが起動すると(S100)、各クライアントECU100はタイマ112を起動して(S102)時間の計測を始めるとともに、構成証明部106がメインプログラム記憶部110内のメインプログラム141および外部通信用プログラム142のハッシュ値(ダイジェスト値)を求める(S104)。ここで、ハッシュ値はメインプログラム141と外部通信用プログラム142のそれぞれに対して求めても良いし、汎用記憶デバイス140の全体を対象として一つのハッシュ値を求めても良い。構成証明部106は、算出したハッシュ値をユニークIDとともにサーバECU200へ送信し(S106)、プログラムの検査結果がサーバECU200から送信されるのを待つ(S108−S110)。サーバECU200から応答があり(S108−YES)かつ、その応答結果がプログラムの改ざんがないことを示している(以下「SW正常」という)場合(S112−YES)は、タイマ112を停止させて(S114)起動処理を継続する(S116)。なお、サーバECU200からの応答結果には、後述するように構成証明トークンが含まれるので、これ以降のサーバECU200との通信や他のクライアントECUの通信にはこの構成証明トークンを利用した暗号通信を実施する。これにより、プログラムの改ざんが無く正当であると判定されたECU同士で安全な通信が実行できる。
【0034】
一方、サーバECU200から応答がないままタイマ112がタイムアウトした場合(S110−YES)や、サーバECU200からの応答結果がプログラムの改ざんがあることを示している(以下「SW異常」という)場合(S112−NO)には、外部通信制御部114が、外部通信用プログラム142の実行を停止することで外部通信部102の機能を停止させる(S118)。これにより、クライアントECU100のプログラムが改ざんされている場合には、ネットワーク機能が利用できず、不正ECUによるネットワークへの攻撃が防止できる。なお、プログラムに改ざんがある場合には、ネットワーク機
能を停止させるだけでなく、メインプログラムを含む機能を停止させてもかまわない。
【0035】
次に、図5を参照してサーバECU200の処理を説明する。サーバECU200は、クライアントECU100からプログラムのハッシュ値を受信する(S200)と、測定結果判定部206が、正常状態記憶部208を利用してクライアントECU100から受信したプログラムのハッシュ値が正しいか否か検査する(S202)。なお、前述したように正常状態記憶部214には、クライアントECU100ごとにメインプログラム141および外部通信用プログラム142の正しいハッシュ値が格納されている。クライアントECU100から受信したハッシュ値と正常状態記憶部208に格納されているハッシュ値が一致する場合(S204−YES)は、測定結果判定部206はクライアントECU100にSW正常の通知を送信する(S206)。ここで、SW正常通知には、暗号関連処理部204によって生成された構成証明トークン(非特許文献1参照)を含ませ、以降の通信はこの暗号鍵を使って暗号化して実施する。一方、クライアントECU100から受信したハッシュ値と正常状態記憶部208に格納されているハッシュ値が一致しない場合(S204−NO)には、測定結果判定部206はSW異常の通知を送信する(S208)。
【0036】
なお、上記の説明ではクライアントECUのプログラムに改ざんがある時に、サーバECUからクライアントECUに対してSW異常を通知している。これにより、タイマがタイムアウトする前に不正なクライアントのネットワーク機能を停止させることができる。サーバECUからの通知が遅延することを考慮して、タイマのタイムアウト時間を長く設定する場合があるが、サーバECUから異常通知を行えば長いタイムアウト時間の経過前にネットワーク機能を停止できる。もちろん、サーバECUからの異常通知は省略が可能であり、タイマのタイムアウトのみにしたがってネットワーク機能を停止させても良い。また、外部通信用プログラムがサーバからの異常通知を無視するように改ざんされる危険性を考慮すると、タイマによるネットワーク機能停止機構は省略しないことが好ましい。
【0037】
〈暗号処理〉
システム起動時におけるクライアントECU100とサーバECU200との間の通信は、秘匿・署名通信によって、盗聴や改ざんを防ぐことが好ましい。暗号化通信を行うにあたって、共通鍵方式および公開鍵方式のいずれを採用しても良いが、計算量を考慮して本実施形態では共通鍵方式による秘匿・署名通信を採用する。共通鍵方式を採用する場合も、システム内で1つの共通鍵を採用する方式と、装置ペアごとに異なる共通鍵を採用する方式が考えられるが、システム内で共通の鍵を採用した場合は鍵漏洩時になりすましによって誤動作を引き起こすことが可能であり危険である。そこで、本実施形態では、通信相手ごとに異なる共通鍵を用いるために、KPS(Key Predistribution System)を採用する。この処理は公知の技術であり、非特許文献1などでも説明されているので簡単に説明する。
【0038】
KPSでは、以下の鍵生成関数を用いて共通鍵を作成する。
【数1】

ここで行列{aij}は対称行列、すなわち、aij=ajiであり、x、yは各装置のID、Tはセキュリティパラメーター、qは素数である。
【0039】
クライアントECU100およびサーバECU200の暗号関連処理部には、自装置のIDをAとして以下の鍵生成関数K(y)が格納される。
【数2】

他の装置と通信を行う場合には、通信相手のID(Bとする)を取得して、K(B)を共通鍵として用いる。K(B)=K(A)であるので、互いのIDを交換することで通信相手も同一の共通鍵を生成できる。
【0040】
なお、KPSは情報量的安全性に基づいた鍵管理方式であり、セキュリティパラメーターT個以下の鍵生成関数が漏洩した場合でも、他の鍵を推測できないことが証明されている。
【0041】
本実施形態におけるシステム起動時のクライアントECU100とサーバECU200との間の処理は、このような鍵生成アルゴリズムによって生成された共通鍵によって秘匿化される。また、メインプログラム起動後のユニキャスト通信(サーバとクライアントの間およびクライアント同士の間)の通信も、この鍵生成アルゴリズムによって生成された共通鍵によって秘匿化される。
【0042】
システム起動時のプログラム検査によって、クライアントECU100のプログラムが改ざんされていないことが確認された場合には、サーバECU200からクライアントECU100に対して、構成証明トークンを送信する。この構成証明トークンは、システムが起動するたびにサーバECU200によって新しく生成される乱数値であり、システム稼働中は同一の値が使用される。プログラムの検証を通過した装置では、それ以降の他の装置との通信にこの構成証明トークンを利用することで、自身が正規のプログラムであることを提示する。たとえば、ユニキャスト通信においては、メッセージに構成証明トークンを含めて、KPS鍵生成アルゴリズムによって生成される通信相手との共通鍵を用いて秘匿・署名通信を行う。ユニキャスト通信を受信した装置では、正しい構成証明トークンが含まれているメッセージのみを処理し、その他のメッセージを破棄することで構成証明が行われた装置とだけ通信を行う。また、ブロードキャスト通信の場合は、構成証明トークンを共通鍵として秘匿・署名通信を行う。ブロードキャスト通信を受信した装置では、構成証明トークンによって復号・署名検証が行えるメッセージだけを処理することで、構成証明が行われた装置とだけ通信を行う。もちろんユニキャスト通信においても構成証明トークンを共通鍵として秘匿・署名通信をしてもかまわない。このように起動時に各種プログラムの正当性が検証されないと、他の装置との通信が一切行えなくなる。
【0043】
(本実施形態の作用・効果)
本実施形態では、システム起動時にクライアントECUの汎用記憶デバイス内のプログラムの正当性を検証し、正当性が検証されたクライアントECUに配布される構成証明トークンを利用して暗号通信を行っている。これにより改ざんされた不正なクライアントECUによる情報の傍受や、不正なクライアントECUから送信される誤った情報による誤動作を防止できる。
【0044】
さらに、クライアントECUのプログラムが改ざんされていることが検知された場合に、クライアントECUの外部通信機能(ネットワーク機能)を停止させているので、ネットワークに対するDoS攻撃なども防止できる。不正クライアントが構成証明トークンを受信しないだけでネットワーク機能が有効であれば大量のメッセージをネットワークに送出して通信遅延を発生させることが可能であるが、ネットワーク機能を停止させることでこのような攻撃も防止できる。しかも、不正クライアントからの攻撃をメッセージ解析などの処理を行わずに防止できるので、計算資源の乏しい機器から構成されるシステムでも
有効に利用できる。
【0045】
クライアントECUにおける構成証明部、タイマ、外部通信制御部などのプログラム検証のための機能部は耐タンパ性デバイスで構成されているため、その機能を改ざんすることはできない。したがって、汎用記憶デバイスに記憶されているプログラム(メインプログラムおよび外部通信用プログラム)に改ざんが加えられても、プログラムの正当性の検証および改ざんが検知された際のネットワーク機能の停止は確実に実行できる。
【0046】
<第2の実施形態>
〈概要〉
本実施形態では、第1の実施形態とは異なる方法により不正クライアントECUのネットワーク機能を停止させる。第1の実施形態では、不正クライアントのネットワーク機能を停止させるためには、タイマと外部通信制御部が不正クライアントECUに搭載されていることが必要であった。つまり、第1の実施形態では正規クライアントに対してメインプログラムや外部通信用プログラムの改ざんが行われた場合に、そのネットワーク機能を停止させることができるものの、正規のECUが不正ECUに付け替えられたり、不正ECUがネットワークに新たに追加されたりする状況には対処できない。そこで本実施形態では、不正クライアントにタイマや外部通信制御部が存在しない場合でも、不正クライアントのネットワーク機能を停止させる。
【0047】
より具体的には、本実施形態ではサーバECUからネットワークに接続された装置にDoS攻撃を仕掛けるようにし、正当性が検証されたクライアントのみが読み取り可能なように攻撃時期の予告を行う。したがって、不正クライアントは攻撃時期がわからないのでサーバECUからの攻撃によりネットワーク機能が停止する。一方、正規のクライアントは予告された攻撃の間だけネットワーク機能を一時的に停止することで、サーバECUからの攻撃を避けられる。
【0048】
〈機能構成〉
図6は、本実施形態におけるクライアントECU100およびサーバECU200の機能構成を示す図である。なお、図6に示すクライアントECUの機能構成は、正規のクライアントECUが有する機能を示すものである。第1の実施形態と比較して、クライアントECU100にメッセージ処理部116が新たに設けられ、タイマ112が除かれている点が相違する。メッセージ処理部116は、後述するサーバECU200からの攻撃予告メッセージを解釈して、サーバECU200がネットワークに対して攻撃を行う期間だけ、外部通信制御部114に対して外部通信機能を停止させるように指示する。メッセージ処理部116は、耐タンパ性デバイスにより構成される。
【0049】
また、サーバECU200は、第1の実施形態と比較して、反撃制御部210、メッセージ処理部212および反撃メッセージ生成部214を備える点が相違する。反撃制御部210は、ネットワークに対してDoS攻撃を行うタイミングとその攻撃持続時間を決定する制御部である。メッセージ処理部212は、DoS攻撃を行うタイミングをネットワーク内の正規クライアントに対して通知するための攻撃予告メッセージを生成する。反撃メッセージ生成部214は、DoS攻撃のためにネットワーク内にブロードキャストするメッセージを生成する。
【0050】
〈システム起動時のプログラム検査処理〉
システム起動時のクライアントECU100のプログラム検査処理は、タイマ112が存在しない点を除いて第1の実施形態(図4)と同様である。すなわち、汎用記憶デバイス140内のメインプログラムおよび外部通信用プログラムのダイジェスト値を算出してサーバECU200へ送信する。サーバECU200でダイジェスト値が正しいか否か判
定し、正しければ構成証明トークンとともに正規のクライアントである旨の通知をクライアントECU100へ送信する。正当性が検証されたクライアントECU100は以降の通信では構成証明トークンを利用して暗号通信を実施する。なお、本実施形態においては、タイマ112が存在しないので、サーバECU200から応答がない場合には、クライアントECUにおける起動処理が進まないことになる。もちろん、サーバECU200からプログラムが改ざんされている旨をクライアントECU100へ通知して、クライアントECU100の実行を停止しても良い。
【0051】
〈サーバECUからの反撃処理〉
次に、図7、図8を参照してサーバECUからの反撃(DoS攻撃)処理および、正規クライアントにおける攻撃回避の処理について説明する。図7に示すように、反撃制御部210が次回の攻撃を実施する時刻とその攻撃持続時間を決定する(S302)。サーバECU200が攻撃を行う間クライアントECU100はネットワーク機能を切断するため、攻撃の実行はシステム本来の機能に悪影響を与える。そこで、サーバECU200の攻撃実行時期を、システムに与える影響ができるだけ少ない時期とすることが好ましい。例えば、本システムを車載コンピュータシステムとして構成する場合は、車両が停止すると予測されるタイミングまたは実際に停止しているタイミングを攻撃の時期として決定することが好ましい。車両停止中であればネットワーク機能の停止による悪影響が少ないと考えられるためである。反撃制御部210は、たとえばカーナビゲーション装置や外部通信部などから交通信号が停止信号になるタイミングを取得してそのタイミングに攻撃を行っても良い。また、速度センサやブレーキセンサなどから実際に車両が停止中であると判定でき、かつ、今後一定時間以上停止中が継続するタイミングを反撃のタイミングとしても良い。
【0052】
反撃制御部210が次回の反撃タイミングを決定したら、メッセージ処理部212が反撃予告メッセージを生成する(S304)。この反撃予告メッセージには、次回の攻撃開始時刻および攻撃持続時間が含まれる。暗号関連処理部204は、生成された反撃予告メッセージを構成証明トークンにより秘匿化する(S306)。そして、外部通信部202が秘匿化されたメッセージを正規クライアントに対して送信する(S308)。ここでは、構成証明トークンにより秘匿化された反撃予告メッセージをネットワーク内にブロードキャストすることで、構成証明トークンを有するクライアントすなわち正規クライアントのみに反撃予告メッセージを送信する。もちろん、反撃予告メッセージをKPSによる共通鍵で秘匿化して、正規クライアントのそれぞれに対してユニキャスト送信する構成としてもかまわない。
【0053】
反撃予告メッセージの送信後、反撃制御部は決定した攻撃時刻が到来するまで休眠する。攻撃時刻が到来したら(S310−YES)、反撃制御部210は、反撃メッセージ生成部214に対して、不正クライアントを攻撃するためのメッセージを生成するよう依頼する(S312)。そして、外部通信部202は、生成された攻撃メッセージを、決定した時間の間だけネットワークへ対してブロードキャスト送信する(S314)。このようにサーバECUからネットワーク内の装置に対してDoS攻撃をしかけることで、反撃予告メッセージを解読できない不正クライアントECUの機能を停止させることができる。
【0054】
図8を参照して正規クライアントがサーバECU200からの攻撃を回避する処理について説明する。サーバECU200から送信される反撃予告メッセージを受信すると、暗号関連処理部104がメッセージを復号し(S402)、メッセージ処理部116が復号されたメッセージを解析して(S404)、外部通信制御部114に渡す。外部通信制御部114は取得した反撃予告メッセージから、サーバECU200による次回の攻撃のタイミングをその持続時間を認識し(S406)、反撃予告メッセージにより指示された時刻まで休眠する(S408)。指示された攻撃時刻が到来したら(S410−YES)、
外部通信制御部114は、外部通信部の機能を指示された時間の間だけ無効にして、クライアントECUをネットワークから切断する(S412)。攻撃の期間が終了したら、外部通信制御部114は外部通信部の機能を再び有効にしてクライアントECUをネットワークに再接続する(S414)。
【0055】
〈本実施形態の作用・効果〉
本実施形態によれば、サーバECUからネットワーク内に対してDoS攻撃を行うため、その攻撃期間中にネットワーク機能が有効であるクライアントの動作を停止させることができる。ここで、正当性が検証された正規クライアントのみが解読可能な反撃予告メッセージをあらかじめ送信しているので、正規クライアントは攻撃の間ネットワーク機能を一時的に無効にすることでDoS攻撃の影響を避けることができる。本実施形態では、機能を停止させるべき不正クライアントECUに特段の処理部(第1の実施形態におけるタイマ手段と外部通信制御部)を必要としないため、正規クライアントのプログラムが改ざんされた場合だけでなく、ネットワークに不正クライアントが新規に追加された場合であっても、不正クライアントの動作を停止させることができる。
【0056】
(第3の実施形態)
第3の実施形態は、第1の実施形態と第2の実施形態の両方の手法を組み合わせた実施形態である。図9に本実施形態におけるクライアントECU100およびサーバECU200の機能構成を示す。図9に示すように、本実施形態におけるクライアントECU100には、タイマ112とメッセージ処理部116の両方が含まれる。サーバECU200は第2の実施形態と同様である。本実施形態においては、システム起動時に図4、図5に示すプログラム検査処理が実行され、システム起動後に定期的に図7、図8に示すサーバECUからの攻撃処理が実施される。
【0057】
本実施形態によれば、正規クライアントのメインプログラムや外部通信用プログラムが改ざんされたクライアントを確実に停止することができるとともに、ECUの交換やネットワークに新たに追加された不正ECUのネットワーク機能を停止させることができる。
【符号の説明】
【0058】
100 クライアントECU
102 外部通信部、 104 暗号関連処理部、 106 構成証明部(コード測定部)、 108 ユニークID記憶部、 110 メインプログラム記憶部、
112 タイマ、 114 外部通信制御部、 116 メッセージ処理部
200 サーバECU
202 外部通信部、 204 暗号関連処理部、 206 測定結果判定部、
208 正常状態記憶部、 210 反撃制御部、 212 メッセージ処理部、
214 反撃メッセージ生成部

【特許請求の範囲】
【請求項1】
ネットワークを通じて互いに通信可能なサーバ装置と複数のクライアント装置とから構成され、
前記クライアント装置は、
メインプログラム、およびサーバ装置や他のクライアント装置と通信を行うための外部通信用プログラムを記憶する記憶手段と、
前記メインプログラムおよび外部通信用プログラムを実行するプロセッサと、
前記メインプログラムおよび外部通信用プログラムのダイジェスト値を計算するコード測定手段と、
時間を計測するタイマ手段と、
前記タイマ手段によって所定時間の経過が計測された場合に、少なくとも前記外部通信用プログラムの実行を停止させる制御手段と、
を有し、
前記サーバ装置は、
クライアント装置と通信するための外部通信手段と、
各クライアント装置について、前記メインプログラムおよび外部通信用プログラムの正しいダイジェスト値を記憶する正常状態記憶手段と、
を有し、
システム起動時に、
前記クライアント装置は、前記タイマ手段による時間の計測を開始するとともに、前記コード測定手段によって計算された前記メインプログラムおよび外部通信用プログラムのダイジェスト値を前記サーバ装置へ送信し、
前記サーバ装置は、前記クライアント装置から受信したダイジェスト値が前記正常状態記憶手段に記憶されている正しいダイジェスト値と一致するか否かを判定し、一致する場合は前記クライアント装置に対して正常である旨を通知する正常通知を送信し、
前記クライアント装置は、前記所定時間の経過前に前記サーバ装置から前記正常通知を受信した場合は前記タイマ手段による計測を停止させる、
コンピュータシステム。
【請求項2】
前記クライアント装置のコード測定手段、タイマ手段、および制御手段は耐タンパ性デバイスによって構成される、
請求項1に記載のコンピュータシステム。
【請求項3】
前記サーバ装置は、クライアント装置から受信したダイジェスト値が前記正常状態記憶手段に記憶されている正しいダイジェスト値と一致しない場合は、前記クライアント装置に対して異常である旨を通知する異常通知を送信し、
前記クライアント装置は、前記サーバ装置から前記異常通知を受信した場合は、前記タイマ手段による前記所定時間の経過が計測される前であっても、前記制御手段によって少なくとも前記外部通信用プログラムの実行を停止させる、
請求項1または2に記載のコンピュータシステム。
【請求項4】
前記サーバ装置は、ネットワークに接続された装置に対してDoS攻撃を行う攻撃手段と、DoS攻撃を行うタイミングを予告する攻撃予告手段と、を備え、
前記クライアント装置は、攻撃予告を受信した場合は、DoS攻撃が行われる間は外部通信用プログラムによるネットワーク機能を無効にする
請求項1〜3のいずれかに記載のコンピュータシステム。
【請求項5】
前記攻撃予告は、正常であると判定されたクライアント装置のみが解読可能に暗号化されて通信される
請求項4に記載のコンピュータシステム。
【請求項6】
ネットワークを通じて互いに通信可能なサーバ装置と複数のクライアント装置とから構成され、
前記クライアント装置は、
メインプログラム、およびサーバ装置や他のクライアント装置と通信を行うための外部通信用プログラムを記憶する記憶手段と、
前記メインプログラムおよび外部通信用プログラムを実行するプロセッサと、
少なくとも前記外部通信用プログラムによるネットワーク機能を無効にする制御手段と、
を有し、
前記サーバ装置は、
クライアント装置と通信するための外部通信手段と、
ネットワークに接続された装置に対してDoS攻撃を行う攻撃手段と、
DoS攻撃を行うタイミングを予告する攻撃予告手段と、
を有し、
前記クライアント装置は、攻撃予告を受信した場合は、DoS攻撃が行われる間は外部通信用プログラムによるネットワーク機能を無効にする、
コンピュータシステム。
【請求項7】
前記クライアント装置は、前記メインプログラムおよび外部通信用プログラムのダイジェスト値を計算するコード測定手段をさらに有し、
前記サーバ装置は、各クライアント装置について、メインプログラムおよび外部通信用プログラムの正しいダイジェスト値を記憶する正常状態記憶手段をさらに有し、
システム起動時に、前記クライアント装置は、前記コード測定手段によって計算されたメインプログラムおよび外部通信用プログラムのダイジェスト値を前記サーバ装置へ送信し、前記サーバ装置は、クライアント装置から受信したダイジェスト値が前記正常状態記憶部に記憶されている正しいダイジェスト値と一致するか否かを判定することにより、クライアント装置の正当性を検証し、
前記攻撃予告は、正当であると検証されたクライアント装置のみが解読可能に暗号化されて通信される、
請求項6に記載のコンピュータシステム。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−48488(P2012−48488A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−189892(P2010−189892)
【出願日】平成22年8月26日(2010.8.26)
【出願人】(502087460)株式会社トヨタIT開発センター (232)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】