説明

ソフトウェアライセンスの更新

ライセンスアクセスエージェントは、クライアントコンピュータで動作する。ライセンスアクセスエージェントは、保護されたソフトウェア製品の使用許可の要求があった際に、保護されたソフトウェア製品の一つ以上の機能をクライアントコンピュータで動作可能とするソフトウェアライセンスを受信するライセンス管理部を備えている。ライセンス管理部は、ソフトウェアライセンスの期限が切れた際に、ライセンス管理部が更新されたソフトウェアライセンスを取得するまで、保護されたソフトウェア製品を使用不可とする。

【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は2007年3月20日に出願された米国仮特許出願第60/918,898号の恩典を主張するものであり、この出願はその全体において参照として本明細書に組み入れられる。
【背景技術】
【0002】
ソフトウェアライセンスを強制するためのソフトウェアメーカによる努力は、今までのところ満足いく結果が得られていない。無許可のユーザや、「海賊版」は、ソフトウェア市場に大きな損害を与えており、ソフトウェア開発への多額の経済的な投資も、十分な数の正当なユーザの確保に繋がっていない。
【図面の簡単な説明】
【0003】
上述の側面、及び開示される主題による多くの付随的な利点は、添付図面を参照した以下の説明によって、容易に認識されると共に、充分に理解されるであろう。
【図1】本発明の様々な実施形態に係るライセンスアクセスエージェントの例及び、ソフトウェアライセンスを更新するためのライセンスサーバの例を示したブロック図である。
【図2】本発明の様々な実施形態に係るライセンスシステム生産部の例、ベンダーの例、及びソフトウェアライセンスを取得するクライアントコンピュータの例を示したブロック図である。
【図3A】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【図3B】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【図3C】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【図3D】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【図3E】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【図3F】本発明の様々な実施形態に係る、ソフトウェアライセンスを更新して無許可使用を阻止する方法の例を示したプロセス図である。
【発明を実施するための形態】
【0004】
本発明の実施形態には、保護されたソフトウェア製品を実行可能にするソフトウェアライセンスを初めに付与して、ソフトウェア製品の機能を利用することを可能にし、その後、正しく許可されている場合には、定期的もしくは不定期にソフトウェアライセンスを更新するのに適したシステム、方法、及びコンピュータ読み取り可能な記録媒体が含まれている。本発明の実施形態では、ライセンスシステム生産部は、ライセンス確認プログラムの生成を助ける。このライセンス確認プログラムは、ベンダーによって、保護されたソフトウェア製品に組み込まれている。ベンダーは、この保護されたソフトウェア製品を、クライアントに配布する。正当に許可されている場合には、ライセンス確認プログラムは、クライアントの代わりに、ソフトウェアライセンスを認証あるいは更新するライセンスサーバと通信して、確認を行い、保護されたソフトウェア製品の機能を使用可能にする。
【0005】
本発明の実施形態において、ソフトウェアライセンスは、保護されたソフトウェア製品の機能を使用可能にするデータを含んでいる。一実施形態においては、ソフトウェアライセンス中のデータは、プログラムの機能のいくつかを使用可能にし、別の実施形態においては、ソフトウェアライセンス中のデータは、プログラムの全ての機能を使用可能にする。他の実施形態においては、保護されたソフトウェア製品は、複数の特性を備えており、その内のいくつかはソフトウェアライセンスが無くても利用可能であり、またいくつかはソフトウェアライセンスがないと利用できない。ある実施形態においては、ソフトウェアライセンス中のデータは、ソフトウェアライセンスがなくても利用可能という特性以外のさらなる特性を利用可能にする。
【0006】
一実施形態において、ソフトウェアライセンスは、複数の情報を含むライセンスパケットに関連付けられる。それら複数の情報には、ソウトウェアライセンスのシリアル番号、デジタル署名、ソフトウェアライセンスに関連付けられたユーザ識別子、ソフトウェアライセンスによって使用可能になったプログラム特性のリストなどが挙げられる。いくつかの実施形態においては、それらの追加情報には、クライアントコンピュータのハードウェア構成を一意的に特徴づける電子シリアル番号や、ネットワークカードアドレスなど、ユーザの介入無しにクライアントコンピュータを識別できる情報が含まれる。ひとつのライセンスパケットに様々な情報が含まれている場合の実施形態においては、ライセンスサーバは、保護されたソフトウェア製品の無許可の使用を阻止するための一つ以上の情報を格納してもよい。例えば、追加情報を使って、特定の電子シリアル番号に関連づけられたソフトウェアライセンスが、二つ以上のクライアントコンピュータにインストールされたか、あるいは二人以上のユーザによってインストールされたのかを判定する。保護されたソフトウェア製品のインストールを識別する情報は、インストールの日付、もしくはインストール時に生成されたランダムな番号を含んでもよい。いくつかの実施形態においては、ライセンスサーバは、ライセンスパケットが生成される前に、追加情報なしでソフトウェアライセンスを格納していてもよく、この場合には、ソフトウェアライセンスおよび追加情報を用いる場合とは対照的に、格納スペースが節約される利点がある。
【0007】
図1にはクライアントコンピュータ100と、ライセンスサーバ102が示されている。クライアントコンピュータ100は、様々な異なる形態を取ってもよい。例えば、クライアントコンピュータ100の適当な形態は汎用デスクトップパソコンである。クライアントコンピュータ100の別の適当な形態としては、携帯電話、ノートパソコン、PDA、ゲーム機などが挙げられる。クライアントコンピュータ100には、保護されたソフトウェア製品116の機能を使用可能にする為に使われるライセンスアクセスエージェント104がインストールされている。
【0008】
本発明の実施形態は、クライアントコンピュータ100およびライセンスサーバ102の両方の正否確認を容易にし、海賊版がクライアントコンピュータ100からの要求もしくはライセンスサーバ102からの応答を偽造することで不法にソフトウェアライセンスを取得するのを防ぐ。そのために、ライセンスアクセスエージェント104は、ライセンスサーバ102の識別情報を確認するライセンスサーバ確認部106を備えている。
【0009】
ライセンスサーバ102は、また、ライセンス要求を受信したときに、クライアントコンピュータ100の正否を確認するクライアント確認部120を備えている。クライアント確認部120は、ライセンス要求を受信したときに、次のようにしてクライアントコンピュータ100の正否を確認してもよい。すなわち、クライアント識別子および初期キーを使い、それらをクライアント確認部120に通信可能に連結したデータベースに格納された情報と照合することで確認してもよい。ライセンスアクセスエージェント104のいくつかの実施形態においては、初期化部108は、ライセンスサーバ102との初期接続を構築し、ライセンス要求を出す。
【0010】
本発明の実施形態は、正否確認に加えて、クライアントコンピュータ100およびライセンスサーバ102の両方の認証を容易にする。上述の正否確認に関する特徴点によれば、クライアントコンピュータ100およびライセンスサーバ102は、それらが行おうとする動作が、認証されているか否かを判断することができる。そして、いくつかの実施形態では、クライアント認証部110およびサーバ認証部124は、しばしば暗号化技術を用いることによって、クライアントコンピュータ100とライセンスサーバ102が、それらが主張する集団に属していることを実質的に保証することを可能にする。ライセンスアクセスエージェント104は、旧セッションキーと現セッションキーの少なくとも2つのクライアントセッションキーを格納するクライアントキー管理部112をさらに備えている。これらのキーは、ある実施形態においてはライセンスサーバ102と通信する度に更新され、他の実施形態では、これらのキーはより低い頻度で更新される。これにより、クライアントコンピュータ100は、ソフトウェアライセンスを安全な方法で更新するときのライセンスサーバ102との複数の異なった通信セッションの経過を追うことができる。旧セッションキーを格納することも、信頼性につながる。例えば、ライセンスアクセスエージェント104およびライセンスサーバ102の通信のうちで、1回失敗したとしても(例えば、キーの正しい更新の失敗)、ライセンスアクセスエージェント104およびライセンスサーバ102は安全に通信することができる。
【0011】
ライセンスアクセスエージェント104は、クライアントライセンス管理部114をさらに備えている。クライアントライセンス管理部114は、ライセンスサーバ102からソフトウェアライセンスを受け取ったときに、クライアントのコンピュータにおいて、保護されたソフトウェア製品116をインストールもしくは使用可能にする。ライセンス期間の満了時には、いくつかの実施形態において、クライアントライセンス管理部114は、ライセンスを更新するためにクライアントコンピュータ100に格納された、更新されたセッションキーおよび更新されたセッション識別子を使用して、初期化部108とライセンスサーバ102とを通信させる。クライアントライセンス管理部114が受信するソフトウェアライセンスは、セッションキーを受け取ったクライアントコンピュータ100からの確認を受け取ったときに、サーバライセンス管理部126によって生成されるものである。
【0012】
ライセンスサーバ102は、サーバキー管理部122およびサーバライセンス管理部126をさらに備えている。セッションとは、ライセンスサーバ102とクライアントコンピュータ100間の、論理的にグループ化された、または離れた状態における通信を含む概念である。サーバキー管理部122は、次のセッションで使うための、それぞれの現セッション中の新セッションキーを生成する。一実施形態においては、サーバキー管理部122は、さらに、将来のセッションでの使用のために、クライアント識別子と現セッションキーとの関連性を記憶することができる。サーバライセンス管理部126は、クライアントコンピュータ100からのライセンス要求に応えて、ソフトウェアライセンスとライセンスパケットとを生成する。
【0013】
図2は、クライアントコンピュータ204と保護されたソフトウェア製品を配布しようとしているベンダー202間の信頼できる第三者として、ライセンスシステム生産部200を機能させるシステムの一実施形態を示している。クライアントコンピュータ204は、クライアントコンピュータ100のようなコンピュータに相当する。自身のソフトウェアの効果的なライセンス供与スキームを設計しようと試みるソフトウェアベンダーが、過去に直面した問題は、ゼロからそういったスキームを構築することの複雑さである。図2に示すように、この明細書に記載するような実施形態を使用すれば、ベンダー202は彼ら独自のライセンス供与スキームを作り出す必要が無く、代わりに、彼らのソフトウェア製品を守るために、ライセンスシステム生産部200によって生成されたライセンス確認プログラムを組み込む。一実施形態において、ライセンス確認プログラムは、ライセンスアクセスエージェント104を含み、一実施形態において、ベンダー202は、ライセンスサーバ102を備えている。
【0014】
ライセンスシステム生産部200は、生産部キー生成部210、許可証発行部214、およびライセンス確認プログラム生成部212を備えている。ライセンスシステム生産部200は、ベンダー202に使用される許可証およびライセンスアクセスエージェント208を生成する。一実施形態において、ベンダー202は、ライセンス組み込み部216、ベンダーキー生成部220、ライセンスパケット生成部222、およびソフトウェア配信部224を備えている。ライセンスシステム生産部200は、これらの構成要素を使用して、許可証およびライセンスアクセスエージェント208を保護されたソフトウェア製品に組み込み、保護されたソフトウェア製品にライセンスを供与するために、許可証、ライセンスアクセスエージェント、およびライセンスを作成し、その後、ソフトウェアライセンスを更新する。
【0015】
クライアントコンピュータ204にベンダー202の識別情報の正否を確認させるために、ベンダーキー生成部220は、ベンダーの公開キーとベンダーの秘密キーとを含む一対の公開/秘密キーを生成し、ベンダーの秘密キーをベンダー用データベースに格納し、ベンダーの公開キーをライセンスシステム生産部200に送信して登録させる。それに応じて、ライセンスシステム生産部200の許可証発行部214は、ベンダーの公開キーおよびベンダーの識別子を備えたベンダー許可証を発行する。ライセンスシステム生産部200は、ライセンスシステム生産部の秘密マスターキーで許可証にサインし、ライセンス確認プログラム生成部212を使ってライセンスアクセスエージェント208を生成する。
【0016】
許可証およびライセンスアクセスエージェント208は、ベンダー202に送られる。ベンダー202は、ライセンスシステム生産部200によって生成された許可証およびライセンスアクセスエージェント208と、彼らが保護したいソフトウェア製品とを組み合わせる。この組み合わせに対して、ベンダー202は、ライセンスパケット生成部222によって生成されたライセンスパケットを追加する。その後、ベンダー202は、許可証、ライセンスアクセスエージェント、およびライセンスパケット226の組み合わせを、保護されたソフトウェア製品と共にクライアントコンピュータ204に配布する。ライセンスアクセスエージェント208がクライアントコンピュータ204に使用され、ライセンスおよび保護されたソフトウェア製品が使用可能になるまで、保護されたソフトウェア製品は、少なくとも部分的には機能しない。また、使用可能になったライセンスと保護されたソフトウェア製品は、クライアントコンピュータ204によって更新されない限り、所定の期間が過ぎれば機能しなくなる。
【0017】
これらのシステムの様々な構成要素は、別々のように示されているが、本発明の特許請求の範囲内で、複数の構成要素をひとつの要素にまとめてもよいことは、当業者によって理解されるだろう。また、様々な構成要素は一つの物理的ハードウェアに入っているように示されているかもしれないが、これらの構成要素は、別々の物理的ハードウェアに入れられてもよく、またはネットワークを通じて接続されてもよい。キーやライセンスといったデータ、または他のデータが格納される際に、それらは様々な方法で格納されてもよいことも、当業者によって理解されるだろう。そういった方法は例えば、揮発性または不揮発性メモリー、取り外し可能または取り外しができない媒体、および、ローカルまたはリモートデータベースが挙げられる。
【0018】
図3A〜3Fは、ソフトウェアライセンスを更新して、無許可の使用を阻止する方法300を示す。方法300は、開始ブロックから継続端部(「端部A」)と出口端部(「端部B」)との間で定義された方法ステップのセット304へと続く。方法ステップのセット304では、ベンダー202によって製造されたソフトウェアにライセンスを供与する方法が記載されている。この方法ステップのセット304では、ベンダー202は、ライセンスシステム生産部200と通信して、保護されたソフトウェア製品116に組み込まれる許可証、ライセンスアクセスエージェント、およびライセンス226を生成する。また、方法ステップのセット304では、ソフトウェア機能の初期有効化を行う。端部A(図3B)から、方法300は、ブロック312へと進み、そこではベンダーキー生成部220が一対の秘密/公開キーを生成する。この一対のキーは、秘密ベンダーキーと公開ベンダーキーからなり、それらは暗号アルゴリズムによって生成されてもよい。また、ブロック312では、公開ベンダーキーおよびベンダー識別子をライセンスシステム生産部200に送信する。方法300は、ブロック314へと続き、そこで秘密ベンダーキーは、ベンダー用データベースに格納される。
【0019】
ブロック316では、生産部キー生成部210が、秘密マスターキーおよび公開マスターキーからなる一対の秘密/公開キーを生成する。あるいは、秘密マスターキーおよび公開マスターキーをあらかじめ生成しておき、ライセンスシステム生産部200に格納しておいてもよい。ここで、秘密マスターキーおよび公開マスターキーが取得されると、方法300は、ブロック318へと続き、そこではライセンス確認プログラム生成部212は、ライセンスアクセスエージェント104を生成する。その後、ライセンスアクセスエージェント104と公開マスターキーは、ベンダー202に送られる。方法300は、ブロック320へと続き、そこでは許可証発行部214が、ベンダー識別子と共に公開ベンダーキーを使って、秘密マスターキーによって署名された許可証を発行し、発行した許可証をベンダー202へ送る。ここで、ライセンスアクセスエージェントと許可証208とを組み合わせてベンダー202に送信してもよい。
【0020】
秘密マスターキーによって許可証に署名することで、許可証の受け手が、公開マスターキーを使って、許可証の発行元および許可証の内容(つまり、公開ベンダーキーおよびベンダー識別子)が本物であるかを確認できる。これにより、クライアントコンピュータ204は、ベンダー202の識別情報の正否を確認し、ライセンスアクセスエージェント104は、少なくとも実質的に、自身が通信しているベンダー202が、自身を生成したベンダー202と同一であり、悪意の第三者ではないということを保証する。
【0021】
それから、方法300は、ブロック322へと進み、そこではライセンス組み込み部216は、ライセンスアクセスエージェント104とクライアントコンピュータ204に配布されるソウトウェア製品とを組み合わせる。ここで組み合わされたソフトウェア製品は、保護されたソフトウェア製品116になる。ブロック324において、ソウトウェア配信部224は、保護されたソフトウェア製品116と許可証とをクライアントコンピュータ204に配信する。この配信は、いくつもの媒体を通じて行うことができ、例えば、インターネットでの直接ダウンロード、光ディスクやフラッシュメモリ等の取り外し可能な記録媒体、またはワイヤレス通信を通じて行うことができる。さらに、ライセンスアクセスエージェント104および保護されたソフトウェア製品116は、同一のコンピュータ読み取り可能媒体に含められてもよいし、または、別々に取得されてもよい。どのように取得されようとも、ライセンスアクセスエージェント104を問題なく実行することで、保護されたソフトウェア製品116の機能を使用可能にすることができる。方法300は、ブロック326へ続き、そこでは保護されたソフトウェア製品116がクライアントコンピュータ204にインストールされ、それから、別の継続端部(「端部A1」)へと続く。
【0022】
端部A1(図3C)から、方法300は、ブロック328へと進む。この時点では、保護されたソフトウェア製品116は、使用できない。いくつかの実施形態では、保護されたソフトウェア製品116は、ソフトウェアライセンスを含んでいるが、そのソフトウェアライセンスはまだ有効ではない。ブロック328において、保護されたソフトウェア製品116は、ライセンスアクセスエージェント104を呼び出し、ライセンスアクセスエージェント104は、ベンダー202にライセンスパケットを順次要求する。方法300は、ブロック330へと続き、そこではライセンスパケット生成部222が秘密ベンダーキーによって署名されたライセンスパケットの生成を開始する。秘密ベンダーキーを使って署名することで、保護されたソフトウェア製品116は、ライセンスパケットをベンダー202から受け取ったことを確認でき、方法300でライセンスパケットを安全にライセンスアクセスエージェント104に送信する事ができる。方法300は、ブロック332へ続き、そこでは、ライセンスパケット生成部222が、保護されたソフトウェア用のシリアル番号および有効化キーを生成する。その後、方法300は、ブロック334へ続き、そこで、ライセンスパケット生成部222は、シリアル番号と有効化キーを組み合わせて、保護されたソフトウェア製品116への初期アクセス用の初期キーを作成する。次に、ブロック336では、ベンダー202が、ライセンスパケットをクライアントコンピュータ204へ送る。
【0023】
クライアントコンピュータ204は、ライセンスパケットを解読し、前に送られていた許可証と公開ベンダーキーを使ってそのライセンスパケットの発行元を確認する。ライセンスパケットを受け取ると、方法300は、ブロック338へと続き、そこではクライアントライセンス管理部114が、インストール処理を完了させ、その処理中、クライアント識別子と初期キーとがライセンスサーバ102へ送られる。クライアント識別子と初期キーは、特定の用途やソフトウェアの構成に応じて、手動もしくは自動でクライアントコンピュータ204に送信しておけばよい。一実施形態においては、クライアント識別子および初期キーは、ユーザに仲介されること無く、もしくは知られること無く、自動的に送受信される。別の実施形態においては、クライアント識別子および初期キーは、自動的に送受信されるが、ユーザにもその処理が行われていることが通知される。さらに別の実施形態においては、クライアント識別子および初期キーは手動で入力される。その後、方法300は、端部Bへ続く。
【0024】
端部B(図3A)から、方法300は、継続端部(「端部C」)および出口端部(「端部D」)の間で定義された方法ステップのセット306へと進む。方法ステップのセット306は、ライセンスを供与してクライアントにソフトウェアを使用させる方法を表す。端部C(図3C)から、方法300は、ブロック340へと続く。クライアントコンピュータ204は、クライアントセッションIDおよび現クライアントキーを使い、ライセンスサーバ102と通信する。方法300は、新たにインストールされた保護されたソフトウェア製品116にライセンスを供与する方法を示しており、ブロック340においては、ライセンスアクセスエージェント104は、クライアントセッションIDを初期値に設定し、また、現クライアントキーを初期キーに設定する。その後、方法300は、別の継続端部(「端部C1」)へと続く。
【0025】
端部C1(図3D)から、方法300は、ブロック342へと進み、そこではライセンスアクセスエージェント104は、初期化部108を呼び出す。初期化部108は、ライセンスサーバ102に接続し、ライセンス要求を行う。この初期化部108からライセンスサーバ102への通信にはクライアント識別子および初期キーが含まれている。ライセンスサーバ102は、この情報を使って、ライセンス要求を出しているクライアントコンピュータ204がソフトウェアライセンス取得の許可を受けているかを確認する。方法300は、ブロック344へと続き、そこでは、ライセンス要求を受け取ったクライアント確認部120は、ライセンス供与データベースを検索し、クライアント識別子の正否を確認する。方法300は、判定ブロック346へ続き、そこでは、ライセンス供与データベースに、クライアント識別子があるかどうかを判定するためのテストが行われる。判定ブロック346でのテスト結果がNOである場合、方法300は出口端部(「端部F」)へ進み、終了する。一方、判定ブロック346でのテスト結果がYESである場合、方法300はブロック348へと進む。
【0026】
ブロック348では、クライアント確認部120は、クライアント識別子に対応するサーバセッションIDをライセンスサーバ確認部106に送信する。これが新たなインストールになるため、方法300は、ブロック350へ進み、そこでライセンスサーバ確認部106は、クライアントセッションIDをサーバセッションIDに設定し、保護されたソフトウェア製品が使用可能になる。一実施形態においては、ライセンスサーバ102は、サーバセッションIDをクライアントコンピュータ204に送信することによって、この同期化を可能にする。別の実施形態においては、サーバセッションIDは、クライアントセッションIDの初期値と同じであり、この場合には更なる同期化は不要である。更に別の実施形態においては、サーバセッションIDおよびクライアントセッションIDは、設定値ではなく、代わりに、ライセンスサーバ102およびクライアントコンピュータ204の両方で同一の結果が生成されるように保証された順序アルゴリズムを使って計算することによって、同期させる。
【0027】
その後、方法300は、別の継続端部(「端部E」)に続き、さらに別の継続端部(「端部C2」)へと続く。端部C2は、インストール時の保護されたソフトウェア製品を最初に使用可能にする方法ステップのセットの終わりを示す。端部Eは、保護されたソフトウェア製品116を引き続き使用可能にするために、新たなあるいは失効したソフトウェアライセンスを更新する方法ステップのセットの始まりを示す。
【0028】
ライセンス要求の前半では、ライセンスアクセスエージェント104が通信するライセンスサーバが、実際に正しいライセンスサーバ102であるかを確認する。これは、ライセンスサーバ102に格納されたサーバセッションIDと、クライアントコンピュータ204に格納されたクライアントセッションIDとを照合することで行われる。偽装のライセンスサーバでは、適合するサーバセッションIDを供給することができない。方法300は、端部C2からブロック352へと進み、そこではクライアントライセンス管理部114は、クライアント確認部120にクライアント識別子を送ることによって、初期化部108にライセンス要求をさせる。クライアント確認部120は、クライアント識別子に関連付けられたサーバセッションIDを受信すると、それを初期化部108に送り返す。その後、方法300は、別の継続端部(「端部C3」)へと続く。
【0029】
端部C3(図3E)から、方法300は、ブロック352へと進み、そこではライセンスサーバ確認部106が、クライアントキー管理部112と共に、サーバセッションIDとクライアントセッションIDとを比較する。一実施形態においては、方法300は、判定ブロック354へ進み、そこではサーバセッションIDがクライアントセッションIDと一致するかどうかを判定するテストが行われる。判定ブロック354でのテストの結果がYESの場合には、ブロック356へ進み、そこではクライアントキー管理部112は、クライアントセッションキーに現クライアントキーとして格納された値を割り当て、ライセンスサーバ102の正否が確認され、そして方法300は、別の継続端部(「端部C4」)へ進む。一方、判定ブロック354でのテストの結果がNOの場合には、方法300は、別の判定ブロック358に進み、そこでサーバセッションIDが旧クライアントセッションID(直近のクライアントセッションIDではなく)と一致するか否かを判定するためのテストが行われる。判定ブロック358でのテストの結果がYESの場合には、方法300は、ブロック360へ進み、そこではクライアントキー管理部112は、クライアントセッションキーに旧クライアントキーとして格納された値を割り当て、ライセンスサーバの正否が確認され、方法300は、端部C4へと進む。一方、判定ブロック358でのテストの結果がNOの場合には、ライセンスサーバ102の正否確認は失敗し、方法300は端部Fへと進み、終了する。
【0030】
端部C4(図3F)から、方法300は、ブロック352へと続き、そこではクライアント認証部110およびサーバ認証部124は、暗号認証法を使って、クライアントコンピュータ204およびライセンスサーバ102を認証する。一実施形態において、クライアント認証部110およびサーバ認証部124は、ランダムな番号を暗号化し、暗号化されたデータを比較し互いに認証し合う。
【0031】
一旦クライアントコンピュータ204およびライセンスサーバ102が認証されると、方法300は、ブロック354へと進み、そこではサーバキー管理部112は、新サーバセッションキーを生成し、それをクライアントコンピュータ204へと送信する。次に、ブロック356では、新サーバセッションキーを受け取ったクライアントキー管理部112は、クライアントセッションキーを旧クライアントキーとして格納し、新サーバセッションキーを現クライアントキーとして格納する。クライアントセッションキーを新サーバセッションキーに単に置き換える代わりに、クライアントセッションキーを旧クライアントキーとして格納することで、更なる信頼性につながる。通信不良もしくはその他の不良のために、クライアントコンピュータ204およびライセンスサーバ102が方法306の完了を失敗した場合、クライアントコンピュータ204およびライセンスサーバ102は、その後に、旧クライアントキーを使って、通信することができる。
【0032】
次に、方法300は、ブロック358へ進み、そこでライセンスサーバ確認部106は、新クライアントセッションIDを生成し、サーバキー管理部122に、受信確認を送信する。次に、ブロック360においては、確認を受け取ったサーバキー管理部122は、クライアント識別子に対応する新サーバセッションIDを生成する。一実施形態においては、次の方法300の実行時にもクライアントセッションIDとサーバセッションIDとが適合するように、クライアントセッションIDとサーバセッションIDとを適合させる。一実施形態においては、これを達成するには、ライセンスサーバ102が、生成したサーバセッションIDをクライアントコンピュータ204に伝えるようにし、それからクライアントセッションIDが適合するように更新する。別の実施形態においては、新サーバセッションIDおよび新クライアントセッションIDは、ライセンスサーバ102とクライアントコンピュータ204とが更なる通信を行うことなく、新サーバセッションIDと新クライアントセッションIDとが適合するように、以前適合していたサーバセッションIDおよびクライアントセッションIDの変更に基づいて、同じアルゴリズムを用いて生成される。さらに別の実施形態においては、クライアントコンピュータ204は、新クライアントセッションIDを生成し、それをライセンスサーバ102に送信し、その後、新サーバセッションIDが適合するように更新する。更に別の実施形態においては、サーバセッションIDおよびクライアントセッションIDは同一の値である必要は無く、代わりに、適合していることがわかるように、互いに何らかの対応をしていればよい。
【0033】
クライアントセッションIDおよびサーバセッションIDが更新された後、方法300は、ブロック362に進み、そこではサーバライセンス管理部126がライセンスパケットを生成し、安全にそれをクライアントライセンス管理部114へと送信する。方法300は、ブロック364へ進み、そこでは、ライセンスパケットを受け取ったクライアントライセンス管理部114がソフトウェアライセンスをインストールし、それによって、ソフトウェアライセンスに示されたような保護されたプログラムの特定の機能を使用可能にする。その後、方法300は、別の継続端部(「端部D」)へと進む。
【0034】
端部(図3A)から、方法300は、端部Eと端部Fとの間で定義された方法ステップのセット308へと進む。方法ステップのセット308には、失効したソフトウェアライセンスの更新方法が記載されている。端部E(図3F)から、方法300は、ブロック366へ進み、そこでは、ソフトウェアライセンスが失効したと判定されると、クライアントライセンス管理部114は、端部C2(図3D)から端部D(図3F)までの上記方法ステップのセット306を開始し、更新されたソフトウェアライセンスをライセンスサーバ102から取得する。ソフトウェアライセンスの失効には、様々な態様が考えられる。一実施形態においては、ソフトウェアライセンスは、一定の期間が過ぎたときに失効する。別の実施形態においては、ライセンスサーバ102もしくはベンダー202の自発的な動作によって、クライアントコンピュータ204のソフトウェアライセンスが失効してもよい。さらに別の実施形態においては、ユーザの動作(たとえば保護されたソフトウェア製品の繰り返しの使用)によって、ソフトウェアライセンスが失効してもよい。
【0035】
失効したソフトウェアライセンスの機能はまた、実施形態によって違ってもよい。一実施形態においては、失効したソフトウェアライセンスはライセンスサーバ102によって更新されるまで、プログラムの機能の継続使用はできないようにする。別の実施形態においては、失効したライセンスの、さらなる時間の経過、もしくはさらなる回数の使用があるまで、プログラムの機能の継続使用を許可する。さらに別の実施形態では、ソフトウェアライセンスが失効すると、ソフトウェアライセンスの更新が必要であることを示す通知をユーザに提示する。
【0036】
端部C2から端部Dまでの方法ステップのセット308が実行された後、方法300は、ブロック366から端部Fへ進み、終了する。
【0037】
具体的な実施形態が説明、記述されたが、本発明の特許請求の精神および範囲を超えない限り、様々な変更が可能であることは理解されるであろう。

【特許請求の範囲】
【請求項1】
クライアントコンピュータで動作するライセンスアクセスエージェントを含むシステムであって、
上記ライセンスアクセスエージェントは、保護されたソフトウェア製品の使用許諾を求める要求を受信したときに、該保護されたソフトウェア製品の一つ以上の機能を、上記クライアントコンピュータで実行可能とするためのソフトウェアライセンスを受信し、更新されたソフトウェアライセンスを取得することなく、上記受信したソフトウェアライセンスが失効したときに、上記保護されたソフトウェア製品を使用不可とするライセンス管理部を備えているシステム。
【請求項2】
上記ライセンスアクセスエージェントは、ライセンスサーバとの接続を確立し、さらに、上記接続を介して、クライアント識別子と初期キーとを有するライセンスパケットを含む、上記ソフトウェアライセンスの要求を送信する初期化部をさらに備える、請求項1に記載のシステム。
【請求項3】
上記ライセンスアクセスエージェントは、サーバセッション識別子を受信して、該サーバセッション識別子と、上記クライアントコンピュータに格納されたクライアントセッション識別子とを比較することによって、ライセンスサーバの正否を確認するライセンスサーバ確認部をさらに備える、請求項1に記載のシステム。
【請求項4】
上記ライセンスアクセスエージェントは、ライセンスサーバと通信する際に更新される、旧セッションキーと現セッションキーとを含む少なくとも二つのクライアントセッションキーを格納するクライアントキー管理部をさらに備える、請求項1に記載のシステム。
【請求項5】
上記ライセンスアクセスエージェントは、ライセンスサーバに対して、上記クライアントコンピュータで動作する当該ライセンスアクセスエージェントを認証するクライアント認証部をさらに備える、請求項1に記載のシステム。
【請求項6】
上記ライセンスアクセスエージェントが上記クライアントコンピュータで動作しているときに、サーバコンピュータで動作するライセンスサーバをさらに備え、
上記ライセンスサーバは、上記ライセンスアクセスエージェントから、セッションキーが更新されたことの確認を受信したときに、上記ソフトウェアライセンスをライセンスパケットとして生成するサーバライセンス管理部を備えている請求項1に記載のシステム。
【請求項7】
上記ライセンスサーバは、上記ソフトウェアライセンスの要求を受信したときに、上記クライアントコンピュータとの接続を確立するクライアント確認部をさらに備え、
上記クライアント確認部は、クライアント識別子によって上記クライアントコンピュータの正否を確認し、当該クライアント識別子に対応するセッション識別子を上記クライアントコンピュータに送信し、上記セッション識別子を、現在のセッションを定義するように更新する、請求項6に記載のシステム。
【請求項8】
上記ライセンスサーバは、上記クライアントコンピュータを認証するサーバ認証部をさらに備える、請求項7に記載のシステム。
【請求項9】
上記ライセンスサーバは、セッションを行っている間に、次のセッションにおいて上記サーバ認証部が使用する新セッションキーを生成し、該新セッションキーを上記クライアントコンピュータに送信するサーバキー管理部をさらに備える、請求項8に記載のシステム。
【請求項10】
ライセンスパケットを要求することによって、更新されたソフトウェアライセンスを取得することなく、ソフトウェアライセンスが失効した、保護されたソフトウェア製品を使用不可とする工程と、
クライアントコンピュータのクライアント識別子が、ライセンス供与データベースにあり、かつサーバセッション識別子が、クライアントセッション識別子または旧セッション識別子と一致する場合に、上記クライアントコンピュータにおいて、上記保護されたソフトウェア製品の一つ以上の機能を動作可能とする更新されたソフトウェアライセンスを含むライセンスパケットを受信する工程と、を含む方法。
【請求項11】
ライセンスシステム生産部が、ライセンスアクセスエージェントを生成する工程をさらに含む、請求項10に記載の方法。
【請求項12】
上記ライセンスアクセスエージェントと、上記クライアントコンピュータに配信するソフトウェア製品とを組み合わせて、上記保護されたソフトウェア製品を形成する工程をさらに含む、請求項11に記載の方法。
【請求項13】
上記保護されたソフトウェア製品は、実行されたときに、上記ライセンスアクセスエージェントを呼び出し、該ライセンスアクセスエージェントは、ベンダーに上記ライセンスパケットを要求する工程をさらに含む、請求項12に記載の方法。
【請求項14】
上記サーバセッション識別子と、上記クライアントセッション識別子とが一致する場合に、クライアントセッションキーに現クライアントキーとして格納された値を割り当て、上記サーバセッション識別子と、旧クライアントセッション識別子とが一致する場合に、クライアントセッションキーに旧クライアントキーとして格納された値を割り当てる工程をさらに含む、請求項10に記載の方法。
【請求項15】
サーバキー管理部が、新サーバセッションキーを生成し、該新サーバセッションキーを上記クライアントコンピュータに送信する工程と、
ライセンスサーバ確認部が、新クライアントセッションキーを割り当て、受信確認を上記サーバキー管理部に送信する工程と、
上記サーバキー管理部が、上記受信確認を受信したことに応じて、上記クライアント識別子に対応する新サーバセッション識別子を生成する工程と、
サーバライセンス管理部が、上記ライセンスパケットを生成する工程とをさらに含む、請求項14に記載の方法。
【請求項16】
ソフトウェアの無許可使用を阻止する方法を実行するためのコンピュータが実行可能な命令が格納されているコンピュータ読み取り可能な記録媒体であって、上記方法は、
ソフトウェアライセンスの期限が切れたときに、保護されたソフトウェア製品を使用不可とする工程と、
ライセンスパケットを要求する工程と、
クライアントコンピュータのクライアント識別子がライセンス供与データベースにあり、サーバセッション識別子がクライアントセッション識別子もしくは旧セッション識別子と一致する場合に、上記保護されたソフトウェア製品の一つ以上の機能をクライアントコンピュータで動作可能とするための更新されたソフトウェアライセンスを含む上記ライセンスパケットを受信する工程と、
上記保護されたソフトウェア製品の上記一つ以上の機能を使用可能にする工程とを含む、コンピュータ読み取り可能な記録媒体。
【請求項17】
ライセンスシステム生産部が、ライセンスアクセスエージェントを生成する工程をさらに含む、請求項16に記載のコンピュータ読み取り可能媒体。
【請求項18】
上記ライセンスアクセスエージェントと、上記クライアントコンピュータに配信されるソフトウェア製品とを組み合わせ、上記保護されたソフトウェア製品を形成する工程をさらに含む、請求項17に記載のコンピュータ読み取り可能媒体。
【請求項19】
上記サーバセッション識別子が上記クライアントセッション識別子と一致する場合に、クライアントセッションキーに現クライアントキーとして格納された値を割り当て、上記サーバセッション識別子が旧クライアントセッション識別子と一致する場合に、上記クライアントセッションキーに旧クライアントキーとして格納された値を割り当てる工程をさらに含む、請求項16に記載のコンピュータ読み取り可能媒体。
【請求項20】
サーバキー管理部が、新サーバセッションキーを生成して、該新サーバセッションキーを上記クライアントコンピュータに送信し、ライセンスサーバ確認部が、新クライアントセッションキーを割り当て、受信確認が上記サーバキー管理部に送信され、さらに上記サーバキー管理部が、上記受信確認の受信に応じて上記クライアント識別子に対応する新サーバセッション識別子を生成した後、サーバライセンス管理部が、上記ライセンスパケットを生成する工程をさらに含む、請求項19に記載のコンピュータ読み取り可能媒体。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate

【図3E】
image rotate

【図3F】
image rotate


【公表番号】特表2010−522382(P2010−522382A)
【公表日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2009−554747(P2009−554747)
【出願日】平成20年3月20日(2008.3.20)
【国際出願番号】PCT/US2008/057693
【国際公開番号】WO2008/116087
【国際公開日】平成20年9月25日(2008.9.25)
【出願人】(509261418)デムヴィッチ ソフトウェア,リミテッド ライアビリティー カンパニー (2)
【氏名又は名称原語表記】DMVICH SOFTWARE,LLC
【住所又は居所原語表記】2711 Centerville Road,Suite 400,Wilmington,DE 19808,United states of America
【Fターム(参考)】