(57)【要約】  ライセンスアクセスエージェントは、クライアントコンピュータで動作する。ライセンスアクセスエージェントは、保護されたソフトウェア製品の使用許可の要求があった際に、保護されたソフトウェア製品の一つ以上の機能をクライアントコンピュータで動作可能とするソフトウェアライセンスを受信するライセンス管理部を備えている。ライセンス管理部は、ソフトウェアライセンスの期限が切れた際に、ライセンス管理部が更新されたソフトウェアライセンスを取得するまで、保護されたソフトウェア製品を使用不可とする。
2010522382.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータで動作するライセンスアクセスエージェントを含むシステムであって、
上記ライセンスアクセスエージェントは、保護されたソフトウェア製品の使用許諾を求める要求を受信したときに、該保護されたソフトウェア製品の一つ以上の機能を、上記クライアントコンピュータで実行可能とするためのソフトウェアライセンスを受信し、更新されたソフトウェアライセンスを取得することなく、上記受信したソフトウェアライセンスが失効したときに、上記保護されたソフトウェア製品を使用不可とするライセンス管理部を備えているシステム。
【請求項２】
上記ライセンスアクセスエージェントは、ライセンスサーバとの接続を確立し、さらに、上記接続を介して、クライアント識別子と初期キーとを有するライセンスパケットを含む、上記ソフトウェアライセンスの要求を送信する初期化部をさらに備える、請求項１に記載のシステム。
【請求項３】
上記ライセンスアクセスエージェントは、サーバセッション識別子を受信して、該サーバセッション識別子と、上記クライアントコンピュータに格納されたクライアントセッション識別子とを比較することによって、ライセンスサーバの正否を確認するライセンスサーバ確認部をさらに備える、請求項１に記載のシステム。
【請求項４】
上記ライセンスアクセスエージェントは、ライセンスサーバと通信する際に更新される、旧セッションキーと現セッションキーとを含む少なくとも二つのクライアントセッションキーを格納するクライアントキー管理部をさらに備える、請求項１に記載のシステム。
【請求項５】
上記ライセンスアクセスエージェントは、ライセンスサーバに対して、上記クライアントコンピュータで動作する当該ライセンスアクセスエージェントを認証するクライアント認証部をさらに備える、請求項１に記載のシステム。
【請求項６】
上記ライセンスアクセスエージェントが上記クライアントコンピュータで動作しているときに、サーバコンピュータで動作するライセンスサーバをさらに備え、
上記ライセンスサーバは、上記ライセンスアクセスエージェントから、セッションキーが更新されたことの確認を受信したときに、上記ソフトウェアライセンスをライセンスパケットとして生成するサーバライセンス管理部を備えている請求項１に記載のシステム。
【請求項７】
上記ライセンスサーバは、上記ソフトウェアライセンスの要求を受信したときに、上記クライアントコンピュータとの接続を確立するクライアント確認部をさらに備え、
上記クライアント確認部は、クライアント識別子によって上記クライアントコンピュータの正否を確認し、当該クライアント識別子に対応するセッション識別子を上記クライアントコンピュータに送信し、上記セッション識別子を、現在のセッションを定義するように更新する、請求項６に記載のシステム。
【請求項８】
上記ライセンスサーバは、上記クライアントコンピュータを認証するサーバ認証部をさらに備える、請求項７に記載のシステム。
【請求項９】
上記ライセンスサーバは、セッションを行っている間に、次のセッションにおいて上記サーバ認証部が使用する新セッションキーを生成し、該新セッションキーを上記クライアントコンピュータに送信するサーバキー管理部をさらに備える、請求項８に記載のシステム。
【請求項１０】
ライセンスパケットを要求することによって、更新されたソフトウェアライセンスを取得することなく、ソフトウェアライセンスが失効した、保護されたソフトウェア製品を使用不可とする工程と、
クライアントコンピュータのクライアント識別子が、ライセンス供与データベースにあり、かつサーバセッション識別子が、クライアントセッション識別子または旧セッション識別子と一致する場合に、上記クライアントコンピュータにおいて、上記保護されたソフトウェア製品の一つ以上の機能を動作可能とする更新されたソフトウェアライセンスを含むライセンスパケットを受信する工程と、を含む方法。
【請求項１１】
ライセンスシステム生産部が、ライセンスアクセスエージェントを生成する工程をさらに含む、請求項１０に記載の方法。
【請求項１２】
上記ライセンスアクセスエージェントと、上記クライアントコンピュータに配信するソフトウェア製品とを組み合わせて、上記保護されたソフトウェア製品を形成する工程をさらに含む、請求項１１に記載の方法。
【請求項１３】
上記保護されたソフトウェア製品は、実行されたときに、上記ライセンスアクセスエージェントを呼び出し、該ライセンスアクセスエージェントは、ベンダーに上記ライセンスパケットを要求する工程をさらに含む、請求項１２に記載の方法。
【請求項１４】
上記サーバセッション識別子と、上記クライアントセッション識別子とが一致する場合に、クライアントセッションキーに現クライアントキーとして格納された値を割り当て、上記サーバセッション識別子と、旧クライアントセッション識別子とが一致する場合に、クライアントセッションキーに旧クライアントキーとして格納された値を割り当てる工程をさらに含む、請求項１０に記載の方法。
【請求項１５】
サーバキー管理部が、新サーバセッションキーを生成し、該新サーバセッションキーを上記クライアントコンピュータに送信する工程と、
ライセンスサーバ確認部が、新クライアントセッションキーを割り当て、受信確認を上記サーバキー管理部に送信する工程と、
上記サーバキー管理部が、上記受信確認を受信したことに応じて、上記クライアント識別子に対応する新サーバセッション識別子を生成する工程と、
サーバライセンス管理部が、上記ライセンスパケットを生成する工程とをさらに含む、請求項１４に記載の方法。
【請求項１６】
ソフトウェアの無許可使用を阻止する方法を実行するためのコンピュータが実行可能な命令が格納されているコンピュータ読み取り可能な記録媒体であって、上記方法は、
ソフトウェアライセンスの期限が切れたときに、保護されたソフトウェア製品を使用不可とする工程と、
ライセンスパケットを要求する工程と、
クライアントコンピュータのクライアント識別子がライセンス供与データベースにあり、サーバセッション識別子がクライアントセッション識別子もしくは旧セッション識別子と一致する場合に、上記保護されたソフトウェア製品の一つ以上の機能をクライアントコンピュータで動作可能とするための更新されたソフトウェアライセンスを含む上記ライセンスパケットを受信する工程と、
上記保護されたソフトウェア製品の上記一つ以上の機能を使用可能にする工程とを含む、コンピュータ読み取り可能な記録媒体。
【請求項１７】
ライセンスシステム生産部が、ライセンスアクセスエージェントを生成する工程をさらに含む、請求項１６に記載のコンピュータ読み取り可能媒体。
【請求項１８】
上記ライセンスアクセスエージェントと、上記クライアントコンピュータに配信されるソフトウェア製品とを組み合わせ、上記保護されたソフトウェア製品を形成する工程をさらに含む、請求項１７に記載のコンピュータ読み取り可能媒体。
【請求項１９】
上記サーバセッション識別子が上記クライアントセッション識別子と一致する場合に、クライアントセッションキーに現クライアントキーとして格納された値を割り当て、上記サーバセッション識別子が旧クライアントセッション識別子と一致する場合に、上記クライアントセッションキーに旧クライアントキーとして格納された値を割り当てる工程をさらに含む、請求項１６に記載のコンピュータ読み取り可能媒体。
【請求項２０】
サーバキー管理部が、新サーバセッションキーを生成して、該新サーバセッションキーを上記クライアントコンピュータに送信し、ライセンスサーバ確認部が、新クライアントセッションキーを割り当て、受信確認が上記サーバキー管理部に送信され、さらに上記サーバキー管理部が、上記受信確認の受信に応じて上記クライアント識別子に対応する新サーバセッション識別子を生成した後、サーバライセンス管理部が、上記ライセンスパケットを生成する工程をさらに含む、請求項１９に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は２００７年３月２０日に出願された米国仮特許出願第６０/９１８,８９８号の恩典を主張するものであり、この出願はその全体において参照として本明細書に組み入れられる。
【背景技術】
【０００２】
ソフトウェアライセンスを強制するためのソフトウェアメーカによる努力は、今までのところ満足いく結果が得られていない。無許可のユーザや、「海賊版」は、ソフトウェア市場に大きな損害を与えており、ソフトウェア開発への多額の経済的な投資も、十分な数の正当なユーザの確保に繋がっていない。
【図面の簡単な説明】
【０００３】
上述の側面、及び開示される主題による多くの付随的な利点は、添付図面を参照した以下の説明によって、容易に認識されると共に、充分に理解されるであろう。
【図１】本発明の様々な実施形態に係るライセンスアクセスエージェントの例及び、ソフトウェアライセンスを更新するためのライセンスサーバの例を示したブロック図である。
【図２】本発明の様々な実施形態に係るライセンスシステム生産部の例、ベンダーの例、及びソフトウェアライセンスを取得するクライアントコンピュータの例を示したブロック図である。
【図３Ａ】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【図３Ｂ】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【図３Ｃ】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【図３Ｄ】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【図３Ｅ】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【図３Ｆ】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【発明を実施するための形態】
【０００４】
本発明の実施形態には、保護されたソフトウェア製品を実行可能にするソフトウェアライセンスを初めに付与して、ソフトウェア製品の機能を利用することを可能にし、その後、正しく許可されている場合には、定期的もしくは不定期にソフトウェアライセンスを更新するのに適したシステム、方法、及びコンピュータ読み取り可能な記録媒体が含まれている。本発明の実施形態では、ライセンスシステム生産部は、ライセンス確認プログラムの生成を助ける。このライセンス確認プログラムは、ベンダーによって、保護されたソフトウェア製品に組み込まれている。ベンダーは、この保護されたソフトウェア製品を、クライアントに配布する。正当に許可されている場合には、ライセンス確認プログラムは、クライアントの代わりに、ソフトウェアライセンスを認証あるいは更新するライセンスサーバと通信して、確認を行い、保護されたソフトウェア製品の機能を使用可能にする。
【０００５】
本発明の実施形態において、ソフトウェアライセンスは、保護されたソフトウェア製品の機能を使用可能にするデータを含んでいる。一実施形態においては、ソフトウェアライセンス中のデータは、プログラムの機能のいくつかを使用可能にし、別の実施形態においては、ソフトウェアライセンス中のデータは、プログラムの全ての機能を使用可能にする。他の実施形態においては、保護されたソフトウェア製品は、複数の特性を備えており、その内のいくつかはソフトウェアライセンスが無くても利用可能であり、またいくつかはソフトウェアライセンスがないと利用できない。ある実施形態においては、ソフトウェアライセンス中のデータは、ソフトウェアライセンスがなくても利用可能という特性以外のさらなる特性を利用可能にする。
【０００６】
一実施形態において、ソフトウェアライセンスは、複数の情報を含むライセンスパケットに関連付けられる。それら複数の情報には、ソウトウェアライセンスのシリアル番号、デジタル署名、ソフトウェアライセンスに関連付けられたユーザ識別子、ソフトウェアライセンスによって使用可能になったプログラム特性のリストなどが挙げられる。いくつかの実施形態においては、それらの追加情報には、クライアントコンピュータのハードウェア構成を一意的に特徴づける電子シリアル番号や、ネットワークカードアドレスなど、ユーザの介入無しにクライアントコンピュータを識別できる情報が含まれる。ひとつのライセンスパケットに様々な情報が含まれている場合の実施形態においては、ライセンスサーバは、保護されたソフトウェア製品の無許可の使用を阻止するための一つ以上の情報を格納してもよい。例えば、追加情報を使って、特定の電子シリアル番号に関連づけられたソフトウェアライセンスが、二つ以上のクライアントコンピュータにインストールされたか、あるいは二人以上のユーザによってインストールされたのかを判定する。保護されたソフトウェア製品のインストールを識別する情報は、インストールの日付、もしくはインストール時に生成されたランダムな番号を含んでもよい。いくつかの実施形態においては、ライセンスサーバは、ライセンスパケットが生成される前に、追加情報なしでソフトウェアライセンスを格納していてもよく、この場合には、ソフトウェアライセンスおよび追加情報を用いる場合とは対照的に、格納スペースが節約される利点がある。
【０００７】
図１にはクライアントコンピュータ１００と、ライセンスサーバ１０２が示されている。クライアントコンピュータ１００は、様々な異なる形態を取ってもよい。例えば、クライアントコンピュータ１００の適当な形態は汎用デスクトップパソコンである。クライアントコンピュータ１００の別の適当な形態としては、携帯電話、ノートパソコン、ＰＤＡ、ゲーム機などが挙げられる。クライアントコンピュータ１００には、保護されたソフトウェア製品１１６の機能を使用可能にする為に使われるライセンスアクセスエージェント１０４がインストールされている。
【０００８】
本発明の実施形態は、クライアントコンピュータ１００およびライセンスサーバ１０２の両方の正否確認を容易にし、海賊版がクライアントコンピュータ１００からの要求もしくはライセンスサーバ１０２からの応答を偽造することで不法にソフトウェアライセンスを取得するのを防ぐ。そのために、ライセンスアクセスエージェント１０４は、ライセンスサーバ１０２の識別情報を確認するライセンスサーバ確認部１０６を備えている。
【０００９】
ライセンスサーバ１０２は、また、ライセンス要求を受信したときに、クライアントコンピュータ１００の正否を確認するクライアント確認部１２０を備えている。クライアント確認部１２０は、ライセンス要求を受信したときに、次のようにしてクライアントコンピュータ１００の正否を確認してもよい。すなわち、クライアント識別子および初期キーを使い、それらをクライアント確認部１２０に通信可能に連結したデータベースに格納された情報と照合することで確認してもよい。ライセンスアクセスエージェント１０４のいくつかの実施形態においては、初期化部１０８は、ライセンスサーバ１０２との初期接続を構築し、ライセンス要求を出す。
【００１０】
本発明の実施形態は、正否確認に加えて、クライアントコンピュータ１００およびライセンスサーバ１０２の両方の認証を容易にする。上述の正否確認に関する特徴点によれば、クライアントコンピュータ１００およびライセンスサーバ１０２は、それらが行おうとする動作が、認証されているか否かを判断することができる。そして、いくつかの実施形態では、クライアント認証部１１０およびサーバ認証部１２４は、しばしば暗号化技術を用いることによって、クライアントコンピュータ１００とライセンスサーバ１０２が、それらが主張する集団に属していることを実質的に保証することを可能にする。ライセンスアクセスエージェント１０４は、旧セッションキーと現セッションキーの少なくとも２つのクライアントセッションキーを格納するクライアントキー管理部１１２をさらに備えている。これらのキーは、ある実施形態においてはライセンスサーバ１０２と通信する度に更新され、他の実施形態では、これらのキーはより低い頻度で更新される。これにより、クライアントコンピュータ１００は、ソフトウェアライセンスを安全な方法で更新するときのライセンスサーバ１０２との複数の異なった通信セッションの経過を追うことができる。旧セッションキーを格納することも、信頼性につながる。例えば、ライセンスアクセスエージェント１０４およびライセンスサーバ１０２の通信のうちで、１回失敗したとしても（例えば、キーの正しい更新の失敗）、ライセンスアクセスエージェント１０４およびライセンスサーバ１０２は安全に通信することができる。
【００１１】
ライセンスアクセスエージェント１０４は、クライアントライセンス管理部１１４をさらに備えている。クライアントライセンス管理部１１４は、ライセンスサーバ１０２からソフトウェアライセンスを受け取ったときに、クライアントのコンピュータにおいて、保護されたソフトウェア製品１１６をインストールもしくは使用可能にする。ライセンス期間の満了時には、いくつかの実施形態において、クライアントライセンス管理部１１４は、ライセンスを更新するためにクライアントコンピュータ１００に格納された、更新されたセッションキーおよび更新されたセッション識別子を使用して、初期化部１０８とライセンスサーバ１０２とを通信させる。クライアントライセンス管理部１１４が受信するソフトウェアライセンスは、セッションキーを受け取ったクライアントコンピュータ１００からの確認を受け取ったときに、サーバライセンス管理部１２６によって生成されるものである。
【００１２】
ライセンスサーバ１０２は、サーバキー管理部１２２およびサーバライセンス管理部１２６をさらに備えている。セッションとは、ライセンスサーバ１０２とクライアントコンピュータ１００間の、論理的にグループ化された、または離れた状態における通信を含む概念である。サーバキー管理部１２２は、次のセッションで使うための、それぞれの現セッション中の新セッションキーを生成する。一実施形態においては、サーバキー管理部１２２は、さらに、将来のセッションでの使用のために、クライアント識別子と現セッションキーとの関連性を記憶することができる。サーバライセンス管理部１２６は、クライアントコンピュータ１００からのライセンス要求に応えて、ソフトウェアライセンスとライセンスパケットとを生成する。
【００１３】
図２は、クライアントコンピュータ２０４と保護されたソフトウェア製品を配布しようとしているベンダー２０２間の信頼できる第三者として、ライセンスシステム生産部２００を機能させるシステムの一実施形態を示している。クライアントコンピュータ２０４は、クライアントコンピュータ１００のようなコンピュータに相当する。自身のソフトウェアの効果的なライセンス供与スキームを設計しようと試みるソフトウェアベンダーが、過去に直面した問題は、ゼロからそういったスキームを構築することの複雑さである。図２に示すように、この明細書に記載するような実施形態を使用すれば、ベンダー２０２は彼ら独自のライセンス供与スキームを作り出す必要が無く、代わりに、彼らのソフトウェア製品を守るために、ライセンスシステム生産部２００によって生成されたライセンス確認プログラムを組み込む。一実施形態において、ライセンス確認プログラムは、ライセンスアクセスエージェント１０４を含み、一実施形態において、ベンダー２０２は、ライセンスサーバ１０２を備えている。
【００１４】
ライセンスシステム生産部２００は、生産部キー生成部２１０、許可証発行部２１４、およびライセンス確認プログラム生成部２１２を備えている。ライセンスシステム生産部２００は、ベンダー２０２に使用される許可証およびライセンスアクセスエージェント２０８を生成する。一実施形態において、ベンダー２０２は、ライセンス組み込み部２１６、ベンダーキー生成部２２０、ライセンスパケット生成部２２２、およびソフトウェア配信部２２４を備えている。ライセンスシステム生産部２００は、これらの構成要素を使用して、許可証およびライセンスアクセスエージェント２０８を保護されたソフトウェア製品に組み込み、保護されたソフトウェア製品にライセンスを供与するために、許可証、ライセンスアクセスエージェント、およびライセンスを作成し、その後、ソフトウェアライセンスを更新する。
【００１５】
クライアントコンピュータ２０４にベンダー２０２の識別情報の正否を確認させるために、ベンダーキー生成部２２０は、ベンダーの公開キーとベンダーの秘密キーとを含む一対の公開／秘密キーを生成し、ベンダーの秘密キーをベンダー用データベースに格納し、ベンダーの公開キーをライセンスシステム生産部２００に送信して登録させる。それに応じて、ライセンスシステム生産部２００の許可証発行部２１４は、ベンダーの公開キーおよびベンダーの識別子を備えたベンダー許可証を発行する。ライセンスシステム生産部２００は、ライセンスシステム生産部の秘密マスターキーで許可証にサインし、ライセンス確認プログラム生成部２１２を使ってライセンスアクセスエージェント２０８を生成する。
【００１６】
許可証およびライセンスアクセスエージェント２０８は、ベンダー２０２に送られる。ベンダー２０２は、ライセンスシステム生産部２００によって生成された許可証およびライセンスアクセスエージェント２０８と、彼らが保護したいソフトウェア製品とを組み合わせる。この組み合わせに対して、ベンダー２０２は、ライセンスパケット生成部２２２によって生成されたライセンスパケットを追加する。その後、ベンダー２０２は、許可証、ライセンスアクセスエージェント、およびライセンスパケット２２６の組み合わせを、保護されたソフトウェア製品と共にクライアントコンピュータ２０４に配布する。ライセンスアクセスエージェント２０８がクライアントコンピュータ２０４に使用され、ライセンスおよび保護されたソフトウェア製品が使用可能になるまで、保護されたソフトウェア製品は、少なくとも部分的には機能しない。また、使用可能になったライセンスと保護されたソフトウェア製品は、クライアントコンピュータ２０４によって更新されない限り、所定の期間が過ぎれば機能しなくなる。
【００１７】
これらのシステムの様々な構成要素は、別々のように示されているが、本発明の特許請求の範囲内で、複数の構成要素をひとつの要素にまとめてもよいことは、当業者によって理解されるだろう。また、様々な構成要素は一つの物理的ハードウェアに入っているように示されているかもしれないが、これらの構成要素は、別々の物理的ハードウェアに入れられてもよく、またはネットワークを通じて接続されてもよい。キーやライセンスといったデータ、または他のデータが格納される際に、それらは様々な方法で格納されてもよいことも、当業者によって理解されるだろう。そういった方法は例えば、揮発性または不揮発性メモリー、取り外し可能または取り外しができない媒体、および、ローカルまたはリモートデータベースが挙げられる。
【００１８】
図３Ａ〜３Ｆは、ソフトウェアライセンスを更新して、無許可の使用を阻止する方法３００を示す。方法３００は、開始ブロックから継続端部（「端部Ａ」）と出口端部（「端部Ｂ」）との間で定義された方法ステップのセット３０４へと続く。方法ステップのセット３０４では、ベンダー２０２によって製造されたソフトウェアにライセンスを供与する方法が記載されている。この方法ステップのセット３０４では、ベンダー２０２は、ライセンスシステム生産部２００と通信して、保護されたソフトウェア製品１１６に組み込まれる許可証、ライセンスアクセスエージェント、およびライセンス２２６を生成する。また、方法ステップのセット３０４では、ソフトウェア機能の初期有効化を行う。端部Ａ（図３Ｂ）から、方法３００は、ブロック３１２へと進み、そこではベンダーキー生成部２２０が一対の秘密／公開キーを生成する。この一対のキーは、秘密ベンダーキーと公開ベンダーキーからなり、それらは暗号アルゴリズムによって生成されてもよい。また、ブロック３１２では、公開ベンダーキーおよびベンダー識別子をライセンスシステム生産部２００に送信する。方法３００は、ブロック３１４へと続き、そこで秘密ベンダーキーは、ベンダー用データベースに格納される。
【００１９】
ブロック３１６では、生産部キー生成部２１０が、秘密マスターキーおよび公開マスターキーからなる一対の秘密／公開キーを生成する。あるいは、秘密マスターキーおよび公開マスターキーをあらかじめ生成しておき、ライセンスシステム生産部２００に格納しておいてもよい。ここで、秘密マスターキーおよび公開マスターキーが取得されると、方法３００は、ブロック３１８へと続き、そこではライセンス確認プログラム生成部２１２は、ライセンスアクセスエージェント１０４を生成する。その後、ライセンスアクセスエージェント１０４と公開マスターキーは、ベンダー２０２に送られる。方法３００は、ブロック３２０へと続き、そこでは許可証発行部２１４が、ベンダー識別子と共に公開ベンダーキーを使って、秘密マスターキーによって署名された許可証を発行し、発行した許可証をベンダー２０２へ送る。ここで、ライセンスアクセスエージェントと許可証２０８とを組み合わせてベンダー２０２に送信してもよい。
【００２０】
秘密マスターキーによって許可証に署名することで、許可証の受け手が、公開マスターキーを使って、許可証の発行元および許可証の内容（つまり、公開ベンダーキーおよびベンダー識別子）が本物であるかを確認できる。これにより、クライアントコンピュータ２０４は、ベンダー２０２の識別情報の正否を確認し、ライセンスアクセスエージェント１０４は、少なくとも実質的に、自身が通信しているベンダー２０２が、自身を生成したベンダー２０２と同一であり、悪意の第三者ではないということを保証する。
【００２１】
それから、方法３００は、ブロック３２２へと進み、そこではライセンス組み込み部２１６は、ライセンスアクセスエージェント１０４とクライアントコンピュータ２０４に配布されるソウトウェア製品とを組み合わせる。ここで組み合わされたソフトウェア製品は、保護されたソフトウェア製品１１６になる。ブロック３２４において、ソウトウェア配信部２２４は、保護されたソフトウェア製品１１６と許可証とをクライアントコンピュータ２０４に配信する。この配信は、いくつもの媒体を通じて行うことができ、例えば、インターネットでの直接ダウンロード、光ディスクやフラッシュメモリ等の取り外し可能な記録媒体、またはワイヤレス通信を通じて行うことができる。さらに、ライセンスアクセスエージェント１０４および保護されたソフトウェア製品１１６は、同一のコンピュータ読み取り可能媒体に含められてもよいし、または、別々に取得されてもよい。どのように取得されようとも、ライセンスアクセスエージェント１０４を問題なく実行することで、保護されたソフトウェア製品１１６の機能を使用可能にすることができる。方法３００は、ブロック３２６へ続き、そこでは保護されたソフトウェア製品１１６がクライアントコンピュータ２０４にインストールされ、それから、別の継続端部（「端部Ａ１」）へと続く。
【００２２】
端部Ａ１（図３Ｃ）から、方法３００は、ブロック３２８へと進む。この時点では、保護されたソフトウェア製品１１６は、使用できない。いくつかの実施形態では、保護されたソフトウェア製品１１６は、ソフトウェアライセンスを含んでいるが、そのソフトウェアライセンスはまだ有効ではない。ブロック３２８において、保護されたソフトウェア製品１１６は、ライセンスアクセスエージェント１０４を呼び出し、ライセンスアクセスエージェント１０４は、ベンダー２０２にライセンスパケットを順次要求する。方法３００は、ブロック３３０へと続き、そこではライセンスパケット生成部２２２が秘密ベンダーキーによって署名されたライセンスパケットの生成を開始する。秘密ベンダーキーを使って署名することで、保護されたソフトウェア製品１１６は、ライセンスパケットをベンダー２０２から受け取ったことを確認でき、方法３００でライセンスパケットを安全にライセンスアクセスエージェント１０４に送信する事ができる。方法３００は、ブロック３３２へ続き、そこでは、ライセンスパケット生成部２２２が、保護されたソフトウェア用のシリアル番号および有効化キーを生成する。その後、方法３００は、ブロック３３４へ続き、そこで、ライセンスパケット生成部２２２は、シリアル番号と有効化キーを組み合わせて、保護されたソフトウェア製品１１６への初期アクセス用の初期キーを作成する。次に、ブロック３３６では、ベンダー２０２が、ライセンスパケットをクライアントコンピュータ２０４へ送る。
【００２３】
クライアントコンピュータ２０４は、ライセンスパケットを解読し、前に送られていた許可証と公開ベンダーキーを使ってそのライセンスパケットの発行元を確認する。ライセンスパケットを受け取ると、方法３００は、ブロック３３８へと続き、そこではクライアントライセンス管理部１１４が、インストール処理を完了させ、その処理中、クライアント識別子と初期キーとがライセンスサーバ１０２へ送られる。クライアント識別子と初期キーは、特定の用途やソフトウェアの構成に応じて、手動もしくは自動でクライアントコンピュータ２０４に送信しておけばよい。一実施形態においては、クライアント識別子および初期キーは、ユーザに仲介されること無く、もしくは知られること無く、自動的に送受信される。別の実施形態においては、クライアント識別子および初期キーは、自動的に送受信されるが、ユーザにもその処理が行われていることが通知される。さらに別の実施形態においては、クライアント識別子および初期キーは手動で入力される。その後、方法３００は、端部Ｂへ続く。
【００２４】
端部Ｂ（図３Ａ）から、方法３００は、継続端部（「端部Ｃ」）および出口端部（「端部Ｄ」）の間で定義された方法ステップのセット３０６へと進む。方法ステップのセット３０６は、ライセンスを供与してクライアントにソフトウェアを使用させる方法を表す。端部Ｃ（図３Ｃ）から、方法３００は、ブロック３４０へと続く。クライアントコンピュータ２０４は、クライアントセッションＩＤおよび現クライアントキーを使い、ライセンスサーバ１０２と通信する。方法３００は、新たにインストールされた保護されたソフトウェア製品１１６にライセンスを供与する方法を示しており、ブロック３４０においては、ライセンスアクセスエージェント１０４は、クライアントセッションＩＤを初期値に設定し、また、現クライアントキーを初期キーに設定する。その後、方法３００は、別の継続端部（「端部Ｃ１」）へと続く。
【００２５】
端部Ｃ１（図３Ｄ）から、方法３００は、ブロック３４２へと進み、そこではライセンスアクセスエージェント１０４は、初期化部１０８を呼び出す。初期化部１０８は、ライセンスサーバ１０２に接続し、ライセンス要求を行う。この初期化部１０８からライセンスサーバ１０２への通信にはクライアント識別子および初期キーが含まれている。ライセンスサーバ１０２は、この情報を使って、ライセンス要求を出しているクライアントコンピュータ２０４がソフトウェアライセンス取得の許可を受けているかを確認する。方法３００は、ブロック３４４へと続き、そこでは、ライセンス要求を受け取ったクライアント確認部１２０は、ライセンス供与データベースを検索し、クライアント識別子の正否を確認する。方法３００は、判定ブロック３４６へ続き、そこでは、ライセンス供与データベースに、クライアント識別子があるかどうかを判定するためのテストが行われる。判定ブロック３４６でのテスト結果がＮＯである場合、方法３００は出口端部（「端部Ｆ」）へ進み、終了する。一方、判定ブロック３４６でのテスト結果がＹＥＳである場合、方法３００はブロック３４８へと進む。
【００２６】
ブロック３４８では、クライアント確認部１２０は、クライアント識別子に対応するサーバセッションＩＤをライセンスサーバ確認部１０６に送信する。これが新たなインストールになるため、方法３００は、ブロック３５０へ進み、そこでライセンスサーバ確認部１０６は、クライアントセッションＩＤをサーバセッションＩＤに設定し、保護されたソフトウェア製品が使用可能になる。一実施形態においては、ライセンスサーバ１０２は、サーバセッションＩＤをクライアントコンピュータ２０４に送信することによって、この同期化を可能にする。別の実施形態においては、サーバセッションＩＤは、クライアントセッションＩＤの初期値と同じであり、この場合には更なる同期化は不要である。更に別の実施形態においては、サーバセッションＩＤおよびクライアントセッションＩＤは、設定値ではなく、代わりに、ライセンスサーバ１０２およびクライアントコンピュータ２０４の両方で同一の結果が生成されるように保証された順序アルゴリズムを使って計算することによって、同期させる。
【００２７】
その後、方法３００は、別の継続端部（「端部Ｅ」）に続き、さらに別の継続端部（「端部Ｃ２」）へと続く。端部Ｃ２は、インストール時の保護されたソフトウェア製品を最初に使用可能にする方法ステップのセットの終わりを示す。端部Ｅは、保護されたソフトウェア製品１１６を引き続き使用可能にするために、新たなあるいは失効したソフトウェアライセンスを更新する方法ステップのセットの始まりを示す。
【００２８】
ライセンス要求の前半では、ライセンスアクセスエージェント１０４が通信するライセンスサーバが、実際に正しいライセンスサーバ１０２であるかを確認する。これは、ライセンスサーバ１０２に格納されたサーバセッションＩＤと、クライアントコンピュータ２０４に格納されたクライアントセッションＩＤとを照合することで行われる。偽装のライセンスサーバでは、適合するサーバセッションＩＤを供給することができない。方法３００は、端部Ｃ２からブロック３５２へと進み、そこではクライアントライセンス管理部１１４は、クライアント確認部１２０にクライアント識別子を送ることによって、初期化部１０８にライセンス要求をさせる。クライアント確認部１２０は、クライアント識別子に関連付けられたサーバセッションＩＤを受信すると、それを初期化部１０８に送り返す。その後、方法３００は、別の継続端部（「端部Ｃ３」）へと続く。
【００２９】
端部Ｃ３（図３Ｅ）から、方法３００は、ブロック３５２へと進み、そこではライセンスサーバ確認部１０６が、クライアントキー管理部１１２と共に、サーバセッションＩＤとクライアントセッションＩＤとを比較する。一実施形態においては、方法３００は、判定ブロック３５４へ進み、そこではサーバセッションＩＤがクライアントセッションＩＤと一致するかどうかを判定するテストが行われる。判定ブロック３５４でのテストの結果がＹＥＳの場合には、ブロック３５６へ進み、そこではクライアントキー管理部１１２は、クライアントセッションキーに現クライアントキーとして格納された値を割り当て、ライセンスサーバ１０２の正否が確認され、そして方法３００は、別の継続端部（「端部Ｃ４」）へ進む。一方、判定ブロック３５４でのテストの結果がＮＯの場合には、方法３００は、別の判定ブロック３５８に進み、そこでサーバセッションＩＤが旧クライアントセッションＩＤ（直近のクライアントセッションＩＤではなく）と一致するか否かを判定するためのテストが行われる。判定ブロック３５８でのテストの結果がＹＥＳの場合には、方法３００は、ブロック３６０へ進み、そこではクライアントキー管理部１１２は、クライアントセッションキーに旧クライアントキーとして格納された値を割り当て、ライセンスサーバの正否が確認され、方法３００は、端部Ｃ４へと進む。一方、判定ブロック３５８でのテストの結果がＮＯの場合には、ライセンスサーバ１０２の正否確認は失敗し、方法３００は端部Ｆへと進み、終了する。
【００３０】
端部Ｃ４（図３Ｆ）から、方法３００は、ブロック３５２へと続き、そこではクライアント認証部１１０およびサーバ認証部１２４は、暗号認証法を使って、クライアントコンピュータ２０４およびライセンスサーバ１０２を認証する。一実施形態において、クライアント認証部１１０およびサーバ認証部１２４は、ランダムな番号を暗号化し、暗号化されたデータを比較し互いに認証し合う。
【００３１】
一旦クライアントコンピュータ２０４およびライセンスサーバ１０２が認証されると、方法３００は、ブロック３５４へと進み、そこではサーバキー管理部１１２は、新サーバセッションキーを生成し、それをクライアントコンピュータ２０４へと送信する。次に、ブロック３５６では、新サーバセッションキーを受け取ったクライアントキー管理部１１２は、クライアントセッションキーを旧クライアントキーとして格納し、新サーバセッションキーを現クライアントキーとして格納する。クライアントセッションキーを新サーバセッションキーに単に置き換える代わりに、クライアントセッションキーを旧クライアントキーとして格納することで、更なる信頼性につながる。通信不良もしくはその他の不良のために、クライアントコンピュータ２０４およびライセンスサーバ１０２が方法３０６の完了を失敗した場合、クライアントコンピュータ２０４およびライセンスサーバ１０２は、その後に、旧クライアントキーを使って、通信することができる。
【００３２】
次に、方法３００は、ブロック３５８へ進み、そこでライセンスサーバ確認部１０６は、新クライアントセッションＩＤを生成し、サーバキー管理部１２２に、受信確認を送信する。次に、ブロック３６０においては、確認を受け取ったサーバキー管理部１２２は、クライアント識別子に対応する新サーバセッションＩＤを生成する。一実施形態においては、次の方法３００の実行時にもクライアントセッションＩＤとサーバセッションＩＤとが適合するように、クライアントセッションＩＤとサーバセッションＩＤとを適合させる。一実施形態においては、これを達成するには、ライセンスサーバ１０２が、生成したサーバセッションＩＤをクライアントコンピュータ２０４に伝えるようにし、それからクライアントセッションＩＤが適合するように更新する。別の実施形態においては、新サーバセッションＩＤおよび新クライアントセッションＩＤは、ライセンスサーバ１０２とクライアントコンピュータ２０４とが更なる通信を行うことなく、新サーバセッションＩＤと新クライアントセッションＩＤとが適合するように、以前適合していたサーバセッションＩＤおよびクライアントセッションＩＤの変更に基づいて、同じアルゴリズムを用いて生成される。さらに別の実施形態においては、クライアントコンピュータ２０４は、新クライアントセッションＩＤを生成し、それをライセンスサーバ１０２に送信し、その後、新サーバセッションＩＤが適合するように更新する。更に別の実施形態においては、サーバセッションＩＤおよびクライアントセッションＩＤは同一の値である必要は無く、代わりに、適合していることがわかるように、互いに何らかの対応をしていればよい。
【００３３】
クライアントセッションＩＤおよびサーバセッションＩＤが更新された後、方法３００は、ブロック３６２に進み、そこではサーバライセンス管理部１２６がライセンスパケットを生成し、安全にそれをクライアントライセンス管理部１１４へと送信する。方法３００は、ブロック３６４へ進み、そこでは、ライセンスパケットを受け取ったクライアントライセンス管理部１１４がソフトウェアライセンスをインストールし、それによって、ソフトウェアライセンスに示されたような保護されたプログラムの特定の機能を使用可能にする。その後、方法３００は、別の継続端部（「端部Ｄ」）へと進む。
【００３４】
端部（図３Ａ）から、方法３００は、端部Ｅと端部Ｆとの間で定義された方法ステップのセット３０８へと進む。方法ステップのセット３０８には、失効したソフトウェアライセンスの更新方法が記載されている。端部Ｅ（図３Ｆ）から、方法３００は、ブロック３６６へ進み、そこでは、ソフトウェアライセンスが失効したと判定されると、クライアントライセンス管理部１１４は、端部Ｃ２（図３Ｄ）から端部Ｄ（図３Ｆ）までの上記方法ステップのセット３０６を開始し、更新されたソフトウェアライセンスをライセンスサーバ１０２から取得する。ソフトウェアライセンスの失効には、様々な態様が考えられる。一実施形態においては、ソフトウェアライセンスは、一定の期間が過ぎたときに失効する。別の実施形態においては、ライセンスサーバ１０２もしくはベンダー２０２の自発的な動作によって、クライアントコンピュータ２０４のソフトウェアライセンスが失効してもよい。さらに別の実施形態においては、ユーザの動作（たとえば保護されたソフトウェア製品の繰り返しの使用）によって、ソフトウェアライセンスが失効してもよい。
【００３５】
失効したソフトウェアライセンスの機能はまた、実施形態によって違ってもよい。一実施形態においては、失効したソフトウェアライセンスはライセンスサーバ１０２によって更新されるまで、プログラムの機能の継続使用はできないようにする。別の実施形態においては、失効したライセンスの、さらなる時間の経過、もしくはさらなる回数の使用があるまで、プログラムの機能の継続使用を許可する。さらに別の実施形態では、ソフトウェアライセンスが失効すると、ソフトウェアライセンスの更新が必要であることを示す通知をユーザに提示する。
【００３６】
端部Ｃ２から端部Ｄまでの方法ステップのセット３０８が実行された後、方法３００は、ブロック３６６から端部Ｆへ進み、終了する。
【００３７】
具体的な実施形態が説明、記述されたが、本発明の特許請求の精神および範囲を超えない限り、様々な変更が可能であることは理解されるであろう。
【図１】
2010522382.tif 000003
【図２】
2010522382.tif 000004
【図３Ａ】
2010522382.tif 000005
【図３Ｂ】
2010522382.tif 000006
【図３Ｃ】
2010522382.tif 000007
【図３Ｄ】
2010522382.tif 000008
【図３Ｅ】
2010522382.tif 000009
【図３Ｆ】
2010522382.tif 000010
【国際調査報告】
2010522382.tif 000011
2010522382.tif 000012
2010522382.tif 000013