JP2020524836A - ソフトウェア起動及びライセンス追跡用のシステム及び方法 - Google Patents

ソフトウェア起動及びライセンス追跡用のシステム及び方法 Download PDF

Info

Publication number
JP2020524836A
JP2020524836A JP2019565383A JP2019565383A JP2020524836A JP 2020524836 A JP2020524836 A JP 2020524836A JP 2019565383 A JP2019565383 A JP 2019565383A JP 2019565383 A JP2019565383 A JP 2019565383A JP 2020524836 A JP2020524836 A JP 2020524836A
Authority
JP
Japan
Prior art keywords
license
server
user
application
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019565383A
Other languages
English (en)
Inventor
コソバン オレクサンドル
コソバン オレクサンドル
Original Assignee
マックパウ,インコーポレイティド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/601,909 external-priority patent/US10706130B2/en
Application filed by マックパウ,インコーポレイティド filed Critical マックパウ,インコーポレイティド
Publication of JP2020524836A publication Critical patent/JP2020524836A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1077Recurrent authorisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

ソフトウェア流通及びソフトウェア起動の使用の統計情報の収集のための柔軟且つ安全なツールをソフトウェア開発者に提供するべく、エンドユーザー演算装置(コンピュータ)上におけるソフトウェア起動及びその状態の更なる追跡用のシステム及び方法を開発した。方法は、(a)取得確認を入手するステップと、(b)ライセンスを要求するステップと、(c)ライセンスを発行し、且つ、エンドユーザーに供給するステップであって、ライセンスは、サーバーにより、プライベートキーによって保護され、且つ、プライベートキーは、クライアントにおいて保存されてはいない、ステップと、(d)ユーザーのコンピュータ上におけるライセンスの検証ステップと、(e)ユーザーのコンピュータ上においてライセンスを保存するステップと、(f)起動状態の定期的追跡ステップと、(g)ユーザーのライセンスに伴う別の動作ステップと、という論理ステップから構成されており、ライセンスを検証するステップは、アプリケーションと関連するクライアントにおいて、なんらの変更をも伴うことなしに、サーバーから受け取られたライセンスを検証するステップと、ライセンスをクライアントに保存するステップと、を有する。

Description

本発明の分野は、ソフトウェア起動用のシステム及び方法に関する。
現時点において、ソフトウェア起動の様々な関連技術の方法が存在している。ソフトウェア起動の関連技術の方法の大部分は、インターネット接続を必要としている。但し、ソフトウェア起動におけるインターネット接続の使用は、様々な問題及び欠点をもたらす可能性がある。例えば、限定を伴うことなしに、認可されていない(例えば、違法な)ソフトウェア使用の問題が存在している。ソフトウェア起動の方法が、関連技術のものよりも洗練されたものにならない限り、違法なソフトウェア使用のセキュリティ及び防止の関連技術の問題は、ソフトウェア起動の分野において残されたままとなる。
いくつかの関連技術の方式は、ライセンスの検証を実行し、且つ、ライセンスの検証が完了したら、誤ったパラメータ情報を正しいパラメータ情報によって置換する、誤ったパラメータ情報を含むフェイクライセンスファイルを生成するアプリケーションと関連するクライアントを含む、ラインセンス用の検証技法を使用しうる。但し、この方式は、様々な問題及び欠点を有しうる。例えば、限定を伴うことなしに、フェイクライセンス方式は、ライセンスファイルのコンテンツが、(サーバーサイドではなく)クライアントの機械上において生成されるものと仮定している。従って、keygenアプリケーションが、ベンダアプリケーションを破るなんらの必要性を伴うことなしに、ベンダアプリケーションが生成するのと同様の方式により、このようなファイルを生成しうる。
本発明は、エンドユーザー用の起動プロセスの単純化、認可されていない(例えば、違法な)ソフトウェア使用を防止するための起動プロセスのそれぞれのステップにおける起動の方法の保護、並びに、新しいコンピュータや偶発的に失われた起動番号などの際のソフトウェアの再起動などのいくつかの予想されていない課題に関係する顧客サポート問合せの数を減少させるための将来における起動状態の追跡、という態様を対象としている。
起動プロセスにおける第1ステップは、アプリケーションを取得するステップである。アプリケーションの取得ステップは、購入、無償譲渡、又はベンダによって定義された任意のその他の方法を通じて発生しうる。ユーザーは、アプリケーションの取得の確認を受け取らなければならない。このアプリケーションの取得の確認は、(限定を伴うことなしに)(a)ソフトウェア開発者によって提供される起動キー―例えば、シンボルの一意の組合せ、或いは、(b)特定のユーザーに接続された起動システムのデータベース内のレコード、の形態において存在することができる。
このアプリケーションの取得ステップは、様々な方法によって実行することができる。例えば、限定を伴うことなしに、ソフトウェアは、オンラインストアにおける購入されたソフトウェアであってもよく、供給は、限定を伴うことなしに、OEM供給セットと関連するソフトウェアを含む、CD、DVD、又はUSBドライブを含む、物理的な媒体上において発生しうる。これらのアプリケーションの取得のモードのそれぞれは、取得確認の準拠性の設定と関連する別個のメカニズムを有し、且つ、ラインセンスの発行が基づくべき規則の組をも有する。
取得確認は、起動番号を含むことができる。一方において、取得確認は、人間が解読可能なものであってもよく、これにより、発生可能な誤りの数が低減されうる。他方において、取得確認は、力任せ検索を防止するべく、十分に長い。これに加えて、(限定を伴うことなしに)ウェブページ上の又は電子メール内のボタンに対する選択又はクリック動作を含む、ユーザー動作によってソフトウェアを起動する選択肢を開発者がユーザーに提供することを許容する「URLによる起動」方式も開発されている。
特定のユーザーと関連する起動システムのデータベース内のレコードを1つ又は複数の方式によって開始することができる。例えば、限定を伴うことなしに、起動システムのデータベース内のレコードは、(a)オンライン又はオフラインストア内におけるソフトウェアの購入の後に、或いは、(b)起動システムの管理者によって手動により、開始することができる。ユーザーは、ソフトウェアライセンスを取得するために、識別情報を提供しなければならない。識別情報は、限定を伴うことなしに、(a)ログイン識別子とパスワードの一意のペア、(b)起動サーバーによって提供されるセキュリティキーによって保護された起動サーバーに対する安全な接続の確立、或いは、(c)ユーザーの確実な識別を許容する、起動システムの管理者によって定義された方法を含むことができる。
起動システムのデータベース内のレコードの開始の後の、次のステップは、ラインセンスに対する要求を生成する、というものである。このステップは、インターネット接続を必要としている。この例示用の実装形態によれば、所定のプロトコルが提供されている。更には、データが起動サーバー上において処理される方式の構造も提供されている。ユーザーのコンピュータからの要求は、限定を伴うことなしに、(a)アプリケーションバンドルID(例えば、特定のフォーマットにおける製品名)、(b)バンドルバージョン(例えば、製品バージョン)、(c)現時点の起動のために維持されているデータの更なる組、(d)ユーザーのアカウント識別子(例えば、電子メールアドレス)、(e)一意のコンピュータ識別子用の2つの値、(f)取得確認、(g)ユーザーの氏名、(h)セキュリティを向上させるためのランダムデータのブロック、(i)サーバーサイドにおいてデータをオープンするためのパスワード、並びに、(j)エラーメッセージ用の言語、のうちの1つ又は複数を含むデータを含みうる。
ライセンスに対する要求が生成されたら、第3のステップは、ライセンスを発行し、且つ、ユーザーに供給するステップであり、ライセンスは、サーバーにより、プライベートキーによって保護されており、且つ、プライベートキーは、クライアントにおいて保存されてはいない。ライセンス要求が受け取られた後に、サーバーは、起動要求が正しい場合には、ライセンスを発行し、且つ、そうでない場合には、エラーメッセージを送信する。サーバーの応答は、(a)エラーコード(例えば、成功の場合の0)、(b)エラーメッセージ又は暗号化されたライセンス、(c)ソフトウェアのプライベートキーを使用して生成される、ラインセンスファイルの署名又はエラーメッセージ、という情報を含む。
ソフトウェアライセンスがエンドユーザーのコンピュータに供給された後に、ソフトウェアライセンスは、アプリケーションと関連するクライアントにおいて、なんらの変更をも伴うことなしに、サーバーから受け取られたラインセンスを検証し、且つ、ライセンスをクライアントに保存することによる検証に合格することを要する。ライセンスファイルは、ユーザーのコンピュータファイルシステム上の特定の場所に書き込まれる。ライセンスの有効性は、アプリケーションの最初の起動の後に、アプリケーションのインストールの最中に、アプリケーションの試用期間が終了した後の最初の起動の最中に、或いは、当業者には理解されうるその他の適切な状況において、チェックされる。ライセンスの出元の検証(例えば、パブリックキーによる検証)及び完全性の確認が完了した後に、ユーザーは、ソフトウェアによる作業を開始することができる。
起動の状態は、定期的に起動サーバーに送信される。報告の規則は、開発者が定義することができる。起動状態は、例えば、再起動が許容されている場合のソフトウェアの再起動などの、開発者によって定義された様々な状態に応じて、トリガすることができる。
又、例示用の実装形態は、(例えば、起動サーバーサイドからの)リモートにおける方式及び(例えば、ユーザーによって開始される)直接的な方式の両方における、ライセンスの無効化の可能性をも対象としている。
例示用の一実装形態によるクライアント及びサーバーを含むプロトコルの例示用のプロセスを示す。 例示用の実装形態による第1プロトコルの一例を示す。 例示用の実装形態による第2プロトコルの一例を示す。 例示用の一実装形態によるサーバーを含むプロトコルの例示用のプロセスを示す。 例示用の一実装形態によるクライアントを含むプロトコルの例示用のプロセスを示す。 いくつかの例示用の実施形態に適した例示用の環境を示す。 いくつかの例示用の実装形態において使用される外部ホストと関連する例示用の演算装置を有する例示用の演算環境を示す。
本明細書において記述されている主題は、例示用の実装形態によって教示されている。わかりやすさを目的として、且つ、主題の曖昧化を回避するべく、様々な詳細事項が省略されている。以下に示されている例は、ソフトウェア起動及びライセンス追跡用の構造及び機能を対象としている。
本明細書において使用されている用語は、当業者にとってのその平易な且つ通常の意味を有するものと理解されたい。用語は、例として定義されている場合があるが、提供されている定義に限定されるものではない。例えば、限定を伴うことなしに、「ユーザー」又は「エンドユーザー」は、認可された方式によって(例えば、適法に)ソフトウェアの複写を取得した、且つ、演算装置上において適切に動作するようにソフトウェアを構成した、人物などの、エンティティを含みうる。更には、「開発者」又は「ベンダ」は、論理的に完成されたコンピュータプログラムなどの、ソフトウェアの1つ又は複数の複写を流通させる、人物又は法人などの、エンティティであってよい。これに加えて、「ソフトウェアインストール」は、コンピュータプログラムが、開発者によって意図された方式によって動作するようにする方式により、ユーザーと関連するユーザー演算装置上において配置されたコンピュータプログラムの複写である。
これに加えて、「起動」は、ソフトウェアインストールの適法性(ソフトウェアインストールが認可されているかどうか)を確認する、且つ、(存在する場合には)開発者によって定義された任意の機能的制限を除去する、手順又は手順の組を含みうる。「試用」は、ユーザーがソフトウェアに習熟した状態となるために実行される制限された機能を伴う、ソフトウェアインストールの使用のタイプを含みうる。又、「取得確認」は、ソフトウェアを適法に使用するためのユーザーの権限を確認するデジタルエンティティ(例えば、認可)であり、且つ、取得プロセス(例えば、購入、無償譲渡、又はこれらに類似したもの)が完了した後に、ユーザーに提供されなければならない。
これに加えて、「起動番号」又は「起動キー」は、取得確認のタイプとして使用される、人間が解読可能な組合せ(例えば、英数シンボル)であってよい。更には、「ライセンス」は、ソフトウェアインストールが特定のコンピュータ装置上において使用されうるかどうかを識別するべく使用されるデータを含むコンピュータファイルを含みうる。「ライセンスタイプ」は、ソフトウェア使用の異なる条件を生成するべく開発者によってセットアップされる、ライセンス生成用の規則の組を含みうる。これらの規則は、限定を伴うことなしに、ソフトウェア使用の期間(例えば、1年、6か月、終生)、可能な再起動の回数、提供対象の特定の機能、などを含みうる。
更には、「起動サーバー」又は「サーバー」は、ユーザーの演算装置との関係における、且つ、ソフトウェアインストールの起動のための必要な動作を実行する、リモート演算装置である。例示用の実装形態によれば、サーバーは、当業者には既知のハードウェアを含みうる。又、「バンドルID」は、エンドユーザーのコンピュータのオペレーティングシステムによって判読可能である、特別なフォーマットにおけるアプリケーション識別子である。
例示用の実装形態の態様は、エンドユーザー用の起動プロセスの単純化、認可されていない(例えば、違法な)ソフトウェアの使用を防止するための起動プロセスのそれぞれのステップにおける起動の方法の保護、新しいコンピュータや偶発的に失われた起動番号などの際のソフトウェアの再起動などのいくつかの予想されていない課題に関係する顧客サポート問合せの数を減少させるための将来における起動状態の追跡、を対象としている。
上述の関連技術のセキュリティギャップを克服するべく、例示用の実装形態は、非対称なデジタル署名の方式を対象としている。更に詳しくは、例示用の実装形態は、それぞれのベンダアプリケーション用のキーの一意のペア、すべてのベンダアプリケーションにおいて統合されたパブリックキー、並びに、サーバーサイドにおいて安全に保存されたプライベートキーを使用している。サーバーにおいて配置されたプライベートキーを保護するべく、例示用の実装形態は、(限定を伴うことなしに)、サーバーがインターネットに接続されていない場合の、内部サーバーのみが利用可能である隔離されたストレージシステム、暗号化された接続を確立するためのSSLの使用、並びに、クラウドの実質的に隔離されたセクションを提供するためのAWS仮想プライベートクラウドサービスの使用、を含む、様々な技法及び方法を使用することができる。
違法なアクセスから保護するためのネットワークファイアウォールの使用
サーバーが、対応する要求を受け取った際に、サーバーは、ライセンスファイルのコンテンツを生成し、且つ、一意の保護されたプライベートキーにより、ライセンスファイルに署名する。従って、サーバーは、デジタル署名を生成している。一意の保護されたプライベートキーを有する署名済みのライセンスファイルは、すべてのベンダアプリケーションにおいて固有のものである。
ベンダアプリケーションは、デジタル署名を有するライセンスファイルを受け取り、且つ、ユーザーの機械(例えば、クライアント)上において保存している。不良な行為者(例えば、ハッカー)が、悪意を有する行為を試みた(例えば、ラインセンスファイルを変更するための試みを決定した、或いは、フェイクライセンスを生成するべく試みた)場合には、このラインセンスファイルの署名検証が、ベンダアプリケーションサイドにおいて、失敗する。従って、ライセンスファイルのコンテンツが無効となり、且つ、ベンダアプリケーションは、(例えば、ベンダアプリケーションをクラッキングするための)悪意を有する試みに対する耐性を有する。
これらの及びその他の態様を実現するべく、限定を伴うことなしに、図1において示されているように、起動プロセスを含む、プロセス100において、様々なステップを実行することができる。101において、ユーザーは、アプリケーションを取得している。更には、103において、ユーザーは、様々なモードのうちの1つにより、アプリケーションの取得の確認を受け取っている。アプリケーションの取得のモードのそれぞれは、取得確認の準拠性の設定と関連する別個のメカニズムと、ライセンスの発行が基づくべき規則の組と、を有する。取得確認は、起動番号を含みうると共に、人間が解読可能なものであってよいが、起動確認を判定するための認可されていない人物による力任せ検索を防止するべく、十分に長い。更には、例示用の実装形態による「URLによる起動」方式は、ユーザー動作によってソフトウェアを起動するための選択肢を開発者がユーザーに提供することを許容することができる。
105において、特定のユーザーと関連する起動システムのデータベース内のレコードを開始することができる。ユーザーは、107において、ソフトウェアライセンスを取得するための識別情報を提供しなければならない。起動システムのデータベース内のレコードの開始の後に、109において、ラインセンスに対する要求が、所定のプロトコルによって生成されている。このプロトコルによれば、ライセンスは、サーバーにおいて生成され、且つ、安全なプライベートキーによって署名されている。109において、ラインセンスに対する要求が生成されたら、111において、ライセンスがユーザーに提供され、且つ、113において、ユーザーが、デジタル署名と共に、ライセンスを受け取り、且つ、ライセンスファイルをユーザー装置において保存している。
ライセンス要求が上述のように受け取られた後に、サーバーは、115において、起動が正しいかどうかを判定し、且つ、起動要求が正しい場合には、119において、ライセンスを発行し、且つ、そうではない場合には、117において、エラーメッセージを送信している。119において、ソフトウェアライセンスがエンドユーザーのコンピュータに供給された後に、ソフトウェアライセンスは、検証に合格することを要する。ライセンスファイルは、ユーザーのコンピュータファイルシステム上の特定の場所に書き込まれる。アプリケーションが稼働するのに伴って、121において、サーバーから受け取られたライセンスを変更することなしに、ライセンスの有効性がチェックされるが、署名されたライセンスファイルを変更する、或いは、フェイクライセンスを生成する、試みが実施された場合には、この試みは、ベンダサイドにおいて失敗することになり、ラインセンスファイルのコンテンツは、ベンダアプリケーションがクラッキングされないように、無効になる、ことに留意されたい。ライセンスの出元の検証及び完全性の確認の後に、ソフトウェアインストールは完了しており、且つ、123において、ソフトウェアは、使用の準備が完了している。起動の状態は、起動サーバーに定期的に送信される。更には、ライセンスは、リモートにおいて、或いは、直接的に、無効化することもできる。
以下、様々な動作の更なる詳細について更に詳細に説明する。
取得確認の入手
認可された方式によって(例えば、適法に)ソフトウェアを使用するべく、ユーザーは、取得確認を受け取らなければならない。このような取得確認は、限定を伴うことなしに、(a)起動キー(例として、例えば、ソフトウェア開発者によって提供されるシンボルの一意の組合せ)、或いは、(b)特定のユーザーと接続された起動システムのデータベース内のレコード、を含む、様々な形態において存在しうる。取得を完了した後に、ソフトウェアライセンス用の取得確認を交換する方法についての命令をユーザーに提供しなければならない。
上述のように、ユーザーは、取得確認(例えば、起動番号)を入手しなければならない。ソフトウェアベンダは、
直接的販売(例えば、ベンダのウェブサイト上のオンライン販売を介した、或いは、直接的なベンダの小売りアウトレットを通じた、直接的なもの)、
第三者のリセラー及びパートナーを介した販売、
オンライン又は物理的媒体(例えば、CD、USBスティック、又はSDカード)上のボックスバージョンを介した流通など、
という起動番号の流通の1つ又は複数の異なる選択肢を有しうる。
上述の流通方法は、取得確認の入手の異なる方法及びシーケンスを必要としうる。いくつかのケースにおいては、取得確認は、支払が受け取られたら即座にオンデマンドで提供することが可能であり、その他のケースにおいては、いくつかの物理的媒体上において提供されるべく、多数の事前生成された起動番号の提供が必要となりうる。それぞれのケースにおいて、ベンダは、(例えば、マーケティング及び分析を目的として)起動番号が生成された状態と関連する、より多くの情報(例えば、パートナー、マーケティングキャンペーン、データ、カウント、及びその他の状態)について知っていなければならない。
例示用の実装形態は、
URLによる生成―取得確認に対するそれぞれの要求は、起動サーバーと関連する特定のURL上にリダイレクトされることになる。完全且つ正しく構築された要求のケースにおいては、サーバーは、取得確認によって応答することになる。
「バルク」生成―サーバーは、有限量の起動番号を生成し、これらの起動番号は、「そのままの状態」で、ソフトウェアディストリビュータに提供されるか、或いは、ユーザーの全体を通じて拡散される。
単一生成―この取得確認を生成する方法は、そのほとんどが、1つの取得確認の生成が必要とされている際などの、試験及びサポートを目的として使用される。
という取得確認生成の少なくとも3つの基本的メカニズムを含む。
取得確認は、暗号化を伴うことなしに、「そのままの状態」で、サーバーによって送信することができる。
URLによる生成
この方法は、1つ又は複数の取得確認に対する要求を含む。この方法は、直接的なオンライン購入の際に使用される可能性が最も高いが、アプリケーションを取得するその他のモードにおいて使用することもできる。図2は、URLによる生成に基づいて起動コードを要求するプロセスの例示用の実装形態200を示している。図2には、ユーザーワークステーション201、支払システム203、及び起動サーバー205が開示されている。但し、これは、当業者には理解されるように、本発明の範囲を逸脱することなしに、その他の実装形態によって置換することができる。
1.ユーザーが、購入ページ(例えば、開発者のウェブサイト、或いは、第三者のウェブリソース、或いは、製品を購入するなんらかの方法)を訪問している(207)。
2.ユーザーが、自身の氏名、電子メールアドレス、電話番号、製品の量、ソフトウェア使用の持続時間などのような、必要とされる情報を提供している(207)。
3.購入に成功した場合には、ビリングシステムが、特定のAPIにより、収集された情報をソフトウェアベンダのサーバーに送信し、注文情報が、起動サーバーにおいて保存され、且つ、起動キーが生成される(209、211a、211b)。
4.ユーザーが、起動サーバーから起動キーを取得しており、この起動キーは、記述されている電子メールに送信されると共に/又は、購入ページ上において表示される(213、215)。
5.なんらかの理由から、支払を完了させることができない場合には、ユーザーは、更なる動作(ビリング情報の再入力、銀行口座のチェック、後での試みなど)のための命令と共に、トランザクションを完了させることができないことについて通知される(217)。
バルク生成
別の例示用の実装形態においては、物理的媒体(CD、USB)の、会員、リセラー、又は製作者、という関係者のために多数のコードを提供するべく、「バルク」起動を利用することができる。
この例示用の実装形態においては、ソフトウェアベンダは、(例えば、事前に)、必要とされるマーケティングパラメータ又は契約の条件(例えば、2017年12月25日まで使用されるべく、500個のライセンスがResell LLCに提供される)により、特定量の起動番号を生成することができる。
この例示用の実装形態においては、注文のブランクレコードを有するデータベースが生成され、且つ、開発者は、起動番号の特定のパターンを記述することができる。アプリケーションは、自身の個人的なデータ(名前及び電子メールアドレス)についてエンドユーザーに問い合わせることになる。従って、注文レコードは、ソフトウェアが起動された後に、入力されることになる。
単一生成
この選択肢は、顧客サポートのみならず、販促又は試験を目的として、実装することができる。
この例示用の実装形態によれば、ソフトウェアベンダは、サーバー上の特別な管理者パネルを介して起動コードを生成し、且つ、次いで、このコードを顧客又は必要とされる関係者に送信している。次いで、注文レコードは、管理者によって入力される。
起動システムのデータベース内におけるレコードの生成
以下、ソフトウェア取得の後の起動システムのデータベース内におけるレコードの生成の動作について説明する。ユーザーは、起動システム上における自分自身の識別を要することに留意されたい。これは、(限定を伴うことなしに)、
ログインとパスワード情報の固有のペアを提供することによる、
起動サーバーによって提供される、(例えば、暗号化された)セキュリティキーによって保護された、起動サーバーとの間の安全な接続を確立することによる、
起動サーバーとの間の接続を確立し、且つ、(例えば、第三者サービスからのセッション識別子、或いは、起動システム管理者によって定義された任意のその他のパラメータ、を提供することにより)ユーザーの確実な識別を許容するパラメータを送信することによる、
方法のうちの1つ又は複数により、実行することができる。
ユーザーが起動システム上において自分自身を識別した後に、ソフトウェア取得に関する情報は、起動システムデータベース内においてレコードとして保存されることになる。
ライセンスの発行
ユーザーが取得確認を受け取った後に、ユーザーは、制限を伴うことなしにソフトウェアを使用するべく、ライセンスを要求しなければならない。
ライセンスの発行のプロセスは、取得確認のそれぞれのタイプについて類似している。相違点は、
アプリケーションの内部において起動番号を入力することによる、
URL方式によってアプリケーションを起動することによる、
起動システム上において認証することによる、
ログイン及びパスワードの固有のペアを提供することによる、
予め提供されたセキュリティキーによって保護された起動サーバーとの間の安全な接続を確立することによる、
起動サーバーとの間の接続を確立し、且つ、(例えば、第三者サービスからのセッション識別子、或いは、起動システム管理者によって定義された任意のその他のパラメータ、を提供することによる)ユーザーの確実な識別を許容するパラメータを送信することによる、
というユーザーがライセンスを受け取るための取得確認を提供する方法にある。
以下、ライセンス要求のプロセス300が、開示され、且つ、図3において示されている。図3に示されているように、ユーザー演算装置(例えば、ワークステーション)301、アプリケーションサイドの動作空間303(例えば、ユーザーによって制御された装置)、及びサーバーサイドの空間(例えば、データベースを有するサーバー)305が提供されている。動作は、限定を伴うことなしに、以下を含む。
1.ユーザーが、上述の方法の1つにより、取得確認を提供している(307)。
2.ソフトウェアが、ライセンス要求を生成し、且つ、ライセンス要求を起動サーバーに送信している(308)。
3.起動が、この取得確認について許容されているかどうかを起動サーバーがチェックしている(例えば、起動サーバーが、データベース内の起動番号レコード内において「アクティブ」なパラメータについてサーチすることができる)(309)。
4.yesである(即ち、起動が許容されている)場合に、起動サーバーは、識別情報に基づいてライセンスを発行し(311)、且つ、応答をライセンスファイルを収容するアプリケーションに送信する(317)。
5.ライセンスファイルが、起動システムのアプリケーションサイド部分による検証において合格する(319)。
6.ユーザーが、起動に成功したと通知されている(321)。
7.起動サーバーが、エラーが起動プロセスにおいて発生した(例えば、309においてライセンスの発行が許容されておらず、且つ、ライセンスが313の前に発行されていない)と判定した場合に、起動サーバーは、エラーコード及びメッセージをアプリケーションに、且つ、従って、ユーザーに、返送する(315)。その一方で、309においてライセンスの発行が許容されてはいないが、ライセンスが313の前に発行されていると起動サーバーが判定した場合には、プロセスは、上述のように、317において予め発行されたライセンスを送信するべく継続する。
8.ソフトウェアが、エラーに対処するための更なる動作(例えば、起動コードの有効性のチェックや顧客サポートへのコンタクトなど)に関する命令により、エラータイプについてユーザーに通知している(323)。
サーバーに対する要求の数を減少させるべく、且つ、ユーザーの入力要件を単純化するべく、起動キー用のパターン認識システムを本例示用の実装形態に従って実装した。更に詳しくは、起動キーが、特定のパターンを使用することによって生成され、これが、ソフトウェアインストールによって認識され、且つ、特定の動作についてソフトウェアインストールをトリガすることになる。例えば、限定を伴うことなしに、特定の添え字を有する起動キーが、ユーザーに対して個人的なデータを要求するためのフォームの表示を開始することができる。ベンダは、その独自のパターン及び振る舞いにマッチングするように、特定のパターン及びソフトウェアインストールの振る舞いをセットアップすることができる。
ソフトウェアが起動サーバー上において登録された後に、起動サーバーは、ライセンスの署名のために、プライベート及びパブリックキーのペアを発行する。プライベートキーは、サーバー上において保存され、且つ、ライセンスがアプリケーションに送信される前に、それぞれのライセンスに署名するべく、使用される。パブリックキーは、起動システムのアプリケーションサイド部分に統合されており、且つ、更に後述するように、ライセンス署名を検証するべく、後から使用される。
起動要求に成功した後に、ライセンスが、起動サーバー上において生成される。そのパラメータの1つとして、ライセンスは、以下のアプリケーション識別子に基づいて生成されたハッシュを含む。
アプリケーションのバンドルID
オペレーティングシステム上においてユーザーを認証するべく使用される(限定を伴うことなしに)ユーザー名でありうるユーザーの演算装置(例えば、ハードウェア)の1つ又は複数の識別子、ネットワークインターフェイスカードのMACアドレス、ハードディスクドライブ又は半導体ドライブ、マザーボード識別子、或いは、当業者には既知でありうるその他の識別子、及び、
ラインセンスに含まれることになる、ランダムに生成されたストリング(例えば、「salt」)
ライセンスファイルをエンドユーザーに送信する前に、ライセンスファイルは、対称暗号化アルゴリズムにより、暗号化され、且つ、起動サーバー上におけるソフトウェア登録の際に発行されるプライベートキーに基づいて、サーバー署名によって署名される。
再起動
ハードウェアの変更(例えば、新しいコンピュータへの変更)の後にソフトウェア使用を継続するための必要性によって生成されるサポート問合せの数を減少させるべく、例示用の実装形態による再起動システムを実装した。
起動番号が発行された際に、起動番号は、有限数の可能な起動を有する。例えば、ユーザーが、なんらかの理由から、自身のコンピュータ装置上においてソフトウェアインストールを無効化し、且つ、その同一のコンピュータ装置上において、ソフトウェアを起動するべく、同一の起動番号を再度使用した場合には、古いライセンスが発行されることになる。
その一方で、ユーザーが演算装置を変更した場合には、ユーザーは、同一の起動番号を使用してソフトウェアを起動する能力を依然として有する。可能な再起動の数に関する情報は、起動サーバー上において保存されている。起動サーバーは、規定された期間(例えば、限定を伴うことなしに、既定で6か月)が経過したら、1つの更なる再起動を自動的に追加する。その結果、ユーザーは、演算装置又はオペレーティングシステムを変更した場合に、ソフトウェアを再起動することができることになる。
ライセンスの検証
ソフトウェアインストールを完全な機能状態にするには、ライセンスがユーザーコンピュータ上において利用可能であることをチェックし、且つ、その有効性を検証する必要がある。検証は、(a)ライセンスの出元(例えば、ライセンスが正しいサーバーによって発行されたかどうか)、(b)ライセンスがこのコンピュータに対して発行されたかどうか(例えば、ライセンスが正しいコンピュータに対して発行されたかどうか)、並びに、(c)ラインセスが失効していないかどうか、というパラメータのチェックから構成されている。
関連技術においては、検証プロセスは、ハッカーが、コードに進入可能でありうる、且つ、アプリケーションをクラッキングするべく必要な情報を受け取ることが可能でありうる、期間である。このリスクに対処するべく、例示用の実装形態は、いくつかのメカニズムを含む。
ライセンスチェックが必要であるが、ライセンスチェックがまだ実行されていない、時点において(これらの時点は、例えば、アプリケーションの起動として、アップグレードとして、或いは、なんらかの特定の動作を実行するために、開発者によって定義されうる)、起動システムのアプリケーションサイドは、サーバーから受け取られるのに伴って、ライセンスを変更することなしに、ライセンスを検証し、且つ、検証済みのライセンスをクライアントサイド又はユーザー機械において保存する。内部進入の場合に、認可されていない人物(例えば、ハッカー)によるデータの取得が防止される。
更に詳しくは、且つ、上述のように、上述の関連技術セキュリティギャップを克服するべく、例示用の実装形態は、非対称方式のデジタル署名を対象としている。更に詳しくは、例示用の実装形態は、すべてのベンダアプリケーション内において統合されたパブリックキーと、サーバーサイドにおいて安全に保存されているプライベートキーと、というそれぞれのベンダアプリケーション用のキーの一意のペアを使用している。
サーバーが対応する要求を受け取った際に、サーバーは、ライセンスファイルのコンテンツを生成し、且つ、一意の保護されたプライベートキーにより、ライセンスファイルに署名している。従って、サーバーは、デジタル署名を生成している。一意の保護されたプライベートキーを有する署名済みのライセンスファイルは、すべてのベンダアプリケーションにおいて固有のものである。
ベンダアプリケーションは、デジタル署名を有するライセンスファイルを受け取り、且つ、ユーザーの機械(例えば、クライアント)上において保存している。不良な行為者(例えば、ハッカー)が、悪意を有する行為を試みた(例えば、ライセンスファイルを変更するための試みを決定した、或いは、フェイクラインセンスを生成するべく試みた)場合には、このラインセンスファイルの署名検証が、ベンダアプリケーションサイドにおいて、失敗する。従って、ライセンスファイルのコンテンツが無効となり、且つ、ベンダアプリケーションは、(例えば、ベンダアプリケーションをクラッキングするための)悪意を有する試みに対する耐性を有する。
従って、ハッカーによるライセンスデータの取得を防止するニーズが存在しておらず、その理由は、上述のように、この発生が不可能であるからである。ライセンスデータは、(ネットワークMACアドレス又は連番のような機械固有の識別情報を使用することにより)それぞれのマシンごとに一意に生成され、且つ、サーバー上において保存されたプライベートキーによって署名されている。従って、ライセンスデータは、別の機械においては、使用又はアクセスすることができない。
ライセンスチェックが必要とされるのに伴って、起動システムのアプリケーションサイド部分は、ライセンスが利用可能であるかどうかを判定するべく、予め定義されたストレージをチェックしている。
まず、起動システムのアプリケーションサイド部分は、上述のように、アプリケーションシステムのアプリケーションサイド部分に統合されたパブリックキーを使用することにより、サーバー署名をチェックしている。サーバー署名が、パブリックキーの使用に基づいて有効である場合には、起動システムは、対称暗号解読用のキーを受け取る。次いで、ライセンスの第2部分が、この暗号解読キーを使用することにより、暗号解読される。暗号解読に成功した結果として、ライセンス情報が受け取られる。
次のステージは、特定のコンピュータ用のライセンスの有効性をチェックするステップである。このチェックを実行するべく、起動システムのアプリケーションサイドは、
アプリケーションのバンドルID、
演算装置の1つ又は複数の識別子、
「ライセンス」内において保存されている「salt」ストリング、
というパラメータを使用することにより、ハッシュストリングを生成する。
生成されたハッシュストリングは、ライセンス内において保存されているストリングをマッチングしていることを要する。マッチングが存在していない場合には、ライセンスがその特定のコンピュータ及び/又はその特定のアプリケーションについては有効ではないものと判定される。
次のステップとして、起動システムのアプリケーションサイド部分は、ライセンスパラメータを現時点のシステム及びアプリケーション状態と比較することにより、ライセンスが失効していないことを確認するべく、チェックする。ライセンスタイプに応じて、以下のパラメータを比較することができる。
a)現時点のシステム時間との間のライセンス失効時間、
b)現時点のシステム時間との間のライセンス加入終了時間、
c)現時点のアプリケーションバージョンとの間のライセンス失効バージョン、
d)現時点のアプリケーションバージョンとの間のライセンスベータのみフラグ
これに加えて、起動システムのアプリケーションサイド部分は、ライセンスを検証するべく、要求を起動サーバーに定期的に送信することもできる。要求は、起動識別子及びユーザーのワークステーションを識別するべく必要とされる情報を含みうる。ライセンスが有効であると依然として判定される場合には、サーバーは、同一のライセンスによって応答する。但し、ライセンスがもはや有効ではないと判定された場合には、サーバーは、エラーメッセージによって応答する。この方法は、失効時間がサーバーシステム時間によって検証されていることから、ユーザーのワークステーションのシステム時間を使用してライセンス持続時間を延長することによる操作を防止している。
アプリケーションサイド部分のセキュリティ
起動システムのアプリケーションサイド部分は、起動サーバーにおいて登録されたそれぞれのアプリケーションごとに、一意に生成されている。セキュリティを目的として、起動システムのアプリケーションサイド部分のプログラミングコードの関数、メソッド、及び変数は、不明瞭化されている(例えば、人間が解読できないようになっている)。
不明瞭化される対象の関数は、特別なマーカーによってマーキングされ、且つ、コンパイルの際に、その名前が、予め定義されたアルファベットのランダムなもの(通常、これは、大文字及び小文字、並びに、数字という英数シンボルを含む)に置換されている。それぞれのアプリケーションごとに、不明瞭化された名前は一意である。
セキュリティを向上させるための別のメカニズムは、実行時にメモリ内の宛先アドレスを変更する関数を使用することによるものである。更に詳しくは、プログラムコードのコンパイルの際に、ラインセス検証に使用される関数は、意図的に誤ったパラメータを返すが、ソフトウェアがライブ動作中である際には、これらの関数は、正しいパラメータを返すことになる関数を収容したメモリ内のアドレスにリダイレクトされる。これらの関数は、リバースエンジニアリングのケースにおいて、ソフトウェアハッカーが、これらの関数が実際に実行する内容を判定することができなくなるように、コンパイルの際にランダムに命名されている。又、このメカニズムは、開発者によって定義される、ライセンスチェックが必要とされる時点において、実装することもできる。
例示用の実装形態によれば、開発者には、動作の際に、関数の名前が提供されてはおらず、且つ、開発者は、この情報を必要としてはいない。例えば、限定を伴うことなしに、開発者は、ソフトウェアプログラム(例えば、コード)を記述することができると共に、次いで、アプリケーションがコンパイルされる際に、関数は、セキュリティ対策として、関数の名前に基づいて関数を判定することが可能とならないように、疑似ランダムに命名されている(即ち、不明瞭化されている)。
ライセンスのリモート無効化
ユーザーが返金を要求し、且つ、返金が許可された場合には、ユーザーは、ソフトウェアを使用する権限を失う。従って、ライセンスをリモートで無効にするメカニズムを有する必要がある。又、このメカニズムは、ユーザーが、毎月又は毎年、ソフトウェアについて支払う必要がある際に、加入料金計画を処理するべく、使用される。例えば、ユーザーは、取消の肯定的な通知の提供を伴うことなしに、ソフトウェアを更新しないことを単純に選択することができる。
又、ライセンスが、加入料金の返金又は未払(例えば、更新)に起因して、サーバー上において有効ではないものとマーキングされている場合には、ライセンスは、起動システムのアプリケーションサイド部分上においてマーキングされることになり、且つ、ユーザーは、支払が確認される時点まで、アプリケーションを使用することができなくなる。
アプリケーションサイドにおけるライセンスの無効化
これに加えて、開発者は、アプリケーションの内部においてライセンスを無効化するための機能を追加することが可能でありうる。ユーザーがライセンスの無効化を開始した後に、起動システムのアプリケーションサイドは、要求をサーバーサイドに送信する。相応して、サーバーは、無効化されたものとしてマーキングされた、その特定のワークステーション用のライセンスによって応答する。この手順は、ユーザーが、別のワークステーション上におけるソフトウェアの使用を所望しているケースにおいて有用である。ユーザーは、第1ワークステーション上においてライセンスの無効化を開始することが可能であり、且つ、第2の(例えば、別の)ワークステーション上においてアプリケーションを起動するべく、必要とされるステップを反復することができる。
ライセンスとしてのアプリケーションストアのレシートの使用
ベンダがアプリケーションを販売した場合に(例えば、Apple App Storeを介したもの及びその他の供給源を介したものの両方)、起動サーバーは、ライセンスとしてアプリケーションストアのレシートをマッチングさせる能力を有する。
例えば、限定を伴うことなしに、ユーザーがアプリケーションストア(例えば、Apple App Store)を介してアプリケーションを購入した場合に、購入に関する情報が、パブリックAPIを介して、起動サーバーに送信される。ユーザーが自身の演算装置上においてソフトウェアを再起動する必要がある場合には、ソフトウェアインストールが、起動されたものとして認識されることになり、且つ、ラインセスが自動的に発行されることになる。
例示用のプロセス
図4は、例示用の実装形態による、且つ、図1〜図3の上述の開示を含む、サーバー上において実行されるプロセス400を示している。401において、ユーザーが、アプリケーションを取得し、且つ、様々なモードのうちの1つによってアプリケーションの取得の確認を受け取った後に、特定のユーザーと関連する起動システムのデータベース内のレコードが、サーバーサイドにおいて開始されている。更には、403において、サーバーは、ソフトウェアライセンスを取得するべく、識別情報及びライセンス要求をユーザーから受け取っている。起動システムのデータベース内におけるレコードの開始の後に、405において、ライセンスに対する要求が、所定のプロトコルにより、生成されている。このプロトコルに従って、ライセンスは、サーバーにおいて生成され、且つ、安全なプライベートキーによって署名される。109において、ライセンスに対する要求が生成されたら、407において、デジタル署名を有するライセンスがユーザーに提供され、且つ、ライセンスファイルがユーザー装置において保存される。
ライセンス要求が上述のように受け取られた後に、409において、サーバーは、起動が正しいかどうかを判定し、且つ、起動要求が正しい場合に、413において、ライセンスを発行し、且つ、そうでない場合には、411において、エラーメッセージを送信する。413において、ソフトウェアライセンスがエンドユーザーのコンピュータに供給された後に、ソフトウェアライセンスは、415において、サーバーから受け取られたライセンスを変更することなしに、検証に合格することを要するが、署名されたライセンスファイルを変更する、或いは、フェイクライセンスを生成する、試みが実施された場合には、この試みは、ベンダサイドにおいて失敗することになり、ラインセンスファイルのコンテンツは、ベンダアプリケーションがクラッキングされないように、無効になることに留意されたい。ライセンスファイルは、ユーザーのコンピュータファイルシステム上の特定の場所に書き込まれる。アプリケーションが稼働するのに伴って、415において、ライセンスの有効性がチェックされる。ライセンスの出元の検証及び完全性の確認の後に、ソフトウェアインストールは完了しており、且つ、ソフトウェアは、ユーザーによって使用されてもよい。起動の状態は、起動サーバーによって定期的に受け取られている。更には、ライセンスは、リモートにおいて、或いは、起動サーバーによって直接的に、無効化されてもよい。
図5は、例示用の実装形態による、且つ、図1〜図3の上述の開示を含む、サーバー上において実行されるプロセス500を示している。501において、ユーザーが、アプリケーションを取得している。更には、503において、ユーザーは、様々なモードのうちの1つにより、アプリケーションの取得の確認を受け取っている。
上述のように、アプリケーションの取得のモードのそれぞれは、取得確認の準拠性の設定と関連する別個のメカニズム及びライセンスの発行が基づくべき規則の組を有する。取得確認は、起動番号を含むことができると共に、人間が判読可能なものであってよいが、力任せ検索を防止するべく、十分に長い。更には、例示用の実装形態による「URLによる起動」方式により、ユーザー動作によってソフトウェアを起動する選択肢を開発者がユーザーに提供することを許容することもできる。
505において、ユーザーが、識別情報及びソフトウェアライセンスを取得するための要求を提供している。ライセンスに対する要求が、上述のように、デジタル署名により、サーバーによって生成されたら、507において、ユーザーは、ライセンスを受け取り、且つ、ライセンスファイルは、ユーザー装置において保存される。
507において、ライセンス要求が受け取られた後に、サーバーは、起動が正しいかどうかを判定し、且つ、ユーザーは、起動要求が正しい場合には、513において、ライセンスの発行を受け取り、或いは、そうでない場合には、511において、エラーメッセージを受け取る。513において、ソフトウェアライセンスがエンドユーザーのコンピュータによって受け取られた後に、ソフトウェアライセンスは、検証に合格することを要する。ライセンスは、サーバーから受け取られたライセンスを変更することなしに、ユーザーの装置上において書き込まれるが、署名済みのライセンスファイルを変更する、或いは、フェイクライセンスを生成する、試みが実施された場合には、この試みは、ベンダサイドにおいて失敗することになり、ライセンスファイルのコンテンツは、ベンダアプリケーションがクラッキングされないように、無効となることに留意されたい。ライセンスファイルは、ユーザーのコンピュータファイルシステム上の特定の場所に書き込まれる。アプリケーションが稼働するのに伴って、ライセンスの有効性がチェックされる。ライセンスの出元の検証及び完全性の確認の後に、ソフトウェアインストールが完了し、且つ、515において、ソフトウェアは、使用する準備が完了している。起動の状態は、起動サーバーに定期的に送信される。更には、ライセンスは、リモートにおいて、或いは、サーバーによって直接的に、無効化されてもよい。
いくつかの例においては、図1〜図5において示されている上述のプロセスは、異なる、更に少ない又は多い数の、ブロックによって実装することができる。プロセスは、媒体上において保存されることが可能であり、1つ又は複数の演算装置の1つ又は複数のプロセッサ上に読み込まれることが可能であり、且つ、コンピュータ実装された方法として実行されることが可能である、コンピュータ実行可能命令として実装することができる。
例示用の環境
図6は、いくつかの例示用の実装形態に適した例示用の環境を示している。環境600は、装置605〜645を含み、且つ、これらのそれぞれは、例えば、(例えば、有線及び/又は無線接続による)ネットワーク660を介して、少なくとも1つの装置に通信自在に接続されている。いくつかの装置は、1つ又は複数のストレージ装置630及び645に通信自在に接続することができる。
1つ又は複数の装置605〜645の一例は、それぞれ、図7及び図8において以下において説明する演算装置705及び/又は805であってよい。装置605〜645は、限定を伴うことなしに、コンピュータ605(例えば、ラップトップ演算装置)、モバイル装置610(例えば、スマートフォン又はタブレット)、テレビ615、車両と関連する装置620、サーバーコンピュータ625、演算装置635〜640、ストレージ装置630及び645を含むことができる。
いくつかの実装形態においては、装置605〜620は、ユーザー装置625〜645と見なされてもよく、これらは、以上において、且つ、図3〜図5との関係において、説明したサーバーと関連する装置であってよい。
例えば、限定を伴うことなしに、1つ又は複数の装置625〜645によってサポートされたネットワーク上のユーザー装置605又は610を有するユーザーは、ユーザー装置605又は610を使用することにより、アプリケーションを取得してもよく、ライセンスを要求してもよく、ライセンスを受け取ってもよく、且つ、ソフトウェアを使用してもよい。サーバーは、図1〜図5との関係において上述したプロセスに従って、装置625〜645を使用することにより、上述の動作を実行することができる。
例示用の演算環境
図7は、いくつかの例示用の実装形態において使用されている外部ホストと関連する例示用の演算装置を有する例示用の演算環境を示している。演算環境700内の演算装置705は、1つ又は複数の処理ユニット、コア、又はプロセッサ710、メモリ715(例えば、RAM、ROM、及び/又はこれらに類似したもの)、内部ストレージ720(磁気、光、半導体ストレージ、及び/又は有機的なもの)、並びに/或いは、I/Oインターフェイス725を含むことが可能であり、これらの任意のものは、情報を通信するべく、通信メカニズム又はバス730上において結合することが可能であり、或いは、演算装置705内において組み込むことができる。
演算装置705は、入力/ユーザーインターフェイス735及び出力装置/インターフェイス740に通信自在に結合することができる。入力/ユーザーインターフェイス735及び出力装置/インターフェイス740の1つ又は両方は、有線又は無線インターフェイスであってよく、且つ、着脱自在であってよい。入力/ユーザーインターフェイス735は、入力を提供するべく使用されうる、物理的な又は仮想的なものである、任意の装置、コンポーネント、センサ、又はインターフェイスであってよい(例えば、ボタン、タッチスクリーンインターフェイス、キーボード、ポインティング/カーソルコントロール、マイクロフォン、カメラ、ブライユ、モーションセンサ、光学読取機、及び/又はこれらに類似したもの)。出力装置/インターフェイス740は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、ブライユ、又はこれらに類似したものを含むことができる。いくつかの例示用の実装形態においては、入力/ユーザーインターフェイス735及び出力装置/インターフェイス740は、演算装置705と共に組み込むことが可能であり、或いは、これに物理的に結合することができる。その他の例示用の実装形態においては、その他の演算装置が、演算装置705用の入力/ユーザーインターフェイス735及び出力装置/インターフェイス740として機能してもよく、或いは、これらの機能を提供してもよい。
演算装置705の例は、限定を伴うことなしに、高度な可動性を有する装置(例えば、スマートフォン、車両内の装置、及びその他の機械、人間及び動物によって携行される装置、並びに、これらに類似したもの)、モバイル装置(例えば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、携帯型テレビ、ラジオ、及びこれらに類似したもの)、並びに、移動するように設計されてはいない装置(例えば、デスクトップコンピュータ、その他のコンピュータ、情報キオスク、その内部において埋め込まれた且つ/又はそれに結合された1つ又は複数のプロセッサを有するテレビ、ラジオ、並びに、これらに類似したもの)を含むことができる。
演算装置705は、同一又は異なる構成の1つ又は複数の演算装置を含む、任意の数のネットワーク接続されたコンポーネント、装置、及びシステムとの通信のために、(例えば、I/Oインターフェイス725を介して)外部ストレージ745及びネットワーク750に通信自在に結合することができる。演算装置705又は任意の接続された演算装置は、サーバー、クライアント、シンサーバー、汎用機械、特殊目的機械、又は別のラベルとして機能していてもよく、サービスを提供していてもよく、或いは、このように呼称されてもよい。
I/Oインターフェイス725は、音声において、且つ/又は、データネットワーク上において、無線通信を促進する無線通信コンポーネント(図示されてはいない)を含むことができる。無線通信コンポーネントは、1つ又は複数のアンテナを有するアンテナシステム、無線システム、ベースバンドシステム、又はこれらの任意の組合せを含むことができる。高周波(RF:Radio Frequency)信号は、無線システムの管理下において、アンテナシステムにより、無線で送信及び受信されてもよい。
I/Oインターフェイス725は、限定を伴うことなしに、接続されたコンポーネント、装置、及び演算環境700内のネットワークの少なくともすべてとの間において情報を伝達するべく、任意の通信又はI/Oプロトコル又は規格(例えば、Ethernet、802.11x、ユニバーサルシステムバス、WiMax、モデム、セルラーネットワークプロトコル、及びこれらに類似したもの)を使用する有線及び/又は無線インターフェイスを含むことができる。ネットワーク750は、任意のネットワーク又はネットワークの組み合わせであってよい(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話ネットワーク、セルラーネットワーク、衛星ネットワーク、及びこれらに類似したもの)。
演算装置705は、一時的な媒体及び一時的ではない媒体を含む、コンピュータ使用可能又はコンピュータ可読媒体を使用することが可能であると共に、これらを使用して通信することができる。一時的な媒体は、送信媒体(例えば、金属ケーブル、光ファイバ)、信号、搬送波、及びこれらに類似したものを含む。一時的ではない媒体は、磁気媒体(例えば、ディスク及びテープ)、光媒体(例えば、CD−ROM、デジタルビデオディスク、Blu−rayディスク)、半導体媒体(例えば、RAM、ROM、フラッシュメモリ、半導体ストレージ)、並びに、その他の不揮発性ストレージ又はメモリを含む。
演算装置705は、いくつかの例示用の演算環境においては、技法、方法、アプリケーション、プロセス、又はコンピュータ実装可能命令を実装するべく、使用することができる。コンピュータ実行可能命令は、一時的な媒体から取得することが可能であり、且つ、一時的ではない媒体上において保存することが可能であり、且つ、これから取得することができる。実行可能命令は、任意のプログラミング、スクリプト、及び機械言語のうちの1つ又は複数に由来するものであってよい(例えば、C、C++、C#、Java、Visual Basic、Python、Perl、JavaScript、及びその他のもの)。
1つ又は複数のプロセッサ710は、ネイティブの又は仮想的な環境において、任意のオペレーティングシステム(OS:Operating System)(図示されてはいない)の下において稼働することができる。ロジックユニット760、アプリケーションプログラミングインターフェイス(API:Application Programming Interface)ユニット765、入力ユニット770、出力ユニット775、取得確認及びユーザー要求レビューユニット780、ライセンス発行判定785、ライセンス生成ユニット790、並びに、異なるユニットが、互いに、OSとの間において、且つ、(図示されてはいない)その他のアプリケーションとの間において、通信するためのユニット間通信メカニズム795を含む1つ又は複数のアプリケーションを配備することができる。例えば、取得確認及びユーザー要求レビューユニット780、ライセンス発行判定785、及びライセンス生成ユニット790は、図1〜図5に示されている1つ又は複数のプロセスを実装することができる。記述されているユニット及び要素は、設計、機能、構成、又は実装形態において変更することが可能であり、且つ、提供されている説明に限定されるものではない。
いくつかの例示用の実装形態においては、情報又は実行命令は、APIユニット765によって受け取られた際に、1つ又は複数のその他のユニット(例えば、ロジックユニット760、入力ユニット770、出力ユニット775、取得確認及びユーザー要求レビューユニット780、ライセンス発行判定785、及びライセンス生成ユニット790)に伝達されてもよい。
例えば、入力ユニット770が、ユーザーから、アプリケーションを取得するための命令、ライセンス要求、或いは、その他のこのようなユーザーのやり取りなどの、入力を受け取った後に、入力ユニット770は、データ取得確認及びユーザー要求レビューユニット780と通信するべく、APIユニット765を使用することができる。例えば、取得確認及びユーザー要求レビューユニット780は、上述のように、ライセンスの発行を要するかどうかに関する判定を下すことができる。
取得確認及びユーザー要求レビューユニット780は、ライセンスの発行を要するかどうかに関する出力を提供するために、APIユニット765を介して、ライセンス発行判定785とやり取りすることができる。APIユニット765を使用することにより、取得確認及びユーザー要求レビューユニット780は、上述のように、ライセンスを生成すると共にライセンスをユーザーに提供するべく、ライセンス生成ユニット790とやり取りすることができる。
いくつかの例においては、ロジックユニット760は、上述のいくつかの例示用の実装形態において、ユニットの間の情報フローを制御するように、且つ、APIユニット765、入力ユニット770、出力ユニット775、取得確認及びユーザー要求レビューユニット780、ライセンス発行判定785、及びライセンス生成ユニット790によって提供されるサービスを制御するように、構成することができる。例えば、ロジックユニット760により、単独で、或いは、APIユニット765との関連において、1つ又は複数のプロセス又は実装形態のフローを制御することができる。
例示用の実装形態は、様々な利益及び利点を有しうる。例えば、限定を伴うことなしに、ハッカーが機密情報を取得する又はアプリケーションを使用するリスクのみならず、ソフトウェアの開発者への情報漏洩のリスクを低減するべく、向上したセキュリティが、ライセンス起動及び検証プロセスにおいて提供される。
以上、いくつかの例示用の実装形態について図示及び記述したが、これらの例示用の実装形態は、本明細書において記述されている主題について当業者に伝達するべく、提供されたものである。本明細書において記述されている主題は、記述されている例示用の実施形態への限定を伴うことなしに、様々な形態において実装されうることを理解されたい。本明細書において記述されている主題は、これらの具体的に定義又は記述されている事物を伴うことなしに、或いは、記述されてはいないその他の又は異なる要素又は事物を伴って、実施することができる。当業者は、添付の請求項及びその均等物において定義されている本明細書において記述されている主題を逸脱することなしに、これらの例示用の実装形態に対して変更が実施されうることを理解するであろう。

Claims (17)

  1. ソフトウェア起動及びライセンス追跡用の方法であって、
    (a)前記ソフトウェアの取得と関連する取得確認を入手し、且つ、前記取得確認をソフトウェア起動及びライセンス付与と関連するサーバーに提供するステップと、
    (b)前記ソフトウェアを使用するべくクライアントが認可されるためのライセンスを要求するステップであって、前記ライセンスは、サーバーにより、プライベートキーによって保護されており、且つ、前記プライベートキーは、前記クライアントにおいて保存されてはいない、ステップと、
    (c)前記ライセンスを発行し、且つ、クライアントに提供するステップと、
    (d)前記ライセンスを前記クライアントにおいて検証するステップと、
    (e)前記ライセンスを前記クライアントにおいて保存するステップと、
    (f)定期的に、前記ライセンスの起動状態を追跡するステップと、
    (g)前記ライセンスの前記起動状態に基づいて、前記クライアントにおいて前記ライセンスに対して動作を実行するステップであって、前記ライセンスを前記クライアントにおいて検証する前記ステップは、アプリケーションと関連する前記クライアントにおいて、なんらの変更をも伴うことなしに、前記サーバーから受け取られた前記ライセンスを検証し、且つ、前記ライセンスを前記クライアントに保存するステップを有する、ステップと、
    を有する方法。
  2. 前記取得確認は、起動キー及び前記サーバーと関連するデータベース内のレコードのうちの少なくとも1つを有し、且つ、更には、前記サーバーは、前記ソフトウェアライセンス用の前記取得確認を交換するための命令をユーザーに提供している請求項1に記載の方法。
  3. 前記取得確認は、直接販売、第三者のリセラーを介した販売、並びに、オンライン又は物理的媒体上のボックスバージョンを介した流通のうちの1つによって入手される請求項1に記載の方法。
  4. 前記取得確認は、(a)前記取得確認を生成する前記サーバーと関連するユニフォームリソースロケータ(URL)、(b)複数の取得確認のバルク生成、並びに、(c)前記取得確認の単一生成のうちの少なくとも1つによって生成される請求項1に記載の方法。
  5. 前記URLによって生成される前記取得確認は、
    前記取得確認を取得するべくウェブページアクセスをユーザーに提供するステップと、
    前記ユーザーと関連する必要とされる情報を受け取るステップと、
    前記アプリケーションの購入に成功した場合に、前記ユーザーの前記必要とされる情報を前記サーバーに提供するステップであって、前記アプリケーションの注文情報は、前記サーバーにおいて保存され、且つ、前記取得確認は、サーバーによって生成され、且つ、取得情報を前記ユーザーに提供するステップと、
    前記アプリケーションの購入に成功しなかった場合に、前記アプリケーションの前記購入に成功しなかったという通知を前記ユーザーに提供するステップと、
    を有する請求項4に記載の方法。
  6. 前記取得確認は、暗号化を伴うことなしに、ユーザーに提供される請求項1に記載の方法。
  7. ログイン及びパスワード情報の一意のペアの提供、セキュリティキーによって保護された前記サーバーとの間の安全な接続の確立、並びに、前記サーバーとの間の接続の確立及びユーザーを識別するパラメータの送信のうちの1つ又は複数により、前記取得確認の生成と関連する前記サーバー内のレコードを生成するステップと、前記ユーザーが識別を提供した後に、前記アプリケーションの前記取得に関する情報を前記サーバー内において保存するステップと、を更に有する請求項1に記載の方法。
  8. 前記(c)ステップ及び前記(d)ステップは、
    ユーザーから前記取得確認を受け取るステップと、
    前記クライアントが、前記ライセンスの要求を生成し、且つ、前記サーバーに提供するステップと、
    前記サーバーが、起動が前記取得確認について許容されているかどうかを判定するステップと、
    前記起動が許容されている場合に、前記サーバーが、前記ユーザーの識別情報に基づいてライセンスを発行し、且つ、前記ライセンスのファイルを前記ユーザーに提供するステップと、
    を有する請求項1に記載の方法。
  9. 前記取得確認は、前記アプリケーションのインストールによって認識される規定された添え字を有するパターンを使用して生成された1つ又は複数の起動キーを有し、且つ、ユーザーが情報を前記サーバーに提供するためのフォームの表示をトリガすることになり、前記アプリケーションのベンダは、その独自のパターンに基づいて前記パターンを判定することができる請求項1に記載の方法。
  10. 前記ライセンスは、前記アプリケーションのバンドルID、前記クライアントの1つ又は複数の識別子、及びランダムに生成されたストリングのうちの少なくとも1つと関連するパラメータを含むように生成されている請求項1に記載の方法。
  11. 前記検証するステップは、前記サーバー上において生成された前記ライセンスの検証を実行するステップを更に有し、前記ライセンスは、デジタル署名を生成するべく、一意である、且つ、安全である、前記プライベートキーによって署名され、且つ、前記デジタル署名は、前記クライアントにおいて前記ソフトウェアのパブリックキーによって更に検証され、前記ソフトウェアは、ベンダアプリケーションを有する請求項1に記載の方法。
  12. ソフトウェア起動及びライセンス追跡用の動作を実行するように構成された一時的ではないコンピュータ可読媒体であって、前記動作は、
    (a)前記ソフトウェアの取得と関連する取得確認を入手し、且つ、前記取得確認をソフトウェア起動及びライセンス付与と関連するサーバーに提供するステップと、
    (b)前記ソフトウェアを使用するべくクライアントが認可されるためのライセンスを要求するステップと、
    (c)前記ライセンスを発行し、且つ、クライアントに提供するステップであって、前記ライセンスは、サーバーにより、プライベートキーによって保護されており、且つ、前記プライベートキーは、前記クライアントにおいて保存されてはいない、ステップと、
    (d)前記ライセンスを前記クライアントにおいて検証するステップと、
    (e)前記ライセンスを前記クライアントにおいて保存するステップと、
    (f)定期的に、前記ライセンスの起動状態を追跡するステップと、
    (g)前記ライセンスの前記起動状態に基づいて、前記クライアントにおいて前記ライセンスに対して動作を実行するステップであって、前記ライセンスを前記クライアントにおいて検証する前記ステップは、アプリケーションと関連する前記クライアントにおいて、なんらの変更をも伴うことなしに、前記サーバーから受け取られた前記ライセンスを検証し、且つ、前記ライセンスを前記クライアントに保存するステップを有する、ステップと、
    を有する、一時的ではないコンピュータ可読媒体。
  13. 前記取得確認は、
    前記取得確認を取得するべくウェブページアクセスをユーザーに提供するステップと、
    前記ユーザーと関連する必要とされる情報を受け取るステップと、
    前記アプリケーションの購入に成功した場合に、前記ユーザーの前記必要とされる情報を前記サーバーに提供するステップであって、前記アプリケーションの注文情報は、前記サーバーにおいて保存され、且つ、前記取得確認は、サーバーによって生成され、且つ、取得情報を前記ユーザーに提供するステップと、
    前記アプリケーションの購入に成功しなかった場合に、前記アプリケーションの前記購入に成功しなかったという通知を前記ユーザーに提供するステップと、
    により、URLによって生成される請求項12に記載の方法。
  14. 前記取得確認は、暗号化を伴うことなしに、ユーザーに提供される請求項12に記載の一時的ではないコンピュータ可読媒体。
  15. ログイン及びパスワード情報の一意のペアの提供、セキュリティキーによって保護された前記サーバーとの間の安全な接続の確立、並びに、前記サーバーとの間の接続の確立及びユーザーを識別するパラメータの送信のうちの1つ又は複数により、前記取得確認の生成と関連する前記サーバー内のレコードを生成するステップと、前記ユーザーが識別情報を提供した後に、前記アプリケーションの前記取得に関する情報を前記サーバー内において保存するステップと、を更に有する請求項12に記載の一時的ではないコンピュータ可読媒体。
  16. 前記(c)ステップ及び前記(d)ステップは、
    ユーザーから前記取得確認を受け取るステップと、
    前記クライアントが、前記ライセンスの要求を生成し、且つ、前記サーバーに提供するステップと、
    前記サーバーが、起動が前記取得確認について許容されているかどうかを判定するステップと、
    前記起動が許容されている場合に、前記サーバーが、前記ユーザーの識別情報に基づいてライセンスを発行し、且つ、前記ライセンスのファイルを前記ユーザーに提供するステップであって、前記取得確認は、前記アプリケーションのインストールによって認識される規定された添え字を有するパターンを使用して生成された1つ又は複数の起動キーを有し、且つ、前記ユーザーが情報を前記サーバーに提供するためのフォームの表示を起動することになり、前記アプリケーションのベンダは、その独自のパターンに基づいて前記パターンを判定することができる、ステップと、
    を有する請求項12に記載の一時的ではないコンピュータ可読媒体。
  17. 前記検証するステップは、前記サーバーに基づいて生成された前記ライセンスの検証を実行するステップを更に有し、前記ライセンスは、デジタル署名を生成するべく、一意である、且つ、安全である、前記プライベートキーによって署名され、且つ、前記デジタル署名は、前記クライアントにおいて、前記ソフトウェアのパブリックキーによって更に検証され、前記ソフトウェアは、ベンダアプリケーションを有する請求項12に記載の一時的ではないコンピュータ可読媒体。
JP2019565383A 2017-05-22 2017-09-20 ソフトウェア起動及びライセンス追跡用のシステム及び方法 Pending JP2020524836A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/601,909 US10706130B2 (en) 2015-02-06 2017-05-22 System and method for software activation and license tracking
US15/601,909 2017-05-22
PCT/US2017/052567 WO2018217224A1 (en) 2017-05-22 2017-09-20 System and method for software activation and license tracking

Publications (1)

Publication Number Publication Date
JP2020524836A true JP2020524836A (ja) 2020-08-20

Family

ID=64395790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019565383A Pending JP2020524836A (ja) 2017-05-22 2017-09-20 ソフトウェア起動及びライセンス追跡用のシステム及び方法

Country Status (7)

Country Link
EP (1) EP3639174A4 (ja)
JP (1) JP2020524836A (ja)
KR (1) KR20200000448A (ja)
CN (1) CN110832479A (ja)
CA (1) CA3063223A1 (ja)
MX (1) MX2019013986A (ja)
WO (1) WO2018217224A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096849A (zh) * 2019-04-02 2019-08-06 深圳市中博科创信息技术有限公司 一种License授权认证方法、装置、设备及可读存储介质
CN110677242B (zh) * 2019-08-28 2022-08-09 RealMe重庆移动通信有限公司 秘钥处理方法、秘钥处理装置及终端设备
WO2021086315A1 (en) 2019-10-29 2021-05-06 Hewlett-Packard Development Company L.P. Tracking device state transitions
CN113268715A (zh) * 2020-02-14 2021-08-17 中移(苏州)软件技术有限公司 软件加密方法、装置、设备及存储介质
CN111523093A (zh) * 2020-03-20 2020-08-11 北京元心科技有限公司 软件许可证有效性校验方法、系统及相应计算机设备
EP4131879A4 (en) 2020-03-31 2023-05-24 BOE Technology Group Co., Ltd. LICENSE AUTHENTICATION METHOD, NODE, SYSTEM AND COMPUTER READABLE STORAGE MEDIA
CN112307522B (zh) * 2020-10-30 2022-09-20 苏州浪潮智能科技有限公司 一种软件系统中维保服务的实现方法及装置及存储介质
CN113590486A (zh) * 2021-02-23 2021-11-02 中国人民解放军军事科学院国防科技创新研究院 一种基于度量的开源软件代码质量评价方法
CN112866419B (zh) * 2021-03-11 2023-05-02 统信软件技术有限公司 一种激活控制方法、系统及计算设备
KR102584566B1 (ko) * 2022-04-27 2023-10-05 (주)아스트론시큐리티 다이나믹 클라우드 자산 관리 시스템
CN117390599B (zh) * 2023-12-04 2024-03-26 深圳中安高科电子有限公司 一种离线多设备产品许可发放与验证方法、系统及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160232334A1 (en) * 2015-02-06 2016-08-11 Macpaw Inc. System and method for software activation and license tracking

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1777907B1 (de) * 2005-10-20 2007-12-12 Ubs Ag Vorrichtungen und Verfahren zum Durchführen von kryptographischen Operationen in einem Server-Client-Rechnernetzwerksystem
JP5284989B2 (ja) * 2007-03-20 2013-09-11 デムヴィッチ ソフトウェア,リミテッド ライアビリティー カンパニー ソフトウェアライセンスの更新
US8620818B2 (en) * 2007-06-25 2013-12-31 Microsoft Corporation Activation system architecture
US8528109B2 (en) * 2007-10-09 2013-09-03 Microsoft Corporation Optimizing amount of data passed during software license activation
US9424399B2 (en) * 2009-05-12 2016-08-23 Microsoft Technology Licensing, Llc Availability of permission models in roaming environments
US8984293B2 (en) * 2010-11-19 2015-03-17 Microsoft Corporation Secure software product identifier for product validation and activation
US8775797B2 (en) * 2010-11-19 2014-07-08 Microsoft Corporation Reliable software product validation and activation with redundant security
US8683579B2 (en) * 2010-12-14 2014-03-25 Microsoft Corporation Software activation using digital licenses

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160232334A1 (en) * 2015-02-06 2016-08-11 Macpaw Inc. System and method for software activation and license tracking

Also Published As

Publication number Publication date
CA3063223A1 (en) 2018-11-29
KR20200000448A (ko) 2020-01-02
CN110832479A (zh) 2020-02-21
EP3639174A1 (en) 2020-04-22
EP3639174A4 (en) 2020-11-18
MX2019013986A (es) 2020-01-21
WO2018217224A1 (en) 2018-11-29

Similar Documents

Publication Publication Date Title
US9659155B2 (en) System and method for software activation and license tracking
JP2020524836A (ja) ソフトウェア起動及びライセンス追跡用のシステム及び方法
US10706130B2 (en) System and method for software activation and license tracking
US8886964B1 (en) Protecting remote asset against data exploits utilizing an embedded key generator
TWI492085B (zh) 用於根據使用者識別符增強產品功能的方法、設備及電腦儲存媒體
US9871821B2 (en) Securely operating a process using user-specific and device-specific security constraints
CN107404382B (zh) 使用访问令牌控制软件的可获许可的特征
JP5959749B2 (ja) 悪意のあるソフトウェアによるアタックからオペレーティングシステムを保護する方法
KR101492757B1 (ko) 애플리케이션 사용 정책 시행
US11809547B1 (en) Automatic account protection
CN109313690A (zh) 自包含的加密引导策略验证
US10701061B2 (en) Methods for blocking unauthorized applications and apparatuses using the same
US11093587B2 (en) Software wrapper and installer using timestamp validation and system identification validation
JPWO2019130574A1 (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP2009175853A (ja) ライセンス認証システム及び認証方法
US20080222043A1 (en) System and method for trans-vendor license registration and recovery
JP6926349B2 (ja) 商用オフザシェルフ又はモノのインターネットデバイスを使用して安全な金融取引を処理するための方法
US9177123B1 (en) Detecting illegitimate code generators
JP6059788B2 (ja) カード装置を用いたネットワーク認証方法
JP2016111440A (ja) 情報処理装置、及びコンピュータプログラム
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
WO2018017019A1 (en) Personal security device and method
JP2017058711A (ja) ライセンス管理装置、ライセンス管理システム、ライセンス管理プログラムおよびライセンス管理方法
Han et al. Software authority transition through multiple distributors
JP2006178593A (ja) リソース保護システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211004

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211102