以下、本発明の一参考例によるソフトウェアモジュール管理装置(図1で示す暗号管理サーバ装置のこと)を含むシステム(以下、「第1参考例における本システム」という)について図面を参照して説明する。
まず、第1参考例における本システムの概要について説明する。第1参考例における本システムにおいては、サーバとクライアント装置とが接続され、サーバとクライアント装置間において暗号モジュールを用いて暗号化された情報を送受信することが可能なシステムである。ここで、暗号モジュールを定期的に切り替えることも可能である。このような、暗号モジュールを切り替え可能な暗号システムとしては、暗号の手法ごとに暗号方式に依存しないインターフェースを規定し、各暗号ベンダが実装可能なフレームワークがいくつか存在する。例えば、Microsoft(登録商標)のCryptAPIやSun(登録商標)のJCA(Java(登録商標) Cryptographic Architecture)/JCE(Java(登録商標) Cryptographic Extensions)やOpen Group(登録商標)のCDSA(Common Data Security Architecture)などがある。
これらのフレームワークでは、暗号化/復号、署名生成/検証、認証子生成/検証などの暗号の手法ごとに暗号モジュールにアクセスするインターフェースを規定し、インターフェースに従って、例えば、DES(Data Encryption Standard)、AES(Advanced Encryption Standard)などの暗号方式を実装することが可能になっている。そして、暗号やセキュリティの専門家がシステム構築時に、これらの実装された暗号の中から適切な暗号方式をあらかじめ選択し、いずれの暗号方式を利用するかを示す暗号方式パラメータをフレームワークに入力して、暗号方式を切り替えることが可能である。
このようなフレームワークを利用する場合、アプリケーションシステムの運用上のセキュリティポリシが変更された場合、暗号やセキュリティの専門家が、再度システムに適した暗号方式を選定する必要があり、暗号やセキュリティの専門家の人材リソースの問題やコストの問題に直面する。また、既存の暗号方式の不備が発見されたり、新しい暗号が発表されたりした際に、運用中のシステムに対して、暗号方式の変更をスムーズに適用するのが難しい。さらには、セキュリティを実施する環境に応じて、必要なセキュリティ強度や処理速度などが違う場合に、最適なセキュリティを実現することも、従来システムでは難しい問題である。
第1参考例における本システムにおいては、暗号モジュールの切り替えが可能な暗号システムでは、この問題についても解決することが可能である。
<第1の参考例>
図1は、本発明の第1の参考例における本システムの構成を示す概略ブロック図である。
第1参考例における本システムは、暗号モジュール308と暗号評価記述ファイル309とを含む暗号パッケージ307を送信する暗号管理サーバ装置350と、受信した暗号パッケージ307を用いて暗号処理を行う暗号クライアント装置150とから構成される。暗号評価記述ファイル309に記述される暗号の評価とは、対応する暗号モジュール308の暗号方式の信頼度や強度等が数値化された情報であり、例えば、暗号クライアント装置150などの端末装置上に実装している暗号方式の安全性や暗号の処理速度、暗号に利用可能な鍵長などである。
暗号管理サーバ装置350は、暗号モジュール308を蓄積した暗号モジュールDB353と、暗号評価記述ファイル309を蓄積した暗号評価DB354と、暗号モジュールDB353と暗号評価DB354との管理を行う暗号管理部351と、暗号モジュールDB353と暗号評価DB354とに新規の情報を登録する暗号登録部355と、暗号クライアント装置150の要求に応じて最適な暗号パッケージ307を暗号モジュールDB353と暗号評価DB354とから読み出して送信する暗号配信部352とを備える。
暗号クライアント装置150は、暗号制御マネージャ部152を介して暗号実装部153が提供する暗号機能を呼び出して利用するアプリケーションやミドルウェアである上位システム部151と、暗号管理サーバ装置350から送信された暗号パッケージ307の受信や暗号実装部153から提供される暗号機能の切り替えを行う暗号制御マネージャ部152と、主要な暗号方式による暗号処理をハードウェアとして実現した耐タンパーな暗号ハードウェア部450と、暗号方式を実装した暗号モジュール308が実行可能・利用可能な状態にされて暗号機能を提供する暗号実装部153とから構成される。暗号管理サーバ装置350は、暗号クライアント装置150からの要求に基づき、暗号の初期登録・配信・更新の3つの手順を行うことで、適切な暗号パッケージ307を暗号クライアント装置150に送信する。
ここで、暗号の初期登録とは、暗号クライアント装置150が暗号モジュール308を有せず、暗号実装部153が存在しない場合に、暗号クライアント装置150の暗号ハードウェア部450を利用して、利用上必要不可欠な暗号モジュール308を暗号管理サーバ装置350から暗号実装部153に安全に送信することである。
暗号の配信とは、暗号管理サーバ装置350が、暗号クライアント装置150から受信した暗号要求に応じて、適切な暗号モジュール308または暗号パッケージ307を選定して暗号クライアント装置150に送信することである。暗号要求は暗号に関する条件情報を含む。この条件情報は、暗号化や署名生成などの暗号方式の分類(暗号のカテゴリ)、暗号モジュール308を作成したメーカ、暗号モジュール308が動作するハードウェアの情報、および暗号の評価情報などがある。暗号の評価情報は、本参考例のように、暗号評価記述ファイル309として、暗号モジュール308とは独立したファイルとして扱われることとしても良い。
暗号の更新とは、新規の暗号モジュール308を登録したり、危殆化した暗号方式を利用した該当する暗号モジュール308を削除したり、暗号モジュール308のバグを発見し既存の暗号モジュール308とその暗号モジュール308が実行されている暗号実装部153を更新したり、計算機の処理速度の高速化等に伴って暗号の評価を変更した際に、暗号管理サーバ装置350上の暗号モジュールDB353や暗号評価DB354に記憶された情報を更新し、この更新した暗号パッケージ307の情報を、暗号クライアント装置150に対して定期的に送信したり、暗号クライアント装置150からの要求に基づいて送信し、暗号管理サーバ装置350が新しい暗号モジュール308を送信することや既存の暗号実装部153が動作できなくなったことを通知することである。
図2は、暗号クライアント装置150の詳細な構成図である。暗号制御マネージャ部152は、暗号処理情報DB157を持つ暗号処理制御部156と、暗号モジュールDB164と、暗号評価DB163と、暗号モジュール選定ポリシ158とハードウェアプロファイル160とを持つ暗号モジュール選定部159と、鍵情報DB165と、その鍵情報DB165へのアクセス制御ポリシが記述されたアクセス制御ポリシ161を持つ鍵情報管理部162と、暗号制御マネージャポリシ167を持つ暗号管理部166と、暗号ハードウェア部450と通信を行う暗号ハードウェア管理制御部170と、外部との通信を行う通信機能155と、通信機能155と連携するアルゴリズムネゴシエーション部168と、通信機能155と連携するセキュア通信管理部169とから構成される。
暗号処理制御部156は、上位システム部151からの暗号処理呼び出しに基づき、鍵生成処理、鍵登録処理、暗号処理を行う。
鍵生成処理の場合、暗号処理制御部156は、上位システム部151から指定された暗号方式、鍵長、暗号方式パラメータを暗号処理情報DB157に登録した際の暗号処理の識別子により、指定された暗号方式に対する暗号モジュール308を暗号モジュール選定部159により選定するように制御(依頼・指示)する。
暗号処理制御部156が、選定された暗号モジュール308をメモリ上にロードし暗号実装部153として実行状態にさせる。暗号処理制御部156が、指定された暗号処理の識別子に対応する鍵生成のための暗号方式パラメータを鍵情報管理部162経由で鍵情報DB165から引き出す。暗号処理制御部156が、指定された鍵長と引き出した暗号方式パラメータで暗号実装部153を呼び出すと、暗号実装部153は鍵情報を生成する。暗号処理制御部156は、生成された鍵情報を受け取る。暗号処理制御部156は、暗号実装部153が生成した鍵情報を鍵情報管理部162経由で鍵情報DB165に登録してその鍵情報に対応する鍵識別子を受け取り、処理結果として新しく発行した暗号処理の識別子と鍵識別子の関連付けを暗号処理情報DB157に保存し、暗号処理の識別子を上位システム部151に返す。
鍵登録の場合、暗号処理制御部156は、上位システム部151から指定された鍵情報を、鍵情報管理部162を経由して鍵情報DB165に登録して鍵識別子を受け取り、処理結果として新しく発行した暗号処理の識別子と鍵識別子の関連付けを暗号処理情報DB157に保存し、暗号処理の識別子を上位システム部151に返す。
暗号処理の場合、上位システム部151から指定された暗号に関する条件情報と暗号処理対象データ(平文)と鍵生成または鍵登録を行った際に受け取った暗号処理の識別子とを受け取り、暗号に関する条件情報を参照して適切な暗号モジュール308を暗号モジュール選定部159により選定するように制御し、選定された暗号モジュール308をメモリ上にロードして暗号実装部153として実行させ、指定された暗号処理の識別子に対応する鍵情報を鍵情報管理部162経由で鍵情報DB165から引き出し、指定された暗号処理対象データと引き出した鍵情報とを、呼び出した暗号実装部153に入力し、対応して処理された暗号データを受け取り、処理結果として新しく発行した暗号処理の識別子と鍵識別子の関連付けを暗号処理情報DB157に保存し、暗号処理の識別子を返す。暗号処理の際に利用した鍵情報などを暗号処理の識別子に結びつけることにより、暗号処理の再実行や復号を簡単に実施することができるようにする。
暗号モジュールDB164は、暗号管理サーバ装置350から受信した暗号モジュール308を格納する記憶部である。
暗号評価DB354は、暗号管理サーバ装置350から受信した暗号評価記述ファイル309を格納する記憶部である。
暗号モジュール選定部159は、暗号化や署名生成などの暗号のカテゴリ、暗号モジュール308を作成したメーカ、暗号モジュール308が動作するハードウェアの情報、および、暗号の評価情報などの暗号に関する条件情報を、上位システム部151からの入力を元に、暗号モジュールDB164が記憶している暗号モジュール308の中から一番適切な暗号モジュール308を選定する。暗号モジュール308の選定にあたっては、暗号クライアント装置150のハードウェア情報を記述したハードウェアプロファイル160に適合するものの中から選び、かつ、暗号クライアント装置150を利用する利用者のポリシを記述した暗号モジュール選定ポリシ158にも従うようにする。
ハードウェアプロファイル160とは、例えば、暗号クライアント装置150のCPUアーキテクチャ、CPUクロック、搭載メモリ量などの情報を含む情報である。暗号モジュール選定ポリシ158とは、例えば、入力条件により選定された暗号が複数ある場合に利用者が優先したい条件、利用者が優先的に利用したい暗号のメーカ、利用者が利用禁止にしたい暗号方式などを含む情報である。
このように、暗号モジュール選定部159は、上位システム部151からの入力情報と、ハードウェアプロファイル160と、暗号モジュール選定ポリシ158とを参照して、入力情報に一致する暗号モジュール308を選定する。暗号モジュール選定部159が暗号モジュール308を一意に選定した場合には、選定した暗号モジュール308を暗号モジュールDB164から取り出す。暗号モジュール選定部159は、暗号モジュール308が一意に選定できなかった場合は、エラーを出力する。
鍵情報管理部162は、暗号実装部153を呼び出す際に指定される鍵情報や暗号方式パラメータなどの情報を鍵情報DB165へデータを記憶させ、または読み出す。鍵情報管理部162は、指定される鍵情報や暗号方式パラメータの情報がひとつではない場合、複数の情報をひとつにまとめて引き出せるように関連付けを行って、鍵情報DB165に登録する。また、鍵情報管理部162は、鍵情報DB165から鍵情報や暗号方式パラメータを引き出す際には、暗号モジュール選定ポリシ158に従い、複数ある上位システム部151からの鍵情報へのアクセス制御を行う。
鍵情報管理部162は、上位システム部151から指定されたクレデンシャル(アクセスのための鍵やパスワードなど)とアクセスしたい鍵識別子と鍵識別子に関連付けられた暗号処理の識別子とにより、そのクレデンシャルの正当性を検証する。鍵情報管理部162は、クレデンシャルの持ち主に対してアクセス可能な鍵情報DB165の鍵情報の規定を記述したアクセス制御ポリシ161に基づき、アクセス可否を判定し、アクセス可ならば、暗号処理の識別子に対応する鍵識別子を鍵情報DB165から引き出し、鍵識別子に対応する鍵情報や暗号方式パラメータを引き出し、上位システム部151にこれを返す。一方、アクセス不可ならば、上位システム部151にエラーを返す。
暗号管理部166では、通信機能155を介して暗号管理サーバ装置350と通信を行い、暗号の初期登録・配信・更新の手順に従って、暗号パッケージ307等の受信を行う。暗号管理部166が暗号管理サーバ装置350から暗号パッケージ307等を受信する際には、暗号制御マネージャポリシ167の内容に従って処理する。暗号制御マネージャポリシ167の内容は、例えば、以下の5つである。1つめは、暗号管理サーバ装置350との通信におけるサーバ認証の実施可否である。2つめは、暗号管理サーバ装置350からの暗号パッケージ307等の受信時の暗号化可否である。3つめは、暗号管理サーバ装置350からの暗号パッケージ307等の受信時の改ざん検出子(MAC(Message Authentication Code))付加可否である。4つめは、受信した暗号パッケージ307等の認証子の検証実施可否である。5つめは、暗号評価DB163と暗号モジュールDB164とに記憶された暗号パッケージ307を定期的に更新可否や更新頻度などを示す定期更新に関する設定情報、などとする。
暗号ハードウェア管理制御部170は、暗号ハードウェア部450と通信を行い、暗号管理サーバ装置350から、暗号の初期登録の手順に従って暗号パッケージ307の受信を行う。暗号パッケージ307の受信の際には、暗号パッケージ307自身が暗号化されている場合、暗号ハードウェア部450にて暗号パッケージ307を復号する。また、暗号モジュール308に改ざん検出子が付加されていることを検出すると、暗号ハードウェア部450が暗号モジュール308の改ざん検出を行う。
アルゴリズムネゴシエーション部168は、通信機能155と連携し、2つの暗号クライアント装置間で安全な通信セッションを構築する事前に、通信セッションの構築で利用する暗号方式、通信セッションで利用する暗号方式の調停を行う。暗号方式の調停を行う際には、以下の4つの調停方法のいずれかで調停を行えるようにする。
第1の調停方法は、自身の暗号モジュールDB164に記憶された暗号モジュール308が提供する暗号方式群のみからアルゴリズムネゴシエーション部168が一方的に暗号方式を決定する。自身のアルゴリズムネゴシエーション部168は、上位システム部151から指定された1つ以上の暗号方式の分類(暗号のカテゴリ)、暗号制御マネージャポリシ、ハードウェアプロファイル、暗号に関する条件情報から、暗号評価DB163と暗号モジュールDB164とを参照して適切な暗号モジュール308を選定し、暗号方式を決定する。暗号方式の分類が複数指定された場合は、個々の暗号方式の分類ごとに選定を行い、暗号方式を決定する。
このとき、アルゴリズムネゴシエーション部168は、上位システム部151から暗号方式が未決定である暗号方式の分類が指定された場合は、指定された暗号に関する条件情報を参照して暗号の配信の手順を行い暗号管理サーバ装置350から暗号モジュール308を受信し、その暗号モジュール308の暗号方式を結果とする。それでも未決定の場合は、アルゴリズムネゴシエーション部168は、上位システム部151にエラーを返す。
アルゴリズムネゴシエーション部168が暗号方式を決定すると、上位システム部151から指定された相手方の暗号制御マネージャ部152の宛先に対して、暗号方式調停方法番号と、結果として出力された暗号方式の分類と暗号方式の対応群と、暗号モジュール308が足りない場合の暗号管理サーバ装置350からの受信可否に関する情報を送信する。受信した相手方の暗号制御マネージャ部152は、指定された暗号方式の暗号モジュール308を所持しているかを暗号評価DB163および暗号モジュールDB164から検索し、すべての暗号方式に対して適切な暗号モジュール308が存在する場合には通信可能である返信を行う。
相手方の暗号制御マネージャ部152は、存在しない暗号モジュール308があった場合、暗号管理サーバ装置350からの受信可否に関する情報に従って処理する。すなわち、受信可の場合は、暗号の配信の手順に従って、暗号方式に対する暗号モジュール308を受信し、受信完了後、通信可能である返信を行う。受信不可の場合や、受信可の場合でも適切な暗号モジュール308が受信できなかった場合、通信不可能である返信を行う。自身の暗号制御マネージャ部152は、相手方の暗号制御マネージャ部152からの返信を上位システム部151に転送する。
第2の調停方法は、相手方の暗号制御マネージャ部152が保持する暗号方式群のみから相手の暗号制御マネージャ部152が一方的に暗号方式を決定する。これは上記第1の調停方法と対称の処理となり同様の手順である。
第3の調停方法は、双方の暗号制御マネージャ部152が保持する暗号方式群から自身の暗号制御マネージャ部152が共通の暗号方式を決定する。
自身の暗号制御マネージャ部152のアルゴリズムネゴシエーション部168は、上位システム部151から指定された1つ以上の暗号方式の分類(暗号のカテゴリ)、相手方の暗号制御マネージャ部152の宛先から、相手方の暗号制御マネージャ部152に対して暗号方式調停方法番号、暗号方式の分類を送信する。相手方の暗号制御マネージャ部152は、受信した暗号方式の分類、ハードウェアプロファイルから、暗号評価DB163および暗号モジュールDB164を参照して該当するすべての暗号モジュール308を選び、選んだすべての暗号モジュール308が対応する暗号方式一覧を作成する。
この際、相手方の暗号制御マネージャ部152は、暗号方式の分類が複数指定された場合は、個々の暗号方式の分類ごとに暗号モジュール308を選び、暗号方式一覧を作成する。相手方の暗号制御マネージャ部152は、暗号方式の分類ごとの暗号方式一覧を自身の暗号制御マネージャ部152に送信する。暗号方式の分類ごとの暗号方式一覧を受信した自身の暗号制御マネージャ部152は、上位システム部151から指定された1つ以上の暗号方式の分類(暗号のカテゴリ)、暗号制御マネージャポリシ、ハードウェアプロファイル、暗号に関する条件情報から、暗号評価DB163および暗号モジュールDB164を参照して適切な暗号モジュール308を選定し、選定した暗号モジュール308から暗号方式を決定する。
この際、暗号制御マネージャ部152は、暗号方式の分類が複数指定された場合は、個々の暗号方式の分類ごとに選定を行い、暗号方式を決定する。例えば、次の場合、暗号方式の分類に対する暗号方式は決定されたとする。まず、自身の暗号制御マネージャ部152で選定した暗号方式が暗号方式一覧に存在する場合。次に、自身の暗号制御マネージャ部152が受信した暗号方式一覧のいずれかの暗号方式に対応する暗号モジュール308を所持している場合。それ以外の場合、暗号方式の分類に対する暗号方式は未決定とする。
暗号制御マネージャ部152は、未決定の暗号方式の分類がある場合、受信した暗号方式一覧のいずれかを指定して、暗号の配信の手順に従い、暗号管理サーバ装置350から暗号モジュール308を受信する。暗号制御マネージャ部152は、対応する暗号モジュール308を受信できるまで暗号方式一覧のすべての暗号方式について同様の処理を繰り返す。それでも未決定の場合、該当の暗号方式の分類に関する暗号方式は未決定とする。すべての暗号方式の分類に対して、上記の処理が完了したら、相手方の暗号制御マネージャ部152に対して、すべての暗号方式の分類に対する暗号方式の決定/未決定を送信する。
第4の調停方法は、双方の暗号制御マネージャ部の保持する暗号方式群から相手方の暗号制御マネージャ部152に共通の暗号方式を決定する。これは第3の調停方法の場合と対称の処理となり同様の手順である。
アルゴリズムネゴシエーション部168は、以上の4つの調停方法のいずれかで調停を行う。
セキュア通信管理部169は、通信機能155と連携し、他の暗号クライアント装置150との間で安全な通信セッションを構築する。セキュア通信管理部169は、安全なセッションを構築する際には、アルゴリズムネゴシエーション部168により、通信セッション構築で利用するための暗号方式と通信セッションで利用するための暗号方式を決定した後に、セッション鍵共有を行う。安全な通信セッションの構築後は、決定した暗号方式に従い、セッション鍵を利用して、通信データの暗号化や通信データの改ざん防止のための認証子の付加を行うことができるようにする。また、セキュア通信管理部169は、一度、構築した通信セッションは、一定時間内は再利用できるように、通信セッションの保持を行うことができるようにする。
セキュア通信管理部169は、上位システム部151から指定された通信相手の宛先にセキュア接続要求を送信し、セキュア接続の開始を通知する。次に、セキュア通信管理部169は、事前にアルゴリズムネゴシエーション部168が決定した暗号方式の分類に従ってセキュア接続を確立する。暗号方式の分類には、例えば、認証、鍵共有、共通鍵情報暗号化(ストリーム暗号あるいはブロック暗号)、公開鍵暗号、データ認証(MAC認証または署名認証)、擬似乱数生成(ストリーム暗号および公開鍵暗号の場合のみ)、セッション鍵導出、MAC鍵導出(MAC認証の場合のみ)、などの分類がある。セキュア通信管理部169は、セキュア接続に認証が必要な場合、認証処理を行う。
次に、セキュア通信管理部169は、鍵共有処理により鍵の共有を行い、セキュアセッションを確立する。ただし、公開鍵暗号の暗号方式が調停されている場合、鍵共有処理は行わない。公開鍵暗号なしで暗号化通信を行う場合には、共有した鍵からセッション鍵導出方式により、セッション鍵を作成し、共通鍵情報暗号化方式に従って送信したいデータを暗号化し、暗号化データを相手に送信する。通信相手は、同様の方法でセッション鍵を作成し、共通鍵情報暗号化方式に従って受信したデータを復号する。
セキュア通信管理部169は、公開鍵暗号ありで暗号化通信を行う場合には、擬似乱数生成方式に従ってランダムなセッション鍵を作成し、共通鍵情報暗号化方式に従ってセッション鍵で送信したいデータを暗号化し、信頼機関から通信相手の公開鍵を受信し、公開鍵暗号方式に従って通信相手の公開鍵でセッション鍵自体を暗号化し、暗号化データと暗号化セッション鍵を相手に送信する。通信相手は、自分の秘密鍵で暗号化セッション鍵を復号し、共通鍵情報暗号化方式に従ってセッション鍵で受信したデータを復号する。
セキュア通信管理部169は、データ認証子付き通信を行う場合であってMAC認証の場合、共有した鍵からMAC鍵導出方式により、MAC鍵を作成し、MAC認証方式に従って送信したいデータにMACデータを付加し、MAC付きデータを相手に送信する。通信相手は、同様の方法でMAC鍵を作成し、MAC認証方式に従って受信したデータのMACを検証する。
セキュア通信管理部169は、データ認証子付き通信を行う場合で署名認証の場合、自分の秘密鍵で署名を付加し、署名付きデータを相手に送信する。通信相手は、相手の公開鍵が登録されている信頼機関から通信相手の公開鍵を受信し、相手の公開鍵の正当性を検証し、検証が正しく終了した場合、署名認証方式に従って相手の公開鍵で受信した署名付きデータを検証する。
図3は、暗号管理サーバ装置350の詳細な構成図である。暗号管理サーバ装置350は、暗号モジュールDB353と、暗号評価DB354と、暗号モジュールDB353と暗号評価DB354とに記憶された情報の読み出しや更新等の処理を行う暗号管理部351と、暗号モジュールDB353と暗号評価DB354とに情報の登録を行う暗号登録部355と、暗号クライアント装置150へ暗号の送信を行う暗号配信部352とから構成される。
暗号モジュールDB353は、予め記憶するかユーザによって入力される暗号モジュール308を記憶するデータベースである。
暗号評価DB354は、予め記憶するかユーザに入力される暗号評価記述ファイル309を記憶するデータベースである。
暗号管理部351は、暗号管理サーバ装置350のユーザに対して、暗号モジュールDB353と暗号評価DB354に格納された暗号モジュール308や暗号パッケージ307の検索、暗号評価部の内容表示、管理している暗号のリスト表示、既存の暗号の更新、既存の暗号の削除、新規の暗号の登録、暗号配信部の起動/終了を行うインターフェースを備える。暗号管理部351は、新規の暗号を登録する場合は、暗号登録部355へ登録依頼を行う。
暗号登録部355は、暗号パッケージ登録部357と複合型記述生成部358とを備えている。
暗号配信部352は、暗号パッケージ配信制御部359と、配布ポリシ371を持つ暗号パッケージ配布構成部370と、配布ポリシ371を持つ配布暗号モジュール選定部360とを備える。
暗号パッケージ配信制御部359は、暗号クライアント装置150からの要求を解釈し、暗号の初期登録・配信・更新の3つの手順を実施する待ち受けサービスを実行する。また、この待ち受けサービスは、処理内容のログを記録する。
配布暗号モジュール選定部360では、暗号の初期登録・配信・更新の3つの手順と暗号クライアント装置150からの要求に基づき、配信に適切な暗号モジュール308を選定する。暗号の初期登録の場合、配信する暗号モジュール308は、利用上必要不可欠であると規定し、配布ポリシ371に記述された暗号方式である。
暗号パッケージ配布構成部370では、配布暗号モジュール選定部360で選定された暗号モジュール308を元に、配布ポリシ371に従って、暗号モジュール308と、暗号モジュール308に対応する暗号評価記述ファイル309とを暗号パッケージ307として配布可能な形にするための構成処理を行う。配布ポリシ371は、例えば、以下の4つの項目が記述されている。
第1の項目は、暗号パッケージ307の配布の際の暗号化の可否である。第2の項目は、暗号パッケージ307の暗号化の暗号方式である。第3の項目は、暗号パッケージ307の配布の際の改ざん検出子の付加の可否である。第4の項目は、暗号パッケージ307の改ざん検出子の暗号方式である。
暗号パッケージ配布構成部370が行う構成処理では、暗号評価DB354に格納された内容を暗号評価記述ファイル309として特定の形式で生成し、暗号パッケージ307に対して暗号管理サーバ装置350が配布認定する目的で認証子を付加し、暗号モジュール308と暗号評価記述ファイル309とをペアにして、暗号パッケージ307としてまとめる。
また、暗号パッケージ配布構成部370は、複数の暗号モジュール308を組み合わせた暗号モジュール308を、複数の暗号モジュール308とそれぞれに対応する暗号評価記述ファイル309とをまとめて1つの暗号パッケージとしても良い。また、暗号パッケージ配布構成部370が行う構成処理では、暗号クライアント装置150の暗号制御マネージャポリシや暗号管理サーバ装置350の配布ポリシ371に従って、暗号パッケージ307の暗号化および改ざん検出子の付加、そのための鍵生成と鍵管理を行う。
ここで、本発明の第1の参考例による、暗号クライアント装置150内で上位システム部151からの暗号処理要求に対して、暗号処理制御部156が最適な暗号モジュールを選定し、暗号処理を実行、暗号処理結果を上位システム部151へ出力する暗号処理動作を示す。図20は、本発明の第1の参考例による暗号クライアント装置の暗号処理動作例を示す図である。図21は、本発明の第1の参考例による暗号クライアント装置の暗号処理フロー例を示す図である。図22は、本発明の第1の参考例による暗号評価DBの構成例を示す図である。図23は、本発明の第1の参考例による暗号実装DBの構成例を示す図である。図24は、本発明の第1の参考例による暗号処理情報DBと鍵情報DBの構成例を示す図である。
サポートモードは、共通鍵暗号の動作モードや、サポートしている規格名といった情報である。例えば、ECDSA方式では、SECG SEC1のv1.0をサポートしている等である。暗号処理情報DBにある、暗号評価記述ファイルID(暗号処理)とは、当該暗号処理に利用した暗号モジュールに対応する暗号評価記述ファイルIDである。また、暗号処理情報DBにある、暗号評価記述ファイルID(鍵生成)とは、当該暗号処理に用いた暗号鍵を暗号処理DB157に追加登録した際に関連づけた暗号評価記述ファイルID、または当該暗号鍵を当該暗号制御マネージャ部152で鍵生成を実行した際に利用した暗号モジュールに対応する暗号評価記述ファイルIDである。
本発明の第1の参考例による暗号クライアント装置の暗号処理動作の一例を次に示す。上位システム部151は、暗号処理の対象となるデータ及び暗号処理のカテゴリの識別子を含む暗号処理要求情報を入力として暗号処理制御部156に暗号処理を要求する(ステップS1)。暗号処理制御部156は、上位システム部151からの暗号処理要求情報に応じた鍵情報を鍵情報管理部162に要求する(ステップS2)。鍵情報管理部162は鍵情報DB165から当該鍵情報を取得し、暗号処理制御部156へ出力する(ステップS3)。
暗号処理制御部156は、暗号モジュール選定部159に上位システム部151からの暗号処理要求情報を入力し、最適な暗号モジュールの選定を依頼する(ステップS4)。暗号モジュール選定部159は、ハードウェアプロファイル160や暗号モジュール選定ポリシ158を読み込む。暗号評価DBの暗号評価標準ファイルを適宜読み出し、当該暗号処理に最適な暗号モジュールを選定する。暗号モジュール選定部159は、選定した暗号モジュールに対応する暗号評価記述IDを含む選定結果を暗号処理制御部156に出力する(ステップS5)。
暗号処理制御部156は、選定された暗号モジュールが当該暗号クライアント装置150内に存在しない場合は、上位システム部へエラー出力し、処理を完了する(ステップS6、ステップS11)。選定された暗号モジュールが当該暗号クライアント装置150内に存在する場合は、暗号処理制御部156は、暗号モジュール選定部159で選定された暗号モジュールを暗号実装部153としてメモリにロードする。
暗号処理制御部156は、鍵情報管理部162で出力された上記鍵情報や暗号処理対象データを入力して暗号実装部153に暗号処理を要求する(ステップS6、ステップ7)。暗号実装部153は、暗号処理対象データに対する暗号処理結果を暗号処理制御部156に出力する(ステップS8)。
暗号処理制御部156は、鍵情報管理部162から得られた鍵情報、暗号モジュール選定部159から得られた選定結果情報を含む、当該暗号処理の実行環境情報を当該暗号処理に対して発行した暗号処理IDを関連づけて暗号処理条件情報として暗号処理情報DBに登録する(ステップS9)。暗号処理制御部156は、暗号処理ID及び暗号処理対象データに対する暗号処理結果データを含む暗号処理結果情報を上位システム部151に出力する(ステップS10)。
暗号クライアント装置150に上位システム部151からの暗号処理要求や当該暗号管理ドメイン及び暗号クライアント装置150のセキュリティポリシに最適な暗号モジュールが存在しない場合、当該暗号モジュール及び対応する暗号評価記述ファイルを含む暗号パッケージを暗号管理サーバ装置350から取得する。図25は、本発明の第1の参考例による暗号パッケージの配信動作例を示す図である。図26は、本発明の第1の参考例による暗号パッケージの配信処理フロー例を示す図である。
暗号クライアント装置150は、次のようにして暗号管理サーバ装置350から暗号パッケージを取得する。上位システム部151は、当該暗号クライアント装置150に不足している暗号パッケージの取得を暗号管理部166に要求する(ステップS21)。暗号管理部166は、通信機能155を用いて当該暗号クライアント装置150のハードウェアプロファイルを含む暗号パッケージ配信要求情報を暗号管理サーバ装置350へ送信する(ステップS22)。
暗号パッケージ配信制御部359は、通信機能356を通じて暗号クライアント装置150からの暗号パッケージ配信要求情報を受信する(ステップS23)。暗号パッケージ配信制御部359は、配布暗号モジュール選定部360に暗号クライアント装置150からの配信要求に最適な暗号モジュールの選定を要求する(ステップS24)。配布暗号モジュール選定部360は、暗号クライアント装置150からの暗号パッケージ配信要求情報や暗号評価DB354の暗号評価記述ファイルを含む選定入力情報を基に当該要求に最適な配布暗号モジュールを選定し、当該選定結果を暗号パッケージ配信制御部359に出力する(ステップS25)。
暗号パッケージ配信制御部359は、ステップS25での選定結果情報を用いて暗号パッケージ配布構成部370に配布暗号パッケージ情報の作成を要求する(ステップS26)。暗号パッケージ配布構成部370は、暗号モジュールDB及び暗号評価DBを用いて、ステップS26の配布パッケージ情報作成要求に応じた暗号モジュール308及び暗号評価記述ファイル309を含む暗号パッケージ307を暗号パッケージ配信制御部359に出力する(ステップS27)。
暗号パッケージ配信制御部359は、通信機能356を用いて暗号パッケージ307を含む暗号パッケージ情報を暗号クライアント装置150に送信する(ステップS28)。暗号管理部166は、通信機能155を通じて暗号管理サーバ装置350からの暗号パッケージ情報を受信する(ステップS29)。
暗号管理部166は、暗号評価記述ファイル309の認定子検証を含む暗号パッケージ情報の評価を実行する。評価が処理を継続する条件を満たしていない場合はエラーを暗号管理サーバ装置350及び上位システム151へ通知し処理を終了する。条件を満たしている場合は、暗号パッケージ情報から暗号モジュール308及び暗号評価記述ファイル309を分解し、暗号モジュールDB164及び暗号評価DB163へ登録する。暗号管理部166は、上位システム部151及び通信機能155を用いて暗号管理サーバ装置350へ完了結果を通知する(ステップS30)。暗号パッケージ配信制御部359は、通信機能356を通じて暗号クライアント装置150からの完了通知を受信し、通信切断を含む処理の完了処理を実行する(ステップS31)。
選定された暗号モジュールが当該暗号クライアント装置150内に存在しない場合に、暗号処理制御部156が上位システム部151を介さず、暗号管理部166へ暗号管理サーバ装置350から不足暗号モジュールを配信するよう暗号制御マネージャ部152内部で自動連携してもよい。暗号管理サーバ装置350から配信された暗号パッケージ情報の評価が処理を継続する条件を満たしていない場合は、エラーで処理終了ではなく、暗号管理サーバ装置350へエラー内容を踏まえた再配信処理を連続要求してもよい。
<第2の参考例>
第1の参考例では、最適な暗号方式の選定を、暗号クライアント装置が処理する場合について説明したが、第2の参考例は、暗号管理サーバ装置が最適な暗号方式の選定を主導で行う。すなわち、図4に示す暗号管理サーバ装置1350と複数の暗号クライアント装置1100と当該暗号クライアント装置1100に対応する暗号ハードウェア450とからなるシステム(以下、「第2の参考例における本システム」という)では、暗号管理サーバ装置1350が選定した暗号方式の結果情報をモジュール選定ポリシ記憶部110が管理および利活用するサーバ強連携機構である。特に、モジュール選定ポリシ記憶部110の計算能力が乏しい場合、暗号管理サーバ装置1350が演算支援することで、暗号クライアント装置1100内の応答パフォーマンスを向上させることができる。
具体的には、上位システム部1151からの要求に最適な暗号モジュール308の選定を暗号管理サーバ装置1350が実施し、暗号クライアント装置1100の暗号制御マネージャ部1152はその結果を受け取り、その要求条件と最適な暗号モジュール308との関係を当該装置内の暗号情報記憶部1600で管理する。暗号制御マネージャ部1152は、上位システム部1151からの要求とこの要求に最適な暗号モジュール308との関係に基づき、上位システム部1151からの暗号処理制御要求に応じた処理を行う。よって、第1の参考例と異なり、暗号クライアント装置1100は、暗号モジュール308の全選定機能や暗号モジュール308の選定に必要となる暗号パッケージ307の管理および暗号管理サーバ装置1350らの受信を必ずしも必要としない。
図4は、本発明の第2の参考例における本システムの概略構成を示すブロック図である。第2の参考例における本システムは、1個以上の暗号クライアント装置1100、1個以上の暗号ハードウェア450及び暗号管理サーバ装置1350を備えている。暗号ハードウェア450は、第1の参考例と同様である。ここで、暗号ハードウェア450は、1個の暗号クライアント装置1100につき、複数接続する形態でもよい。また暗号ハードウェア450を暗号クライアント装置1100内部に実装する形態でもよい。
図5は、暗号クライアント装置1100の構成を示すブロック図である。暗号クライアント装置1100は、上位システム部1151と、暗号制御マネージャ部1152と、暗号実装部1153と、通信機能1155とを備えている。また選定ポリシ1158は、安全性、処理速度、リソースに関する優先情報を設定したファイルである。上位システム部1151および暗号実装部1153は、第1の参考例と同様の構成・機能である。
暗号制御マネージャ部1152は、暗号処理制御部1156と、鍵管理部1162と、暗号情報記憶部1600と、暗号パッケージ管理部1166と、暗号ハードウェア管理制御部1170とを備えている。
暗号処理制御部1156は、上位システム部1151から暗号処理条件を含む暗号処理制御要求を受け付ける機能と、暗号情報記憶部1600を参照して暗号処理条件に紐づいた暗号実装部1153を特定する機能と、暗号処理実行タイミングに従って暗号実装部1153へ暗号処理を要求する機能と、当該暗号処理に対する暗号処理IDを発行して当該暗号処理に関する情報と関連付けて暗号情報記憶部1600に記憶させる機能と、暗号実装部1153からの暗号処理結果および当該暗号処理に関する暗号処理IDとを上位システム部1151へ出力する機能とをもっている。
鍵管理部1162は、上位システム部1151からの要求に従い、暗号情報記憶部1600の鍵情報DB1165への鍵情報の登録、削除、取得、検索、更新処理を行う機能と、暗号鍵の登録が正常に実施された場合に鍵IDを発行して当該登録処理に関する情報と関連づけて暗号情報記憶部1600に記憶させる機能と、各処理結果を場合により暗号処理IDや鍵IDを含めて上位システム部1151へ出力する機能をもっている。
暗号情報記憶部1600は、選定DB1601と、暗号モジュールリンクDB1602と、暗号モジュールDB1603と、鍵情報DB1165と、暗号処理DB1604とを記憶する機能を備えている。また、暗号情報記憶部1600は、鍵管理部1162や暗号処理制御部1156および暗号パッケージ管理部1166からの要求に従い、暗号情報記憶部1600が備える各DBを制御管理する機能をもっていることとしても良い。
選定DB1601のデータ構造は、図6に示す通りである。暗号モジュールリンクDB1602のデータ構造は、図7に示す通りである。暗号モジュールDB1603のデータ構造は、図8に示す通りである。鍵情報DB1165のデータ構造は、図9に示す通りである。暗号処理DB1604のデータ構造は、図10に示す通りである。図11に、暗号情報記憶部1600が備える各データベースの論理関係を示す。
暗号パッケージ管理部1166は、以下に説明する機能を有している。
まず、暗号パッケージ管理部1166は、上位システム部1151から入力された選定条件、選定ポリシ及びハードウェアプロファイルを含む情報を通信機能1155経由で暗号管理サーバ装置1350へ送信して得られる、選定された暗号パッケージ307のアルゴリズムID、 暗号評価記述ID、 暗号モジュールID及び推奨される鍵長情報を暗号情報記憶部1600に登録する機能を持っている。
また、暗号パッケージ管理部1166は、上位システム部1151から入力された選定条件を基に選定DB1601を特定して暗号化アルゴリズムから対応される鍵生成エンジンのアルゴリズムIDを特定する機能を持っている。
また、暗号パッケージ管理部1166は、暗号管理サーバ装置1350にて選定された鍵生成エンジンのアルゴリズムID、暗号評価記述ID及び暗号モジュールIDを暗号情報記憶部1600に登録する機能を持っている。
また、暗号パッケージ管理部1166は、上位システム部1151から入力された要求に基づき通信機能1155経由で暗号管理サーバ装置1350に対して最終初期登録日時および最終初期登録ドメインを入力として暗号パッケージ初期登録プロトコルを実行し、必要最低限の暗号パッケージ307を暗号管理サーバ装置1350からダウンロードして暗号情報記憶部1600に登録する機能を持っている。
また、暗号パッケージ管理部1166は、上位システム部1151から入力された選定条件、選定ポリシ、ハードウェアプロファイル及び端末内に保持する暗号パッケージ307のリストを含む情報を通信機能1155経由で暗号管理サーバ装置1350へ送信し、当該暗号管理サーバ装置1350にて選定された暗号パッケージ307の実体及びその付帯情報(アルゴリズムID、暗号評価記述ID、暗号モジュールID)を入手して暗号情報記憶部1600に登録する機能を持っている。
また、暗号パッケージ管理部1166は、暗号管理サーバ装置1350からの更新通知の通知先登録及び更新事象発生時に暗号制御マネージャ部1152が行うアクションのポリシ設定を行える機能を持っている。
また、暗号パッケージ管理部1166は、上位システム部1151から要求された内容と暗号制御マネージャ部1152に保持した最後の更新通知識別子に基づき通信機能1155経由で暗号管理サーバ装置1350と連携して暗号制御マネージャ部1152に保持している暗号パッケージ307の実体と暗号パッケージ307の選定ポリシと暗号パッケージ307の紐付けについて更新処理を実行する機能を持っている。
また、暗号パッケージ管理部1166は、上位システム部1151から要求された暗号パッケージ307の実体を暗号情報記憶部1600から削除して当該暗号パッケージ307に紐付けられた暗号情報記憶部1600が備える各データベースの関連付けを解除する機能を持っている。
また、暗号パッケージ管理部1166は、上位システム部1151から入力された移行先ドメイン情報、ハードウェアプロファイル及び当該装置内に保持する暗号パッケージ307のリストを含む情報を通信機能1155経由で暗号管理サーバ装置1350へ送信し、暗号管理サーバ装置1350にて選定された持ち出し規制の対象となる暗号パッケージ情報を取得して暗号クライアント装置1100内に保持する対象の暗号パッケージ307を削除する機能とをもっている。
暗号ハードウェア管理制御部1170は、暗号制御マネージャ部1152の各部からの要求に応じて通信機能1155経由で暗号ハードウェアへの通信制御を行う機能をもっている。
通信機能1155は、暗号パッケージ管理部1166や暗号ハードウェア管理制御部1170と相手通信装置または暗号ハードウェアとが相互に通信するための機能をもっている。
図12は、暗号管理サーバ装置1350の構成を示す機能ブロック図である。暗号管理サーバ装置1350は、サーバ上位システム部1380と、通信機能1356と、暗号管理サーバ制御部1352と、暗号パッケージ記憶部1355と、サーバ暗号制御マネージャ部1390とを備えている。
サーバ上位システム部1380は、暗号クライアント装置1100のサーバ上位システム部1380と同様の機能に加え、暗号管理に関するシステム管理者からの制御要求を暗号管理サーバ制御部1352に送信する機能とをもっている。
通信機能1356は、暗号管理サーバ制御部1352やサーバ暗号制御マネージャ部1390と相手通信装置、暗号ハードウェアまたは暗号ハードウェアの動作を模擬したシミュレータとが相互に通信するための機能をもっている。
暗号管理サーバ制御部1352は、暗号パッケージ管制部1359と、暗号パッケージ管理部1351と、暗号パッケージ配布構成部1370と、配布暗号パッケージ選定部1373とを備えている。
暗号パッケージ管制部1359は、サーバ上位システム部1380からの要求により暗号パッケージ307を登録する機能と、サーバ上位システム部1380からの要求により既に登録済みの暗号パッケージを更新する機能と、ベンダからの暗号パッケージ提供時に該当する暗号パッケージの出所の確認を行うためのベンダ認定認証子を検証する機能と、複数の単体型暗号評価記述部または複数の複合型暗号評価記述部を組み合わせて複合型暗号評価記述部を生成する機能と、暗号モジュールDB1355に登録されている暗号パッケージ307を検索および一覧を取得する機能と、サーバ上位システム部1380からの要求により暗号モジュール308及び関連する暗号パッケージ307を暗号モジュールDB1355から削除する機能と、暗号パッケージ記憶部1355に対して行った登録・更新・削除処理に対するログを出力する機能とをもっている。
暗号パッケージ管理部1351は、複数の暗号クライアント装置1100からの管制要求を同時に並行して処理する機能と、暗号パッケージ307の初期登録処理、配信処理、更新処理、選定処理、更新通知処理および暗号管理ドメイン移行処理を行う機能と、暗号クライアント装置1100と暗号管理サーバ装置1350との間でセキュリティ保護された通信路を確立するための機能と、当該暗号管理サーバ装置1350が管理するドメイン内に存在する暗号クライアント管理装置の状況を管理する機能と、暗号パッケージ307の初期登録処理、配信処理、更新処理、選定処理、更新通知処理および暗号管理ドメイン移行処理に対するログを生成する機能とをもっている。
暗号パッケージ配布構成部1370は、配布暗号パッケージ選定部1373で選ばれた暗号パッケージ307を暗号モジュールDB1355から取得する機能と、暗号モジュールDB1355に格納された各記述項目のデータをXMLといった暗号評価記述形式で構成して出力する機能と、暗号パッケージ官制部1359のセキュリティ通信で使用する鍵に関して指定のセキュリティ方式に応じてサーバ暗号制御マネージャ部1390に処理を依頼して鍵生成を行う機能と、暗号クライアント装置1100のIDや鍵のセキュリティ方式を含む情報を元に鍵に関する情報の管理を行う機能と、暗号管理サーバ装置1350の配布ポリシで定義されたセキュリティレベル及びセキュリティ方式に応じて暗号管理サーバ装置1350から暗号クライアント装置1100に対して送信する情報に対するデータ秘匿やデータ認証のセキュリティ処理を行う機能とをもっている。
配布暗号パッケージ選定部1373は、暗号パッケージ初期登録処理における初期登録判定、暗号方式の選択及び暗号パッケージ選択を行う機能と、暗号パッケージ配信処理における配信判定及び暗号パッケージの選択を行う機能と、暗号パッケージ更新処理における配信判定を行う機能と、暗号パッケージ更新処理における更新暗号リスト取得及び暗号パッケージの選択を行う機能と、暗号パッケージ選定処理における選択判定及び暗号パッケージ選択を行う機能と、暗号管理ドメイン移行処理のおける移動判定およびドメイン移動処理情報の生成を行う機能と、選定条件、選定ポリシ及びハードウェアポリシを満たす暗号パッケージを暗号パッケージ記憶部から検索する機能とをもっている。
暗号モジュールDB1355は、登録されている暗号モジュール308を記録管理する暗号モジュールDB1353と暗号評価記述ファイル309を記録管理する暗号評価DB1354とを備えている。
サーバ暗号制御マネージャ部1390は、暗号クライアント装置1100の暗号制御マネージャ部1152と同様の機能に加え、暗号管理サーバ制御部1352と連携して暗号管理サーバ装置1350内の暗号資産管理制御や他通信装置との暗号認証通信を行う機能をもっている。
ここで、本発明の第2の参考例による、暗号クライアント装置1100内で上位システム部1151からの暗号処理要求に対して、暗号処理制御部1156が最適な暗号モジュールを検索し、暗号処理を実行、暗号処理結果を上位システム部1151へ出力する暗号処理動作を示す。図27は、本発明の第2の参考例による暗号クライアント装置の暗号処理動作例を示す図である。図28は、第2の参考例による暗号クライアント装置の暗号処理フロー例を示す図である。
本発明の参考例による、暗号クライアント装置1100内で上位システム部1151からの暗号処理要求に対する暗号制御マネージャ部1152および暗号実装部1153の処理動作を以下に示す。上位システム部1151は、暗号処理の対象となるデータ及び暗号処理のカテゴリの識別子を含む暗号処理要求情報を入力として暗号処理制御部1156に暗号処理を要求する(ステップS41)。
暗号処理制御部1156は、上位システム部1151からの暗号処理要求に対する最適な暗号モジュールを選定DB1601から読み出す(ステップS42)。この時、選定DBに当該暗号処理要求に対する最適な暗号モジュールの選定情報が存在しない場合、上位システム部へエラー出力し、処理を終了する(ステップS43、ステップS50)。最適な暗号モジュールの選定情報が存在する場合、暗号処理制御部1156は、上位システム部1151からの暗号処理要求に応じた鍵情報を鍵情報DB1165から読み出す(ステップS44)。
選定された暗号モジュールが当該暗号クライアント装置1100に存在しない場合、上位システム部1151へエラーを出力し、処理を終了する(ステップS45、ステップS51)。選定された暗号モジュールが当該暗号クライアント装置1100に存在する場合、暗号処理制御部1156は、暗号モジュールリンクDB及び暗号モジュールDBから暗号モジュールリンク情報及び暗号モジュール情報を読み出し、当該暗号モジュールを暗号実装部1153としてメモリにロードする。
暗号処理制御部1156は、暗号実装部1153に上記鍵情報や上位システム部からの暗号処理対象データを入力して、暗号処理を依頼する(ステップS46)。暗号実装部1153は、暗号処理対象データに対する暗号処理結果を暗号処理制御部1156に出力する(ステップS47)。暗号処理制御部1156は、暗号処理の識別子を含む暗号処理条件情報を生成して暗号処理DB1604に記録する(ステップS48)。暗号処理制御部1156は、暗号処理制御部156は、暗号処理ID及び暗号処理対象データに対する暗号処理結果データを含む暗号処理結果情報を上位システム部1151に出力する(ステップS49)。
ステップS43において、選定DBに当該暗号処理要求に対する最適な暗号モジュールの選定情報が存在しない場合、上位システム部へエラー出力せずに、暗号管理サーバ装置1350に最適暗号モジュールの選定を依頼し、選定結果情報をダウンロードしてもよい。また、当該選定結果情報に記載された暗号モジュールが、当該暗号クライアント装置1100に存在しない場合、上位システム部へエラー出力せずに、暗号管理サーバ装置1350から当該暗号モジュールを当該暗号クライアント装置1100にダウンロードしてもよい。
選定DBに当該暗号処理要求に対する最適な暗号モジュールの選定情報が存在しない場合も含め、暗号クライアント装置1100は、上位システム要求と最適な暗号とを紐付ける情報を次のようにして関係DBに登録することができる。これにより、上位システムからの同一暗号処理要求に対する最適暗号の選定には暗号管理サーバ装置1350への接続が不要となる。本発明の第2の参考例による最適な暗号の問い合わせ処理を図29に示す。また本発明の第2の参考例による最適な暗号の問い合わせ処理フロー例を図30に示す。
上位システム部1151は、カテゴリの識別情報を含む選択条件に最適な暗号モジュールの選定を暗号パッケージ管理部1166に依頼する(ステップS61)。暗号パッケージ管理部1166は、上位システム部1151からの暗号選択依頼情報を基に通信機能1155を用いて暗号管理サーバ装置1350へ暗号選択要求を行う(ステップS62)。暗号選択要求には、例えば、カテゴリの識別子、暗号クライアント装置1100の暗号モジュール選定ポリシやハードウェアプロファイルに関する情報を含む。
暗号パッケージ管制部1351は、通信機能1356を通じて、暗号クライアント装置1100からの暗号選択要求依頼を受信する(ステップS63)。暗号パッケージ管制部1351は、暗号選択要求依頼に含まれているカテゴリの識別子、ハードウェアプロファイル、選定ポリシ情報を配布暗号パッケージ選定部1373に入力し、当該条件に合致する暗号パッケージの選定を依頼する(ステップS64)。
配布暗号パッケージ選定部1373は、暗号評価DB1354から必要な暗号評価記述ファイルを取得しながら、当該条件に合致する暗号パッケージの選定を実施し、選定された暗号評価記述ファイルの識別子一覧を出力する(ステップS65)。暗号パッケージ管制部1351は、出力された暗号評価記述ファイル数が0個である場合は終了、0個でない場合は選定結果に応じた暗号コンテナ送付の必要有無要求を、通信機能1356を用いて暗号クライアント装置1100に送信する(ステップS66)。
暗号パッケージ管理部1166は、暗号管理サーバ装置1350からの選定結果通知に応じて終了処理または選定結果に応じた暗号コンテナの送付依頼要求を行う(ステップS67)。暗号パッケージ管制部1351は、暗号クライアント装置1100から暗号コンテナの送付依頼を通信機能1356経由で受け取ると、次の処理を継続する(ステップS68)。暗号パッケージ管制部1351は、ステップS65で選定された暗号評価記述ファイルの識別子を入力として、対象となる暗号パッケージの作成を暗号パッケージ配布構成部1370に送付する(ステップS69)。
暗号パッケージ配布構成部1370は、暗号評価DB1354及び暗号モジュールDB1353から必要な情報を取得して暗号パッケージ情報を作成し、暗号パッケージ管制部1351に出力する(ステップS70)。暗号パッケージ管制部1351は、当該暗号パッケージ情報を通信セキュリティレベルに応じたセキュリティ保護処理を実施した暗号コンテナを作成し、通信機能経由1356で暗号クライアント装置1100に送信する(ステップS71)。暗号パッケージ管理部1166は、暗号コンテナ情報からセキュリティレベルに応じたセキュリティ保護解除や正当性認証を行い、必要な情報を選定DB1601及び暗号モジュールリンクDB1602に登録し、上位システムに処理結果を出力する(ステップS72)。
上記DB1601及び暗号モジュールリンクDB1602への選定結果登録後も含め、最適な暗号モジュールが当該暗号クライアント装置1100内部に存在しない場合には、次のような暗号配信処理にて対象暗号モジュールを暗号管理サーバ装置1350からダウンロードする。本発明の第2の参考例による暗号モジュールの配信動作を図31に示す。また本発明の第2の参考例による暗号モジュールの配信処理フロー例を図32に示す。
上位システム部1151は、暗号アルゴリズムの識別子を含む情報を入力として、暗号モジュールの配信要求を暗号パッケージ管理部1166に依頼する(ステップS81)。暗号パッケージ管理部1166は、上位システム部1151からの暗号パッケージ配信依頼情報を基に通信機能1155を用いて暗号管理サーバ装置1350へ暗号選択要求を行う(ステップS82)。
暗号配信要求は、例えば、暗号アルゴリズムの識別子、暗号クライアント装置1100の暗号モジュール選定ポリシやハードウェアプロファイルに関する情報を含む。暗号パッケージ管制部1351は、通信機能1356を通じて、暗号クライアント装置1100からの暗号配信要求依頼を受信する(ステップS83)。暗号パッケージ管制部1351は、暗号配信要求依頼に含まれている暗号アルゴリズムの識別子、ハードウェアプロファイル、選定ポリシ情報を配布暗号パッケージ選定部1373に入力し、当該配信要求に合致した暗号パッケージの選定を依頼する(ステップS84)。
配布暗号パッケージ選定部1373は、当該暗号クライアント装置1100のハードウェアプロファイルや選定ポリシを含む配信要求依頼情報を元に暗号評価DB1354から必要な暗号評価記述ファイルを取得しながら、当該条件に合致する暗号パッケージの選定を実施し、選定された暗号評価記述ファイルの識別子一覧を出力する(ステップS85)。
暗号パッケージ管制部1351は、出力された暗号評価記述ファイル数が0個である場合は終了、0個でない場合は配信評価結果に応じた暗号パッケージ送付の必要有無要求を、通信機能1356を用いて暗号クライアント装置1100に送信する(ステップS86)。暗号パッケージ管理部1166は、暗号管理サーバ装置1350からの配信評価結果通知に応じて終了処理または選定結果に応じた暗号コンテナの送付依頼要求を行う(ステップS87)。
暗号パッケージ管制部1351は、暗号クライアント装置1100から暗号パッケージの送付依頼を通信機能1356経由で受け取ると、次の処理を継続する(ステップS88)。暗号パッケージ管制部1351は、ステップ85で選定された暗号評価記述ファイルの識別子を入力として、対象となる暗号パッケージの作成を暗号パッケージ配布構成部1370に送付する(ステップS89)。
暗号パッケージ配布構成部1370は、暗号評価DB1354及び暗号モジュールDB1353から必要な情報を取得して暗号パッケージ情報を作成し、暗号パッケージ管制部1351に出力する(ステップS90)。暗号パッケージ管制部1351は、当該暗号パッケージ情報を通信セキュリティレベルに応じたセキュリティ保護処理を実施した暗号パッケージ情報を作成し、通信機能経由1356で暗号クライアント装置1100に送信する(ステップS91)。
セキュリティ保護処理は、暗号パッケージに対してMACを付与したり、暗号パッケージを暗号化して送信し暗号ハードウェア450の依頼復号機能を利用してもよい。暗号パッケージ管理部1166は、暗号パッケージ情報からセキュリティレベルに応じたセキュリティ保護解除や正当性認証を行い、必要な情報を暗号モジュールDB1603に登録し、上位システムに処理結果を出力する(ステップS92)。
上記暗号コンテナは、暗号管理サーバ装置1350から暗号クライアント装置1100に送り届ける暗号評価記述ファイルに関する情報や暗号モジュールといった暗号コンテンツにセキュリティ保護処理を施したデータ及びヘッダ情報を含む配信データ列である。セキュリティ保護処理には、暗号コンテンツの暗号化、ヘッダ情報及び暗号コンテンツに対するMAC(Message Authentication Code)付与、ヘッダ情報及び暗号化した暗号コンテンツに対するMAC付与といった手段が含まれる。ここで、セキュリティ保護処理として何も施さず、暗号コンテンツ自体にヘッダ情報を付与する形態でもよい。
前記セキュリティ保護処理に用いる暗号鍵の格納やセキュリティ保護処理そのものを暗号ハードウェア450で実行する形態でもよい。例えば、暗号ハードウェア管理制御部1170が暗号ハードウェア450に暗号化された暗号コンテンツを入力し、暗号ハードウェア450内部で復号処理を実行して出力した復号した暗号コンテンツを取得する実装がある。暗号コンテナのヘッダ情報は、例えば、暗号コンテンツの種別、送信する暗号モジュールの数、送信データサイズである。
<第1の実施形態>
次に、上述したシステムにおいて、端末側において利用するソフトウェアモジュールに不具合が発見された場合に、代替のソフトウェアモジュールが完成するまでの間、他のソフトウェアモジュールを提供するシステムについて説明する。
第1の実施形態によれば、第1の参考例と第2の参考例とで行う暗号モジュール308や暗号パッケージ307などの更新を、より安全に処理することができる。なお、本実施形態による更新対象は暗号パッケージ307に限るものでなく、あらゆるソフトウェアモジュールの更新処理に用いることができる。すなわち、コンピューティングデバイスにおいて既に実行中・利用中であるソフトウェアモジュールに脆弱性などの不具合が発覚した際に、その不具合を解消した修正版モジュールを配信して提供するものであれば、ソフトウェアモジュールは暗号モジュール308などでなくとも良い。
第1の実施形態は、使用するソフトウェアモジュールを選定する機能において、不具合が発見されたソフトウェアモジュールよりも優等な判定が得られるソフトウェアモジュールを、その評価指標とともに配布する実施形態である。これによりどのソフトウェアモジュールに不具合が発見されたかを秘匿したまま、該ソフトウェアモジュールの使用を停止させることで、不具合を利用した攻撃を防止する効果がある。
図13は、本実施形態におけるソフトウェアモジュール管理装置301の構成を示す図である。ソフトウェアモジュール管理装置301は、記憶部310と、第1の配信部311と、第2の配信部312とを備えている。
記憶部310には、例えば、ソフトウェアモジュールAと、ソフトウェアモジュールAと同様の機能を有するソフトウェアモジュールBと、それらに対応する評価指標とが記憶されている。
第1の配信部311は、例えば、ソフトウェアモジュールに不具合が発生した際に、該ソフトウェアモジュールを利用するコンピューティングデバイス100に、該ソフトウェアモジュールの代替モジュールを送信し、コンピューティングデバイス100のソフトウェアモジュールを切り替える。
また、第2の配信部312は、例えば、上記代替モジュールを利用中のコンピューティングデバイス100に、上記不具合の発生したソフトウェアモジュールの修正版を送信し、コンピューティングデバイス100のソフトウェアモジュールを切り替える。
次に、本実施形態におけるコンピューティングデバイス100の機能モジュールの概略構成を図14に示す。コンピューティングデバイス100は、中央演算装置101と、記憶装置102と、オペレーティングシステムモジュール103と、モジュール選定モジュール104と、更新可能ソフトウェアモジュール105と、ネットワーク接続部106と、モジュール選定ポリシ記憶部110とを備えており、それぞれが、論理的なバス107により接続されている。更新可能ソフトウェアモジュール105は、複数のソフトウェアモジュールを表す。ネットワーク接続部106は、ネットワーク108に接続される。モジュール選定モジュール104は、モジュール選定ポリシ記憶部110に記憶された選定基準を参照して、目的の用途に合致する適切なソフトウェアモジュール105を選択する。選定基準は、例えば、使用リソース量、処理の速さなどの1以上の項目について下限と上限が指定された情報である。
モジュール選定モジュール104は、モジュール選定ポリシ記憶部110から選定基準情報を読み出して、選定基準情報と、更新可能なソフトウェアモジュール203に含まれる評価指標とを比較し、選定基準情報の条件を満たす評価指標に対応する実行可能なソフトウェアモジュール201を検出する。
本実施形態における配布される更新可能ソフトウェアモジュールの概略構成を図15に示す。配布される更新可能ソフトウェアモジュール203は、実行可能ソフトウェアモジュール201と評価指標202から構成される。評価指標202は、対応するソフトウェアモジュール201の評価情報が記憶された情報であり、例えば、XML形式で評価情報が表されたデータファイルである。評価指標202には、評価に使用可能な指標である、使用リソース量211、処理の速さ212、処理内容213、用途214、利用期間215などの情報が格納されている。また、評価指標202は、対応する実行可能なソフトウェアモジュール201の識別情報を格納していることとしても良い。
使用リソース量211は、例えば、対応する実行可能なソフトウェアモジュール201が動作するときの必要メモリ量などのリソース情報を数値化した情報である。処理の速さ212は、例えば、対応する実行可能なソフトウェアモジュール201が動作する際の計算量が数値化された情報である。処理内容213は、例えば、実行可能なソフトウェアモジュール201のアルゴリズムの動作処理内容を示す情報である。用途214は、例えば、対応する実行可能なソフトウェアモジュール201の処理用途が予め定められたカテゴリの識別情報などでも良い。利用期間215は、例えば、対応する実行可能なソフトウェアモジュール201の利用保証期間を示す情報である。
なお、評価指標202が含むこれらの情報は例示であり、評価に使用可能な指標であれば内容は制約されない。評価指標202は、モジュール選定モジュール104と実行可能なソフトウェアモジュール201とに基づいて利用される。
本発明の実施の形態におけるコンピューティングデバイスの代表的なハードウェア構成例を図17に示す。コンピューティングデバイス400において、ROM401、RAM402、書き換え可能な不揮発メモリ403は、バス406を介してCPU404と相互に接続される。バス406はI/O405を介して、外部記憶装置407、記憶媒体読み込み装置408、ネットワークインターフェース410に接続される。コンピューティングデバイスの外部に位置する記憶媒体409は記憶媒体読み込み装置408により読み込み可能である。ネットワークインターフェース410はコンピューティングデバイスの外部に位置するネットワーク411と接続可能である。
本発明の実施の形態における更新可能なソフトウェアモジュールの配布の概略構成を図16に示す。ソフトウェアモジュール管理装置301は、ネットワーク302を介して、複数のコンピューティングデバイス303、コンピューティングデバイス304、コンピューティングデバイス305にソフトウェアモジュール320を配布する。ネットワーク302を介して配布されるソフトウェアモジュール320は、必要に応じて、暗号化または電子署名等の従来技術により保護・秘匿されて配布されてもよい。また、本実施形態例では、該配布されるソフトウェアモジュール320は、図15における実行可能なソフトウェアモジュール201と評価指標202のいずれかもしくは両方の組み合わせでも良い。
また、本実施形態では、ネットワーク302を介した配布を例示したが、この例示に制限されない。ソフトウェアモジュール320の配布であれば、任意の形態の記憶媒体や入力装置であっても同様の目的が達せられることは、当業者にとって容易に類推可能であろう。
本実施形態の動作例の説明に先立ち、従来技術による修正ソフトウェアモジュールの配布と利用開始の動作例を時系列にて図18に示す。時間の経過500は図の左から右に流れる。すなわち、左端が過去の時点であり、右端が現在および未来の時点に対応する。ステップS501でソフトウェアモジュールの不具合が判明したならば、該ソフトウェアモジュールの開発元はステップS502で修正モジュール開発を開始し、ステップS503で修正モジュール配布を開始する。不具合を利用する攻撃者はステップS503で配布が開始された修正ソフトウェアモジュールを入手し、ステップS504で修正内容の解析を開始する。その後、攻撃者は解析結果を用いてステップS505で不具合を利用した攻撃を開始する。あるコンピューティングデバイスにおいて、ステップS503で配布が開始された修正モジュールの利用が開始されるのがステップS506であるとすると、ステップS505からステップS506の間が、脆弱期間として、該不具合修正の内容に関する攻撃可能な期間となる。
本実施形態による修正ソフトウェアモジュールの配布と利用開始の動作例を時系列にて図19に示す。時間の経過600は図の左から右に流れる。
例えば、コンピューティングデバイス303の更新可能なソフトウェアモジュール105に含まれるソフトウェアモジュールAであって、実行可能状態であるソフトウェアモジュールAが実行中であるとする。ステップS601で、ソフトウェアモジュールAの不具合が判明すると、例えば、ソフトウェアモジュールAの提供元であるベンダが、ソフトウェアモジュールAの修正モジュールであるソフトウェアモジュールA´の開発を開始する(ステップS602)。
そして、ソフトウェアモジュール管理装置301の第1の配信部311は、ステップS601よりも後の時点であるステップS603において、ソフトウェアモジュールAの代替モジュールであって、記憶部310に予め記憶されているソフトウェアモジュールBの配布を開始する。ここで、ソフトウェアモジュールBはソフトウェアモジュールAと同様の機能を持つが異なるアルゴリズムが実装されたモジュールとする。すなわち、第1の配信部311は、不具合の判明したソフトウェアモジュールAを利用するコンピューティングデバイス100に、代替モジュールであるソフトウェアモジュールBを配布し、それとともに、利用中のソフトウェアモジュールAをソフトウェアモジュールBに切り替える命令である代替モジュール切り替え命令を送信する。
コンピューティングデバイス100の中央演算装置101は、ネットワーク接続部106を介して、代替モジュールであるソフトウェアモジュールBと、代替モジュール切り替え命令を受信する。すると、コンピューティングデバイス100に予め記憶されたモジュール選定モジュール104が、実行中のソフトウェアモジュールAを、ソフトウェアモジュールBに切り替える。ここで、「切り替える」とは、例えば、ソフトウェアモジュールAが提供していた機能サービスを、ソフトウェアモジュールBが提供するようにすることであり、具体的には、機能サービスの演算を実行する実行ファイル等を置き換えて、さらに、例えば機能サービスを再起動して、各ソフトウェアモジュール間の連携関係を再構築させることをいう。
ベンダが修正モジュールであるソフトウェアモジュールA´の開発を完了し、記憶装置310に当該ソフトウェアモジュールA´を記憶すると(ステップS604)、第2の配信部312が、ソフトウェアモジュールA´の配布を開始する(ステップS605)。すなわち、第2の配信部312は、ソフトウェアモジュールA´と、修正モジュール切り替え命令とを、コンピューティングデバイス100に送信する。コンピューティングデバイス100が、ソフトウェアモジュールA´と修正モジュール切り替え命令とを受信すると、モジュール選定モジュール104が、実行中のソフトウェアモジュールBをソフトウェアモジュールA´に切り替える(ステップS606、S607)。
このようにすれば、代替モジュールが配布開始されたステップS603以降では、従来使用されていた不具合を含むソフトウェアモジュールの利用は停止されている。また、図18で示した従来技術によるステップS503の修正モジュール配布とは異なり、ステップS603で配布された代替モジュールには不具合修正の内容が含まれていないため、攻撃者に不具合の手がかりを与えてしまう危険が廃される効果がある。
なお、代替モジュールの配布開始(ステップS603)を不具合判明時点(ステップS601)よりも後になっているが、このS603の処理はS601よりも前の時点であっても構わない。具体的には、代替モジュールを事前にコンピューティングデバイス100に予め配布しておくことで、万が一不具合が発生した場合に当該代替モジュールをすぐに使用可能とすることで緊急事態を回避することができる。
<第2の実施形態>
第2の実施形態は、コンピューティングデバイス100のモジュール選定モジュール104が、使用する更新可能なソフトウェアモジュール105から実行する更新可能なソフトウェアモジュールを選定する機能において、不具合が発見されたソフトウェアモジュールよりも他の不具合を含まないソフトウェアモジュールが優位な判定が得られるよう、更新されたモジュール選定ポリシを配布する方法である。コンピューティングデバイス100のネットワーク接続部106が新たなモジュール選定ポリシを受信すると、中央演算装置101が、新たなモジュール選定ポリシをモジュール選定ポリシ記憶部110に記憶させる。そして、モジュール選定モジュール104は、更新可能なソフトウェアモジュール105で実行中のソフトウェアモジュールを、新たなモジュール選定ポリシに従って選定しなおし、選定されたソフトウェアモジュールを実行状態にさせる。
このようにすれば、結果としてどのソフトウェアモジュールに不具合が発見されたかを秘匿したまま、該ソフトウェアモジュールの使用を停止させ、不具合を利用した攻撃を防止する効果がある。
本発明の実施の形態において、図16においてソフトウェアモジュール320は、モジュール選択ポリシを含むこととする。モジュール選択ポリシは、ソフトウェアモジュール管理装置301からネットワーク302を介してコンピューティングデバイス303、304、305に配布される。そして、図14に示すコンピューティングデバイス100のモジュール選定ポリシ記憶部110に、配布されたモジュール選定ポリシが記憶される。新しいモジュール選定ポリシは、ステップS601で不具合が判明したソフトウェアモジュールに対応する評価指標202よりも厳しい条件が設定されていることとする。すなわち、不具合が判明したソフトウェアモジュールの使用リソース量211には、「100KB」が設定されているとすると、「使用リソース量が100KBより小さいこと」を条件情報として含む新しいモジュール選定ポリシが配布される。そして、モジュール選定モジュール104が、新しいモジュール選定ポリシに従って更新可能なソフトウェアモジュール105で動作するソフトウェアモジュールを新たなソフトウェアモジュールに更新すれば、不具合が判明したソフトウェアモジュール以外のソフトウェアモジュールが選定され、実行状態になる。
このように、不具合により利用を停止したいソフトウェアモジュールを含む1つ以上のソフトウェアモジュールではなく、たとえば古いバージョンである従来からコンピューティングデバイスに格納されていた不具合を含まないソフトウェアモジュールを選択するように調整された内容の評価指標202を含む。
本実施形態においては、運用者は不具合が発見されていない場合であっても、一定の有効期限が定められた評価指標を定期的あるいは不定期に配布し更新することにより、選定基準に用いられる評価指標の配布をもって不具合の発生を類推することが困難となり、システム全体の安全性を高められる。
<第3の実施形態>
第3の実施形態は、第1および第2の実施形態において、代替モジュールの使用の終了をサーバから各コンピューティングデバイスに通知する。
これにより、代替モジュールの利用期間を任意のタイミングで終了させることができ、修正モジュールの配布と適用完了状況を鑑みつつ、修正モジュールの使用開始時期を任意に選択できる。
<第4の実施形態>
第4の実施形態は、使用するソフトウェアモジュールを選定する機能において、不具合が発見されたソフトウェアモジュールよりも他の不具合を含まないソフトウェアモジュールが優位な判定が得られるよう、該選定機能のソフトウェアモジュールを変更する方法である。結果としてどのソフトウェアモジュールに不具合が発見されたかを秘匿したまま、該ソフトウェアモジュールの使用を停止させ、不具合を利用した攻撃を防止する効果がある。
本発明の実施の形態において、図16において選定機能のソフトウェアモジュール320はモジュール選定モジュール104を含むこととし、モジュール選定モジュール104がサーバ301からネットワーク302を介してコンピューティングデバイス303、304、305に配布される。図14に示す該コンピューティングデバイスにおいて、選定モジュール104が配布された新しい選定モジュールで更新される。
新しいモジュールは不具合により利用を停止したいソフトウェアモジュールを含む1つ以上のソフトウェアモジュールではなく、たとえば古いバージョンである従来からコンピューティングデバイスに格納されていた不具合を含まないソフトウェアモジュールを選択する。
本発明の実施の形態においては、運用者は不具合が発見されていない場合であっても、選定モジュールの定期的あるいは不定期な更新を行うことにより、選定モジュールの更新をもって不具合の発生を類推することが困難となり、システム全体の安全性を高められる。
<第5の実施形態>
第5の実施形態は、本発明の実施の形態として、更新するソフトウェアモジュールを暗号処理のソフトウェアモジュールに限定する方法である。暗号処理はデータの秘匿あるいは電子署名による完全性保証などを目的とする数多くのアルゴリズムが存在し、任意に選択可能である。あるアルゴリズムについて実装上の不具合ではなく、アルゴリズムそのものが危殆化した場合、第1から第4の実施形態で示したそれぞれにより、特にシステムの安全性を高める効果がある。
以上説明したように、本発明によれば、従来の手法で課題とされていた、不具合を修正する新規のソフトウェアモジュールから得た情報を用いて、新規のソフトウェアモジュールをまだ適用していないコンピューティングデバイスに対する不具合を悪用した攻撃の脅威を低減できる。
また、本発明は、同一の機能を目的とするソフトウェアモジュールが複数のベンダから供給される場合において、あるベンダのソフトウェアモジュールに不具合が発見された場合に、同一の機能を供する複数のベンダのソフトウェアモジュールを代替するソフトウェアモジュールを配布する。利用する機器においては、ソフトウェアモジュールの選定機能により、目的の機能に対応したソフトウェアモジュールが選択される。第2の実施形態では、選定の基準となる指標が従来のソフトウェアモジュールよりも優等となるように調整したソフトウェアモジュールを配信する。別の実施形態は、選定方法の基準を変更する指示を配信し、新たに配布したソフトウェアモジュールが従来のソフトウェアモジュールを代替する。いずれの実施形態においても、運用者またはソフトウェアモジュール開発者が、適切な配布期間が経過し、代替のソフトウェアモジュールがコンピュータデバイスに適切に配布し終った後に、不具合を修正するソフトウェアモジュールを配布し有効化する。
以上説明した参考例および実施の形態は典型例として挙げたに過ぎず、その変形およびバリエーションは当業者にとっては明らかであり、当業者であれば本発明の原理および請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。
以上説明した参考例および実施の形態では、ネットワーク接続可能なコンピューティングデバイスをもって説明したが、本発明は、パーソナルコンピュータ、タブレットコンピュータ、ノート型コンピュータ、携帯情報端末、みにコンピュータおよびメインフレームコンピュータ、携帯電話機、無線通信装置、あるいは携帯電話機と携帯情報端末を組み合わせたハイブリッド型コンピューティングデバイスなど、多種類のコンピュータ、コンピューティングデバイス、あるいはコンピューティングシステムにおけるソフトウェアモジュールの配布のために実施され得る。
以上、この発明の参考例および実施形態について図面を参照して詳述してきたが、具体的な構成はこの参考例および実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりソフトウェアモジュールの配布を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。