(57)【要約】【課題】サーバクラックによって通信の信頼性が損なわれる可能性を抑制可能な転送システムを提供すること。【解決手段】通信システム１は、複数のサーバ装置３０からなる転送システム３を有する。転送システムでは、車載装置５０の秘密鍵に対応する公開鍵が、複数のサーバ装置により分散管理されている。クライアント装置１０は、サーバ装置群の内、特定サーバ装置の公開鍵を有し、この公開鍵を用い、車載装置を宛先とした通信データを、暗号化して特定サーバ装置に送信する。サーバ装置は、通信データを受信すると、これを復号し、宛先の車載装置が本装置で公開鍵を管理する装置であるかを判断する。ここで、そうであると判断すると、宛先の車載装置の公開鍵で、通信データを暗号化し、これを、他サーバ装置を介して該当車載装置に送信する。一方、そうでないと判断すると、通信データを、次サーバ装置の公開鍵で暗号化し、これを次サーバ装置に送信する。【選択図】図２
2007312287.tif 000002
【特許請求の範囲】
【請求項１】
通信装置から他の通信装置に宛てて送信された通信データを受信し、これを宛先の前記通信装置に転送する転送システムであって、
前記通信データを宛先の通信装置に転送するためのサーバ装置、を複数備え、
前記各サーバ装置は、
受信データの復号に必要な復号鍵と、前記通信データの宛先となりうる通信装置の内、自装置に割り当てられた管理対象の通信装置が有する復号鍵に対応する通信装置毎の暗号鍵と、当該転送システム内の他のサーバ装置が有する復号鍵に対応する暗号鍵と、を記憶する記憶手段と、
受信データを、前記記憶手段が記憶する復号鍵を用いて復号する復号手段と、
前記復号手段により受信データとして前記通信データが復号された場合、この通信データを、前記記憶手段が記憶する前記他のサーバ装置が有する復号鍵に対応する暗号鍵にて暗号化し、前記他のサーバ装置に、暗号化した前記通信データを送信する中間転送手段と、
受信した通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置であるか否かを判断する宛先デバイス判断手段と、
前記宛先デバイス判断手段により、前記通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置であると判断されると、前記復号手段により復号された前記通信データを、前記記憶手段が記憶する宛先の通信装置に対応する暗号鍵にて暗号化し、前記宛先の通信装置に、暗号化した前記通信データを送信する末端転送手段と、
を備えること
を特徴とする転送システム。
【請求項２】
前記各サーバ装置が有する中間転送手段は、前記宛先デバイス判断手段の判断結果に依らず、前記通信データを受信する度、前記他のサーバ装置に、暗号化した前記通信データを送信する構成にされていることを特徴とする請求項１記載の転送システム。
【請求項３】
通信装置から他の通信装置に宛てて送信された通信データを受信し、これを宛先の前記通信装置に転送する転送システムであって、
前記通信データを宛先の通信装置に転送するためのサーバ装置、を複数備え、
前記各サーバ装置は、
受信データの復号に必要な復号鍵と、前記通信データの宛先となりうる通信装置の内、自装置に割り当てられた管理対象の通信装置が有する復号鍵に対応する通信装置毎の暗号鍵と、当該転送システム内の他のサーバ装置が有する復号鍵に対応する暗号鍵と、を記憶する記憶手段と、
受信データを、前記記憶手段が記憶する復号鍵を用いて復号する復号手段と、
前記復号手段により受信データとして前記通信データが復号された場合、この通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置であるか否かを判断する宛先デバイス判断手段と、
前記宛先デバイス判断手段により、前記通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置ではないと判断されると、この通信データを、前記記憶手段が記憶する前記他のサーバ装置が有する復号鍵に対応する暗号鍵にて暗号化し、前記他のサーバ装置に、暗号化した前記通信データを送信する中間転送手段と、
前記宛先デバイス判断手段により、前記通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置であると判断されると、この通信データを宛先の通信装置に転送させるサーバ装置を、決定するサーバ装置決定手段と、
前記宛先デバイス判断手段により、前記通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置であると判断されると、前記復号手段により復号された前記通信データを、前記記憶手段が記憶する宛先の通信装置に対応する暗号鍵にて暗号化し、更に、この暗号化された通信データと、前記サーバ装置決定手段により決定されたサーバ装置の指定情報と、からなるデータの組を、リレーデータとして、前記記憶手段が記憶する前記他のサーバ装置が有する復号鍵に対応する暗号鍵にて暗号化し、暗号化した前記リレーデータを、前記他のサーバ装置に送信するリレーデータ送信手段と、
前記復号手段により受信データとして前記リレーデータが復号された場合、このリレーデータが有する前記サーバ装置の指定情報に基づき、前記リレーデータが有する前記暗号化された通信データを、自装置が宛先の通信装置に転送すべきであるか否かを判断する送信判断手段と、
前記送信判断手段により転送すべきではないと判断されると、受信した前記リレーデータを、前記記憶手段が記憶する前記他のサーバ装置が有する復号鍵に対応する暗号鍵にて暗号化し、これを前記他のサーバ装置に送信するリレー手段と、
前記送信判断手段により転送すべきであると判断されると、受信した前記リレーデータが有する前記暗号化された通信データを、前記宛先の通信装置に送信する末端転送手段と、
を備えること
を特徴とする転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置から他の通信装置に宛てて送信される通信データを受信し、これを宛先の通信装置に転送する転送システムに関する。
【背景技術】
【０００２】
従来より、通信データを宛先の通信装置に転送する転送システムとしては、ユーザＩＤやパスワード等の認証用の通信データを、所定のアルゴリズムにより暗号化して、これを宛先の通信装置に送信するものが知られている（例えば、特許文献１参照）。
【０００３】
また、暗号通信の手法としては、秘密鍵及び公開鍵を用いたものが知られている。周知のように、秘密鍵及び公開鍵は、暗号鍵及び復号鍵として機能し、秘密鍵で暗号化されたデータは、公開鍵で復号することができ、公開鍵で暗号化されたデータは、秘密鍵で復号することができる。即ち、通信を行う通信装置のペアの一方に、秘密鍵を保有させ、他方の通信装置に公開鍵を保有させれば、ペアとなる通信装置間では、データを機密に送受することができるのである。
【０００４】
この秘密鍵及び公開鍵は、上述した性質を有することから、データ送信元装置が正当な装置であるか否かを判定する際のツールとしても用いられる。
【特許文献１】特開２０００−０５７０９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、秘密鍵及び公開鍵を用いた転送システムとしては、データ転送を行うサーバ装置にて、転送先の各通信装置が有する復号鍵に対応する暗号鍵を管理し、当該サーバ装置の復号鍵に対応する暗号鍵を、正当な通信装置（クライアント装置）に提供し、データ送信元の通信装置では、他の通信装置を宛先とする通信データを、サーバ装置の復号鍵に対応する暗号鍵にて暗号化してサーバ装置に送信し、サーバ装置では、受信したデータを、一旦自己の復号鍵にて復号し、これを再度、宛先の通信装置が有する復号鍵に対応する暗号鍵にて暗号化して、宛先の通信装置に転送するシステムが知られている。
【０００６】
この種のシステムでは、暗号鍵や復号鍵が適切に管理されていることを前提として、正当な通信装置間で通信データを機密に送受できる。また、このシステムでは、データ送信元の通信装置が、宛先の通信装置が有する復号鍵に対応する暗号鍵を有していなくても、サーバ装置を利用して、宛先の通信装置に対し、暗号化した通信データを送信することができ、データ送信元の通信装置は、複数の通信装置と簡単に暗号通信をすることができる。また、通信データの受信側通信装置では、受信した通信データが自装置の復号鍵に対応する暗号鍵にて暗号化された通信データであるか否かを判定することで、通信データの正当性を判断することができ、悪意のものによる自装置への攻撃を回避することができる。
【０００７】
しかしながら、従来システムでは、上述の利益を得られるものの、単一のサーバ装置で一元的に転送先の各通信装置に対応する暗号鍵を管理するため、悪意のものにとって、通信データを傍受・改ざんしたり、特定の通信装置を攻撃するために、クラックすべきサーバ装置が明確で、サーバクラックによって通信の信頼性が損なわれる可能性が高かった。
【０００８】
本発明は、こうした問題に鑑みなされたものであり、サーバクラックによって通信の信頼性が損なわれる可能性を従来よりも抑えることが可能な転送システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる目的を達成するためになされた請求項１記載の発明は、通信装置から他の通信装置に宛てて送信された通信データを受信し、これを宛先の通信装置に転送する転送システムであって、通信データを宛先の通信装置に転送するためのサーバ装置、を複数備えるものである。
【００１０】
この転送システムにおける各サーバ装置は、記憶手段に、受信データの復号に必要な復号鍵と、通信データの宛先となりうる通信装置の内、自装置に割り当てられた管理対象の通信装置が有する復号鍵に対応する通信装置毎の暗号鍵と、当該転送システム内の他のサーバ装置が有する復号鍵に対応する暗号鍵と、を記憶する。尚、各サーバ装置は、記憶手段に、「他のサーバ装置」に対応する暗号鍵として、転送システム内の自装置以外のサーバ装置の内、１つ又は２，３の特定のサーバ装置に対応する暗号鍵を有する構成にすることができる。
【００１１】
そして、これら各サーバ装置は、受信データを、復号手段により、記憶手段が記憶する復号鍵を用いて復号し、復号手段により受信データとして上記通信データが復号された場合、中間転送手段にて、この通信データを、記憶手段が記憶する上記他のサーバ装置が有する復号鍵に対応する暗号鍵にて暗号化し、上記他のサーバ装置に、暗号化した通信データを送信する。
【００１２】
また、各サーバ装置は、受信した通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置であるか否かを判断する宛先デバイス判断手段を備え、宛先デバイス判断手段により、通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置であると判断されると、復号手段により復号された通信データを、記憶手段が記憶する宛先の通信装置に対応する暗号鍵にて暗号化し、末端転送手段にて、この暗号化した通信データを、宛先の通信装置に送信する。
【００１３】
尚、この転送システムでは、特定の通信装置に対して選択的に、サーバ装置の復号鍵に対応する暗号鍵を提供することで、当該転送システムを利用して通信データを送信可能な通信装置が特定の通信装置に制限される。そして、通信データの受信側通信装置では、通信データが自装置の復号鍵に対応する暗号鍵で暗号化されて送信されてきたか否かを判断することにより、通信データの正当性を判断することができ、悪意のものによる攻撃を回避することができる。
【００１４】
但し、サーバ装置が悪意のものにクラックされると、通信データは、正当なものとして、クラックされたサーバ装置から受信先の通信装置に自由に送信することができてしまう。
【００１５】
そこで、本発明では、通信データの宛先となりうる各通信装置の復号鍵に対応する暗号鍵を、夫々、転送システムを構成するサーバ装置群のいずれかに割り当て、暗号鍵を、分散管理するようにした。即ち、本発明では、悪意のものにとって、特定の通信装置を、転送システムを利用して攻撃しようにも、クラックすべきサーバ装置が理解できないような、暗号鍵の管理形態を採っている。
【００１６】
従って、本発明の転送システムによれば、サーバクラックにより通信の信頼性が損なわれる可能性を従来よりも抑えることができる。即ち、本発明の転送システムでは、簡単には暗号鍵を入手することができない結果、悪意のものがクラッキング行為に及ぶこと自体を抑制することができ、結果として、サーバクラックにより通信の信頼性が損なわれる可能性を従来よりも抑えることができる。
【００１７】
ところで、上述の転送システムにおける各サーバ装置の中間転送手段は、宛先デバイス判断手段により通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置であると判断されると、他のサーバ装置に、暗号化した通信データを送信しない構成にされてもよいが、中間転送手段を、このような構成にすると、中間転送手段の挙動の分析により、暗号鍵の所在が悪意のものに特定されてしまう可能性がある。
【００１８】
従って、各サーバ装置が有する中間転送手段は、自装置の宛先デバイス判断手段の判断結果に依らず、通信データを受信する度、上記他のサーバ装置に、暗号化した通信データを送信する構成にされるとよい（請求項２）。このように中間転送手段を構成すれば、強固に、暗号鍵の所在を隠蔽することができて、通信の信頼性が損なわれる可能性を効果的に抑えることができる。
【００１９】
但し、宛先の通信装置に対応する暗号鍵を保持するサーバ装置から、その通信装置に対して通信データを直接送信すると、そのサーバ装置の挙動の変化により、分散管理されている各暗号鍵の所在が特定される可能性も否定できない。従って、より好ましくは、転送システムを、請求項３記載のように構成するとよい。
【００２０】
請求項３記載の転送システムにおける各サーバ装置では、復号手段により受信データとして通信データが復号されると、宛先デバイス判断手段が、この通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置であるか否かを判断する。そして、この宛先デバイス判断手段により、通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置ではないと判断されると、中間転送手段が、この通信データを、記憶手段が記憶する上記他のサーバ装置が有する復号鍵に対応する暗号鍵にて暗号化し、他のサーバ装置に、暗号化した通信データを送信する。
【００２１】
一方、宛先デバイス判断手段により、通信データの宛先の通信装置が自装置に割り当てられた管理対象の通信装置であると判断されると、サーバ装置決定手段が、この通信データを宛先の通信装置に転送させるサーバ装置を、決定する。そして、リレーデータ送信手段が、サーバ装置決定手段により決定されたサーバ装置に、通信データを宛先の通信装置に転送させるためのリレーデータを、他のサーバ装置に送信する。
【００２２】
即ち、リレーデータ送信手段は、復号手段により復号された通信データを、記憶手段が記憶する宛先の通信装置に対応する暗号鍵にて暗号化し、更に、この暗号化された通信データと、サーバ装置決定手段により決定されたサーバ装置の指定情報と、からなるデータの組を、リレーデータとして、記憶手段が記憶する上記他のサーバ装置が有する復号鍵に対応する暗号鍵にて暗号化し、暗号化したリレーデータを、上記他のサーバ装置に送信する。
【００２３】
また、各サーバ装置は、復号手段により受信データとしてリレーデータが復号された場合、このリレーデータが有するサーバ装置の指定情報に基づき、送信判断手段にて、リレーデータが有する上記暗号化された通信データを、自装置が宛先の通信装置に転送すべきであるか否かを判断する。そして、送信判断手段により転送すべきではないと判断されると、リレー手段にて、上記受信したリレーデータを、記憶手段が記憶する上記他のサーバ装置が有する復号鍵に対応する暗号鍵にて暗号化し、これを上記他のサーバ装置に送信する。一方、送信判断手段により転送すべきであると判断されると、サーバ装置は、末端転送手段にて、上記受信したリレーデータが有する暗号化された通信データを、宛先の通信装置に送信する。
【００２４】
このように構成された転送システムでは、宛先の通信装置に対応する暗号鍵にて通信データを暗号化した後、これを直接、宛先の通信装置に送信せずに、他のサーバ装置に転送する。そして、宛先の通信装置の暗号鍵を有するサーバ装置とは異なるサーバ装置から通信データを、宛先の通信装置に送信する。従って、この転送システムによれば、宛先の通信装置に対応する暗号鍵を管理するサーバ装置から、通信データを宛先の通信装置に直接送信するシステムよりも、強固に、暗号鍵の所在を隠蔽することができる。
【００２５】
よって、この発明によれば、特定の通信装置を、転送システムを利用して攻撃しようとしても、クラックすべきサーバ装置が理解できないようにすることができ、サーバクラックにより、通信の信頼性が損なわれる可能性を従来よりも十分に抑えることができる。
【００２６】
尚、サーバ装置決定手段は、通信データを宛先の通信装置に転送させるサーバ装置を、所定の規則によって決定する構成にされてもよいが、ランダムに決定する構成にされると一層好ましい。通信データを宛先の通信装置に転送させるサーバ装置を、ランダムに決定すれば、通信データの送信動作についてサーバ装置の挙動を分析しても、暗号鍵の所在を特定できないので、一層効果的に、通信の信頼性が損なわれる可能性を抑えることができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施例について、図面と共に説明する。
図１は、本発明が適用された通信システム１の構成を表す説明図である。本実施例の通信システム１は、車両に搭載された車両制御用の電子制御装置（以下、「車載装置」と表現する。）に対し、ネットワークＮＴを介して、各種指令を入力し、車載装置５０を遠隔操作するためのものである。指令入力は、例えば、車両を、調整・修理する際に行われ、指令入力により、車載装置５０においては、プログラムや制御データの書き換え等が行われる。
【００２８】
具体的に、この通信システム１は、車載装置５０に対し、各種指令を通信データとして入力するディーラ側に設置されたクライアント装置１０と、クライアント装置１０から車載装置５０に宛てて送信された通信データを中継し、通信データを宛先の車載装置５０に転送する複数のサーバ装置３０と、車載装置５０と、がネットワークＮＴに接続された構成にされている。
【００２９】
車載装置５０は、有線又は無線にて通信を行うための通信機能を有し、例えば、各地に設置されたネットワーク接続用の装置と通信ケーブルを介して接続され、有線の形態で、ネットワークＮＴに接続される。また、別例として、車載装置５０は、各地に設置されたネットワークＮＴに繋がるアクセスポイントを介して、無線の形態で、ネットワークＮＴに接続される。尚、本実施例では、ネットワークＮＴ内で、各ノードが相互に、一対一通信することができるように、クライアント装置１０、サーバ装置３０、及び、車載装置５０の各ノードに、個別のノードＩＤが設定されている。以下では、クライアント装置１０に設定されたノードＩＤを、特に「クライアントＩＤ」と表現する。
【００３０】
また、通信システム１を構成する各サーバ装置３０は、ネットワークＮＴに接続された同種の他のサーバ装置３０と協働して、クライアント装置１０−車載装置５０間の通信データを中継する転送システム３を構成する。ここで、転送システム３の動作に関し、図２を用いて、簡単に説明する。図２は、通信システム１における通信データの転送形態を示した説明図である。
【００３１】
本実施例の通信システム１では、クライアント装置１０が、転送システム３を構成するサーバ装置３０の内、特定のサーバ装置に対し、宛先を車載装置５０とする暗号化した通信データを送信する。そして、サーバ装置３０は、クライアント装置１０からデータを受信すると、これを、自装置の復号鍵を用いて、復号する。尚、暗号化に必要な暗号鍵は、正規のクライアント装置１０に対して、予め事務的に提供される。
【００３２】
また、サーバ装置３０は、クライアント装置１０から通信データを受信すると、通信データの宛先の車載装置５０が有する復号鍵に対応する暗号鍵を自装置が有しているか否かを判断する。尚、転送システム３を利用してクライアント装置１０と通信する各車載装置５０には、個別の復号鍵がインストールされており、各車載装置５０が有する復号鍵に対応する暗号鍵は、転送システム３のサーバ装置３０で、分散管理されている。即ち、上記の判断は、通信データの宛先の車載装置５０が、当該サーバ装置で暗号鍵を管理する車載装置５０であるか否かを判断するために行われる。
【００３３】
通信データの宛先の車載装置５０が有する復号鍵に対応する暗号鍵を自装置が有していないと判断すると、サーバ装置３０は、受信した通信データを、暗号化して、次のサーバ装置３０に転送する。即ち、次のサーバ装置３０が有する復号鍵に対応する暗号鍵を用いて、通信データを暗号化し、これを次のサーバ装置３０に送信する。
【００３４】
一方、通信データの宛先の車載装置５０が有する復号鍵に対応する暗号鍵を自装置が有していると判断すると、サーバ装置３０は、受信した通信データを、宛先の車載装置５０の復号鍵に対応する暗号鍵で暗号化する。そして、この暗号化した通信データに、ランダム値を、リレーカウントとして付加し、リレーデータを生成する。そして、このリレーデータを、次のサーバ装置３０が有する復号鍵に対応する暗号鍵を用いて、暗号化し、これを、次のサーバ装置３０に送信する。
【００３５】
その他、各サーバ装置３０は、上記リレーデータを受信すると、これを復号し、リレーデータを構成するリレーカウントを、１引いて更新する。そして、更新後のリレーデータを、次のサーバ装置３０が有する復号鍵に対応する暗号鍵を用いて、暗号化し、これを、次のサーバ装置３０に送信する。また、各サーバ装置３０は、リレーカウントを１引いたとき、値がゼロになった場合には、このリレーデータが有する暗号化された通信データを、宛先の車載装置５０に送信する。
【００３６】
そして、車載装置５０では、受信した通信データを、自装置の復号鍵を用いて復号する。そして、復号に成功した場合には、受信データに対応する処理を実行する。一方、復号に失敗した場合には、通信データを破棄し、この通信データが示す指令に、従わないようにする。本実施例では、このようにして、安全な通信を実現し、車載装置５０が悪意のものによって不正操作されないようにする。
【００３７】
尚、本実施例では、復号鍵及び暗号鍵として、周知の手法により生成される秘密鍵及び公開鍵のペアを用いる。但し、本実施例の公開鍵は、実際に広く公開される訳ではなく、特定のノードに対してのみ提供（公開）されることに留意されたい。
【００３８】
以下、通信システム１を構成するクライアント装置１０、サーバ装置３０、及び、車載装置５０の構成及び処理動作について、具体的に説明する。
＜クライアント装置の構成及び処理動作＞
図３は、クライアント装置１０の概略構成を表すブロック図であり、図４は、クライアント装置１０のＣＰＵ１１が実行するデータ送信処理を表すフローチャートである。
【００３９】
本実施例の通信システム１を構成するクライアント装置１０は、各種プログラムを実行するＣＰＵ１１と、プログラム実行時に作業用メモリとして使用されるＲＡＭ１２と、ブートプログラム等を記憶するＲＯＭ１３と、ネットワークＮＴに接続される通信インタフェース１５と、ハードディスク装置１７と、液晶ディスプレイ等で構成される表示部１８と、各種キーやポインティングデバイス等で構成される操作部１９と、を備える。
【００４０】
その他、このクライアント装置１０は、ＧＵＩ（グラフィカルユーザインタフェース）構成の画面を表示部１８に表示して、車載装置５０に対する遠隔操作を受け付けるためのアプリケーションプログラムと、転送システム３を構成するサーバ装置３０群の内、ｎ個（ｎは１以上の自然数。本実施例では、ｎ＝２とする。）のサーバ装置３０の夫々が有する秘密鍵に対応するサーバ装置毎の公開鍵と、をハードディスク装置１７に有する。尚、ハードディスク装置１７に記憶されるｎ個の公開鍵は、転送システム３の管理者により、予めクライアント装置１０のユーザに提供される。
【００４１】
即ち、このクライアント装置１０は、上記アプリケーションプログラムの実行指令が、操作部１９を通じて入力されると、ＣＰＵ１１にて、上記アプリケーションプログラムを実行し、操作部１９を通じた画面操作に従い、車載装置５０に対する指令内容等を記述した送信文を生成する。そして、送信指令が入力されると、上記アプリケーションプログラムに従って、ＣＰＵ１１により図４に示すデータ送信処理を実行し、送信文を格納した通信データを車載装置５０に送信する。
【００４２】
データ送信処理を開始すると、ＣＰＵ１１は、生成された送信文を、ｎ個に分割し、ｎ個の分割された送信文（以下、「分割送信文」を表現する。）を生成する（Ｓ１１０）。また、この処理を終えると、分割送信文の夫々に、自装置のクライアントＩＤと、送信時刻としての現在時刻と、を記した付属情報を付して、通信データを生成する。即ち、分割送信文と上記付属情報とからなる通信データを、分割送信文毎に生成する（Ｓ１２０）。但し、通信データは、分割送信文毎に、順に生成するものとし、各通信データには、生成順に、異なる時刻が送信時刻として付加されるものとする。
【００４３】
また、Ｓ１２０での処理を終えると、ＣＰＵ１１は、各通信データに、送信文の宛先となる車載装置５０のノードＩＤを、最終送信先アドレスとして付加して、宛先付きの通信データを生成する（Ｓ１３０）。
【００４４】
そして、この処理を終えると、Ｓ１４０に移行し、分割送信文毎の通信データの内、ネットワークＮＴに未送出の通信データを、一つ選択する。また、Ｓ１４０での処理を終えると、自装置が有するｎ個のサーバ装置３０の公開鍵の中から、未選択の公開鍵を、一つ選択する（Ｓ１５０）。
【００４５】
また、この処理を終えると、ＣＰＵ１１は、上記選択した公開鍵を用いて、Ｓ１４０で選択した通信データ（宛先付き通信データ）を暗号化し（Ｓ１６０）、暗号化した通信データを、上記選択した公開鍵に対応する秘密鍵を有するサーバ装置３０に送信する（Ｓ１７０）。尚、クライアント装置１０は、ハードディスク装置１７において、サーバ装置３０の公開鍵と、対応するサーバ装置３０のノードＩＤとを、対応付けて記憶しているものとする。
【００４６】
また、Ｓ１７０での処理を終えると、ＣＰＵ１１は、各分割送信文に対応する通信データを、全てネットワークＮＴに送出したか否かを判断し（Ｓ１８０）、未送出の通信データが存在する場合には（Ｓ１８０でＮｏ）、Ｓ１４０に移行して、後続の処理を実行し、未送出の通信データを上述と同様の手順で、サーバ装置３０に送信する。
【００４７】
一方、未送出の通信データが存在しない場合、ＣＰＵ１１は、Ｓ１８０でＹｅｓと判断して、当該データ送信処理を終了する。本実施例において、クライアント装置１０は、以上のように動作する。
＜サーバ装置の構成及び処理動作＞
続いて、サーバ装置３０の構成及び処理動作について、図５〜図７を用いて説明する。尚、図５は、サーバ装置３０の概略構成を表すブロック図であり、図６は、各サーバ装置３０に対する車載装置５０の公開鍵の割り当て方法に関する説明図である。また、図７は、サーバ装置のＣＰＵ３１が実行する転送処理を表すフローチャートである。
【００４８】
本実施例の通信システム１を構成するサーバ装置３０は、各種プログラムを実行するＣＰＵ３１と、プログラム実行時に作業用メモリとして使用されるＲＡＭ３２と、ブートプログラム等を記憶するＲＯＭ３３と、ネットワークＮＴに接続される通信インタフェース３５と、ハードディスク装置３７と、を備える。
【００４９】
このサーバ装置３０は、転送システム３を他のサーバ装置３０と協働して実現するための転送処理プログラムを、ハードディスク装置３７に有し、ネットワークＮＴから通信インタフェース３５を介してデータを受信する度、ＣＰＵ３１にて、この転送処理プログラムを実行する。
【００５０】
また、各サーバ装置３０は、ハードディスク装置３７に、自装置の秘密鍵と、通信データやリレーデータの送信先サーバ装置３０（以下、「次サーバ装置３０」と表現する。）が有する秘密鍵に対応する公開鍵と、自身に割り当てられた車載装置５０の公開鍵と、を記憶している。
【００５１】
具体的に、転送システム３の構築時には、図６に示すように、通信データの宛先となりうる各車載装置５０に対し、個別の秘密鍵が発行される。また、これと共に、秘密鍵に対応する公開鍵が、転送システム３を構成するサーバ装置３０のいずれかに発行され、該当サーバ装置３０のハードディスク装置３７に記録される。尚、本実施例では、各車載装置５０に対してｎ個の秘密鍵を発行する構成にされ、ｎ個の秘密鍵に対応する各公開鍵は、夫々個別に、サーバ装置３０のいずれかに割り当てられる。
【００５２】
次に、転送処理プログラムに従って、サーバ装置３０のＣＰＵ３１が実行する転送処理（図７参照）について説明する。
転送処理を開始すると、ＣＰＵ３１は、受信データを自装置の秘密鍵にて復号し（Ｓ２１０）、受信データの復号が正しく行えたか否かを判断する（Ｓ２２０）。Ｓ２２０において、ＣＰＵ３１は、例えば、復号したデータが、通信データ又はリレーデータに適合する様式のデータであるか否かを判断することで、受信データの復号が正しく行えたか否かを判断する。
【００５３】
そして、受信データの復号が正しく行えなかったと判断すると（Ｓ２２０でＮｏ）、当該転送処理を終了し、受信データの復号が正しく行えたと判断すると（Ｓ２２０でＹｅｓ）、Ｓ２３０に移行する。
【００５４】
Ｓ２３０に移行すると、ＣＰＵ３１は、受信データがリレーカウントを有するリレーデータであるか否かを判断し、リレーデータであると判断すると（Ｓ２３０でＹｅｓ）、Ｓ３１０に移行し、リレーデータではないと判断すると（Ｓ２３０でＮｏ）、受信データが通信データであるとして、Ｓ２４０に移行する。そして、Ｓ２４０では、受信データが過去に受信した通信データと同一の通信データであるか否かを判断する。
【００５５】
具体的に、サーバ装置３０は、通信データを受信した場合、受信データが示すクライアントＩＤ及び送信時刻を、受信履歴情報として、ハードディスク装置３７が記憶するログファイルに登録する構成にされており、ＣＰＵ３１は、Ｓ２４０において、このログファイルの登録情報と、今回の受信データが示すクライアントＩＤ及び送信時刻と、を照合し、受信データが過去に受信した通信データと同一の通信データであるか否かを判断する。
【００５６】
そして、今回の受信データと、クライアントＩＤ及び送信時刻が同一の受信履歴情報がログファイルに存在する場合には、受信データが過去に受信した通信データと同一の通信データであると判断して（Ｓ２４０でＹｅｓ）、当該転送処理を終了する。
【００５７】
一方、今回の受信データと、クライアントＩＤ及び送信時刻が同一の受信履歴情報がログファイルに存在しない場合には、受信データが過去に受信した通信データと同一の通信データではないと判断して（Ｓ２４０でＮｏ）、Ｓ２５０に移行する。
【００５８】
また、Ｓ２５０に移行すると、ＣＰＵ３１は、受信データが示すクライアントＩＤ及び送信時刻を、ログファイルに登録し、この処理を終えると、受信データが示す最終送信先アドレスに対応する車載装置５０の公開鍵を、ハードディスク装置３７内で検索する（Ｓ２６０）。そして、受信データが示す最終送信先アドレスに対応する車載装置５０の公開鍵が、ハードディスク装置３７に記録されているか否かを判断する（Ｓ２７０）。
【００５９】
ここで、受信データが示す最終送信先アドレスに対応する車載装置５０の公開鍵が、ハードディスク装置３７に記録されていないと判断すると（Ｓ２７０でＮｏ）、ＣＰＵ３１は、復号された受信データとしての通信データを、ハードディスク装置３７に記録されている次サーバ装置３０の公開鍵にて暗号化し（Ｓ２８１）、この暗号化した通信データを、次サーバ装置３０に、通信インタフェース３５を介して送信する（Ｓ２８５）。尚、ハードディスク装置３７には、次サーバ装置３０の公開鍵に対応付けて、次サーバ装置のノードＩＤが記憶されているものとする。また、Ｓ２８５での処理を終えると、ＣＰＵ３１は、当該転送処理を終了する。
【００６０】
その他、Ｓ２７０において、受信データが示す最終送信先アドレスに対応する車載装置５０の公開鍵が、ハードディスク装置３７に記録されていると判断すると（Ｓ２７０でＹｅｓ）、ＣＰＵ３１は、受信した通信データの本体部（最終送信先アドレス以外のデータ部）を、最終送信先アドレスに対応する車載装置５０の公開鍵で暗号化し（Ｓ２９１）、この暗号化した通信データに付加するリレーカウントの値（初期値）を、ランダムに決定する（Ｓ２９３）。但し、決定可能なリレーカウントの範囲は、値１〜Ｍに設定されているものとする。尚、値Ｍは、転送システム３を構成するサーバ装置３０の数によって、値（サーバ装置の個数−１）を越えない範囲で、予め定められる。
【００６１】
また、Ｓ２９３での処理を終えると、ＣＰＵ３１は、本体部が暗号化された宛先（最終送信先アドレス）付きの通信データに、上記決定したリレーカウントの値を付加してなるリレーデータを生成する（Ｓ２９５）。
【００６２】
そして、この処理を終えると、上記生成したリレーデータを、次サーバ装置３０の公開鍵で暗号化し（Ｓ２９７）、この暗号化したリレーデータを、次サーバ装置３０に送信する（Ｓ２９９）。その後、当該転送処理を終了する。
【００６３】
その他、Ｓ３１０に移行すると、ＣＰＵ３１は、受信したリレーデータのリレーカウントを、１引いた値に更新して、受信したリレーデータを更新する。また、この処理を終えると、Ｓ３２０に移行し、更新したリレーデータのリレーカウントが値ゼロであるか否かを判断する。
【００６４】
そして、リレーカウントが値ゼロではないと判断すると（Ｓ３２０でＮｏ）、更新後のリレーデータ（リレーカウントを更新した後のリレーデータ）を、次サーバ装置３０の公開鍵で暗号化する（Ｓ３３０）。また、この処理を終えると、暗号化したリレーデータを、次サーバ装置３０に送信する（Ｓ３４０）。その後、当該転送処理を終了する。
【００６５】
また、ＣＰＵ３１は、更新したリレーデータのリレーカウントが値ゼロであると判断すると（Ｓ３４０でＹｅｓ）、Ｓ３５０に移行し、受信したリレーデータが有する暗号化された通信データを、リレーデータが示す最終送信先アドレスに対応する車載装置５０に、通信インタフェース３５を介して送信する。その後、当該転送処理を終了する。本実施例において、サーバ装置３０は、以上のように動作する。
＜車載装置の構成及び処理動作＞
続いて、車載装置５０の構成及び処理動作について説明する。図８は、車載装置５０の概略構成を表すブロック図であり、図９は、車載装置５０の制御部５１が実行する受信管理処理を表すフローチャートである。
【００６６】
図８に示すように、本実施例の車載装置５０は、周知の電子制御装置（ＥＣＵ）と同様、マイクロコンピュータ等から構成される制御部５１を備えると共に、ネットワークＮＴに接続される通信インタフェース５５を備える。この車載装置５０は、制御部５１に、制御プログラムや自装置に対して発行された秘密鍵等を記憶するＮＶＲＡＭ５１ａ（電気的にデータ書換可能な不揮発性メモリ）を備え、制御部５１は、このＮＶＲＡＭ５１ａに記憶されたプログラムを実行して、車両制御等の各種処理を実現する。
【００６７】
特に、本実施例の車載装置５０は、通信インタフェース５５を介してネットワークＮＴからデータを受信すると、図９に示す受信管理処理を制御部５１にて実行し、受信データに対応した遠隔操作を受け付ける。
【００６８】
受信管理処理を開始すると、制御部５１は、まず、受信データを自装置の秘密鍵で復号し（Ｓ４１０）、復号結果に基づいて、受信データの復号が正しく行えたか否かを判断する（Ｓ４２０）。Ｓ４２０において、ＣＰＵは、例えば、復号したデータが、通信データに適合する様式のデータであるか否かを判断することにより、受信データの復号が正しく行えたか否かを判断する。
【００６９】
尚、本実施例では、車載装置５０が、自装置の秘密鍵として、ｎ個の秘密鍵を有するが、Ｓ４１０では、これら各秘密鍵を用いて受信データを復号し、これらの秘密鍵のいずれか一つにて、正しく受信データの復号が行えた場合、Ｓ４２０では、Ｙｅｓと判断して、Ｓ４３０に移行する。一方、いずれの秘密鍵を用いて受信データを復号しても、正しく受信データを復号できなかった場合には、Ｓ４２０でＮｏと判断して、当該受信管理処理を終了し、受信データを破棄する。
【００７０】
また、Ｓ４３０に移行すると、制御部５１は、復号した受信データをバッファに一時保存すると共に、受信データが有する分割送信文を、元の送信文に復元するのに必要な分割送信文の組が、一通り揃ったか否かを、バッファに蓄積された受信データの一群に基づいて判断する（Ｓ４４０）。
【００７１】
そして、分割送信文の組が一通り揃ったと判断すると（Ｓ４４０でＹｅｓ）、各分割送信文を結合して、元の送信文を生成し（Ｓ４５０）、この復元された送信文の内容を解釈して、送信文の内容に対応する処理を実行する（Ｓ４６０）。具体的には、送信文が示す指令に従って、指令に対応した処理として、例えば、ＮＶＲＡＭ５１ａに記憶されたデータの書換等を行う。また、Ｓ４６０での処理を終えると、当該受信管理処理を終了する。
【００７２】
その他、Ｓ４４０において、分割送信文の組が未だ一通り揃っていないと判断すると（Ｓ４４０でＮｏ）、受信データをバッファに保持した状態で、当該受信管理処理を終了する。そして、残りの分割送信文を受信した際には、再び、Ｓ４１０以降の処理を実行して、分割送信文の組が一通り揃った時点で、これらを結合し、送信文に対応する処理を実行する。
【００７３】
以上、本実施例の通信システム１について説明したが、この通信システム１では、ディーラ側に設置された特定装置に対して選択的に、サーバ装置３０の秘密鍵に対応する公開鍵が提供され、当該転送システム３を利用して通信データを送信可能な通信装置が上記特定装置としてのクライアント装置１０に制限される。そして、通信データの受信側通信装置である車載装置５０では、通信データが自装置の秘密鍵に対応する公開鍵で暗号化されて送信されてきたか否かを判断することにより、通信データの正当性を評価し、悪意のものによる攻撃を回避する。
【００７４】
このような通信システム１においては、車載装置５０の秘密鍵に対応する公開鍵があれば、車載装置５０に対して、正当な通信データを送信することができるため、公開鍵が悪意のものに渡ると、不正な通信が行われて、通信の信頼性が損なわれる。そして、このような場合には、不正に車載装置５０が遠隔操作されるといった不都合が発生する。
【００７５】
そこで、上述したように本実施例では、各車載装置５０に対応する公開鍵を、夫々、転送システム３を構成するサーバ装置のいずれかに割り当て、公開鍵を分散管理するようにした。従って、本実施例によれば、悪意のものが、特定の車載装置をターゲットとして、この車載装置を、転送システム３を利用して攻撃しようにも、一つのサーバ装置３０をクラックしただけでは、ターゲットの車載装置に対応する公開鍵を、サーバ装置３０から入手することができないようにすることができ、サーバクラックにより通信の信頼性が損なわれる可能性を従来よりも抑えることができる。
【００７６】
また、本実施例の通信システム１では、通信データを受信したサーバ装置３０において、通信データの宛先の車載装置５０の公開鍵を管理していない場合には、通信データを、次のサーバ装置３０に転送し、通信データを受信したサーバ装置３０において、その通信データの宛先の車載装置５０の公開鍵を管理している場合には、通信データの最終送信先アドレス以外の本体部のデータを、車載装置５０の公開鍵で暗号化し、この暗号化したデータを車載装置５０に送信させるサーバ装置を、ランダムに決定して、この決定内容を表すリレーカウントを、暗号化データに付したリレーデータを、次サーバ装置に送信する。
【００７７】
また、サーバ装置３０からサーバ装置３０へと通信データやリレーデータを転送する際には、常にデータを次サーバ装置３０の公開鍵で暗号化して送信する。即ち、本実施例の通信システム１では、悪意のものが、サーバ装置３０から送信されたデータを監視しても、サーバ装置３０から送信されたデータが通信データであるのかリレーデータであるのか理解できないように、各データをサーバ装置３０に転送するようにしている。
【００７８】
また、本実施例では、通信データを車載装置５０へ送信させるサーバ装置３０を、上述したようにランダムに決定して、サーバ装置３０から車載装置５０へと送信される通信データを監視しても、公開鍵の在り処が、そのサーバ装置３０の挙動により、特定されないようにしている。
【００７９】
従って、本実施例の通信システム１では、強固に、車載装置５０の公開鍵の在り処を隠蔽することができ、サーバクラックにより、通信の信頼性が損なわれる可能性を効果的に抑制することができる。
【００８０】
尚、以上には、宛先の車載装置５０に対応する公開鍵を保持するサーバ装置３０から、その車載装置５０に対して通信データを直接送信せずに、リレーデータを介して、他のサーバ装置３０から車載装置５０に対して通信データを送信する構成の通信システム１を説明したが、通信システムは、リレーデータを生成せず、宛先の車載装置５０に対応する公開鍵を保持するサーバ装置３０から、その車載装置５０に対して通信データを直接送信する構成にされてもよい。次には、この変形例の通信システムについて説明する。
＜変形例＞
図１０は、変形例の通信システムにおけるサーバ装置３０のＣＰＵ３１が、図７に示す転送処理に代えて、実行する変形例の転送処理を表すフローチャートである。変形例の通信システムは、転送処理の内容が、上述の実施例と異なる程度であるので、以下では、変形例の通信システムの説明として、図１０を用い、転送処理の内容を説明するに留める。
【００８１】
図１０に示す転送処理を開始すると、ＣＰＵ３１は、まず、受信データを自装置の秘密鍵で復号し（Ｓ５１０）、Ｓ２２０での処理と同様に、復号結果に基づき、受信データの復号が正しく行えたか否かを判断する（Ｓ５２０）。そして、受信データの復号が正しく行えなかったと判断すると（Ｓ５２０でＮｏ）、当該転送処理を終了し、受信データの復号が正しく行えたと判断すると（Ｓ５２０でＹｅｓ）、Ｓ５４０に移行する。
【００８２】
Ｓ５４０に移行すると、ＣＰＵ３１は、Ｓ２４０での処理と同様に、受信データが過去に受信した通信データと同一の通信データであるか否かを判断する。そして、今回の受信データと、クライアントＩＤ及び送信時刻が同一の受信履歴情報がログファイルに存在する場合には、受信データが過去に受信した通信データと同一の通信データであると判断して（Ｓ５４０でＹｅｓ）、当該転送処理を終了する。
【００８３】
一方、今回の受信データと、クライアントＩＤ及び送信時刻が同一の受信履歴情報がログファイルに存在しない場合には、受信データが過去に受信した通信データと同一の通信データではないと判断して（Ｓ５４０でＮｏ）、Ｓ５５０に移行し、今回の受信データが示すクライアントＩＤ及び送信時刻を、ログファイルに登録する。
【００８４】
また、Ｓ５５０での処理を終えると、復号された受信データとしての通信データを、ハードディスク装置３７に記録されている次サーバ装置３０の公開鍵にて暗号化し（Ｓ５６０）、この暗号化した通信データを、次サーバ装置３０に、通信インタフェース３５を介して送信する（Ｓ５６５）。
【００８５】
また、この処理を終えると、受信データが示す最終送信先アドレスに対応する車載装置５０の公開鍵を、ハードディスク装置３７内で検索し（Ｓ５７０）、受信データが示す最終送信先アドレスに対応する車載装置５０の公開鍵が、ハードディスク装置３７に記録されているか否かを判断する（Ｓ５８０）。
【００８６】
そして、受信データが示す最終送信先アドレスに対応する車載装置５０の公開鍵が、ハードディスク装置３７に記録されていないと判断すると（Ｓ５８０でＮｏ）、当該転送処理を終了する。
【００８７】
一方、受信データが示す最終送信先アドレスに対応する車載装置５０の公開鍵が、ハードディスク装置３７に記録されていると判断すると（Ｓ５８０でＹｅｓ）、ＣＰＵ３１は、受信した通信データの本体部（最終送信先アドレス以外のデータ部）を抽出して、この抽出した通信データの本体部を、最終送信先アドレスに対応する車載装置５０の公開鍵で暗号化し（Ｓ５９０）、この暗号化した通信データの本体部を、最終送信先アドレスに対応する車載装置５０に、通信インタフェース３５を介して送信する（Ｓ５９５）。その後、当該転送処理を終了する。
【００８８】
以上、変形例の通信システム１について説明したが、この通信システム１によれば、上述したリレーデータを送信することによる利益は得られないものの、受信データが示す最終送信先アドレスに対応する車載装置５０の公開鍵が、ハードディスク装置３７に記録されているか否かにかかわらず、通信データを、次サーバ装置３０に送信するため、サーバ装置３０間の通信データの転送態様を監視するだけでは、車載装置５０の公開鍵の在り処を特定することはできず、サーバクラックにより通信の信頼性が損なわれる可能性を、従来よりも十分に抑制することができる。
【００８９】
尚、本発明の復号手段は、Ｓ２１０又はＳ５１０の処理にて実現され、中間転送手段は、Ｓ２８１〜Ｓ２８５又はＳ５６０〜Ｓ５６５の処理にて実現されている。また、宛先デバイス判断手段は、Ｓ２６０〜Ｓ２７０又はＳ５７０〜Ｓ５８０の処理にて実現され、サーバ装置決定手段は、Ｓ２９３の処理にて実現されている。
【００９０】
その他、リレーデータ送信手段は、Ｓ２９１，Ｓ２９５〜Ｓ２９９の処理にて実現され、送信判断手段は、Ｓ３１０〜Ｓ３２０の処理にて実現され、リレー手段は、Ｓ３３０〜Ｓ３４０の処理にて実現され、末端転送手段は、Ｓ３５０又はＳ５９０〜Ｓ５９５の処理にて実現されている。
【００９１】
また、本発明の転送システムは、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、上記実施例では、ディーラ側のクライアント装置１０から車載装置５０を遠隔操作する際の転送システム３について説明したが、本発明は、これらの用途に限定されるものではなく、種々の用途に利用することができる。
【図面の簡単な説明】
【００９２】
【図１】通信システム１の概略構成を表すブロック図である。
【図２】通信システム１における通信データの転送形態を示した説明図である。
【図３】クライアント装置１０の概略構成を表すブロック図である。
【図４】クライアント装置１０が実行するデータ送信処理を表すフローチャートである。
【図５】サーバ装置３０の概略構成を表すブロック図である。
【図６】各サーバ装置３０に対する車載装置５０の公開鍵の割り当て方法に関する説明図である。
【図７】サーバ装置３０が実行する転送処理を表すフローチャートである。
【図８】車載装置５０の概略構成を表すブロック図である。
【図９】車載装置５０が実行する受信管理処理を表すフローチャートである。
【図１０】変形例の転送処理を表すフローチャートである。
【符号の説明】
【００９３】
１…通信システム、３…転送システム、１０…クライアント装置、１１，３１…ＣＰＵ、１５，３５…通信インタフェース、１７，３７…ハードディスク装置、１８…表示部、１９…操作部、３０…サーバ装置、５０…車載装置、５１…制御部、５１ａ…ＮＶＲＡＭ、５５…通信インタフェース、ＮＴ…ネットワーク
【図１】
2007312287.tif 000003
【図２】
2007312287.tif 000004
【図３】
2007312287.tif 000005
【図４】
2007312287.tif 000006
【図５】
2007312287.tif 000007
【図６】
2007312287.tif 000008
【図７】
2007312287.tif 000009
【図８】
2007312287.tif 000010
【図９】
2007312287.tif 000011
【図１０】
2007312287.tif 000012