説明

情報処理装置と情報処理装置のデータ転送方法

【課題】2つの装置間でデータ転送をする場合に、信頼性のない他の装置の不正アクセスによりデータが不当に流出することを防止すること。
【解決手段】自己の所有データを転送する相手である転送先装置の生成した信頼情報を分割した一部の第1分割信頼情報を予め取得して保存する記憶部と、転送先装置から転送要求を受信し、かつその受信時に転送先装置の信頼情報を分割した他の第2分割信頼情報と、転送先装置の固有の転送要求時の状態を示す情報を用いて生成した検証情報とを受信する通信部と、保存された第1分割信頼情報と受信された第2分割信頼情報とを用いて、信頼情報を復元する信頼情報復元部と、復元された信頼情報と受信された検証情報とを用いて、転送先装置の信頼性を検証する機器検証部とを備え、信頼性の検証が成功した場合に、通信部が転送要求されたデータを転送先装置へ送信することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報処理装置とそのデータ転送方法に関し、特に、2つの情報処理装置間でデータの転送を行う場合に互いに信頼された装置間でのみデータ転送が可能な情報処理装置とそのデータ転送方法に関する。
【背景技術】
【0002】
2つの情報処理装置間でデータの転送を行う場合、データを秘匿するために、送信データを暗号化し、その後に暗号化されたデータの転送を行う手法がある。
たとえば、公開鍵暗号方式を用いてデータを秘匿化する。
この場合、それぞれの情報処理装置(以下、PCと呼ぶ)ごとに生成された一対の秘密鍵と公開鍵が利用される。秘密鍵は、特定のPCの所有者のみが知る鍵である。公開鍵は、名前のとおり他者に公開する鍵である。
また、公開鍵で暗号化された情報はペアとなる秘密鍵でのみ復号でき、逆に、秘密鍵で暗号化された情報はペアとなる公開鍵でのみ復号できる。
【0003】
ある情報処理装置(PC−A)から、他の情報処理装置(PC−B)へデータD0を転送する場合、まずPC−Aにおいて、データD0をPC−Bの公開鍵KPBを用いて暗号化する。
この暗号化されたデータ(KPB(D0))は、PC−Bの秘密鍵KSBでしか復号できないデータである。
【0004】
次に、暗号化されたデータ(KPB(D0))を、PC−AからPC−Bへ転送する。そして、PC−B側では、自己のみが所有する秘密鍵KSBを用いて、転送されてきたデータ(KPB(D0))を復号する。これにより、PC−Bの所有者はデータD0の内容を読むことができる。
【0005】
ただし、このように、単純に公開鍵と秘密鍵とを用いた暗号化方式では、データの暗号および復号の処理に時間がかかる。そこで、時間短縮のため、送信元PC−Aで生成された1つの共通鍵KCAを用いてデータの暗号および復号を行い、この共通鍵KCAそのものに対して、公開鍵と秘密鍵とを用いた公開鍵暗号方式を適用することが行われている。
【0006】
この方式では、まず、データの送信元のPC−Aにおいて、共通鍵KCAが生成される。次に、転送するデータD0を共通鍵KCAで暗号化し、暗号化データKCA(D0)を生成する。
また、PC−Aのみが所有する秘密鍵KSAで、共通鍵KCAを暗号化し、署名鍵KSA(KCA)を生成する。
さらに、この署名鍵KSA(KCA)を、PC−Bの公開鍵KPBで暗号化し、鍵情報KEY(=KPB(KSA(KCA))を生成する。
このようにして生成された暗号化データKCA(D0)と、鍵情報KEYとからなる情報が、PC−AからPC−Bへ転送される。
【0007】
この2つの情報を受け取った送信先のPC−Bでは、次の処理が行われる。
まず、PC−Bのみが所有する秘密鍵KSBを用いて、鍵情報KEYを復号し、署名鍵KSA(KCA)を復元する。そして、PC−Aの公開鍵KPAを用いて、復元された署名鍵KSA(KCA)を復号し、共通鍵KCAを取得する。
この復号化が正常に行われた場合は、予め信頼された相手であるPC−Aそのものから正当に転送されてきたことが証明されたことになる。すなわち、送信元の情報処理装置の正当性の検証が行われる。
【0008】
その後、上記復号処理によって取得された共通鍵KCAを用いて、転送されてきた暗号化データKCA(D0)を復号する。これにより、もとのデータD0が送信先のPC−Bで読める状態となる。
【0009】
また、不正なデータ取得や不正アクセスの防止をより強化して信頼性の高いアクセス制御を実現するために、管理コンピュータ(以下、サーバ)を介在したアクセス制御方法も提案されている(特許文献1参照)。
【0010】
この制御方法でも、公開鍵暗号方式を用いるが、サーバに、予め両PCの公開鍵(KPA,KPB)と、アクセスを要求する側(たとえばPC−B)の信頼情報TIBとを予め格納しておく。サーバは、PCの信頼性を確認するために用いられる。
この信頼情報TIBとは、PC−Bの中に存在する特別なプログラムや設定データを用いて生成される情報であり、送信先のPC−Bの動作状態を特定できる情報である。
【0011】
また、PC−Aには、公開鍵KPAと対である秘密鍵KSAを、PC−Bには、公開鍵KPBと対である秘密鍵KSBを格納しておく。
送信先のPC−Bからサーバに対して、送信元のPC−Aに対するアクセス要求の許可を問合せる場合、PC−Bは、PC−Bの現在の動作状態を示す情報を収集し、信頼情報(TIB)に対応する情報(検証用情報VIB)を生成する。
そして、送信先のPC−Bは、サーバに対して、アクセス要求の問合せとともに検証用情報VIBを送信する。
【0012】
アクセス要求を受信したサーバは、予め格納していたPC−Bの信頼情報TIBと、受信した検証用情報VIBとを比較して、アクセス要求の問合せをしてきたPC−Bが信頼できる装置であるか否かを確認する。
両情報(TIBとVIB)が一致し、信頼できる装置であると判断した場合、サーバは、新たに1対の秘密鍵KB1と公開鍵KB2とを生成する。
【0013】
そして、サーバは、送信元のPC−Aに対して、PC−Bからのアクセスを許可することを示すアクセス許可命令を送信すると共に、新たに生成した公開鍵KB2を送信する。
また、サーバは、送信先のPC−Bに対して、アクセスを許可することを通知すると共に、新たに生成した秘密鍵KB1を送信する。この後、PC−BからPC−Aへのアクセスが行えるようになる。
たとえば、PC−BからPC−Aに対してデータD1の送信を要求した場合には、送信元のPC−Aで、公開鍵KB2を用いたデータD1の暗号化が行われた後PC−Bへ送信される。送信先のPC−Bでは、秘密鍵KB1を用いて暗号化されたデータを復号する。あるいは、単純に公開鍵での暗号化と秘密鍵での復号を行うのではなく、上記したように、共通鍵を用いて鍵情報と共に暗号データを送信するようにしてもよい。
【特許文献1】特開2005−242831号公報
【発明の開示】
【発明が解決しようとする課題】
【0014】
しかし、鍵情報と暗号化データとを送信する従来の方法では、お互いにそれぞれ固有の秘密鍵を所有していることが前提であるので、たとえば秘密鍵KSBを不正に取得した第三者を、PC−Bの正当な利用者として信頼してしまい、送信元のPC−Aから送信先のPC−Bへデータの転送が行われてしまう。
また、送信先のPC−Bの信頼性を確認せずにデータ転送が行われてしまうので、PC−Bがコンピュータウイルスに犯されている状態でPC−AからPC−Bへデータの転送が行われる場合もある。このような場合、送信先のPC−Bを介してそのデータがさらに他のPCへ漏洩する危険性が高くなるという問題がある。さらに、秘密鍵KSBを不正に取得した第三者は、いつでも受信したデータを復元して利用することができるという問題点もある。
すなわち、この従来の方法では、信頼関係のない第三者にデータが転送され、そのデータの漏洩や不正利用が行われる可能性がある。
【0015】
また、特許文献1のアクセス制御方式では、PCの状態を検証した上でアクセスの許可をするので信頼性を高めることができるが、管理コンピュータ(サーバ)を設ける必要があり、このサーバを利用できない環境では、このような高い信頼性を持ったデータ転送ができない。
たとえば、特定の個人ユーザどおしがデータ転送をする場合には、このようなサーバを介したシステムを利用することを望まない場合もあり、サーバを利用しない環境下でも、お互いの信頼性を確認した上で、高いセキュリティを確保したデータ転送を可能とするしくみが望まれる。
【0016】
そこで、この発明は、サーバを介したシステムと同等の信頼性を確保して、サーバを利用しなくても送信元と送信先の信頼性を十分に確認した後にデータの転送を行うことを可能とする情報処理装置とそのデータ転送方法を提供することを課題とする。
【課題を解決するための手段】
【0017】
この発明は、自己の所有するデータを転送する相手である転送先情報処理装置の生成した信頼情報を、所定の分割方法で分割した一部の第1分割信頼情報を予め取得して保存する記憶部と、前記転送先情報処理装置から自己の所有データの転送要求を受信し、かつその受信時に前記転送先情報処理装置の信頼情報を分割した他の第2分割信頼情報と、前記転送先情報処理装置の固有の転送要求時の状態を示す情報を用いて生成した検証情報とを受信する通信部と、前記記憶部に保存された第1分割信頼情報と前記受信された第2分割信頼情報とを用いて、前記信頼情報を復元する信頼情報復元部と、前記復元された信頼情報と前記受信された検証情報とを用いて、前記転送先情報処理装置の信頼性を検証する機器検証部とを備え、前記信頼性の検証が成功した場合に、前記通信部が、転送要求された自己の所有データを、前記転送先情報処理装置へ送信することを特徴とする情報処理装置を提供するものである。
【0018】
これによれば、転送先情報処理装置の信頼情報を分割してその一部を保存しているので、第三者の信頼できる管理装置を利用することなく、データの転送先の情報処理装置の信頼性を簡易に確認することができる。
また、信頼性の確認が成功した場合に、自己の所有データを転送先情報処理装置へ送信するようにしているので、信頼性を確認できない装置を利用した不正アクセスにより、自己の所有データが不当に外部へ流出するのを防止でき、セキュリティをより高めることができる。
上記装置は、送信すべきデータを所有し、転送要求を受信する転送元情報処理装置に相当する。
【0019】
この発明は、前記信頼情報は、秘密分散法を用いて、第1分割信頼情報と第2分割信頼情報とに分割されることを特徴とする。すなわち、少なくとも2つに分割される。ただし、3つ以上に分割してもよい。
また、この発明は、前記復元された信頼情報と、前記受信された検証情報とが同一形式のデータである場合は、信頼情報と検証情報とが一致する場合に、前記機器検証部が、前記転送先情報処理装置の信頼性の検証が成功したと判断することを特徴とする。
【0020】
さらに、前記信頼情報を所定の分割方法で2つの分割信頼情報に分割する信頼情報分割部をさらに備え、前記機器検証部が、信頼性の検証に失敗した場合、前記受信された検証情報を用いて、前記信頼情報を更新した後、前記信頼情報分割部が、更新後の信頼情報を2つに分割し、一方の分割信頼情報を前記記憶部の第1分割信頼情報として記憶し、他方の分割信頼情報を、第2分割信頼情報として、前記転送先情報処理装置へ送信することを特徴とする。
さらに、前記記憶部に、転送先情報処理装置の公開鍵を予め記憶し、転送要求された自己の所有データを、前記公開鍵を用いて暗号化する暗号部をさらに備え、前記通信部は、前記暗号部で暗号化された前記所有データを、転送先情報処理装置へ送信することを特徴とする。
暗号化は、所有データの転送時のセキュリティを高め、不正流出を防止するためである。
また、共通鍵を生成する鍵生成部と、転送要求された自己の所有データを前記共通鍵で暗号化する暗号部をさらに備え、前記記憶部に転送先情報処理装置の公開鍵を予め記憶し、前記通信部は、暗号部で暗号化された前記所有データと、前記転送先情報処理装置の公開鍵で暗号化された共通鍵とを、転送先情報処理装置へ送信することを特徴とする。
【0021】
また、この発明は、自己の秘密鍵と公開鍵とを生成する鍵生成部と、自己の所有するデータを転送する相手である転送先情報処理装置から、前記転送先情報処理装置の固有の状態を示す情報を用いて生成された信頼情報を受信する通信部と、前記信頼情報を所定の分割方法で2つの分割信頼情報に分割する信頼情報分割部と、分割された一方の第1分割信頼情報と前記自己の秘密鍵とを保存する記憶部とを備え、前記通信部は、前記生成された自己の公開鍵と、分割された他方の第2分割信頼情報とを、前記転送先情報処理装置へ送信することを特徴とする情報処理装置を提供するものである。
上記装置も転送元情報処理装置であり、データ転送前の交換処理機能を有するものである。
【0022】
さらに、この発明は、自己の秘密鍵と、データの転送元情報処理装置の公開鍵と、自己の固有の状態情報を示す情報を用いて生成した信頼情報を分割した一部の分割信頼情報とを予め保存する記憶部と、自己の現在の状態情報を収集する機器状態収集部と、前記収集された現在の状態情報を用いて自己の検証情報を生成する信頼情報生成部と、前記転送元情報処理装置の所有するデータの転送要求をする際に、前記生成された検証情報と、前記予め保存されていた分割信頼情報とを、転送元情報処理装置に送信する通信部と、前記通信部が、転送元情報処理装置から自己の公開鍵で暗号化された転送要求データを受信した場合、前記保存されていた自己の秘密鍵を用いて、受信したデータを復号する復号部とを備えたことを特徴とする情報処理装置を提供するものである。
上記装置は、転送先情報処理装置に相当する。
また、この発明は、前記機器状態収集部が収集する状態情報は、テキスト形式でもバイナリ形式でも構わない。例えば、データ量を減らすために、ハッシュ値を用いることも可能である。
【0023】
ここで、前記記憶部に予め保存される分割信頼情報は、前記転送元情報処理装置の公開鍵で暗号化された形式で保存されていることを特徴とする。
これによれば、記憶部に保存されている分割信頼情報は、転送元情報処理装置の公開鍵で暗号化されているので、転送元情報処理装置のみが所有する秘密鍵でしか復号することができず、セキュリティを向上できる。
【0024】
また、前記転送要求をする際に、送信される分割信頼情報は、転送元情報処理装置の公開鍵で暗号化されていることを特徴とする。
この場合も、送信される分割信頼情報は、転送元情報処理装置の公開鍵で暗号化されているので、転送元処理装置のみが所有する秘密鍵でしか復号することができず、セキュリティを向上できる。
【0025】
さらに、前記転送要求をする際に、前記通信部は鍵情報も送信し、前記鍵情報は、新たに作成した秘密鍵公開鍵のペアの公開鍵を自己の秘密鍵で暗号化したものを、転送元情報処理装置の公開鍵で暗号化した情報であることを特徴とする。
【0026】
また、自己の秘密鍵と公開鍵とを生成する鍵生成部をさらに備え、前記信頼情報生成部が、前記機器状態収集部によって収集された状態情報を用いて自己の信頼情報を生成し、前記通信部が、前記自己の公開鍵と、前記生成された自己の信頼情報とを、転送元情報処理装置へ送信することを特徴とする。上記装置も、転送先情報処理装置に相当する。
【0027】
また、この発明は、転送元情報処理装置が自己の所有するデータを転送先情報処理装置へ転送する前に、前記転送先情報処理装置が、転送先情報処理装置の機器状態収集部によって収集された自己の現在の状態情報を用いて、信頼情報を生成し、その信頼情報を前記転送元情報処理装置へ送信した後、前記転送元情報処理装置が受信した信頼情報を2つに分割して、第1分割信頼情報と第2分割信頼情報とを生成し、第1分割信頼情報は、記憶部へ保存し、第2分割信頼情報は前記転送先情報処理装置へ送信され、前記転送先情報処理装置の記憶部に保存されることを特徴とする情報処理装置のデータ転送方法を提供するものである。
【0028】
さらに、前記転送先情報処理装置が、前記転送元情報処理装置に対して、転送元情報処理装置が所有するデータの転送を要求する際に、前記機器状態収集部によって収集された自己の現在の状態情報を用いて検証情報を生成し、生成された検証情報と、前記転送先情報処理装置の記憶部に保存されていた第2分割信頼情報とを前記転送元情報処理装置へ送信した後、前記転送元情報処理装置が、自己の記憶部に保存されていた第1分割信頼情報と、受信した検証情報とを用いて、前記信頼情報を復元し、復元した信頼情報と受信した検証情報とを用いて、前記転送先情報処理装置の信頼性を検証し、信頼性の検証が成功した場合に、転送要求された自己の所有するデータを、転送先情報処理装置へ送信することを特徴とする。
【0029】
また、前記信頼性の検証に失敗した場合に、前記転送元情報処理装置が、前記受信した検証情報から新たな信頼情報を生成し、新たな信頼情報を分割して、2つの分割信頼情報を生成し、生成した一方の分割信頼情報を第1分割信頼情報として自己の記憶部に保存し、生成した他方の分割信頼情報を前記転送先情報処理装置へ送信し、転送先情報処理装置が、受信した分割信頼情報を第2分割信頼情報として保存することを特徴とする。
【0030】
また、この発明は転送元情報処理装置の固有の状態を示す情報を用いて生成した信頼情報を、所定の分割方法で2つに分割した一方の第1分割信頼情報を転送元情報処理装置に保存し、かつ他方の第2分割信頼情報を転送先情報処理装置に保存した後、転送元情報処理装置が転送先情報処理装置へ自己の所有するデータを転送する際に、前記転送元情報処理装置が、共通鍵を生成し、その共通鍵で、転送すべき自己の所有するデータを暗号化し、転送元情報処理装置の機器状態収集部によって収集された自己の現在の状態情報を用いて検証情報を生成し、前記共通鍵と、保存された第1分割信頼情報と、前記生成された検証情報と、前記暗号化されたデータとを、前記転送先情報処理装置へ送信した後、前記転送先情報処理装置が、受信した第1分割信頼情報と、保存された第2分割信頼情報とを用いて、前記転送元情報処理装置の信頼情報を復元し、復元した信頼情報と、受信した検証情報とを用いて、前記転送元情報処理装置の信頼性を検証し、信頼性の検証が成功した場合に、受信した暗号化されたデータを、受信した共通鍵を用いて復号することを特徴とする情報処理装置のデータ転送方法を提供するものである。
【発明の効果】
【0031】
この発明によれば、2つの情報処理装置間でデータ転送をする場合に、その転送先情報処理装置の信頼情報を分割してその一部を転送元情報処理装置に保存しているので、転送元情報処理装置側でデータ転送前に、転送先情報処理装置の信頼性を簡易に確認でき、不正アクセスによるデータの不当な流出を有効に防止できる。
【発明を実施するための最良の形態】
【0032】
以下、図に示す実施例に基づいて本発明を詳述する。なお、本発明はこれによって限定されるものではない。
<情報処理装置の構成>
図1に、この発明の情報処理装置(PC)の一実施例の構成ブロック図を示す。
この発明の情報処理装置PCは、パソコンやワークステーションのようなコンピュータであり、ネットワークを介して他のPCとデータ通信を行う機能を有する。あるいは、他のPCとケーブルを直接接続し、データ交換を行う機能を有してもよい。
【0033】
また、汎用インタフェース(USB,IEEE1394,SCSIなど)のケーブルを介して、USBメモリ,外部記憶装置などに接続し、データの記録再生を行う機能を有する。
いずれのケーブルの場合も、データの送信および受信という処理を伴うが、この発明では、単純に送信すべきデータをそのまま送信するのではなく、相互に通信する相手側が信頼できる機器であることを、以下に説明するような方法で確認した後、所定の暗号化処理をしたデータを送信する。
【0034】
この発明の情報処理装置は種々の情報処理機能を有することが可能であるが、以下の実施例では、データ転送,データ保護,相互信頼確認という観点の機能について説明する。
図1に示すように、この発明の情報処理装置は、主として、鍵生成部1,機器状態収集部2,信頼情報生成部3,信頼情報分割部4,信頼情報復元部5,通信部6,復号部7,暗号部8,機器検証部9,転送元選択部10,記憶部11を備える。
【0035】
鍵生成部1は、情報の暗号化および復号に利用する特殊なデータ(以下、鍵と呼ぶ)を生成する部分である。たとえば公開鍵暗号方式を採用する場合は、1対の公開鍵と秘密鍵とが生成される。
【0036】
情報処理装置PC−Bによって作成される秘密鍵をKSB,公開鍵をKPBと表記する。また、一般に、PC−nによって作成される秘密鍵をKSn,公開鍵をKPnと表記するものとする(図2参照)。
また、共通鍵利用方式では、自己と他のPCでも利用される1つの共通鍵が生成される。
鍵生成部1による鍵の生成は、情報処理装置PCの初期設定時,データ転送要求時,データ復号時などの際に、所定の生成プログラムによって行われる。
【0037】
復号部7と暗号部8とは、このような鍵を用いて、所望の情報を復号または暗号化する部分である。
暗号および復号される情報の対象としては、送信されるデータ(DTS)の他、鍵そのものの場合もある。
たとえば、送信データDTSを、PC−Bの公開鍵KPBで暗号化したとき、暗号化後のデータを、KPB(DTS)と表記するものとする。
【0038】
また、共通鍵KCAを、PC−Aの公開鍵KPAで暗号化したとき、暗号化後の鍵を、KPA(KCA)と表記する。
逆に、暗号化されたデータKPB(DTS)を、PC−Bの秘密鍵KSBで復号すると、もとのデータDTSが取得される。
【0039】
通信部6は、他の情報処理装置PCや、USBメモリなどとデータ通信を行う部分であり、所定の通信プロトコルに基づいてデータの送信および受信が行われる。
【0040】
記憶部11は、種々の情報を記憶した不揮発性の書き換え可能なメモリであり、たとえば、ハードディスク,フラッシュメモリ,RAMやROMなどの半導体記憶素子,CD,DVDなどの記憶媒体を利用できる。
記憶部11には、送信データや鍵の他に、この発明の情報処理装置の機能を実現する上で必要な情報が記憶される。
図1では、その一例として、PC−Bに記憶される情報の一部を示している。これに限られるわけではない。たとえば、PC−Bで生成された自己の秘密鍵KSB,自己の公開鍵KPB,他の情報処理装置PC−Aの公開鍵KPA,送信データDTS,受信データDTR,後述する信頼情報TIBの一部である分割信頼情報DIBB,検証情報VIBである。
【0041】
機器状態収集部2は、情報処理装置PCの状態を検査して、所定の状態情報を収集する部分である。
状態情報とは、PCを構成するハードウェアや、インストールされているソフトウェアによって特定される情報である。
たとえば、インストールされているソフトウェアの種類,ソフトウェアの名称,ソフトウェアのバージョン番号,現在動作中のソフトウェアの名称や数,インストールされているウイルス定義パターンファイルのバージョン番号,インストールされたハードウェアデバイスの名称やバージョン番号,デバイスの起動情報,ウイルス対策の有効無効情報,生体認証状況情報,OSやソフトウェアのアップデート情報などが、状態情報に相当する。
【0042】
信頼情報生成部3は、機器状態収集部2によって収集された状態情報を用いて、信頼情報TIBまたは検証情報VIBを生成する部分である。
信頼情報TIBは、PCの初期設定時,ハードウェアやソフトウェアの変更,追加時などの際に、状態情報から生成される情報であり、PCそのものを特定することが可能な状態を示すものとして利用される情報である。
検証情報VIBは、PCの起動中に、特定のイベントが発生するごとに、そのPCの状態情報を収集し、収集された状態情報からその都度生成される情報である。
【0043】
最も単純には、信頼情報TIBと検証情報VIBとは同一の情報として生成される。
同一の情報とする場合、収集された複数の状態情報をそのまま集合したデータ(テキスト形式、バイナリ形式)を用いることもできるが、複数の情報に対してハッシュ値を計算し、このハッシュ値を信頼情報および検証情報として利用してもよい。
【0044】
また、不正利用や改ざんを防止するため、上記データやハッシュ値を所定の鍵(たとえば相手のPCの公開鍵)を用いて暗号化したものを、信頼情報および検証情報としてもよい。
さらに、信頼情報TIBは、たとえば、PC−Bの初期設定時に予め生成されて、そのPC−Bの記憶部11に保存されるべきものである。ただし、一旦保存された自己の信頼情報TIBは、その後分割されてデータ転送を行う相手のPCにも保存される。相手のPCに保存させる方法については、準備段階の交換処理として、後述する(図3,図4参照)。
【0045】
また、信頼情報TIBとしては、検証情報と同一の情報でなくてもよい。たとえば、収集される状態情報の項目のうち、後述する機器検証部9の検証処理でチェックすべき項目名と、その項目がどのような値であればよいかを示したチェックリストを用いてもよい。
たとえば、収集された状態情報の項目が10個(J1〜J10)あったとし、このうちの4つの項目(たとえば、J1,J2,J7,J9)を検証するものとすると、信頼情報TIBは、この4つの項目名(J1,J2,J7,J9)と、その項目のとるべき値のみを含むリストとして生成される。
この場合、検証情報VIBとして収集された10個の状態情報のうち、信頼情報TIBに含まれた4つの状態情報のみが機器検証部9によって検証される。
【0046】
また、この発明では、信頼情報TIBはそのままPCに保存されるのではなく、複数に分割して、分割した情報をそれぞれ別のPCに保存することを特徴とする。
信頼情報TIBを複数に分割して別のPCに保存することにより、データ転送を行うPC相互の信頼性の確認をより確実に行うことができるようになり、また、第三者である管理装置(サーバ)を介することなく、データ転送を行うPC間で相互の信頼性を確認でき、信頼性を確認できないPCとのデータ通信を排除することができ、データ転送時の安全性をより高めることができる。
【0047】
信頼情報分割部4は、1つの信頼情報TIBを複数個に分割する部分である。
データ転送は、通常2つのPC間で行われるので、少なくとも2つに分割する。
分割する手法は、既存のデータ分割法を用いればよいが、たとえば、単純に半分に分割する方法、1バイトずつ交互に分割する方法、秘密分散法などの手法を用いることができる。
また、分割された信頼情報は、所定の処理によりもとの1つの信頼情報TIBに復元される。
信頼情報TIBを2つに分割した場合、分割後の信頼情報はそれぞれデータの転送元のPCと転送先のPCに、別々に保存される。
以下の実施例では主としてPC−AとPC−Bとの間のデータ転送を説明するが、この場合、信頼情報TIBは、2つの分割情報DIBAとDIBBに分割され、一方の分割情報DIBAはPC−Aに保存され、他方の分割情報DIBBはPC−Bに保存されるものとする。
【0048】
信頼情報復元部5は、上記のように複数個に分割された信頼情報(たとえばDIBA,DIBB)を結合して、もとの信頼情報TIBを復元する部分である。復元した信頼情報TIBは、機器検証部9の検証処理で用いられる。
また、たとえば2分割された分割情報(DIBA,DIBB)は、異なるPC−AとPC−Bにそれぞれに保存されているが、PC−AとPC−Bで実際にデータ転送を行う直前の検証処理のときに、どちらか一方のPCに、他方のPCに保存されていた分割情報を送信することにより集合され、もとの信頼情報TIBを復元する。
【0049】
機器検証部9は、信頼情報TIBと検証情報VIBとを用いて、これからデータ転送を行おうとするPC相互の信頼性を検証する処理(信頼性確認処理、または検証処理ともいう)をする部分である。
ここで、信頼情報TIBと検証情報VIBとが同じ形式のデータである場合は、両者が一致するか否かチェックされる。一致することが確認された場合は、データ転送の相手が信頼できるPCであると判断される。
確認に用いられる信頼情報TIBは、信頼情報復元部5が記憶部11に記憶された分割情報DIBAと、相手側から送信されてきた分割情報DIBBとを結合して復元したものである。
一方、確認に用いられる検証情報VIBは、相手側のPCから送られてきたそのPCの検証情報である。
【0050】
転送元選択部10は、データを所有しているPCを選択する部分であり、送信する分割情報や暗号化に用いる公開鍵を選択する部分である。
たとえば、互いに信頼性を確認したパソコンが3台(PC−A,PC−B,PC−C)存在しているとする。データを入手しようとする転送先のPCがPC−Bであり、データを所有している転送元のPCがPC−A,PC−Cの2台であったとする。このとき、PC−Bにおいて、データを入手する相手のPCがPC−AであるかPC−Cであるかを選択する必要がある。たとえば、データ入手先である転送元のPCを選択するための画面を表示し、利用者による入力操作により転送元のPCを選択してもらう。
【0051】
転送元選択部10は、キーボード,マウス,ペンなどのポインティングデバイスなどの入力装置に相当する。
上記した3台のPCが存在する状態で、PC−Bにおいて、PC−Cが転送元として選択入力された場合、PC−Bに予め保存されていたPC−BとPC−Cとの間の信頼情報の分割情報DIBBが、データ転送前に、PC−BからPC−Cへ転送される。
【0052】
また、3台のPCの間で相互に信頼性を確認するために用いる信頼情報は、次のような3種類、合計6つの情報が存在する。PC−AとPC−B相互間においては、PC−Aの信頼性を確認するための信頼情報TIA(A−B)と、PC−Bの信頼性を確認するための信頼情報TIB(A−B)とが存在する。
また、同様に、PC−AとPC−Cと相互間では、PC−Aの信頼性を確認するための信頼情報TIA(A−C)と、PC−Cの信頼性を確認するための信頼情報TIC(A−C)である。
【0053】
また、PC−BとPC−C相互間では、PC−Bの信頼性を確認するための信頼情報TIB(B−C)と、PC−Cの信頼性を確認するための信頼情報TIC(B−C)である。
ここで、たとえばPC−Bの信頼性を確認するための信頼情報は、2つ存在するが、セキュリティを高めるため、信頼情報TIB(A−B)とTIB(B−C)とは異なるものを用いる方が好ましい。ただし、TIB(A−B)とTIB(B−C)とは同一であってもよい。
【0054】
また、これらの信頼情報はそれぞれ2つに分割されて、その分割情報は別々のPCに保存される。たとえば、PC−AとPC−B相互間においては、TIA(A−B)が、DIAA(A−B)とDIAB(A−B)に分割され、DIAA(A−B)がPC−Aに保存され、DIAB(A−B)がPC−Bに保存される。
また、TIB(A−B)が、DIBA(A−B)とDIBB(A−B)に分割され、DIBA(A−B)がPC−Aに保存され、DIBB(A−B)がPC−Bに保存される。
【0055】
また、PC−BとPC−C相互間においては、TIB(B−C)がDIBB(B−C)とDIBC(B−C)に分割され、DIBB(B−C)がPC−Bに保存され、DIBC(B−C)がPC−Cに保存される。さらにTIC(B−C)はDICB(B−C)とDICC(B−C)に分割され、DICB(B−C)がPC−Bに保存され、DICC(B−C)がPC−Cに保存される。
【0056】
また、転送元選択部10によってデータ転送元のPCが選択されると、暗号化に用いる公開鍵も選択される。たとえば、データ転送元としてPC−Aが選択された場合は、転送元のPC−Aの公開鍵KPAが選択される。データ転送元としてPC−Cが選択された場合は、転送元のPC−Cの公開鍵KPCが選択される。
【0057】
この発明の情報処理装置は、以上のような主要機能ブロック(1〜10)を備えているが、これら各機能ブロックは、CPU,ROM,RAM,I/Oコントローラ,タイマーなどからなるマイクロコンピュータによって実現される。
また、各機能ブロック(1〜10)の機能は、ROMやRAM等に記憶された制御プログラムに基づいて、CPUが種々のハードウェアを動作させることにより実現される。
【0058】
図2に、この発明で利用される主要な情報の一実施例を示す。ここでも、データ転送の転送先であるPC−Bと、転送元であるPC−Aについての情報を示す。
図2において、鍵KEYは、情報を暗号化または復号するための鍵である。公開鍵暗号方式を利用する場合は、図2に示すように、各PCごとに、異なる公開鍵と秘密鍵とが存在する。
【0059】
たとえば、PC−Bにおいて、一対の公開鍵KPBと秘密鍵KSBとが作成されると、その秘密鍵KSBは、自己の鍵としてPC−Bに保存され、その公開鍵KPBはPC−Aなどの他のPCに保存される。
共通鍵KCAは、転送データを暗号化および復号するための情報であり、一般に転送元のPCで生成されるものである。また、共通鍵KCAは、所定の鍵を用いて暗号化されて、暗号化された転送データとともに、転送先へ送信される。
【0060】
鍵情報KIBは、あるPCが所有する鍵を、他のPCの公開鍵で暗号化したものである。
たとえば、転送先PCで鍵情報KIBを作成する場合、転送元PCの公開鍵で暗号化されたものが、鍵情報KIBとなる。この鍵情報KIBは、転送元PCに送信される。
鍵情報KIBは転送元PCの公開鍵で暗号化されているので、鍵情報KIBは転送元PCの秘密鍵でしか復号することができない。
たとえば、後述するように、PC−Bの公開鍵KPB1を秘密鍵KSBで暗号化したもの(KSB(KPB1))を、異なるPC−Aの公開鍵KPAで暗号化したもの(KPA(KSB(KPB1)))を、鍵情報KIBとして利用する(図7参照)。
【0061】
図2において、信頼情報TIBは、転送先PC−Bの信頼情報を示しており、2つに分割したものを示している。
すなわち、信頼情報TIBは、第1の分割信頼情報DIBAと、第2の分割信頼情報DIBBに分割され、一方の分割信頼情報DIBAはPC−Aに保存され、他方の分割信頼情報DIBBはPC−Bに保存される。信頼情報TIBが、転送元PC−Aで更新される場合には、生成された信頼情報TIBが、転送元PC−Aで分割され、第2の分割信頼情報DIBBはPC−Bに送信される。
【0062】
検証情報VIBは、検証する自己のPCで作成され、そのPCの信頼性を相手側のPCで確認してもらうために、相手側のPCへ送信される。たとえば、転送先のPCであるPC−Bの検証情報VIBは、そのPC−Bで作成され、転送元であるPC−Aへ送信される。逆に転送元のPC−Aで作成された検証情報VIAは、転送先のPC−Bへ送信される。
送受信されるもとのデータDTは、図1の送信データDTSに相当し、転送元のPC(たとえばPC−A)に保存されている。
また、公開鍵KPBで暗号化されたデータDTは、KPB(DT)と表記するが、この情報KPB(DT)は、もとのデータDTを所有している転送元のPC−Aで生成され、転送先のPC−Bへ送信される。
【0063】
また、図2には、転送元のPC−Aと転送先のPC−Bに保存されるべき情報と、両PC間で送受信される情報の一実施例を示している。
ここで、保存されるべき情報とは、実際にデータ転送が行われる前に保存されている情報をいい、後述する交換処理を実行した後に各PCに保存される情報である。
図2において、転送元PC−Aには、自己(PC−A)の秘密鍵KSA,相手(PC−B)の公開鍵KPBおよび分割信頼情報DIBAが保存されることを示している。
転送先PC−Bには、自己(PC−B)の秘密鍵KSB,相手(PC−A)の公開鍵KPAおよび分割信頼情報DIBBが保存される。
【0064】
また、転送先PC−Bから転送元PC−Aに、データ送信要求REQが送信されるとすると、その際に、鍵情報KIBと、検証情報VIBと、分割信頼情報DIBBとがこのデータ送信要求REQに含められて、転送先PC−Bから転送元PC−Aへ送信される。
また、データ転送要求REQを受信した転送元PC−Aでは、所定の信頼性確認処理をした後、要求されたデータDTを、転送先PC−Bへ送信する。このとき、データDTは、生データのまま送信するのではなく、暗号化した後のデータを送信することが好ましい。
たとえば、PC−Bの公開鍵KPBで暗号化した後、KPB(DT)として送信される。あるいは、共通鍵KCAと共に、共通鍵KCAで暗号化したデータ(KCA(DT))を送信してもよい。
共通鍵KCAで暗号化する場合は、共通鍵KCAそのものをPC−Bへ送信するのではなく、共通鍵KCAを、PC−Bの公開鍵KPBで暗号化したものを送信してもよい。
この例では、鍵情報KIBは使用していない。鍵情報KIBには、PC−Bで作成された公開鍵KPB1が含まれており、PC−Aからのデータ暗号化、もしくは、共通鍵KCAの暗号化に用いられる。それらは秘密鍵KSB1によって復号される。
【0065】
<信頼情報等の交換処理>
ここでは、データ転送の前に行われる処理である交換処理について説明する。
この交換処理は、データ転送を行う2つの情報処理装置相互間で予め実施される処理であり、データ転送をする前に必ず行う。ただし、データ転送の直前に毎回行う必要はなく、たとえば、データ転送を行いたい機器が追加されたとき、信頼情報が更新されたときなどに行うようにすればよい。
たとえば、2つの情報処理装置(PC−A,PC−B)間で、交換処理が行われたとすると、両PCは、図2に示したような情報(鍵,分割信頼情報)が保存された状態となる。
交換処理は、サーバを介して行うことも可能である。サーバが存在している場合には、自己の信頼情報をサーバに保存し、他の機器の分散情報や鍵などの情報を取得する。これは、サーバが存在している場合には、いつでも処理可能であり、定期的に行ってもよいし、電源投入時などに行ってもよい。
【0066】
図3に、この発明の交換処理の一実施例の説明図を示す。
ここでは、転送先である情報処理装置PC−Bの信頼情報TIBを、転送元の情報処理装置PC−Aへ送信する交換処理について説明する。
図3の各ブロックは、図1の構成ブロックに示したものであり、説明に利用するブロックのみを示している。PC−AとPC−Bとは、専用ケーブルで直接接続してもよいが、LAN等のネットワークを介して接続する形態でもよい。
まず、情報処理装置PC−Bにおいて、鍵生成部1による鍵の生成処理,機器状態収集部2によるPC−Bの状態情報の収集処理,信頼情報生成部3による収集された情報を用いた信頼情報の生成処理,通信部6による生成した信頼情報等のPC−Aへの送信処理が、この順に行われる。
このとき、PC−Aへは、PC−Bの信頼情報TIBと、PC−Bの公開鍵KPBが送信される。
【0067】
次に、情報処理装置PC−Aにおいて、通信部6による情報の受信処理,信頼情報分割部4による受信した信頼情報TIBの分割処理,通信部6による分割した信頼情報DIBBなどの送信処理が、この順に行われる。
このとき、PC−Bへは、分割信頼情報DIBBと、PC−Aの公開鍵KPAが送信される。
なお、情報処理装置PC−Aにおいても、予め鍵生成部1が、自己の秘密鍵KSAと自己の公開鍵KPAを生成するものとする。
すでに交換処理が行われている場合、鍵の交換は行わなくてもよい。
【0068】
図4に、図3に示した交換処理の一実施例のフローチャートを示す。
まず、情報処理装置PC−AとPC−Bにおいて、それぞれ鍵生成部1が鍵の生成処理を行う(ステップS11,S21)。
ステップS11において、PC−Bで、自己の秘密鍵KSBと、自己の公開鍵KPBが生成される。
ステップS21において、PC−Aで、自己の秘密鍵KSAと、自己の公開鍵KPAが生成される。
【0069】
次に、ステップS12において、機器状態収集部2が、PC−Bの機器状態の情報を収集する。このとき、PC−Bに備えられたハードウェアや、インストールされたソフトウェアの情報が利用されて、状態情報が生成される。状態情報は収集された情報をすべて含むデータとする。あるいは、このデータをハッシュ関数で変換したハッシュ値を用いてもよい。
【0070】
ステップS13において、信頼情報生成部3が、収集した状態情報を用いて信頼情報TIBを生成する。ただし、信頼情報TIBは、記憶部11に保存しない情報であるため、その一部DIBBのみを後ほど保存し、信頼情報TIBは削除する(ステップS17参照)。
ステップS14において、通信部6が、PC−Bの公開鍵KPBと、信頼情報TIBとをPC−Aに送信する。
ステップS15において、PC−Bの記憶部11に、自己の秘密鍵KSBを保存する。ここで自己の公開鍵KPBも保存してもよい。
【0071】
一方、ステップS22において、PC−Aが、PC−Bから送信されてきた情報(KPB,TIB)を受信する。
ステップS23において、信頼情報分割部4が、受信した信頼情報TIBを分割する。たとえば、秘密分散法を用いて、信頼情報TIBを、分割信頼情報DIBAとDIBBに分割する。
ステップS24において、受信したPC−Bの公開鍵KPBと、分割によって生成した一方の分割信頼情報DIBAとを、記憶部11に保存する。もう一方の分割信頼情報DIBBは、PC−Aに保存しない。分割信頼情報DIBBは、PC−Aの公開鍵KPAで暗号化してもよい。
ステップS25において、通信部6が、もう一方の分割信頼情報DIBBと、PC−Aの公開鍵KPAとを、PC−Bへ送信する。
【0072】
次に、ステップS16において、PC−Bが、PC−Aから送信されてきた情報(KPA,DIBB)を受信する。そして、ステップS17において、受信した公開鍵KPAと、分割信頼情報DIBBとを記憶部11に保存する。このとき、受信した信頼情報DIBBはそのまま保存してもよいが、セキュリティ向上のため、PC−Aの公開鍵KPAで暗号化したもの(KPA(DIBB))を保存してもよい。KPA(DIBB)は、PC−Aのみに保存されているPC−Aの秘密鍵KSAがなければ復号できないので、DIBBを暗号化したKPA(DIBB)の形式で保存することにより、PC−Bが盗難された場合のセキュリティをより高めることができる。PC−Aから送信されてきた段階で、分割信頼情報DIBBが、すでにKPAで暗号化されている場合には、再度KPAにて暗号化する必要はない。
【0073】
以上のように、ステップS25,S17の後、図2に示したように鍵や分割信頼情報が、2つの情報処理装置にそれぞれ保存されたことになる。
このように、PC−Bで生成された信頼情報TIBは、そのままの形式では保存されず、分割した信頼情報(DIBA,DIBB)の形式で、それぞれ物理的に異なる情報処理装置(PC−A,PC−B)に保存するようにしているので、一方の情報処理装置に記憶された情報(たとえばDIBA)が盗まれたとしても、他方の情報(DIBB)がなければ信頼情報TIBを復元することはできない。
【0074】
また、第三者が他の情報処理装置PC−Eで、PC−AとPC−B間の通信を盗聴し、PC−Bの分割信頼情報DIBBを不正に取得したとしても、PC−Eでどのような検証情報VIBを生成すればよいかわからなければ、データ転送前の信頼性確認処理が成功できず、PC−Aから不正にデータを取得することはできない。
【0075】
また、PC−Bにおいて、分割信頼情報DIBBを異なる情報処理装置PC−Aの公開鍵で暗号化してKPA(DIBB)として保存しておけば、KPA(DIBB)は、他方のPC−Aの秘密鍵PSAでしか復号できないので、セキュリティを向上できる。
【0076】
たとえば、第三者が他のPC−Eで、PC−Bの公開鍵KPBや秘密鍵KSBを不正に取得してPC−Bになりすまし、さらに暗号化された分割信頼情報KPA(DIBB)を取得できたとしても、PC−Aの秘密鍵KSAを知らなければ、信頼情報DIBBを復元することはできず、結局信頼情報TIBに対応した検証情報VIBを生成することはできない。
すなわち、第三者のPC−EでPC−Aに対してデータを送信要求をしても、その要求時に送信すべき正当な検証情報VIBを作成できないので、PC−Aから不正にデータを取得することはできない。
【0077】
また、図4の交換処理は、2つの情報処理装置間で行うものであったが、交換処理そのものは、管理装置(サーバ)を利用して行ってもよい。この場合は、信頼情報の分割処理は、管理装置(サーバ)で行う。したがって、情報処理装置PCでは、図1に示した信頼情報分割部4を備えなくてもよい。
【0078】
図5に、管理装置(サーバ)を用いた交換処理の一実施例のフローチャートを示す。
図5のステップS31において、互いにデータを転送する装置(PC−A,PC−B)で、まず鍵を生成し、それぞれの公開鍵(KPA,KPB)をサーバに送信する。
サーバは、ステップS41において、受信した装置の公開鍵(KPA,KPB)を保存し、装置PC−AとPC−Bの登録を行う。
送信先PCがPC−Bであるとすると、ステップS32,S33において、図4に示したのと同様に、PC−Bにおいて、機器状態の収集と、信頼情報TIBの生成とを行う。そして、ステップS34において、PC−Bの信頼情報TIBを、サーバに送信する。
【0079】
ステップS42において、サーバでは、信頼情報TIBを受信し、ステップS43において、所定の分割法を用いて、信頼情報TIBを、2つの情報(DIBA,DIBB)に分割する。
ステップS44において、分割された信頼情報DIBBを、公開鍵KPAを使用して暗号化する。分割信頼情報DIBAは、公開鍵KPAで暗号化してもよい。
【0080】
たとえば、PC−Aに保存すべき情報DIBAは、PC−Aの公開鍵KPAで暗号化され、PC−Bに保存すべき情報DIBBは、PC−Aの公開鍵KPAで暗号化する。
そして、ステップS45において、DIBBを暗号化した情報(KPA(DIBB))と、PC−Aの公開鍵KPAとを、PC−Bへ送信する。
ステップS46において、DIBAと、PC−Bの公開鍵KPBとを、PC−Aへ送信する。
【0081】
ステップS36において、PC−Bで、サーバから送られてきた公開鍵KPAと、暗号化された分割信頼情報KPA(DIBB)とを受信し、そのまま記憶部11に保存する(ステップS37)。
また、ステップS38において、PC−Aにおいても、サーバから送信されてきた公開鍵KPBと、分割信頼情報DIBAを記憶部11に保存する。
また、セキュリティのため、信頼情報TIBも、生成した分割信頼情報(DIBA,DIBB)もサーバには保存しない。すなわち、ステップS45,S46の後、サーバにおいて、情報(TIB,DIBA,DIBB)は消去する。同様に、PC−Bの信頼情報TIBも保存されていれば消去する。
【0082】
図5の場合、PC−Bに送信された分割信頼情報は、相手側装置の公開鍵で暗号化されているので、相手側の秘密鍵がないと復号できない形式である。
したがって、秘密鍵KSAを所有していない第三者が、単に、暗号化された情報KPA(DIBB)を不正に取得したとしても、もとのDIBBを復元することはできず、セキュリティを確保することができる。
【0083】
また、図4,図5の変換処理はいずれもLANなどのネットワークやケーブルを介してデータ転送を行う場合を示しているが、これに限るものではない。なお、送受信時のデータは、ここでは現れていない別の鍵を用いて暗号化されていてもよい。
PC−AおよびPC−Bの利用者が自らUSBメモリのような半導体メモリ素子や、CD,DVDなどの記録媒体に必要な情報を記録して、変換処理をしてもよい。
たとえば、送信先のPC−Bの利用者が、図4に示したPC−Aへ送信される情報(KPB,TIB)をCDに記憶させ、かつ所定の暗号コードENをCDに付与して、その暗号コードENを入力しなければ、CDを読めないようにしてもよい。この場合、PC−Bの利用者が、直接または郵送などの別ルートで、暗号コードENをPC−Aの利用者に知らせる。そして、暗号コードENとCDとを受け取ったPC−Aの利用者は、暗号コードENを入力することにより、CDに記憶された情報を読むことができる。
以上が、データ転送よりも前に必要となる情報処理装置間で行うべき交換処理である。
【0084】
<データ転送処理;実施例1>
ここでは、2つの情報処理装置(PC−A,PC−B)の間で、データを転送する場合の処理について説明する。この転送処理を行う前に、図4または図5で示したような変換処理が、PC−AとPC−Bで行われたものとする。
この発明のデータ転送処理は、要求されたデータを実際に転送する前に、転送元PCであるPC−A側で、転送先PCであるPC−Bの信頼性を検証する処理(図7のステップS61からS66)をすることを特徴とする。
【0085】
図6に、この発明のデータ転送処理の一実施例の概略説明図を示す。
図6では、図1の機能ブロックのうち利用する機能ブロックのみを示している。
ここでは、転送先PC−Bから転送元PC−Aに対してデータ送信要求が送信され、PC−Aにおいて、データ送信要求の送信時に同時に送信される情報を用いてPC−Bの信頼性を確認するものとする。そして、PC−Bが信頼できる相手であると確認できた場合に、PC−AからPC−Bへ、要求されたデータを送信する。
【0086】
また、PC−Bにおいて、送信元選択部10を用いて、データの送信元としてPC−Aが選択され、送信されるデータも選択されるものとする。送信元としてPC−Aが選択された場合、以後の処理に用いる公開鍵として、PC−Aの公開鍵KPAが選択される。
【0087】
まずPC−Bにおいて、送信要求に送る情報を作成するために、機器状態収集部2によるPC−Bの状態情報の収集、信頼情報生成部3によるPC−Bの検証情報VIBの生成を行うと共に、信頼性確認のために用いる鍵情報KIBの生成と、分割信頼情報DIBBの暗号化を行う。
そして、通信部6によって、生成された情報群(KIB,VIB,IBB)をPC−Aへ送信する。ここで、情報IBBは、DIBBを、PC−Aの公開鍵KPAで暗号化した情報(KPA(DIBB))を意味する(図7参照)。
【0088】
一方、これらの情報群を受信したPC−Aでは、復号部7による鍵情報KIBの復号処理と、信頼情報復元部5による信頼情報TIBの復元処理と、機器検証部9によって行われる復元した信頼情報TIBと受信した検証情報VIBとの比較による検証処理(信頼性確認処理)とがこの順に行われる。
機器検証部9による検証処理によって検証が成功すると、送信先であるPC−Bが、データを送信してもよい信頼できる相手であると確認されたことになる。
この後、暗号部8で要求されたデータDTSの暗号化が行われ、PC−AからPC−Bへ、要求されたデータのデータ転送処理が実行される。たとえば、要求されたデータDTSは、PC−Bの公開鍵KPBで暗号化された形式(KPB(DTS))で送信される。
【0089】
そして、PC−Bにおいて、暗号化されたデータ(KPB(DTS))を受信すると、復号部7によってPC−Bの秘密鍵KSBを用いてデータDTSを復号する。復号したデータは、受信データDTRとして記憶部11に保存される。
この発明は、2つの分割した信頼情報(DIBA,DIBB)と、鍵情報KIBと検証情報VIBとを用いて、送信要求をした転送先の情報処理装置(PC−B)の検証処理を行っているので、信頼性を確認できなかった転送先PCへデータを送信することがない。
すなわち、第三者が、他の情報処理装置を使って転送先PCになりすましたとしても、検証処理が成功せず、データの不正流出を、より高度に防止することができる。
【0090】
図7に、この発明のデータ転送処理の一実施例のフローチャートを示す。
ここでも、図6に示したように、PC−BからPC−Aへデータ送信要求を送信し、PC−Aで信頼性の検証が正当に行われた場合に、要求された送信データDTSをPC−AからPC−Bへ転送する場合について説明する。
前提として、PC−AとPC−Bですでに図3のような交換処理が行われ、図7に示すような所有情報をそれぞれ保存しているものとする。ここで、DIBBは、暗号化したKPA(DIBB)の形式で所有していてもよい。
【0091】
まず、PC−Bにおいて利用者が、PC−Aに存在するデータDTSを取得するための入力操作をしたとする。このとき、PC−Bにインストールされていたデータ送信プログラムが起動され、そのデータDTSを取得するために、データ送信要求が生成される。また、PC−Bにおいて、データ送信プログラムに基づいて、CPUによってステップS51からS55までの一連の処理を実行する。
【0092】
ステップS51において、PC−Aでのデータ暗号化に用いる鍵を作成する。秘密鍵KSB1と公開鍵KPB1のペア、共通鍵KCB、秘密鍵KSB1と公開鍵KPB1のペアと共通鍵KCB両方であってもよい。
ステップS52において、鍵情報KIBを生成する。
鍵情報KIBとは、図2に示した情報であるが、ここでは、PC−Aでデータの暗号処理を行うための鍵を含む情報を意味し、KPA(KSB(KPB1))である。
信頼性チェックを受ける転送先のPCであるPC−Bの公開鍵KPB1を、そのPC−Bの秘密鍵KSBで暗号化(署名とも呼ぶ)したもの(KSB(KPB1))を生成し、さらに、この情報(KSB(KPB1))を、信頼性をチェックする転送元のPCであるPC−Aの公開鍵KPAで暗号化したものが、鍵情報KIBである。
【0093】
ステップS53において、予めPC−Bに所有されていた分割信頼情報DIBBを、PC−Aの公開鍵KPAを用いて暗号化する。すなわち、IBB=KPA(DIBB)を生成する。
この情報IBBは、PC−Aのみに所有されている秘密鍵KSAによって復号可能な情報である。ただし、ステップS37で示したようにすでに暗号化された情報(KPA(DIBB))が、PC−Bに保存されている場合は、ステップS53は必要ない。
【0094】
ステップS54において、検証情報VIBを生成する。
検証情報VIBは、信頼情報TIBと同一または対応するものであり、前記したように、機器状態収集部2によって収集された状態情報を用いて、信頼情報生成部3によって生成される。
その後、上記処理によって生成された情報群(KIB,IBB,VIB)を、データ送信要求REQに含ませ、データ送信要求REQを作成する。
【0095】
データ送信要求REQには、上記情報群の他に、送信してもらいたいデータDTSを特定する情報が含まれる。たとえば、データDTSが、文書ファイルである場合は、その文書ファイルのファイル名,ディレクトリ、作成者,キーワード,日付、サイズなどが含まれる。
なお、検証情報VIBも、PC−Aの公開鍵KPAで暗号化してもよい。この場合、この暗号化した情報(KPA(VIB))をデータ送信要求REQに含める。
【0096】
この後、PC−Aにおいて、データ送信要求REQが受信され、PC−Bから要求のあったデータDTSを特定する情報と、情報群(KIB,IBB,VIB)とが受信される(ステップS61)。
ステップS62からS66において、転送先のPC−Bの信頼性の検証処理が行われ、その後、ステップS67とS68において、要求されたデータDTSの転送が行われる。
【0097】
ステップS62において、鍵情報KIBをPC−Aの秘密鍵KSAを用いて、復号する。これによりKIBに含まれていたKSB(KPB1)が取得される。
次に、ステップS63において、予め所有していたPC−Bの公開鍵KPBを用いて、KSB(KPB1)を復号する。これによりPC−Bの公開鍵KPB1が取得される。
【0098】
ステップS62において、他のPCには公開されていないPC−Aの自己の秘密鍵KSAで復号しているので、PC−Bが信頼している相手であるPC−Aによって、鍵情報KIBに含まれる情報が復元されたことになる。
もし、鍵情報KIBがPC−Aとは異なる信頼されていないPC(たとえばPC−C)に送信されたとすれば、PC−CはPC−Aの秘密鍵KSAを所有していないので、鍵情報KIBに含まれるPC−Bの公開鍵KPB1は正しく復元できない。
したがって、秘密鍵KSAを持たないPC−Cでは、鍵の復号処理が失敗する。
【0099】
また、情報処理装置PC−Bが盗難され悪意を持って使用されたとしても、信頼された相手の所有する秘密鍵KSAがなければ、PC−Bだけでは鍵情報KIBやIBBを復号することはできない。
ただし、第三者が他のPC−Eで、PC−AとPC−B間のデータを盗聴したとすると、情報処理装置PC−Bになりすますことができ、図7に示したデータ送信要求REQに含まれる情報群(KIB,IBB,VIB)と同じ情報をPC−Aへ送信することができる場合がある。
この場合、第三者によりPC−Aのデータを不正に取得することができてしまうが、後述するように、検証情報VIBに毎回異なる乱数を含めることで、第三者による以後の不正なリプレイ攻撃を防止することができる。また、鍵情報KIB内の公開鍵KPB1に対応する秘密鍵KSB1は、PC−Bにしか存在しないため、PC−EがKPB1(DTS)を入手しても復号することができない。
【0100】
次に、ステップS64において、受信した情報IBBを、PC−Aの秘密鍵KSAで復号する。これにより、分割信頼情報DIBBを取得する。このIBBも、PC−Aの秘密鍵KSAがなければ、復号できないので、PC−BからPC−Aへのデータの送信を盗難されたとしてもセキュリティ上安全である。
【0101】
ステップS65において、もとの信頼情報TIBを復元する。
ここで、ステップS64で取得した分割信頼情報DIBBと、予め所有していた分割信頼情報DIBAとを結合することにより、もとの信頼情報TIBを生成する。結合処理は、たとえば信頼情報TIBを分割したときの秘密分散処理と逆の処理をすることにより行えばよい。
【0102】
ステップS66において、復元した信頼情報TIBと、受信した検証情報VIBとを比較する。比較の方法は、両情報のデータ形式により異なる。
たとえば、両情報とも同じ形式のデータである場合は、単純に一致するか否かをチェックする。一致すればPC−Bの信頼性の検証が成功したことになり、一致しなければ検証が失敗したことになる。検証が成功した場合は、ステップS67へ進みデータ送信処理を実行する。
【0103】
一方、検証が失敗したときは、図示していないが、送信要求REQを送信してきた転送先PCが不正アクセスをしようとしている場合もあるので、データ送信処理を行わずに処理を終了する。あるいは、PC−Bに対して検証が失敗したことや、データ転送ができない旨を通知してもよい。さらに、PC−Aにおいて、PC−Aの利用者に、転送先がPC−Bらしいものからデータ転送要求があったが、PC−Bの検証が失敗した旨を通知してもよい。このとき、PC−Aの利用者に、失敗の原因が何であるかを調査すべきことを報知してもよい。
【0104】
また、両情報ともハッシュ値である場合は、同様に両情報(TIB,VIB)が一致するか否かチェックする。以後の処理は、データの場合と同様である。
また、検証情報VIBがハッシュ値であり、信頼情報TIBがデータの場合は、信頼情報TIBのハッシュ値を算出し、両ハッシュ値が一致するか否かチェックすればよい。逆に、検証情報VIBがデータであり、信頼情報TIBがハッシュ値の場合は、検証情報のハッシュ値を算出し、両ハッシュ値が一致するか否かをチェックすればよい。
【0105】
また、信頼情報TIBがチェックリストである場合、検証情報VIBの中に含まれるデータのうち、チェックリストに示された項目のみチェックする。前記したように、たとえば検証情報VIBには10個の状態情報が含まれているが、チェックリストには、そのうちの4つの項目の値しか含まれていない場合、チェックリストに含まれる4つの項目に対応する状態情報についてのみ、値が一致するか否かチェックする。
【0106】
ステップS66で、TIBとVIBの比較により、PC−Bの信頼性が確認されると、ステップS67において、送信要求のあったデータDTSが読み出され、送信データDTSを暗号化する。
ここで、たとえば、鍵情報KIBにより取得したPC−Bの公開鍵KPB1を用いて、送信データDTSを暗号化する。暗号化されたデータは、KPB1(DTS)と表記する。あるいは、図示しない共通鍵KCAを生成し、共通鍵KCAで、送信データDTSを暗号化してもよい。この場合、暗号化されたデータは、KCA(DTS)と表記する。
【0107】
ステップS68において、暗号化されたデータKPB1(DTS)を、PC−Bへ送信する。
あるいは、共通鍵KCAで暗号化する場合は、共通鍵KCAと、暗号化されたデータKCA(DTS)とを、PC−Bへ送信する。この場合、共通鍵KCAも、PC−Bの公開鍵KPB1で暗号化することが好ましく、KPB1(KCA)を送信することが好ましい。
なお、この例では、共通鍵KCAは、転送元のPC−Aで生成されるが、PC−BでのDTSの復号を制限するために、受信した検証情報VIBを用いて生成することも可能である。これは、PC−A,PC−Bともに検証情報VIBから同じアルゴリズムを用いて鍵を生成することで実現する。共通鍵KCAは、PC−AからPC−Bに送信されず、PC−Bは、DTSを復号する際に、検証情報VIBを生成し、それを元に共通鍵KCAを生成し、復号を行う。復号したデータDTSは記憶部11に保存しない。
また、ステップS68で、PC−AからPC−Bへ送信される情報として、PC−Bの状態が更新され、信頼情報TIBへの更新が必要であれば、PC−Aにて新しい信頼情報TIBを作成し、暗号化されたデータ(KPB1(DTS))に加えて、更新された分割信頼情報DIBBを含めてもよい。
【0108】
次に、ステップS69においてPC−Aにおいて、受信した分割信頼情報DIBBと、受信した鍵情報KIBと、生成した信頼情報TIBとを削除する。これは、PC−Bから毎回取得すべき情報であるためである。
その後、ステップS56において、PC−Bにて、暗号化されたデータKPB1(DTS)を受信する。
ステップS57において、PC−Bのみが所有する自己の秘密鍵KSB1を用いて、KPB1(DTS)を復号する。これにより、PC−Bが要求したデータDTSが取得される。
ステップS58において、取得したデータを受信データDTRとして記憶部11に保存する。
以上により、PC−Bからのデータ送信要求REQに対応したデータ転送が完了する。
【0109】
なお、受信された情報に共通鍵KCAが含まれ、この共通鍵KCAを用いてデータDTSが暗号化されている場合は、受信したKCA(DTS)を、受信した共通鍵KCAを用いて復号する。
また、共通鍵KCAそのものがPC−Bの公開鍵KPB1で暗号化されている場合は、受信したKPB1(KCA)を、PC−Bの秘密鍵KSB1で復号した後、取得した共通鍵KCAを用いて受信したデータ(KCA(DTS))を復号する。
【0110】
さらに、PC−Aにおいて共通鍵KCAが検証情報VIBで生成された場合は、共通鍵KCAは送信されない。PC−Bの機器状態収集部2によってPC−Bの状態情報を収集して、信頼情報生成部3によって再度検証情報VIBを生成した後、再度生成した検証情報VIBを用いて、PC−B側で共通鍵KCAを生成する。そして、この生成した共通鍵KCAを用いて、データKCA(DTS)の復号を行う。DTRとして記憶部11に保存しない。これは、PC−Bが検証時と同じ状態でなければ、DTSの復号が行えないことを示している。これにより、DTRとして記憶部11に保存されることもなく、不正を行える状態での復号もできないため、PC−Bへのコピー後もデータが不正に流出することがない。
【0111】
以上のように、実際にデータ転送をする前に、データ送信要求をしてきた転送先のPC(PC−B)の信頼性を検証する処理を転送元のPC(PC−A)でしているので、重要なデータが信頼のない転送先PC−Bへ不正に流出することを防止できる。しかも、信頼性の検証処理は転送元のPC(PC−A)で行うので、従来のように信頼できる第三者の所有する管理装置(サーバ)を利用する必要がなく、簡易に信頼性が確認できる。
【0112】
また、第三者が他の情報処理装置(PC−E)によって送信先のPC(PC−B)になりすました場合、PC−Eで、正当な3つの情報群(KIB,IBB,VIB)を生成して転送元PC−Aへ送信すれば、データを不正に取得することが可能となる場合がある。このような不正アクセスに対応するために、検証情報VIBと信頼情報TIBに乱数を含め、この乱数を用いてPC−Aで検証処理を行うようにしてもよい。毎回異なる乱数を用いるものとすれば、同一検証情報を用いた次回以降の不正アクセスによるデータの流出を防止できる。
【0113】
乱数はそのままテキストデータとして含めてもよいが、ハッシュ関数で乱数のハッシュ値を算出し、ハッシュ値として検証情報VIBに含めてもよい。
そして、たとえば定期的に2つの情報処理装置間で持つ分割信頼情報(DIBA,DIBB)を更新するようにすれば、単に固定された同一の検証情報(VIB)を用いてリプレイ攻撃する第三者の情報処理装置(PC−E)によってその後不正アクセスがされたとしてもさらなるデータの流出を、防止することができる。
【0114】
ところで、検証情報VIBは、データ転送要求をする際にステップS54でその都度生成される情報であるので、交換処理の時に互いの装置(PC−A,PC−B)に保存した信頼情報TIBと異なる場合がある。
たとえば、PC−Bにおいて、信頼情報TIBを生成し図3の交換処理を実行した後、収集対象となるソフトウェアのバージョンが変更されたり、収集対象となるハードウェアデバイスが変更されたりした場合、信頼情報TIBと一致しない検証情報VIBが生成される可能性がある。
【0115】
そこで、検証情報を生成するために収集する状態情報としては、変更されることのない情報を用いることが好ましい。たとえば、変更されることのない情報としては、生体認証状況,デバイスの接続状況,ウイルスの対策の有効無効情報などがある。
一方、変更されることのある情報としては、OSのアップデート状況情報,ウイルス定義ファイルのバージョン情報など、ソフトウェアのアップデートにより変化する情報がある。
【0116】
変更されることのある情報を含めて検証情報VIBを生成する場合は、転送先PC−Bが信頼性のあるPCであったとしても、ステップS66の比較処理が失敗することがある。この場合、次のような処理を行うことが考えられる。
【0117】
まず、送信要求されたデータの重要度に応じて、ステップS66の検証の結果を判断してもよい。たとえば、PC−Aで予め保存されているデータに重要度を付与しておき、あまり重要でないデータの送信要求がされた場合、変更されることのある情報についての検証結果は無視し、変更されることのない情報のみについての検証結果を用いてもよい。
また、ステップS66の検証処理が失敗した場合、失敗したことを転送元PC−Aの利用者に通知してもよい。そして、PC−Aの利用者が失敗した原因を検討し、特に相手先のPC−Bが問題ないと判断した場合は、許可する旨の入力操作をしてもらい、データ転送を許可するようにしてもよい。
【0118】
また、上記したように変更されることがある情報が、収集される状態情報に含まれるため、検証情報が変化する可能性が高い場合、後述するように、PC−A側において、分割して保存する信頼情報を、受信した検証情報VIBを用いて更新してもよい。
また、上記したように一度ステップS66の検証処理で失敗したが、PC−Aの利用者がデータ転送を許可した場合にも、保存された信頼情報を更新するようにすることが好ましい。この更新により、信頼性のあるPCから次回のデータ転送要求がされたときに、ステップS66の検証が成功するようにできる。
【0119】
図8に、信頼情報TIBの保存情報(DIBA,DIBB)を更新する処理の一実施例のフロー説明図を示す。
図8において、ステップS51〜S55,ステップS61からS66までの処理は、図7と同じである。ただし、ステップS66で、TIBとVIBが不一致であったとすることと、以後の処理(S71〜S74)が、図7と異なる。
ステップS66で、TIBとVIBが不一致であり、検証が失敗したとする。この場合、検証が失敗したことを画面表示等の方法で、PC−Aの利用者に通知する。その後、PC−Aの利用者が、信頼情報の更新要求を意図する入力をした場合に、ステップS71以後の処理を実行する。
【0120】
たとえば、TIBとVIBの不一致の原因が、信頼できるPC−Bのハードウェアデバイスのバージョンアップや、OSのアップデートによるものであることを、PC−Aの利用者が確認した場合は、正当な理由で不一致が発生したと判断できる。
このような場合に、PC−Aの利用者の自らの入力操作によってステップS71の更新処理へ進む。
【0121】
ステップS71において、受信した検証情報VIBを用いて、新信頼情報TIB−Sを生成する。たとえば、TIBとVIBとがどちらもデータの場合は、新しい信頼情報TIB−Sとして、受信した検証情報VIBをそのまま採用する。
ステップS72において、新信頼情報TIB−Sを分割する。たとえば、2つの新しい分割信頼情報DIBA−SとDIBB−Sに分割する。
ステップS73において、一方の新分割信頼情報DIBB−SはPC−Bへ送信し、他方の情報DIBA−SはPC−Aの記憶部11に保存する。すなわち、PC−Aに保存されていたDIBAは削除し、この後、新しい信頼情報の一部分DIBAとして、DIBA−Sを利用する。
PC−Bへ送信されるDIBB−Sは、PC−Aの公開鍵KPAで暗号化し、さらに、PC−Bの公開鍵KPBを用いて暗号化することが好ましい。
【0122】
ステップS74において、PC−Bは、PC−Aから送信されてきた新しい分散信頼情報DIBB−Sを受信し、秘密鍵KSBで復号し、記憶部11に保存する。
PC−Bでは、以前に保存されていたDIBBに代わり、今後信頼情報TIBの一部分DIBBとして、DIBB−Sを利用する。
このように、2つのPCに保存される分割信頼情報を更新することにより、1回は検証処理が失敗したが、信頼できる転送先PCについてのその後の検証処理を成功させることができるようになる。
【0123】
<実施例2>
情報処理装置に、TPM(Trusted Platform Module)を備えている場合は、秘密鍵の管理などに関して安全性をより向上させることができるので、データ転送時の不正アクセスをより効果的に防止できる。
TPMは、物理的な破壊をすることなしには、第三者がその内容を改変することができないデバイスであり、その内部で、TPMを備えたPCでしか使用できない秘密鍵を作成して保存することができるデバイスである。
また、TPMの内部には、TPMを備えたPCを構成するハードウェアデバイスの起動状態を示す情報を格納する領域(PCR:Platform Configuration Register)を備えている。
【0124】
たとえば、このPCR領域には、起動時に実行される一連のソフトウェアのハッシュ値が、起動順にBIOSから与えられ、順次そのハッシュ値が格納される。
したがって、PCRに格納されたハッシュ値を読み出せば、情報処理装置PCを構成するハードウェアデバイスが、どのような順序で起動されたかがわかる。
そこで、このPCRに格納された情報(ハッシュ値)を、PCの検証情報VIBおよび信頼情報TIBとして利用する。
【0125】
この場合、まず図4の交換処理のステップS12において、PCRの情報を読み出し、これを状態情報とみなして、次のステップS13で信頼情報TIBを生成する。
また、図7のステップS54においても、PCRの情報を読み出し、これをもとに検証情報VIBを生成する。
【0126】
<実施例3>
また、TPMでは、どのようにハッシュをとったかをログに残すことが可能であり、このログを検証情報および信頼情報に利用してもよい。この場合、PCRで、ログの改ざん検知をすることができる。
なお、PCR自体の改ざん検知も可能であり、AIKと呼ばれるTPM内部に保存された秘密鍵KSAIKBで、PCRの暗号化(署名)が可能であり、対応するAIKの公開鍵KPAIKBを用いて、復号をすることにより、PCRの値を取得でき、PCRによりログの改ざん検知をすることができる。AIKの秘密鍵はTPM内部にのみ存在し、暗号化もTPM内部で行われるため、TPM内部のPCR値であることが保証される。
【0127】
この場合、検証に用いるAIKの公開鍵KPAIKBの信頼性を向上させるために、この公開鍵KPAIKBをあらかじめ信頼情報TIBの中に含めることが好ましい。
公開鍵KPAIKBを情報処理装置PC−Aに保存するよりも、信頼情報TIBの中に含めた方が、公開鍵KPAIKBを不正に入れ替えられる危険が少なくなるので、検証情報VIBの信頼性も高めることができる。不正なAIKを作成し、公開鍵KPAIKBを入れ替えられると、不正な検証情報の作成が可能となってしまう。
【0128】
<実施例4>
また、PCRを利用して、TPM内に保存される秘密鍵の使用を制限することもできる。
図9に、PCRを利用して秘密鍵の使用を制限するTPMの動作の説明図を示す。
まず、装置PC−Aにおいて、DTSを暗号化するための秘密鍵、公開鍵を生成するときに、「PCRの条件」を設定する。
「PCRの条件」とは、どのPCRがどういった値であるかというものである。設定されたPCRの条件は、公開鍵KPA1、秘密鍵KSA1とともに鍵情報KIBとしてPC−AからPC−Bへ送信され、PC−Bの記憶部(ハードディスクHDD)に保存される。
PC−BのTPMでしか生成された秘密鍵KSA1が使用できないようにするために、PC−Aで秘密鍵KSA1を、PC−BのTPMの秘密鍵KSB1で復号できるように、PC−Bの公開鍵KPB1で暗号化しておく。そのため、鍵情報KIBの秘密鍵KSA1は、公開鍵KPB1で暗号化されて、PC−BのHDDに保存されている。
【0129】
PC−BのTPMに秘密鍵KSA1をロードするときには、秘密鍵KSB1をあらかじめTPMにロードしておく。
秘密鍵KSA1をTPMにロードするときに、「PCRの条件」がPC−Aでの検証時と一致すれば、秘密鍵KSA1がTPMにロードされ、KPA1(DTS)を復号することができ、DTSが使用可能となる。
PCRは、情報処理装置が起動するときに、BIOSから装置の状態を示すように計測された値を保持している。BIOSから次に実行されるソフトウェアを順に計測することで、PCRは装置の状態を正確に示している。
このように、PCRの条件を設定して、DTSの復号に使用する鍵の使用を制限しているので、秘密鍵KSA1の使用が制限されることになり、転送先PC−Bで送信データを一旦取得したとしても、その後のデータの利用を制限できる。
【0130】
<実施例5>
図6および図7に示した実施例では、転送先のPC(PC−B)の信頼性を、転送元のPC(PC−A)で検証した後、要求されたデータをPC−Bへ送信する場合を説明した。
ここでは、逆に、転送先のPC(PC−B)で、転送元のPC(PC−A)の信頼性を検証した後、転送元のPC(PC−A)から送信されてきたデータを保存等する実施例を説明する。
この場合、転送先PC−Bからデータ送信要求REQは送信されない。転送先PC−Aから自発的に、検証に必要な情報群とともにデータを転送先PC−Bへ送信する。
【0131】
図10に、転送元から自発的にデータ転送を行う場合のフローチャートを示す。
ここでは、転送元PC−Aから転送先PC−Bへ、データDTSを送信する場合を説明する。
まず、前提として、転送元PC−Aと転送先PC−Bの間で、図4のような交換処理が行われ、それぞれ図10に示すような所有情報を保存しているものとする。
転送先PC−Bで、転送元PC−Aの信頼性を確認するので、生成される信頼情報はPC−Aの信頼情報TIAであり、これを2分割した情報(DIAA,DIAB)が、PC−AとPC−Bにそれぞれ保存されているものとする。
【0132】
ステップS101において、転送元PC−Aの機器状態収集部2が、PC−Aの状態情報を収集し、この状態情報をもとに信頼情報生成部3がPC−Aの検証情報VIAを生成する。
ステップS102において、PC−Aの鍵生成部1が、共通鍵KAOを生成する。
ステップS103において、送信データDTSを、共通鍵KAOを用いて暗号化する。暗号化データKAO(DTS)が作成される。
ステップS104において、鍵情報KIAを生成する。鍵情報KIAは、共通鍵KAOを、PC−Bの公開鍵KPBで暗号化したものである。
ステップS105において、保存されていたPC−Aの分割信頼情報DIAAを、PC−Bの公開鍵KPBで暗号化し、IAA=KPB(DIAA)を生成する。
【0133】
ステップS106において、送信データおよび生成された情報群を、PC−Bへ送信する。
すなわち、通信部6が、暗号化されたデータKAO(DTS),鍵情報KIA=KPB(KAO),IAA=KPB(DIAA),検証情報VIAを送信する。
ここで、検証情報VIAも、PC−Bの公開鍵KPBで暗号化して、暗号化した検証情報(KPB(VIA))を送信してもよい。
【0134】
ステップS111において、PC−Bは、送信されてきた4つの情報(KAO(DTS),鍵情報KIA,IAA,VIA)を受信する。
ステップS112において、受信したKAO(DTS)と、鍵情報KIAを、記憶部11に保存する。
ステップS113において、PC−Bの秘密鍵KSBを用いてIAAを復号する。これにより、PC−Aの分散信頼情報DIAAを取得する。
ステップS114において、受信により取得したDIAAと、予め保存されていたDIABとを結合し、もとの信頼情報TIAを復元する。
【0135】
ステップS115において、受信したIAA,生成したDIAAを削除する。
ステップS116において、復元した信頼情報TIAと、受信した検証情報VIAとを比較する。この比較処理は、図7のステップS66と同様にして行う。
TIAとVIAとが一致した場合、転送元PC−Aの信頼性が確認されたことになり、PC−Bは送信されてきたデータDTSを保存してもよいと判断する。
逆に、不一致の場合、PC−Aの検証が失敗したことになるので、データは受信してはならないと判断し、保存していたKAO(DTS)とKIAを削除する(S120)。
一致していた場合、ステップS117において、鍵情報KIAを、PC−Bの秘密鍵KSBで復号する。これにより、KIAから、共通鍵KAOを取得する。
【0136】
ステップS118において、取得した共通鍵KAOを用いて、受信したKAO(DTS)を復号する。これにより、送信されてきたデータDTSを取得する。
ステップS119において、取得したデータDTSを、受信データDTRとして保存する。
以上のように、転送先PC−Bでは、転送元PC−Aの信頼性の確認が正常にできた場合にのみ、送信されてきたデータを保存する。
また、信頼性の確認できなかったPCからの送信データを保存しないようにすることで、不当に送信されてきた悪意のあるデータ(たとえばウイルス)を削除することができる。
【0137】
<実施例6>
また、他の実施例として、図7および図10の処理を結合して、一連の転送処理中に、転送元PC−Aと転送先PC−Bの双方で、互いに相手側の信頼性を検証するようにしてもよい。
たとえば、図7のステップS68において、暗号化データのみをPC−Bへ送信するのではなく、このステップS68の前に、図10のステップS101〜S105を実行し、PC−Aの信頼性を検証してもらうための情報群(KIA,VIA,IAA)を作成し、暗号化データとともに、これらの情報群を送信する。そして、転送先のPC−Bでは、データDTSを復元する前に、ステップS111からS116を実行して、PC−Aの信頼性を確認する。PC−Aの信頼性が確認できた場合に、受信されたデータを復元して保存するようにする。
このように、転送元PC−Aと転送先PC−Bで相互に信頼性を検証すれば、セキュリティをより高めることができる。
【図面の簡単な説明】
【0138】
【図1】この発明の情報処理装置の一実施例の構成ブロック図である。
【図2】この発明の情報処理装置で利用する情報の一実施例の説明図である。
【図3】この発明の信頼情報等の交換処理の一実施例の説明図である。
【図4】この発明の信頼情報等の交換処理の一実施例のフロー説明図である。
【図5】この発明の信頼情報等の交換処理の一実施例のフロー説明図である。
【図6】この発明のデータ転送処理の一実施例の説明図である。
【図7】この発明のデータ転送処理の一実施例のフロー説明図である。
【図8】この発明の信頼情報更新処理の一実施例のフロー説明図である。
【図9】この発明のPCRを利用して鍵の利用を制限するTPMの処理の説明図である。
【図10】この発明のデータ転送処理の一実施例のフロー説明図である。
【符号の説明】
【0139】
1 鍵生成部
2 機器状態収集部
3 信頼情報生成部
4 信頼情報分割部
5 信頼情報復元部
6 通信部
7 復号部
8 暗号部
9 機器検証部
10 転送先選択部
11 記憶部

【特許請求の範囲】
【請求項1】
自己の所有するデータを転送する相手である転送先情報処理装置の生成した信頼情報を、所定の分割方法で分割した一部の第1分割信頼情報を予め取得して保存する記憶部と、
前記転送先情報処理装置から自己の所有データの転送要求を受信し、かつその受信時に前記転送先情報処理装置の信頼情報を分割した他の第2分割信頼情報と、前記転送先情報処理装置の固有の転送要求時の状態を示す情報を用いて生成した検証情報とを受信する通信部と、
前記記憶部に保存された第1分割信頼情報と前記受信された第2分割信頼情報とを用いて、前記信頼情報を復元する信頼情報復元部と、
前記復元された信頼情報と前記受信された検証情報とを用いて、前記転送先情報処理装置の信頼性を検証する機器検証部とを備え、
前記信頼性の検証が成功した場合に、前記通信部が、転送要求された自己の所有データを、前記転送先情報処理装置へ送信することを特徴とする情報処理装置。
【請求項2】
前記信頼情報は、秘密分散法を用いて、第1分割信頼情報と第2分割信頼情報とに分割されることを特徴とする請求項1の情報処理装置。
【請求項3】
前記復元された信頼情報と、前記受信された検証情報とが同一形式のデータである場合は、信頼情報と検証情報とが一致する場合に、前記機器検証部が、前記転送先情報処理装置の信頼性の検証が成功したと判断することを特徴とする請求項1の情報処理装置。
【請求項4】
前記信頼情報を所定の分割方法で2つの分割信頼情報に分割する信頼情報分割部をさらに備え、
前記機器検証部が、信頼性の検証に失敗した場合、前記受信された検証情報を用いて、
前記信頼情報を更新した後、前記信頼情報分割部が、更新後の信頼情報を2つに分割し、一方の分割信頼情報を前記記憶部の第1分割信頼情報として記憶し、他方の分割信頼情報を、第2分割信頼情報として、前記転送先情報処理装置へ送信することを特徴とする請求項1の情報処理装置。
【請求項5】
前記記憶部に転送先情報処理装置の公開鍵を予め記憶し、転送要求された自己の所有データを、前記公開鍵を用いて暗号化する暗号部をさらに備え、
前記通信部は、前記暗号部で暗号化された前記所有データを、転送先情報処理装置へ送信することを特徴とする請求項1の情報処理装置。
【請求項6】
共通鍵を生成する鍵生成部と、転送要求された自己の所有データを前記共通鍵で暗号化する暗号部をさらに備え、
前記記憶部に転送先情報処理装置の公開鍵を予め記憶し、
前記通信部は、暗号部で暗号化された前記所有データと、前記転送先情報処理装置の公開鍵で暗号化された共通鍵とを、転送先情報処理装置へ送信することを特徴とする請求項1の情報処理装置。
【請求項7】
自己の秘密鍵と公開鍵とを生成する鍵生成部と、
自己の所有するデータを転送する相手である転送先情報処理装置から、前記転送先情報処理装置の固有の状態を示す情報を用いて生成された信頼情報を受信する通信部と、
前記信頼情報を所定の分割方法で2つの分割信頼情報に分割する信頼情報分割部と、
分割された一方の第1分割信頼情報と前記自己の秘密鍵とを保存する記憶部とを備え、
前記通信部は、前記生成された自己の公開鍵と、分割された他方の第2分割信頼情報とを、前記転送先情報処理装置へ送信することを特徴とする情報処理装置。
【請求項8】
自己の秘密鍵と、データの転送元情報処理装置の公開鍵と、自己の固有の状態情報を示す情報を用いて生成した信頼情報を分割した一部の分割信頼情報とを予め保存する記憶部と、自己の現在の状態情報を収集する機器状態収集部と、前記収集された現在の状態情報を用いて自己の検証情報を生成する信頼情報生成部と、前記転送元情報処理装置の所有するデータの転送要求をする際に、前記生成された検証情報と、前記予め保存されていた分割信頼情報とを、転送元情報処理装置に送信する通信部と、前記通信部が転送元情報処理装置から自己の公開鍵で暗号化された転送要求データを受信した場合、前記保存されていた自己の秘密鍵を用いて前記受信したデータを復号する復号部とを備えたことを特徴とする情報処理装置。
【請求項9】
前記記憶部に予め保存される分割信頼情報は、前記転送元情報処理装置の公開鍵で暗号化された形式で保存されていることを特徴とする請求項8の情報処理装置。
【請求項10】
前記転送要求をする際に、送信される分割信頼情報は、転送元情報処理装置の公開鍵で暗号化されていることを特徴とする請求項8の情報処理装置。
【請求項11】
前記転送要求をする際に、前記通信部は鍵情報も送信し、前記鍵情報は、自己の公開鍵を自己の秘密鍵で暗号化したものを、転送元情報処理装置の公開鍵で暗号化した情報であることを特徴とする請求項8の情報処理装置。
【請求項12】
前記機器状態収集部が収集する状態情報は、テキスト形式もしくはバイナリ形式のデータまたはハッシュ値であることを特徴とする請求項8の情報処理装置。
【請求項13】
自己の秘密鍵と公開鍵とを生成する鍵生成部をさらに備え、前記信頼情報生成部が、前記機器状態収集部によって収集された状態情報を用いて自己の信頼情報を生成し、前記通信部が、前記自己の公開鍵と、前記生成された自己の信頼情報とを、転送元情報処理装置へ送信することを特徴とする請求項8の情報処理装置。
【請求項14】
転送元情報処理装置が自己の所有するデータを転送先情報処理装置へ転送する前に、
前記転送先情報処理装置が、転送先情報処理装置の機器状態収集部によって収集された自己の現在の状態情報を用いて、信頼情報を生成し、その信頼情報を前記転送元情報処理装置へ送信した後、
前記転送元情報処理装置が受信した信頼情報を2つに分割して、第1分割信頼情報と第2分割信頼情報とを生成し、第1分割信頼情報は、記憶部へ保存し、第2分割信頼情報は前記転送先情報処理装置へ送信され、前記転送先情報処理装置の記憶部に保存されることを特徴とする情報処理装置のデータ転送方法。
【請求項15】
前記転送先情報処理装置が、前記転送元情報処理装置に対して、転送元情報処理装置が所有するデータの転送を要求する際に、
前記機器状態収集部によって収集された自己の現在の状態情報を用いて検証情報を生成し、生成された検証情報と、前記転送先情報処理装置の記憶部に保存されていた第2分割信頼情報とを前記転送元情報処理装置へ送信した後、
前記転送元情報処理装置が、自己の記憶部に保存されていた第1分割信頼情報と、受信した検証情報とを用いて、前記信頼情報を復元し、復元した信頼情報と受信した検証情報とを用いて、前記転送先情報処理装置の信頼性を検証し、信頼性の検証が成功した場合に、転送要求された自己の所有するデータを、転送先情報処理装置へ送信することを特徴とする、請求項14の情報処理装置のデータ転送方法。
【請求項16】
前記信頼性の検証に失敗した場合に、前記転送元情報処理装置が、前記受信した検証情報から新たな信頼情報を生成し、新たな信頼情報を分割して、2つの分割信頼情報を生成し、生成した一方の分割信頼情報を第1分割信頼情報として自己の記憶部に保存し、生成した他方の分割信頼情報を前記転送先情報処理装置へ送信し、
転送先情報処理装置が、受信した分割信頼情報を第2分割信頼情報として保存することを特徴とする請求項15の情報処理装置のデータ転送方法。
【請求項17】
転送元情報処理装置の固有の状態を示す情報を用いて生成した信頼情報を、所定の分割方法で2つに分割した一方の第1分割信頼情報を転送元情報処理装置に保存し、かつ他方の第2分割信頼情報を転送先情報処理装置に保存した後、
転送元情報処理装置が転送先情報処理装置へ自己の所有するデータを転送する際に、前記転送元情報処理装置が、共通鍵を生成し、その共通鍵で、転送すべき自己の所有するデータを暗号化し、転送元情報処理装置の機器状態収集部によって収集された自己の現在の状態情報を用いて検証情報を生成し、
前記共通鍵と、保存された第1分割信頼情報と、前記生成された検証情報と、前記暗号化されたデータとを、前記転送先情報処理装置へ送信した後、
前記転送先情報処理装置が、前記受信した第1分割信頼情報と、保存された第2分割信頼情報とを用いて、前記転送元情報処理装置の信頼情報を復元し、復元した信頼情報と、受信した検証情報とを用いて、前記転送元情報処理装置の信頼性を検証し、信頼性の検証が成功した場合に、受信した暗号化されたデータを、受信した共通鍵を用いて復号することを特徴とする情報処理装置のデータ転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2008−226146(P2008−226146A)
【公開日】平成20年9月25日(2008.9.25)
【国際特許分類】
【出願番号】特願2007−67086(P2007−67086)
【出願日】平成19年3月15日(2007.3.15)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】