(57)【要約】【課題】  クライアント側に暗号鍵管理機構などを組み込むことなく、前記ソフトウェアの不正使用を防止するソフトウェア配布システムを提供することを目的とする。【解決手段】  ネットワークに接続した状態で、ソフトウェアの暗号化と配布および更新、ならびにダウンロードしたソフトウェアの復号化を行うことにより、ソフトウェアの使用に関するユーザの権限を一貫して管理する。【選択図】        図１
2005209072.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されたサーバ／クライアント型のシステムであって、
ユーザの認証を行う認証手段を有するクライアントが送信する認証情報を、認証手段を有するサーバに送信し前記サーバから返された値によりアプリケーションへのアクセス権を制御するアクセス権制御手段と、
暗号鍵／復号鍵を生成／管理し、復号鍵問合せ手段を有するクライアントの要求に対応する復号鍵で応答する鍵管理手段と、
前記アクセス権と前記暗号鍵に基づいてソフトウェアを暗号化して配布する配布手段を備えるサーバと、
前記鍵管理手段に要求して、暗号化したソフトウェアを復号化するための復号鍵を取得する復号鍵問合せ手段と、
前記復号鍵でソフトウェアを復号化し起動する起動手段と、
を備えるクライアントから成ることを特徴とするソフトウェア配布システム。
【請求項２】
請求項１に記載のソフトウェア配布システムであって、
前記鍵管理手段が生成／管理する暗号鍵と復号鍵が同一の秘密鍵であることを特徴とするソフトウェア配布システム。
【請求項３】
請求項１に記載のソフトウェア配布システムであって、
前記鍵管理手段が生成／管理する暗号鍵と復号鍵が公開鍵暗号系における秘密鍵と公開鍵のペアであることを特徴とするソフトウェア配布システム。
【請求項４】
請求項３に記載のソフトウェア配布システムであって、
前記鍵管理手段が公開鍵暗号システムにおける認証局であることを特徴とするソフトウェア配布システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの配布と更新、ダウンロードしたソフトウェアの起動に関するユーザ認証とそれに基づく権限を一貫して管理できるソフトウェア配布システムに関する。
【背景技術】
【０００２】
インターネット等のネットワークに接続されたサーバ／クライアント型システムであって、ソフトウェアおよび関連するライブラリファイルの自動配布を行うソフトウェア配布システムが存在する。また、サーバ／クライアントで秘密鍵／公開鍵ペアを保持し、ソフトウェアの不正使用や使用回数制限を行うソフトウェア配布システムが存在する（例えば、特許文献１参照。）。
【特許文献１】特開平９−７３３３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のソフトウェア配布システムでは、クライアント側に一度ダウンロードしたソフトウェアは、ネットワークに接続していなくても実行することが可能であった。このため、配布時にユーザ認証等による配布制限を行っても、当該ソフトウェアを容易に複製して起動することが可能であった。一方、前記ソフトウェアの不正使用を防止するには、当該ソフトウェアを暗号化する方法が有効であるが、クライアント側に暗号鍵管理機構や暗号鍵検証機構などを組み込む必要があった。
【０００４】
そこで本発明では、ネットワークに接続した状態で、ソフトウェアの暗号化と配布および更新、ならびにダウンロードしたソフトウェアの復号化を行うことにより、ソフトウェアの使用に関するユーザの権限を一貫して管理するとともに、クライアント側に暗号鍵管理機構などを組み込むことなく、前記ソフトウェアの不正使用を防止するソフトウェア配布システムを提供しようとするものである。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明にかかるソフトウェア配布システムは、以下（１）〜（４）の構成を備える。
【０００６】
（１）ネットワークに接続されたサーバ／クライアント型のシステムであって、
ユーザの認証を行う認証手段を有するクライアントが送信する認証情報を、認証手段を有するサーバに送信し前記サーバから返された値によりアプリケーションへのアクセス権を制御するアクセス権制御手段と、
暗号鍵／復号鍵を生成／管理し、復号鍵問合せ手段を有するクライアントの要求に対応する復号鍵で応答する鍵管理手段と、
前記アクセス権と前記暗号鍵に基づいてソフトウェアを暗号化して配布する配布手段を備えるサーバと、
前記鍵管理手段に要求して、暗号化したソフトウェアを復号化するための復号鍵を取得する復号鍵問合せ手段と、
前記復号鍵でソフトウェアを復号化し起動する起動手段と、
を備えるクライアントから成ることを特徴とするソフトウェア配布システム。
【０００７】
（２）前記（１）に記載のソフトウェア配布システムであって、
前記鍵管理手段が生成／管理する暗号鍵と復号鍵が同一の秘密鍵であることを特徴とするソフトウェア配布システム。
【０００８】
（３）前記（１）に記載のソフトウェア配布システムであって、
前記鍵管理手段が生成／管理する暗号鍵と復号鍵が公開鍵暗号系における秘密鍵と公開鍵のペアであることを特徴とするソフトウェア配布システム。
【０００９】
（４）前記（３）に記載のソフトウェア配布システムであって、
前記鍵管理手段が公開鍵暗号システムにおける認証局であることを特徴とするソフトウェア配布システム。
【発明の効果】
【００１０】
ソフトウェアの配布や更新を行うソフトウェア配布システムにおいて、ネットワークに接続した状態で、ソフトウェアの暗号化と配布および更新、ダウンロードしたソフトウェアの復号化を行うことにより、ソフトウェアの使用に関するユーザの権限を一貫して管理するとともに、前記ソフトウェアの不正使用を防止するソフトウェア配布システムを提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明にかかる一実施形態のソフトウェア配布システムについて図面を参照して詳細に説明する。
【実施例】
【００１２】
図１は、本発明の実施形態におけるソフトウェア配布システム構成図である。図１において、１０１はネットワーク１０５を介してソフトウェア管理クライアント１０２にソフトウェアを配布するソフトウェア管理サーバである。ネットワーク１０５は、ＴＣＰ／ＩＰを通信プロトコルとするイントラネットであると仮定し、ソフトウェア管理サーバ１０１、ソフトウェア管理クライアント１０２、認証サーバ１０３は、ＴＣＰ／ＩＰ上で相互に通信可能であるとする。
【００１３】
認証手段１０９は、ユーザがソフトウェア管理クライアント１０２を起動したときに認証情報１１７が存在しているかを確認し、存在していない場合はソフトウェア管理サーバ１０１にアクセスしてユーザ認証を行う手段である。認証手段１１３は、ソフトウェア管理サーバ１０１が認証サーバ１０３にアクセスすると起動し、ソフトウェア管理クライアント１０２にログインフォーム１１８を送信する手段である。ソフトウェア管理クライアント１０２の表示デバイス１２０上にログインフォームが表示されると、ユーザは入力デバイス１２１を用いてユーザＩＤとパスワードを入力し、認証サーバ１０３に送信する。認証手段１１３は、送信されたユーザＩＤとパスワードの整合性をユーザリスト１１９の情報を元に確認する手段である。アクセス権制御手段１０６は、認証サーバ１０３から送信されたユーザＩＤのソフトウェアに対するアクセス権をアクセス権リスト１１５から抽出し、ソフトウェアへのアクセスを制御する手段である。鍵管理手段１０７は、ソフトウェアのダウンロード時に配布手段１０８によって起動され、新たな暗号鍵／復号鍵を生成するとともに、それを記録し、復号鍵問合せ手段１１０の要求に対して対応した復号鍵で応答する手段である。配布手段１０８は、ソフトウェア情報ファイル１１４およびソフトウェア情報ファイル１１４に記述されたソフトウェアを構成する各ファイルを暗号化してソフトウェア管理クライアント１０２に配布する手段である。復号鍵問合せ手段１１０は、ソフトウェア情報ファイル１１６を元に、ダウンロードした各ファイルを復号化するための復号鍵を鍵管理手段１０７に問合わせ、対応する復号鍵を取得する手段である。起動手段１１１は、各ファイルを復号化しながらソフトウェアを実行する手段である。
【００１４】
図２〜図７は、ユーザがソフトウェア管理クライアントを起動してから、ソフトウェアを終了するまでのフローチャート図である。以下、詳細に説明する。
【００１５】
［Ｓｔｅｐ１−１］
ユーザがソフトウェア管理クライアントを起動し、実行するソフトウェアをソフトウェア管理サーバに要求する。
【００１６】
［Ｓｔｅｐ１−２］
ソフトウェア管理クライアントは認証手段を起動し、認証手段は次の処理を実行する。以下、図３を用いて説明する。
【００１７】
［Ｓｔｅｐ１−２−１］
ソフトウェア管理クライアントに認証情報が存在するか確認する。存在する場合は、Ｓｔｅｐ１−３に進む。存在しない場合は、Ｓｔｅｐ１−２−２に進む。今、認証情報は存在しないものとして、Ｓｔｅｐ１−２−２に処理を進める。
【００１８】
［Ｓｔｅｐ１−２−２］
ソフトウェア管理サーバにアクセスする。
【００１９】
［Ｓｔｅｐ１−２−３］
ソフトウェア管理サーバは認証サーバにアクセスする。
【００２０】
［Ｓｔｅｐ１−２−４］
認証サーバはログインフォームをソフトウェア管理クライアントに送信する。
【００２１】
［Ｓｔｅｐ１−２−５］
ソフトウェア管理クライアントはログインフォームを表示デバイス上に表示する。今、ログインフォームは図７のような構成で表示されているものとする。
【００２２】
［Ｓｔｅｐ１−２−６］
ユーザはログインフォーム中のテキスト入力部にユーザＩＤとパスワードを入力し、送信ボタンを選択し、入力したデータを認証サーバに送信する。今、ユーザは以下のデータを入力したものとする。
｛ユーザＩＤ，パスワード｝＝｛ｔｅｚｕｋａ，ｃａｎｏｎ｝
【００２３】
［Ｓｔｅｐ１−２−７］
認証サーバは、ユーザリストからユーザＩＤと一致するＩＤを持つレコードを抽出する。今、ユーザリストには図８に示すようなデータが保存されているものとする。
【００２４】
［Ｓｔｅｐ１−２−８］
ユーザＩＤとパスワードが一致するレコードが存在するならば、ユーザＩＤをソフトウェア管理サーバに送信する。存在しないならば、エラーメッセージをソフトウェア管理クライアントに送信し、処理を終了する。今、ユーザＩＤとパスワードが一致するレコードが存在したものとし、ユーザＩＤをソフトウェア管理サーバに送信する。
【００２５】
［Ｓｔｅｐ１−３］
ソフトウェア管理サーバは、アクセス権制御手段を起動する。起動されたアクセス権制御手段は、認証サーバから送信されたユーザＩＤのソフトウェアに対するアクセス権をアクセス権リストから抽出し、ソフトウェアへのアクセス権があるか判定する。アクセス権がない場合、エラーメッセージをソフトウェア管理クライアントに送信し、処理を終了する。アクセス権がある場合、Ｓｔｅｐ１−５に進む。今、要求したソフトウェアに対するアクセス権があったものとする。
【００２６】
［Ｓｔｅｐ１−５］
ソフトウェア管理サーバは配布手段を起動し、配布手段は次の処理を実行する。
【００２７】
［Ｓｔｅｐ１−５−１］
ソフトウェア管理サーバはソフトウェア情報ファイルから、ソフトウェアの実行に必要なファイルセットを特定する。今、以下のデータが抽出されたものとする。
【００２８】
2005209072.tif 000003
【００２９】
これは、要求したソフトウェアが実行するのに必要なファイルは、”／ｓｏｆｔｗａｒｅ／ａｒｃｈｉｖｅ”ディレクトリにある”ｓｏｆｔｗａｒｅ１−１．０．ｊａｒ”ファイル、”／ｓｏｆｔｗａｒｅ／ｌｉｂ”ディレクトリにある”ｌｉｂ１．ｊａｒ”ファイルと”ｌｉｂ２．ｊａｒ”ファイルであることが示されている。
【００３０】
［Ｓｔｅｐ１−５−２］
ソフトウェア管理サーバは、抽出したデータを記述したソフトウェア情報ファイルをソフトウェア管理クライアントに送信する。
【００３１】
［Ｓｔｅｐ１−５−３］
ソフトウェア管理クライアントは、保存ディレクトリにソフトウェア情報ファイルが存在するか確認する。存在する場合はＳｔｅｐ１−５−４に進む。存在しない場合はＳｔｅｐ１−５−６に進む。今、以下の内容が記述されたソフトウェア情報ファイルが存在したものとして、Ｓｔｅｐ１−５−４に進む。
【００３２】
2005209072.tif 000004
【００３３】
［Ｓｔｅｐ１−５−４］
ソフトウェア管理クライアントは、Ｓｔｅｐ１−５−２で送信されたソフトウェア情報ファイルと保存ディレクトリにあるソフトウェア情報ファイルのバージョン情報を比較する。ソフトウェア管理クライアントにあるバージョン情報のほうが古い場合、Ｓｔｅｐ１−５−６に進む。バージョン情報が等しい場合Ｓｔｅｐ１−５−５に進む。今、両者のバージョン情報は等しいので、Ｓｔｅｐ１−５−５に進む。
【００３４】
［Ｓｔｅｐ１−５−５］
ソフトウェア管理クライアントは、ソフトウェア情報ファイルに記述されたファイルセットが保存ディレクトリに存在するか確認する。全て存在する場合はＳｔｅｐ１−６に進む。少なくともひとつのファイルが存在しない場合は、Ｓｔｅｐ１−５−６に進む。
【００３５】
［Ｓｔｅｐ１−５−６］
ソフトウェア管理クライアントは、ダウンロードが必要なファイルセットを、ソフトウェア管理サーバに要求する。
【００３６】
［Ｓｔｅｐ１−５−７］
配布手段は、鍵管理手段を起動し、鍵管理手段は以下の処理を実行する。
【００３７】
［Ｓｔｅｐ１−５−７−１］
新しい暗号鍵と復号鍵を生成し、鍵対応表に記録する。今、図のような鍵対応表があって、ユーザＩＤｔｅｚｕｋａのソフトウェアｓｏｆｔｗａｒｅ１について、共通の秘密鍵ｋｅｙ−１が生成されたとすると、以下のようなレコードが鍵対応表に挿入される。
【００３８】
2005209072.tif 000005
【００３９】
但し、ユーザＩＤ，ソフトウェア名，バージョンおよびファイルパスの各値が全て一致するレコードが既に鍵対応表に存在する時は、当該レコードを置換する。つまり、今、図のような鍵対応表があったとすると、第３行目のレコードは上記（ａ）のレコードで置換される。
【００４０】
［Ｓｔｅｐ１−５−８］
配布手段は、Ｓｔｅｐ１−５−７−１で生成された暗号鍵で要求されたファイルセットを暗号化し、ソフトウェア管理クライアントに送信する。
【００４１】
［Ｓｔｅｐ１−５−９］
Ｓｔｅｐ１−５−８で送信されたソフトウェアに必要なファイルセットを、ソフトウェア保存ディレクトリに保存する。今、以下の場所にファイルセットを保存したものとする。
【００４２】
2005209072.tif 000006
【００４３】
［Ｓｔｅｐ１−６］
ソフトウェア管理クライアントは起動手段を起動し、起動手段は以下の処理を実行する。
【００４４】
［Ｓｔｅｐ１−６−１］
ソフトウェア情報ファイルに記述されたファイルセットについて、復号鍵問合せ手段を起動し、復号鍵問合せ手段は以下の処理を実行する。
【００４５】
［Ｓｔｅｐ１−６−１−１］
ソフトウェアを構成する各ファイルについて、ソフトウェア管理サーバに復号鍵を要求する。今、ユーザＩＤｔｅｚｕｋａがソフトウェアｓｏｆｔｗａｒｅ１について復号鍵を要求するとすると、問合せレコードは以下のようになる。
【００４６】
2005209072.tif 000007
【００４７】
上記レコードは、ユーザＩＤ，ソフトウェア名，バージョンおよびファイルパスを検索キーとして、鍵対応表を検索することを意味している。
【００４８】
［Ｓｔｅｐ１−６−１−２］
ソフトウェア管理サーバは、鍵管理手段を起動して、Ｓｔｅｐ１−６−１−１の問合せを処理する。今、Ｓｔｅｐ１−５−７−１のようなレコードが鍵対応表にあるとすると、応答は以下のようになる。
【００４９】
2005209072.tif 000008
【００５０】
［Ｓｔｅｐ１−６−１−３］
復号鍵問合せ手段は、Ｓｔｅｐ１−６−１−２の応答を受信する。
【００５１】
［Ｓｔｅｐ１−６−２］
起動手段は、Ｓｔｅｐ１−６−１−３で復号鍵問合せ手段が受信した復号鍵を用いて、ソフトウェア保存ディレクトリに保存されたソフトウェアを構成する各ファイルを複合化し、当該ソフトウェアを実行する。
【００５２】
これにより、ダウンロードしたソフトウェアに関するユーザ認証と使用権限を一貫して管理することができる、また、当該ソフトウェアの複製による不正使用を防止することができる。
【図面の簡単な説明】
【００５３】
【図１】実施形態のソフトウェア配布システム構成図である。
【図２】実施形態のソフトウェア配布システムのフローチャート図である。
【図３】認証手段を示すフローチャート図である。
【図４】アクセス権制御手段を示すフローチャート図である。
【図５】配布手段を示すフローチャート図である。
【図６】起動手段を復号鍵問合せ手段を示すフローチャート図である。
【図７】ログインフォームのイメージ図である
【図８】ユーザリストの例を示す図である
【図９】ソフトウェア情報ファイルの例を示す図である
【図１０】鍵対応表の例を示す図である
【符号の説明】
【００５４】
１０１  ソフトウェア管理サーバ
１０２  ソフトウェア管理クライアント
１０３  認証サーバ
１０５  ネットワーク
１０６  アクセス権制御手段
１０７  鍵管理手段
１０８  配布手段
１０９  認証手段
１１０  復号鍵問合せ手段
１１１  起動手段
１１３  認証手段
１１４  ソフトウェア情報ファイル
１１５  アクセス権リスト
１１６  ソフトウェア情報ファイル
１１７  認証情報
１１８  ログインフォーム
１１９  ユーザリスト
１２０  表示デバイス
１２１  入力デバイス
【図１】
2005209072.tif 000009
【図２】
2005209072.tif 000010
【図３】
2005209072.tif 000011
【図４】
2005209072.tif 000012
【図５】
2005209072.tif 000013
【図６】
2005209072.tif 000014
【図７】
2005209072.tif 000015
【図８】
2005209072.tif 000016
【図９】
2005209072.tif 000017
【図１０】
2005209072.tif 000018