(57)【要約】【課題】従来は１つの鍵をシステムで固定的に使用していたので、１つの鍵の漏洩によりすべてのデータの復号が可能となってしまうという問題があった。【解決手段】カプセル生成手段（１）は、カプセル（２３）毎に生成した鍵（２２）でアプリケーションデータ（２７）を暗号化した暗号化アプリケーションデータ（２８）と、鍵（２２）を利用者の公開鍵（２５）で暗号化した暗号化済鍵（２９）とを含むカプセル（２３）を生成し、カプセル処理手段（５０）は、利用者の秘密鍵（２６）で暗号化鍵（２９）を復号して復号済第２鍵とし、暗号化アプリケーションデータを上記復号済第２鍵で復号してアプリケーションプログラム（２）に渡す。【選択図】　　　　図１
2004030099.tif 000002
【特許請求の範囲】
【請求項１】
特定の利用者のみに開示されるアプリケーションデータの漏洩を防止する情報漏洩防止装置であり、
カプセル生成手段と、カプセル処理手段と、記憶手段とを備え、
上記カプセル生成手段は、
任意のデータを暗号化する第１の鍵と該第１の鍵で暗号化されたデータを復号する第２の鍵を生成し、上記第１の鍵で上記アプリケーションデータを暗号化した暗号化アプリケーションデータと、上記第２の鍵を上記利用者の公開鍵で暗号化した暗号化済第２鍵とを含むカプセルを生成し、
上記カプセル処理手段は、
上記カプセル生成手段が生成したカプセルを獲得し、該獲得したカプセルに含まれる暗号化アプリケーションデータを上記記憶手段に書き出し、上記利用者から上記利用者の公開鍵に対応する利用者の秘密鍵を獲得し、該獲得した利用者の秘密鍵で上記カプセルに含まれる暗号化済第２鍵を復号して復号済第２鍵とし、
上記記憶手段から上記暗号化アプリケーションデータを読み出し、該読み出した暗号化アプリケーションデータを上記復号済第２鍵で復号し、
上記記憶手段は
上記カプセル処理手段により書き出された暗号化アプリケーションデータを記憶する
ことを特徴とする情報漏洩防止装置。
【請求項２】
上記第１の鍵と第２の鍵は同一であって、共通鍵方式の鍵であることを特徴とする請求項１に記載の情報漏洩防止装置。
【請求項３】
上記カプセル生成手段が生成するカプセルは、上記アプリケーションデータを使用するアプリケーションプログラムを特定するアプリケーション情報をさらに含み、
上記カプセル処理手段はさらに、
上記獲得したカプセルから上記アプリケーション情報を獲得して該アプリケーション情報に対応するアプリケーションプログラムを起動し、
該起動されたアプリケーションプログラムが当該カプセル処理手段の管理対象であるかを判定し、
該起動されたアプリケーションプログラムが当該カプセル処理手段の管理対象であると判定した場合は、上記起動されたアプリケーションプログラムが出した読み出し要求に対応して上記記憶装置から読み出し復号した暗号化アプリケーションデータを上記起動されたアプリケーションプログラムに渡す
ことを特徴とする請求項１に記載の情報漏洩防止装置。
【請求項４】
上記カプセル処理手段は、
上記起動されたアプリケーションプログラムが当該カプセル処理手段の管理対象であるかを判定する際に、
上記記憶手段に記憶された暗号化アプリケーションデータに対する上記起動されたアプリケーションプログラムによる読み出し要求を用いる
ことを特徴とする請求項３に記載の情報漏洩防止装置。
【請求項５】
上記カプセル処理手段は、カプセル実行手段と、ドライバとを備え、
上記カプセル実行手段は、
上記カプセル生成手段が生成したカプセルを獲得し、該獲得したカプセルに含まれる暗号化アプリケーションデータを上記記憶手段に書き出すよう上記ドライバに指示し、上記利用者から上記利用者の秘密鍵を獲得し、該獲得した利用者の秘密鍵で上記カプセルに含まれる暗号化済第２鍵を復号して復号済第２鍵とし、上記カプセルからアプリケーション情報を獲得して該アプリケーション情報に対応するアプリケーションプログラムを起動し、
上記ドライバは、
上記起動されたアプリケーションプログラムが当該ドライバの管理対象であるかを判定し、
上記起動されたアプリケーションプログラムが当該ドライバの管理対象であると判定した場合は、上記起動されたアプリケーションプログラムが出した読み出し要求に対応して上記記憶装置から上記暗号化アプリケーションデータを読み出し、該読み出した暗号化アプリケーションデータを上記カプセル実行手段が復号した復号済第２鍵で復号して上記アプリケーションプログラムに渡す
ことを特徴とする請求項３に記載の情報漏洩防止装置。
【請求項６】
上記カプセル実行手段は、
コンピュータが、
上記カプセル生成手段が生成したカプセルを獲得し、該獲得したカプセルに含まれる暗号化アプリケーションデータを上記記憶手段に書き出すよう上記ドライバに指示し、上記利用者から上記利用者の秘密鍵を獲得し、該獲得した利用者の秘密鍵で上記カプセルに含まれる暗号化済第２鍵を復号して復号済第２鍵とし、上記カプセルからアプリケーション情報を獲得して該アプリケーション情報に対応するアプリケーションプログラムを起動する
プログラムを実行することにより実現される
ことを特徴とする請求項５に記載の情報漏洩防止装置。
【請求項７】
上記ドライバは、
コンピュータが、
上記カプセル実行手段により起動されたアプリケーションプログラムが当該ドライバの管理対象であるかを判定し、上記起動されたアプリケーションプログラムが当該ドライバの管理対象であると判定した場合は、上記起動されたアプリケーションプログラムが出した読み出し要求に対応して上記記憶装置から上記暗号化アプリケーションデータを読み出し、該読み出した暗号化アプリケーションデータを上記カプセル実行手段が復号した復号済第２鍵で復号して上記アプリケーションプログラムに渡す
プログラムを実行することにより実現される
ことを特徴とする請求項５に記載の情報漏洩防止装置。
【請求項８】
上記ドライバは、
上記起動されたアプリケーションプログラムが当該ドライバの管理対象であるかを判定する際に、
上記記憶手段に記憶された暗号化アプリケーションデータに対する上記起動されたアプリケーションプログラムによる読み出し要求を用いる
ことを特徴とする請求項５に記載の情報漏洩防止装置。
【請求項９】
上記第１の鍵と第２の鍵は同一であって、共通鍵方式の鍵であることを特徴とする請求項３から請求項８のいずれか１項に記載の情報漏洩防止装置。
【請求項１０】
上記ドライバは、
上記カプセル実行手段から復号済第２鍵を獲得し、
上記アプリケーションプログラムが上記読み出し要求に対応して受取り使用したアプリケーションデータの上記記憶手段への書き出し要求をした時は、該アプリケーションデータを上記復号済第２鍵で暗号化して上記記憶手段に書き出す
ことを特徴とする請求項９に記載の情報漏洩防止装置。
【請求項１１】
上記第１の鍵は上記カプセルの公開鍵であり、上記第２の鍵は該カプセルの公開鍵に対応する秘密鍵であることを特徴とする請求項３から請求項８のいずれか１項に記載の情報漏洩防止装置。
【請求項１２】
上記カプセル生成手段が生成するカプセルはさらに上記第１の鍵を含み、
上記カプセル実行手段は獲得したカプセルから上記第１の鍵を獲得し、
上記ドライバは、
上記カプセル実行手段から上記第１の鍵を獲得し、
上記アプリケーションプログラムが上記読み出し要求に対応して受取り使用したアプリケーションデータの上記記憶手段への書き出し要求をした時は、該アプリケーションデータを上記第１の鍵で暗号化して上記記憶手段に書き出す
ことを特徴とする請求項１１に記載の情報漏洩防止装置。
【請求項１３】
上記カプセル実行手段は、ドライバ監視手段と第１のアプリケーション制御手段を備え、
上記ドライバ監視手段は、上記ドライバが動作していてかつ該ドライバが改竄されていないことを検証し、
検証できなかった場合は、上記第１のアプリケーション制御手段に指示して上記アプリケーションプログラムを停止する
ことを特徴とする請求項５に記載の情報漏洩防止装置。
【請求項１４】
上記ドライバは、ドライバ監視手段監視手段と第２のアプリケーション制御手段を備え、
上記ドライバ監視手段監視手段は、上記ドライバ監視手段が動作していてかつ該ドライバ監視手段が改竄されていないことを検証し、
検証できなかった場合は、上記第２のアプリケーション制御手段に指示して上記アプリケーションプログラムを停止する
ことを特徴とする請求項１３に記載の情報漏洩防止装置。
【請求項１５】
上記第１の鍵と第２の鍵はカプセル毎に生成されることを特徴とする請求項１から請求項１４のいずれか１項に記載の情報漏洩防止装置。
【請求項１６】
上記利用者の公開鍵と利用者の秘密鍵に代えて、任意のデータの暗号化および復号に適用可能な共通鍵方式の鍵である利用者鍵を用いることを特徴とする請求項１から請求項１５のいずれか１項に記載の情報漏洩防止装置。
【請求項１７】
カプセル生成手段と、カプセル処理手段と、記憶手段とを備え特定の利用者のみに開示されるアプリケーションデータの漏洩を防止する情報漏洩防止装置における情報漏洩防止方法であり、下記ステップを含むことを特徴とする情報漏洩防止方法。
（１）カプセル生成手段が、任意のデータを暗号化する第１の鍵と該第１の鍵で暗号化されたデータを復号する第２の鍵を生成する鍵生成ステップ；
（２）カプセル生成手段が、上記第１の鍵で上記アプリケーションデータを暗号化した暗号化アプリケーションデータと、上記第２の鍵を上記利用者の公開鍵で暗号化した暗号化済第２鍵とを含むカプセルを生成するカプセル生成ステップ；
（３）カプセル処理手段が、上記カプセル生成ステップにおいてカプセル生成手段が生成したカプセルを獲得し、該獲得したカプセルに含まれる暗号化アプリケーションデータを上記記憶手段に書き出す暗号化アプリケーションデータ書き出しステップ；
（４）カプセル処理手段が、上記利用者から上記利用者の公開鍵に対応する利用者の秘密鍵を獲得し、該獲得した利用者の秘密鍵で上記カプセルに含まれる暗号化済第２鍵を復号して復号済第２鍵とする鍵復号ステップ；
（５）カプセル処理手段が、上記暗号化アプリケーションデータ書き出しステップで上記記憶手段に書き出した暗号化アプリケーションデータを記憶手段から読み出し該読み出した暗号化アプリケーションデータを上記復号済第２鍵で復号する暗号化アプリケーションデータ復号ステップ。
【請求項１８】
請求項１７に記載の情報漏洩防止方法において、上記カプセル生成ステップにおいて上記カプセル生成手段が生成するカプセルは、上記アプリケーションデータを使用するアプリケーションプログラムを特定するアプリケーション情報をさらに含み、
上記カプセル処理手段はさらに、下記動作を行うことを特徴とする情報漏洩防止方法。
（６）上記獲得したカプセルから上記アプリケーション情報を獲得して該アプリケーション情報に対応するアプリケーションプログラムを起動するアプリケーションプログラム起動ステップ；
（７）上記アプリケーションプログラム起動ステップにおいて起動されたアプリケーションプログラムが、当該カプセル処理手段の管理対象であるかを判定するアプリケーションプログラム判定ステップ；
（８）上記アプリケーションプログラム判定ステップにおいて、上記起動されたアプリケーションプログラムが当該カプセル処理手段の管理対象であると判定した場合は、上記起動されたアプリケーションプログラムが出した読み出し要求に対応して上記記憶装置から読み出し復号した暗号化アプリケーションデータを上記起動されたアプリケーションプログラムに渡すアプリケーションデータ読み出しステップ。
【請求項１９】
上記利用者の公開鍵と利用者の秘密鍵に代えて、任意のデータの暗号化および復号に適用可能な共通鍵方式の鍵である利用者鍵を用いることを特徴とする請求項１７または請求項１８に記載の情報漏洩防止方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、パソコンなどの計算機上のアプリケーションで参照や編集など操作を施すデータの開示を暗号処理を用いて安全に制御し、不正に情報が漏洩してしまうことを防止する情報漏洩防止装置に関するものである。
【０００２】
【従来の技術】
図８は例えば、特開平１０−３０１８５６に示された従来の情報漏洩防止装置のブロック図であり、１００１は外部記憶装置に入出力の要求を行うアプリケーション、１００２はユーザＩＤとパスワードに基づきユーザを認証するユーザ認証手段、１００３はアプリケーション１００１からの入出力要求に対応してドライバ１００４に指示して入出力処理を行うファイルシステム、１００４はファイルの各種処理を行うドライバ、１００５はファイルのオープン処理を行うオープン手段、１００６はファイルの読み込み処理を行うリード手段、１００７はファイルの書き出し処理を行うライト手段、１００８はファイルのクローズ処理を行うクローズ手段、１００９は外部記憶装置１０１０のファイルからデータを読み込んだり書き出したりするＩ／Ｏ手段、１０１０はデータを格納する外部記憶装置である。
【０００３】
次に動作について説明する。
図９は図８に示す従来技術におけるデータの読み込み動作を示すフローチャートであり、Ｓ１００１はアプリケーション１００１がファイルシステム１００３を通してドライバ１００４に対して読み込み要求を行うステップ、Ｓ１０２はユーザ認証手段１００２がユーザ認証を行うステップ、Ｓ１００３はユーザ認証手段１００２が認証結果を判定するステップ、Ｓ１００４は外部記憶装置１０１０からデータを読み込むステップである。
【０００４】
まず、アプリケーション１００１はファイルシステム１００３ドライバ１００４に対して読み込み要求を行う（ステップＳ１００１）。次にユーザ認証手段１００２は、ユーザＩＤとパスワードにより読み込み要求を行ったユーザを認証する　（ステップＳ１００２）。次にドライバ１００４はオープン手段１００５により対象のファイルをオープンし、リード手段１００６は対象のデータが暗号化されていた場合、そのユーザが対象のファイルにアクセス可能か否かを自身が持つ規則に従ってアクセスの可否を判定を行う　（ステップＳ１００３）。判定の結果アクセス可能であれば、リード手段１００６は要求されたデータをＩ／Ｏ手段１００９を通して外部記憶装置１０１０から読み出し、そのデータが暗号化されている場合、自身が持つ復号鍵を用いて復号した上でアプリケーション１００１に返す（ステップＳ１００４）。
【０００５】
外部記憶装置１０１０にデータを書き出す場合、アプリケーション１００１の書き出し要求に対応して、ライト手段１００７は、自身の持つ暗号化鍵で対象データを暗号化した上で、Ｉ／Ｏ手段１００９を通して外部記憶装置１０１０に書き出す。
【０００６】
この従来の技術は、アプリケーションが暗号化されたファイル利用するときに、既存のアプリケーションには手を加えずに、一旦、ファイル中のすべてのデータを復号した作業ファイルを作成せずにアプリケーションで利用できるようにすること、およびデータを書き出す際にも必ず暗号化した上で外部記憶装置に書き出すによって、データの秘匿性を高めようとするものである。
【０００７】
【発明が解決しようとする課題】
この従来の技術は、以上のように構成されているため、データを復号する鍵をシステムで固定的に保持する必要があるため、安全性に問題があった。
すなわち、ファイルごとあるいはユーザごとにデータを復号する鍵を変えることができず、１つの鍵の漏洩によりすべてのデータの復号が可能となってしまうという問題があった。
【０００８】
また上記従来の技術は、ユーザの認証をデータの暗号化や復号の処理とは完全に独立して行うため、認証処理に失敗した場合や認証処理が改竄された場合に不正なユーザによるデータの復号が可能となってしまうという問題があった。
【０００９】
この発明は上記のような問題点を解決するためになされたもので、暗号化されたファイル（アプリケーションデータ）を読み出すための鍵をファイル毎あるいはユーザ毎に変更可能とすることにより情報の漏洩を防止し、秘匿性、安全性を高めることを目的とする。
【００１０】
【課題を解決するための手段】
この発明に係る情報漏洩防止装置は、特定の利用者のみに開示されるアプリケーションデータの漏洩を防止する情報漏洩防止装置であり、カプセル生成手段と、カプセル処理手段と、記憶手段とを備え、上記カプセル生成手段は、任意のデータを暗号化する第１の鍵と該第１の鍵で暗号化されたデータを復号する第２の鍵を生成し、上記第１の鍵で上記アプリケーションデータを暗号化した暗号化アプリケーションデータと、上記第２の鍵を上記利用者の公開鍵で暗号化した暗号化済第２鍵とを含むカプセルを生成し、上記カプセル処理手段は、上記カプセル生成手段が生成したカプセルを獲得し、該獲得したカプセルに含まれる暗号化アプリケーションデータを上記記憶手段に書き出し、上記利用者から上記利用者の公開鍵に対応する利用者の秘密鍵を獲得し、該獲得した利用者の秘密鍵で上記カプセルに含まれる暗号化済第２鍵を復号して復号済第２鍵とし、上記記憶手段から上記暗号化アプリケーションデータを読み出し、該読み出した暗号化アプリケーションデータを上記復号済第２鍵で復号し、上記記憶手段は上記カプセル処理手段により書き出された暗号化アプリケーションデータを記憶するようにしたものである。
【００１１】
またこの発明に係る情報漏洩防止装置は、上記第１の鍵と第２の鍵は同一であって、共通鍵方式の鍵であるようにしたものである。
【００１２】
またこの発明に係る情報漏洩防止装置は、上記カプセル生成手段が生成するカプセルは、上記アプリケーションデータを使用するアプリケーションプログラムを特定するアプリケーション情報をさらに含み、上記カプセル処理手段はさらに、上記獲得したカプセルから上記アプリケーション情報を獲得して該アプリケーション情報に対応するアプリケーションプログラムを起動し、該起動されたアプリケーションプログラムが当該カプセル処理手段の管理対象であるかを判定し、該起動されたアプリケーションプログラムが当該カプセル処理手段の管理対象であると判定した場合は、上記起動されたアプリケーションプログラムが出した読み出し要求に対応して上記記憶装置から読み出し復号した暗号化アプリケーションデータを上記起動されたアプリケーションプログラムに渡すようにしたものである。
【００１３】
またこの発明に係る情報漏洩防止装置は、上記カプセル処理手段は、上記起動されたアプリケーションプログラムが当該カプセル処理手段の管理対象であるかを判定する際に、上記記憶手段に記憶された暗号化アプリケーションデータに対する上記起動されたアプリケーションプログラムによる読み出し要求を用いるようにしたものである。
【００１４】
またこの発明に係る情報漏洩防止装置は、上記カプセル処理手段は、カプセル実行手段と、ドライバとを備え、上記カプセル実行手段は、上記カプセル生成手段が生成したカプセルを獲得し、該獲得したカプセルに含まれる暗号化アプリケーションデータを上記記憶手段に書き出すよう上記ドライバに指示し、上記利用者から上記利用者の秘密鍵を獲得し、該獲得した利用者の秘密鍵で上記カプセルに含まれる暗号化済第２鍵を復号して復号済第２鍵とし、上記カプセルからアプリケーション情報を獲得して該アプリケーション情報に対応するアプリケーションプログラムを起動し、上記ドライバは、上記起動されたアプリケーションプログラムが当該ドライバの管理対象であるかを判定し、上記起動されたアプリケーションプログラムが当該ドライバの管理対象であると判定した場合は、上記起動されたアプリケーションプログラムが出した読み出し要求に対応して上記記憶装置から上記暗号化アプリケーションデータを読み出し、該読み出した暗号化アプリケーションデータを上記カプセル実行手段が復号した復号済第２鍵で復号して上記アプリケーションプログラムに渡すようにしたものである。
【００１５】
またこの発明に係る情報漏洩防止装置は、上記カプセル実行手段は、コンピュータが、上記カプセル生成手段が生成したカプセルを獲得し、該獲得したカプセルに含まれる暗号化アプリケーションデータを上記記憶手段に書き出すよう上記ドライバに指示し、上記利用者から上記利用者の秘密鍵を獲得し、該獲得した利用者の秘密鍵で上記カプセルに含まれる暗号化済第２鍵を復号して復号済第２鍵とし、上記カプセルからアプリケーション情報を獲得して該アプリケーション情報に対応するアプリケーションプログラムを起動するプログラムを実行することにより実現されるようにしたものである。
【００１６】
またこの発明に係る情報漏洩防止装置は、上記ドライバは、コンピュータが、上記カプセル実行手段により起動されたアプリケーションプログラムが当該ドライバの管理対象であるかを判定し、上記起動されたアプリケーションプログラムが当該ドライバの管理対象であると判定した場合は、上記起動されたアプリケーションプログラムが出した読み出し要求に対応して上記記憶装置から上記暗号化アプリケーションデータを読み出し、該読み出した暗号化アプリケーションデータを上記カプセル実行手段が復号した復号済第２鍵で復号して上記アプリケーションプログラムに渡すプログラムを実行することにより実現されるようにしたものである。
【００１７】
またこの発明に係る情報漏洩防止装置は、上記ドライバは、上記起動されたアプリケーションプログラムが当該ドライバの管理対象であるかを判定する際に、上記記憶手段に記憶された暗号化アプリケーションデータに対する上記起動されたアプリケーションプログラムによる読み出し要求を用いるようにしたものである。
【００１８】
またこの発明に係る情報漏洩防止装置は、上記第１の鍵と第２の鍵は同一であって、共通鍵方式の鍵であるようにしたものである。
【００１９】
またこの発明に係る情報漏洩防止装置は、上記ドライバは、上記カプセル実行手段から復号済第２鍵を獲得し、上記アプリケーションプログラムが上記読み出し要求に対応して受取り使用したアプリケーションデータの上記記憶手段への書き出し要求をした時は、該アプリケーションデータを上記復号済第２鍵で暗号化して上記記憶手段に書き出すようにしたものである。
【００２０】
またこの発明に係る情報漏洩防止装置は、上記第１の鍵は上記カプセルの公開鍵であり、上記第２の鍵は該カプセルの公開鍵に対応する秘密鍵であるようにしたものである。
【００２１】
またこの発明に係る情報漏洩防止装置は、上記カプセル生成手段が生成するカプセルはさらに上記第１の鍵を含み、上記カプセル実行手段は獲得したカプセルから上記第１の鍵を獲得し、上記ドライバは、上記カプセル実行手段から上記第１の鍵を獲得し、上記アプリケーションプログラムが上記読み出し要求に対応して受取り使用したアプリケーションデータの上記記憶手段への書き出し要求をした時は、該アプリケーションデータを上記第１の鍵で暗号化して上記記憶手段に書き出すようにしたものである。
【００２２】
またこの発明に係る情報漏洩防止装置は、上記カプセル実行手段は、ドライバ監視手段と第１のアプリケーション制御手段を備え、上記ドライバ監視手段は、上記ドライバが動作していてかつ該ドライバが改竄されていないことを検証し、検証できなかった場合は、上記第１のアプリケーション制御手段に指示して上記アプリケーションプログラムを停止するようにしたものである。
【００２３】
またこの発明に係る情報漏洩防止装置は、上記ドライバは、ドライバ監視手段監視手段と第２のアプリケーション制御手段を備え、上記ドライバ監視手段監視手段は、上記ドライバ監視手段が動作していてかつ該ドライバ監視手段が改竄されていないことを検証し、検証できなかった場合は、上記第２のアプリケーション制御手段に指示して上記アプリケーションプログラムを停止するようにしたものである。
【００２４】
またこの発明に係る情報漏洩防止装置は、上記第１の鍵と第２の鍵はカプセル毎に生成されるようにしたものである。
【００２５】
またこの発明に係る情報漏洩防止装置は、上記利用者の公開鍵と利用者の秘密鍵に代えて、任意のデータの暗号化および復号に適用可能な共通鍵方式の鍵である利用者鍵を用いるようにしたものである。
【００２６】
またこの発明に係る情報漏洩防止方法は、カプセル生成手段と、カプセル処理手段と、記憶手段とを備え特定の利用者のみに開示されるアプリケーションデータの漏洩を防止する情報漏洩防止装置における情報漏洩防止方法であり、下記ステップを含むようにしたものである。
（１）カプセル生成手段が、任意のデータを暗号化する第１の鍵と該第１の鍵で暗号化されたデータを復号する第２の鍵を生成する鍵生成ステップ；
（２）カプセル生成手段が、上記第１の鍵で上記アプリケーションデータを暗号化した暗号化アプリケーションデータと、上記第２の鍵を上記利用者の公開鍵で暗号化した暗号化済第２鍵とを含むカプセルを生成するカプセル生成ステップ；
（３）カプセル処理手段が、上記カプセル生成ステップにおいてカプセル生成手段が生成したカプセルを獲得し、該獲得したカプセルに含まれる暗号化アプリケーションデータを上記記憶手段に書き出す暗号化アプリケーションデータ書き出しステップ；
（４）カプセル処理手段が、上記利用者から上記利用者の公開鍵に対応する利用者の秘密鍵を獲得し、該獲得した利用者の秘密鍵で上記カプセルに含まれる暗号化済第２鍵を復号して復号済第２鍵とする鍵復号ステップ；
（５）カプセル処理手段が、上記暗号化アプリケーションデータ書き出しステップで上記記憶手段に書き出した暗号化アプリケーションデータを記憶手段から読み出し該読み出した暗号化アプリケーションデータを上記復号済第２鍵で復号する暗号化アプリケーションデータ復号ステップ。
【００２７】
またこの発明に係る情報漏洩防止方法は、上記カプセル生成ステップにおいて上記カプセル生成手段が生成するカプセルは、上記アプリケーションデータを使用するアプリケーションプログラムを特定するアプリケーション情報をさらに含み、上記カプセル処理手段はさらに、下記動作を行うようにしたものである。。
（６）上記獲得したカプセルから上記アプリケーション情報を獲得して該アプリケーション情報に対応するアプリケーションプログラムを起動するアプリケーションプログラム起動ステップ；
（７）上記アプリケーションプログラム起動ステップにおいて起動されたアプリケーションプログラムが、当該カプセル処理手段の管理対象であるかを判定するアプリケーションプログラム判定ステップ；
（８）上記アプリケーションプログラム判定ステップにおいて、上記起動されたアプリケーションプログラムが当該カプセル処理手段の管理対象であると判定した場合は、上記起動されたアプリケーションプログラムが出した読み出し要求に対応して上記記憶装置から読み出し復号した暗号化アプリケーションデータを上記起動されたアプリケーションプログラムに渡すアプリケーションデータ読み出しステップ。
【００２８】
またこの発明に係る情報漏洩防止方法は、上記利用者の公開鍵と利用者の秘密鍵に代えて、任意のデータの暗号化および復号に適用可能な共通鍵方式の鍵である利用者鍵を用いるようにしたものである。
【００２９】
【発明の実施の形態】
実施の形態１．
図１〜図４を用いて、この発明の実施の形態１について説明する。
図１はこの実施の形態における情報漏洩防止装置のブロック図、図２はカプセルの構成およカプセル生成サーバを含むシステムの構成を示す図、図３はカプセル実行時の動作を説明するフローチャート、図４は読み出し時の動作を説明するフローチャートである。
【００３０】
図１において、１は図２で示すカプセルを処理するカプセル実行手段、２はアプリケーションデータを利用する既存のアプリケーションプログラム、３はアプリケーションプログラム２からの要求に対応して入出力手段９を利用して外部記憶装置１０にデータの入出力を行うドライバ、４はアプリケーションプログラム２の要求に対応し、入出力手段９を利用して外部記憶装置１０へデータを書き出す書き出し手段、５は鍵管理手段、６は鍵管理手段５の指示により鍵管理手段５から与えられた鍵を利用して書き出し手段４から与えられたデータを暗号化する暗号化手段、７は鍵管理手段５の指示により鍵管理手段５から与えられた鍵を利用して読み込み手段８から与えられたデータを復号する復号手段、８はアプリケーションプログラム２からの読み込み要求に対応し、入出力手段９を利用して外部記憶装置１０からデータを読み込む読み込み手段、９はドライバ３からの要求に従って外部記憶装置１０にデータを書き出したり読み込んだりする入出力手段、１０はアプリケーションデータを格納するハードディスクドライブやフレキシブルディスクドライブなどの外部記憶装置である。５０は上記カプセル実行手段１とドライバ３を含むカプセル処理手段である。
【００３１】
図２はカプセルの構成およびカプセルを生成するカプセル生成サーバを含むシステムの構成を示す図である。
図において、２１は鍵Ｋａ２２及びカプセル２３を生成するカプセル生成サーバ、２４はこのシステムの利用者であり、公開鍵対である公開鍵Ｋｐ２５及び秘密鍵Ｋｑ２６を保有する。この秘密鍵２６は利用者毎にそれぞれ異なり、例えば図示しないＩＣカードなどの解析や改竄のできないハードウェア内に格納されている。鍵Ｋａ２２はカプセル毎に生成される。
２７はアプリケーション２が利用するアプリケーションデータ、２８はこのアプリケーションデータが上記鍵Ｋａ２２で暗号化された暗号化アプリケーションデータ、２９は上記鍵Ｋａ２２が上記利用者の公開鍵１８で暗号化された暗号化済鍵Ｋａｃ、３０は上記アプリケーションデータ１９を利用するアプリケーション２を起動するためのアプリケーション情報である。
【００３２】
図２のカプセル生成サーバ２１は、図１に示した情報漏洩防止装置を管理する管理者（図示せず）と同一のシステム管理者により管理されている。利用者２４はこのシステム管理者に対して自分の公開鍵Ｋｐ２５を提出して利用許諾を申請し、システム管理者はアプリケーションデータ２７の閲覧を許可する利用者２４に対してのみ、その公開鍵Ｋｐ２５で鍵Ｋａ２２を暗号化してカプセル２３を生成する。
このカプセル２３は、利用者２４とアプリケーションデータ２７を指定することにより特定可能なように識別情報が付加されている。
【００３３】
上記カプセル実行手段１およびドライバ３はＣＰＵとワーキングメモリとしてのＲＡＭ等からなり、図示しない記憶手段に格納されたソフトウェアである情報漏洩防止プログラムに従って動作する。
上記外部記憶装置１０がこの発明における記憶手段であり、カプセル生成サーバ２１がこの発明におけるカプセル生成手段である。またここでは、鍵Ｋａ２２がこの発明における同一である第１の鍵と第２の鍵であり、第１の鍵と第２の鍵すなわち鍵Ｋａ２２は共通鍵方式の鍵である。
また暗号化鍵Ｋａｃ２９がこの発明における暗号化済第２鍵である。
さらに、カプセル生成サーバ２１が鍵Ｋａ２２を生成する動作がこの発明における鍵生成ステップ、カプセル生成サーバ２１がカプセル２３を生成する動作がこの発明におけるカプセル生成ステップである。
【００３４】
次に動作について説明する。
最初に、カプセル実行時の初期処理について、図３に示すフローチャートに基づいて説明する。
まず、利用者２４が閲覧したいアプリケーションデータ２７を含むカプセル２３を指定すると、カプセル実行手段１が指定されたカプセル２３から暗号化プリケーションデータ２８、暗号化鍵Ｋａ２９、アプリケーション情報３０を取り出す（ステップＳ１）。カプセル実行手段１がカプセル２３を獲得する方法は任意であり、ネットワークを利用してもよいし、可搬型の記憶媒体を用いて、カプセル生成サーバ２１からカプセル実行手段１に移動してもよい。
【００３５】
次にカプセル実行手段１は利用者の秘密鍵Ｋｑ２６を取得し、その秘密鍵Ｋｑ２６により、暗号化済鍵Ｋａｃ２９を復号して鍵Ｋａ２２を得る（ステップＳ２）。
この秘密鍵Ｋｑ２６は、前述の通り利用者毎にそれぞれ異なった鍵であり、ＩＣカードなどの解析や改竄のできないハードウェア内に格納して配布されているので、アプリケーションデータの利用を許可する利用者の公開鍵Ｋｑ２５で鍵Ｋａ２２を暗号化しておくことにより、暗号化済鍵Ｋａｃ２９を復号して鍵Ｋａ２２得ることのできる利用者を厳密に特定することができる。
上記復号された鍵Ｋａｃ２２がこの発明における復号済第２鍵であり、上記ステップ２がこの発明における鍵復号ステップである。
【００３６】
次にカプセル実行手段１は、暗号化アプリケーションデータ２８をそのまま外部記憶装置１０に書き出すようにドライバ３に依頼する。ドライバ３は書き出し手段４により、暗号化アプリケーションデータ２８を入出力手段９を通して外部記憶装置１０に書き出す（ステップＳ３）。このとき、カプセル実行手段１は、ドライバ３を介して入出力手段９よりアプリケーションデータ２８の参照先（外部記憶装置１上での格納場所に関する情報）を獲得する。
上記ステップ３がこの発明における暗号化アプリケーションデータ書き出しステップである。
【００３７】
次にカプセル実行手段１は、アプリケーション情報３０に基づき、アプリケーションプログラム２を起動し、アプリケーションプログラム２を識別するハンドラ（例えばプロセスＩＤ）を得る（ステップＳ４）。
このステップＳ４がこの発明におけるアプリケーションプログラム起動ステップである。
次にカプセル実行手段１は、ドライバ３の鍵管理手段５に、アプリケーションプログラム２のハンドラ、ステップＳ２で復号した鍵Ｋａ２２、暗号化アプリケーションデータ２８の外部記憶装置１０における参照先を渡し、鍵管理手段５はそれらを関連付けて保管する（ステップＳ５）。
次にカプセル実行手段１は、外部記憶装置１０に置かれた暗号化アプリケーションデータ２８の参照先をアプリケーション２に通知する（ステップＳ６）。
【００３８】
以上の動作により、鍵管理手段５には
・アプリケーションプログラムのハンドラ
・復号された鍵Ｋａ２２
・暗号化アプリケーションデータの外部記憶装置１０における参照先（この参照先をＲ１とする）
が渡され、鍵管理手段５はこれらの情報を関連付けて保管し、上記ハンドラにより識別されるアプリケーションプログラムを管理対象のアプリケーションプログラムと認識する。
また、アプリケーションプログラム２には
・暗号化アプリケーションデータの外部記憶装置１０における参照先
が渡され、
外部記憶装置１０には
・暗号化アプリケーションデータ２８
が渡されたことになる。
以上の初期処理は、利用者とアプリケーションデータの少なくとも一方が変る毎に実行が必要である。
【００３９】
次に、アプリケーションプログラム２によるアプリケーションデータ読み込み動作について、図４に示すフローチャートに基づいて説明する。
アプリケーションプログラム２が、外部記憶装置１０からのアプリケーションデータの読み込み要求をドライバ３に発行する（ステップＳ７）。この読込み要求には、要求元のアプリケーションプログラムを特定する情報とアプリケーションデータの外部記憶装置１０上での参照先を含む。
【００４０】
次にドライバ３内の鍵管理手段５が、自己が関連付けて保管している情報に基づき、読み込み要求の要求元が管理対象のアプリケーションプログラムであるか否か、および読み込み対象のデータが管理対象のアプリケーションデータであるか否かを検証（判定）する（ステップＳ８）。
このステップ８がこの発明におけるアプリケーションプログラム判定ステップである。
このアプリケーションプログラムの検証は、読込み要求に含まれるアプリケーションプログラムを特定する情報により特定されるアプリケーションプログラムがが上記ハンドラで特定されるアプリケーションプログラムと一致するか否かで行い、アプリケーションデータの検証は、鍵管理手段５が保有する参照先Ｒ１が読込み要求に含まれる参照先と一致するか否かで検証する。
【００４１】
双方とも管理対象であるか否かを判定し（ステップＳ９）、双方とも管理対象であった場合、鍵管理手段５は自己の管理する復号された鍵Ｋａ２２を読み込み手段８に与え、読み込み手段８は要求のあった暗号化アプリケーションデータ２８を入出力手段９を利用して外部記憶装置１０から取出し、その暗号化アプリケーションデータ２８を復号された鍵Ｋａ２２によって復号して、アプリケーションプログラム２に返す（ステップＳ１０）。
このステップ１０がこの発明における暗号化アプリケーションデータ復号ステップおよびアプリケーションデータ読み出しステップである。
【００４２】
次に、アプリケーションプログラム２によるアプリケーションデータ書き出し動作について説明する。
アプリケーション２がドライバ３にアプリケーションデータの書き出し要求を発行すると、鍵管理手段５が自己が関連付けて保管している情報に基づき、書き出し要求の要求元が管理対象のアプリケーションであるか否かを検証し、管理対象であった場合、鍵管理手段で管理する復号された鍵Ｋａ２２でアプリケーションデータを暗号化し、入出力手段９を利用して外部記憶装置１０に書き出す。
【００４３】
以上のように暗号化アプリケーションデータを復号するための鍵（鍵Ｋａ）は、利用者の公開鍵で暗号化されてカプセル化されており、利用者がアプリケーションデータを読み出す際に復号されて鍵管理手段に渡されるため、システムに固定的に埋め込んでおくことがなく、アプリケーションデータをより安全に秘匿できるという効果がある。
【００４４】
また、暗号化アプリケーションデータをその暗号化アプリケーションデータを復号するための鍵（鍵Ｋａ２２）と一体化して扱う、すなわち１つのカプセル内に暗号化アプリケーションデータと鍵Ｋａを暗号化した暗号化済鍵Ｋａｃ２９とを格納しているため、アプリケーションデータごとや利用者ごとに異なった鍵で暗号化が可能となり、アプリケーションデータをより安全に秘匿できるという効果がある。
【００４５】
また、利用者の持つ秘密鍵でのみアプリケーションデータを復号するための鍵Ｋａを復号して得るようにできるため、利用者の認証の成功／不成功と復号用の鍵の獲得の可否が一致することを保証でき、アプリケーションデータをより安全に秘匿できるという効果がある。
【００４６】
また、ファイルやフォルダだけでなくアプリケーションプログラムも管理しているので、アプリケーションプログラムにより管理外のファイルやフォルダに平文のデータを書き出してしまうことを防止することができる。
【００４７】
なお以上の説明では、鍵Ｋａ２２はカプセル毎に生成されるとしたが、利用者毎、あるいはアプリケーションデータ毎に異なるように生成してもよい。
【００４８】
また以上の説明では、利用者の公開鍵Ｋｐ２５と利用者の秘密鍵Ｋｑ２６を用いる例を示したが、この利用者の公開鍵Ｋｐ２５と利用者の秘密鍵Ｋｑ２６に代えて、利用者２４が保持し、任意のデータの暗号化および復号に適用可能な共通鍵方式の鍵である利用者鍵を用いてもよい。この利用者鍵は前記利用者の秘密鍵Ｋｑ２６と同様に利用者毎に異なり、ＩＣカードなどの解析や改竄のできないハードウェア内に格納して配布されるようにする。これにより、アプリケーションデータの利用を許可する利用者の利用者鍵で鍵Ｋａ２２を暗号化しておくことにより、暗号化済鍵Ｋａｃ２９を復号して鍵Ｋａ２２得ることのできる利用者を厳密に特定することができる。
【００４９】
またこの利用者鍵はカプセル実行手段１とカプセル生成サーバ２１とが利用者のパスワードなど利用者の固有情報から生成するようにしてもよい。
この場合、カプセル実行手段１とカプセル生成サーバ２１は例えばハッシュ関数を用いた鍵生成アルゴリズムを含む同一の利用者鍵生成手段を持ち、カプセル生成サーバ２１はカプセル生成時に、カプセル実行手段１はカプセル実行時に、それぞれ利用者に固有情報の入力を促し、入力された固有情報から上記利用者鍵生成手段を用いて共通の利用者鍵を生成する。
上記鍵生成アルゴリズムは、利用者の固有情報に対して利用者鍵が一意に対応するように構成されている。従って、カプセル実行手段１およびカプセル生成サーバ２１が利用者から利用者鍵そのものを獲得せずに、利用者により入力された固有情報から利用者鍵を生成することも、利用者から利用者鍵を獲得することに該当する。
このように利用者鍵を利用者の固有情報から生成するようにすれば、利用者はＩＣカード等を使用しなくてもよく、操作性が向上するという効果がある。
【００５０】
実施の形態２．
実施の形態２を、図３〜図５を用いて説明する。
実施の形態１では、カプセル生成サーバ２１が生成する鍵Ｋａは、アプリケーションデータの暗号化と復号に使用される共通鍵方式の鍵である例を説明したが、この実施の形態２においては、カプセル生成サーバ２１は公開鍵対を生成する例を説明する。
【００５１】
図５において、４１、４２はそれぞれカプセル生成サーバ２１が生成した秘密鍵Ｋｘとこれに対応する公開鍵Ｋｙであり、４３は上記秘密鍵Ｋｘ４１が利用者の公開鍵Ｋｐ２５によって暗号化された暗号化済秘密鍵Ｋｘｃである。また暗号化アプリケーションデータ２８はアプリケーションデータ２７が公開鍵Ｋｙ４２で暗号化されたものである。
カプセル生成サーバ２１は暗号化アプリケーションデータ２８、暗号化済秘密鍵Ｋｘｃ、アプリケーション情報３０、上記公開鍵Ｋｙ４２を含むカプセル４４を生成する。
その他、実施の形態１で説明した図２の構成と同一または相当部分には同一の符号を付して説明を省略する。
またこのカプセル４４を使用する情報漏洩防止装置のブロック図は実施の形態１で説明した図１と同様である。
上記公開鍵Ｋｙ４２がこの発明における第１の鍵、秘密鍵Ｋｘ４１がこの発明における第２の鍵である。
【００５２】
次に動作について説明するが、この実施の形態においても、実施の形態１で説明した図３、図４のフローチャートに準じた動作を行う。
最初に、カプセル実行時の初期処理について、図３に示すフローチャートに基づいて説明する。
まず、カプセル実行手段１が図５のカプセル４４を獲得し、このカプセル４４から暗号化プリケーションデータ２８、暗号化済秘密鍵Ｋｘｃ４３、アプリケーション情報３０、公開鍵Ｋｙ４２を取り出す（ステップＳ１）。
【００５３】
次にカプセル実行手段１は利用者の秘密鍵Ｋｑ２６を取得し、その秘密鍵Ｋｑ２６により、暗号化済秘密鍵Ｋｘｃ４３を復号して秘密鍵Ｋｘ４１を得る（ステップＳ２）。
【００５４】
次にカプセル実行手段１は、暗号化アプリケーションデータ２８をそのまま外部記憶装置１０に書き出すようにドライバ３に依頼する。ドライバ３は書き出し手段４により、暗号化アプリケーションデータ２８を入出力手段９を通して外部記憶装置１０に書き出す（ステップＳ３）。このとき、カプセル実行手段１は、ドライバ３を介して入出力手段９よりアプリケーションデータの参照先（外部記憶装置１上での格納場所に関する情報）を獲得する。
【００５５】
次にカプセル実行手段１は、アプリケーション情報３０に基づき、アプリケーションプログラム２を起動し、アプリケーションプログラム２を識別するハンドラ（例えばプロセスＩＤ）を得る（ステップＳ４）。
次にカプセル実行手段１は、ドライバ３の鍵管理手段５に、アプリケーションのハンドラ、ステップＳ２で復号した秘密鍵Ｋｘ４１、暗号化アプリケーションデータ２８の外部記憶装置１０における参照先、公開鍵Ｋｙ４２を渡し、鍵管理手段５はそれらを関連付けて保管する（ステップＳ５）。
次にカプセル実行手段１は、外部記憶装置１０に置かれた暗号化アプリケーションデータ２８の参照先をアプリケーション２に通知する（ステップＳ６）。
【００５６】
以上の動作により、鍵管理手段５には
・アプリケーションプログラムのハンドラ
・復号された秘密鍵Ｋｘ４１
・公開鍵Ｋｙ４２
・暗号化アプリケーションデータの外部記憶装置１０における参照先（この参照先をＲ１とする）
が渡され、鍵管理手段５はこれらの情報を関連付けて保管し、上記ハンドラにより識別されるアプリケーションプログラムを管理対象のアプリケーションプログラムと認識する。
また、アプリケーションプログラム２には
・暗号化アプリケーションデータの外部記憶装置１０における参照先
が渡され、
外部記憶装置１０には
・暗号化アプリケーションデータ２８
が渡されたことになる。
【００５７】
次に、アプリケーションプログラム２によるアプリケーションデータ読み込み動作について、図４に示すフローチャートに基づいて説明する。
この動作も実施の形態１と同様であり、アプリケーションプログラム２が、外部記憶装置１０からのアプリケーションデータの読み込み要求をドライバ３に発行する（ステップＳ７）。この読込み要求には、要求元のアプリケーションプログラムを特定する情報とアプリケーションデータの外部記憶装置１０上での参照先を含む。
【００５８】
次にドライバ３内の鍵管理手段５が、自己が関連付けて保管している情報に基づき、読み込み要求の要求元が管理対象のアプリケーションプログラムであるか否か、および読み込み対象のデータが管理対象のアプリケーションデータであるか否かを検証する（ステップＳ８）。
【００５９】
双方とも管理対象であるか否かを判定し（ステップＳ９）、双方とも管理対象であった場合、鍵管理手段５は自己の管理する復号された秘密Ｋｘｃ４３を読み込み手段８に与え、読み込み手段８は要求のあった暗号化アプリケーションデータ２８を入出力手段９を利用して外部記憶装置１０から取出し、その暗号化アプリケーションデータ２８を復号された秘密鍵Ｋｘ４１によって復号して、アプリケーションプログラム２に返す（ステップＳ１０）。
【００６０】
次に、アプリケーションプログラム２によるアプリケーションデータ書き出し動作について説明する。
アプリケーション２がドライバ３にアプリケーションデータの書き出し要求を発行すると、鍵管理手段５が自己が関連付けて保管している情報に基づき、書き出し要求の要求元が管理対象のアプリケーションであるか否かを検証し、管理対象であった場合、鍵管理手段で管理する復号された公開鍵Ｋｙ４２でアプリケーションデータを暗号化し、入出力手段９を利用して外部記憶装置１０に書き出す。
【００６１】
以上のように暗号化アプリケーションデータを復号するための鍵（秘密鍵Ｋｘ４１）は、利用者の公開鍵で暗号化されてカプセル化されており、利用者がアプリケーションデータを読み出す際に復号されて鍵管理手段に渡されるため、システムに固定的に埋め込んでおくことがなく、アプリケーションデータをより安全に秘匿できるという効果がある。
【００６２】
また、暗号化アプリケーションデータをその暗号化アプリケーションデータを復号するための鍵（秘密鍵Ｋｘ４１）と一体化して扱う、すなわち１つのカプセル内に暗号化アプリケーションデータと秘密鍵Ｋｘ４１を暗号化した暗号化済秘密鍵Ｋｘｃとを格納しているため、アプリケーションデータごとや利用者ごとに異なった鍵で暗号化が可能となり、アプリケーションデータをより安全に秘匿できるという効果がある。
【００６３】
また、利用者の持つ秘密鍵でのみアプリケーションデータを復号するための鍵Ｋｘを復号して得るようにできるため、利用者の認証の成功／不成功と復号用の鍵の獲得の可否が一致することを保証でき、アプリケーションデータをより安全に秘匿できるという効果がある。
【００６４】
また、ファイルやフォルダだけでなくアプリケーションプログラムも管理しているので、アプリケーションプログラムにより管理外のファイルやフォルダに平文のデータを書き出してしまうことを防止することができる。
【００６５】
また以上の説明では、利用者の公開鍵Ｋｐ２５と利用者の秘密鍵Ｋｑ２６を用いる例を示したが、この利用者の公開鍵Ｋｐ２５と利用者の秘密鍵Ｋｑ２６に代えて、利用者２４が保持し、任意のデータの暗号化および復号に適用可能な共通鍵方式の鍵である利用者鍵を用いてもよい。この利用者鍵は前記利用者の秘密鍵Ｋｑ２６と同様に利用者毎に異なり、ＩＣカードなどの解析や改竄のできないハードウェア内に格納して配布されるようにする。これにより、アプリケーションデータの利用を許可する利用者の利用者鍵で鍵ｘ４１を暗号化しておくことにより、暗号化済秘密鍵Ｋｘｃ４３を復号して秘密鍵Ｋｘ４１を得ることのできる利用者を厳密に特定することができる。
【００６６】
またこの利用者鍵は、実施の形態１で説明したのと同様の利用者鍵生成手段を用いて、カプセル実行手段１とカプセル生成サーバ２１とが利用者の固有情報から生成するようにしてもよく、実施の形態１で説明したのと同様の効果を奏する。
【００６７】
実施の形態３．
実施の形態３を図６を用いて説明する。
以上の実施の形態１では、アプリケーションデータの書き出し処理の際に、ドライバの暗号化手段が回避されるような状況には対処できなかったが、この実施の形態では、そのような状況に対処できるような実施の形態を示す。
【００６８】
図６は、この実施の形態の構成を示すブロック図である。
図において図１と同一または相当部分には同一の符号を付して説明を省略する。
１５はドライバ３の起動状況や真正性を監視するドライバ監視手段、１６はアプリケーションを強制終了させるアプリケーション制御手段である。
このアプリケーション制御手段１６がこの発明における第１のアプリケーション制御手段である。
【００６９】
次に動作について説明する。
カプセル実行手段１は、ドライバ監視手段１５によりドライバ３が起動していることをカプセル実行手段１が起動している間に繰り返し検証する。また、ドライバ３の真正性（ドライバ３が改竄されていないこと）を情報漏洩プログラムの一部でありドライバ３を実現するドライバプログラムのハッシュ値やサイズなどを計算し、その値がドライバ監視手段１５に予め与えられていた正しい値と同等か否かを検証する。もしもいずれかの検証に失敗した場合、すなわちドライバ３が動作していてかつドライバ３が改竄されてないことが検証できなかった場合は、カプセル実行手段１のアプリケーション制御手段１６により、対象のアプリケーションプログラム２を強制終了させる。
その他の動作は実施の形態１または実施の形態２で説明した動作と同様である。
【００７０】
以上のように、カプセル実行手段がドライバの起動状況や真正性を検証し、ドライバの異常状態を検出した場合にアプリケーションを強制終了するようにしているので、アプリケーションがアプリケーションデータの保存処理を行ったときに暗号処理を回避して平文のまま外部記憶装置にアプリケーションデータを書き出してしまうことを防止できる。
【００７１】
なお上記の例では，ドライバ監視手段１５がドライバ３を監視する例を示したが、ドライバ監視手段１５が回避されたり障害が発生した場合に備えて、図７のように、ドライバ３がカプセル実行手段監視手段１７と、このカプセル実行監視手段１７の指示に応じてアプリケーションプログラム２を強制終了させるアプリケーション制御手段１８（第２のアプリケーション制御手段）を備えるようにしてもよい。
【００７２】
ドライバ３は、カプセル実行手段監視手段１７によりカプセル実行手段１が起動していることをドライバ３が起動している間に繰り返し検証する。また、カプセル実行手段１の真正性（カプセル実行手段１が改竄されていないこと）を情報漏洩プログラムの一部でありカプセル実行手段１を実現するカプセル実行プログラムのハッシュ値やサイズなどを計算し、その値がカプセル実行手段監視手段１７に予め与えられていた正しい値と同等か否かを検証する。もしもいずれかの検証に失敗した場合、ドライバ３のアプリケーション制御手段１８により、対象のアプリケーション２を強制終了させる。
その他の動作は実施の形態１または実施の形態２で説明した動作と同様である。
【００７３】
この場合、ドライバがカプセル実行手段の異常状態を検出した場合にアプリケーションを強制終了するようにしているので、カプセル実行手段がドライバの異常状態を検出できずに、結果的にアプリケーションがアプリケーションデータの保存処理を行ったときに暗号処理を回避して平文のまま外部記憶装置にアプリケーションデータを書き出してしまうことを防止できる。
【００７４】
上記カプセル実行手段監視手段１７とアプリケーション制御手段１８はドライバ３とは別に備えられてもよい。
【００７５】
【発明の効果】
以上のように、この発明によればアプリケーションデータをより安全に秘匿できるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態１、２における情報漏洩防止装置のブロック図。
【図２】本発明の実施の形態１におけるカプセルの構成およカプセル生成サーバを含むシステムの構成を示す図。
【図３】本発明の実施の形態１、２におけるカプセル実行時の初期処理の動作を説明するフローチャート図。
【図４】本発明の実施の形態１、２における読み出し時の動作を説明するフローチャート図。
【図５】本発明の実施の形態２におけるカプセルの構成およカプセル生成サーバを含むシステムの構成を示す図。
【図６】本発明の実施の形態３における情報漏洩防止装置のブロック図。
【図７】本発明の実施の形態３における情報漏洩防止装置のその他の形態を示すブロック図。
【図８】従来の情報漏洩防止装置のブロック図。
【図９】従来の情報漏洩防止装置における読み出し時の動作を説明するフローチャート図。
【符号の説明】
１　カプセル実行手段、　２　アプリケーションプログラム、　３　ドライバ、　４　書き出し手段、　５　鍵管理手段、　６　暗号化手段、　７　復号手段、　８　読み込み手段、　９　入出力手段、　１０　外部記憶装置、　１５　ドライバ監視手段、　１６　アプリケーション制御手段、　１７　カプセル実行手段監視手段、　１８　アプリケーション制御手段、　２１　カプセル生成サーバ、　２２　鍵Ｋａ、　２３　カプセル、　２４　利用者、　２５　公開鍵Ｋｐ、　２６　秘密鍵Ｋｑ、　２７、アプリケーションデータ、　２８　暗号化アプリケーションデータ、　２９　暗号化済鍵Ｋａｃ、　３０　アプリケーション情報、　４１　秘密鍵Ｋｘ、　４２　公開鍵Ｋｙ、　４３　暗号化済秘密鍵Ｋｘｃ、　４３　カプセル、　５０　カプセル処理手段、　１００１アプリケーション、　１００２　ユーザ認証手段、　１００３　ファイルシステム、　１００４　ドライバ、　１００５　オープン手段、　１００６　リード手段、　１００７　ライト手段、　１００８　クローズ手段、　１００９　Ｉ／Ｏ手段、　１０１０　外部記憶装置。
【図１】
2004030099.tif 000003
【図２】
2004030099.tif 000004
【図３】
2004030099.tif 000005
【図４】
2004030099.tif 000006
【図５】
2004030099.tif 000007
【図６】
2004030099.tif 000008
【図７】
2004030099.tif 000009
【図８】
2004030099.tif 000010
【図９】
2004030099.tif 000011