似たようなものを自分で実装したいので、質問したと思います。
ここでは、購入したソフトウェアの正当性を保護するために使用できるスキームの概要を説明します。これにより、会社を著作権侵害から保護し、クライアントの貴重な購入を合法的に維持し、比較的簡単に登録することができます。
このスキームは、3 つの個別のデータ要素を追跡することによって機能します。1 つは自動生成され、1 つはユーザーによって入力され、もう 1 つはこれら 2 つの要素から計算されます。製品がアクティブ化されていない場合、機能セットが制限されて実行されるか、まったく実行されない可能性があります。
この手順には Web サイトとの通信が含まれますが、Web サイトが利用できない場合でも、ユーザーがライセンスの問題でイライラすることなくソフトウェアを使用できるようにするための代替メカニズムがあります。方法論
このソフトウェアは、次の 3 つの基本的なデータ要素を利用します。
- [IC] インストール コード: 自動生成されたコード。これは、特定のインストールによって生成され、そのインストールに固有のものである可能性があります。ソフトウェアが再インストールされると変更され、誰がインストールするかに依存しません。これまで、一部のベンダーはハードウェア ハッシュを使用していましたが、インスタンス化のたびに取得するために保存される、ランダムに生成されたコードである可能性もあります。ストレージからコードを削除することは、基本的にソフトウェアをアンインストールすることと同じです。
- [UI] ユーザー ID: 登録済みの一意の識別子。これは、ロック解除コード、クライアント コード、会社コード、またはシリアル番号と呼ぶことができます。誰がこの特定のインストールを購入したかを一意に識別します。
- [HASH] ハッシュ: 計算された値。この認証の最後の部分は、ソフトウェアが合法的に登録され、準備ができていることをソフトウェアに伝えるものです。これは、他の 2 つの部分から派生可能であり、ファイル システム、Windows レジストリ、またはその他の場所に保存されている必要があります。
ロジックの流れ
擬似コードでは、ソフトウェアは次の手順で実行されます。
begin:
load IC
if not IC: IC = generateIC
load UI
if not UI: UI = promptUser
testHash:
load HASH
if HASH=hash(IC,UI): goto valid
HASH = activateLicense()
if not HASH=hash(IC,UI): goto invalid
valid:
REV = revokeLicense()
if REV: goto invalid
done : run software
invalid:
done : do not run software
generateIC:
IC = some unique identifier
store IC
return IC
promptUser:
UI = get id from user input
store UI
return UI
activateLicense:
HASH = wwwResponse('activationRequest')
store HASH
return HASH
revokeLicense:
REV = wwwResponse('checkIfRevoked')
if REV: erase HASH
return REV
擬似コードには、オプションの 4 番目の要素も含まれます。
- [REV] 取り消されたライセンスの兆候: 会社のソフトウェア会社は、ソフトウェアのアクティベーションの数を追跡し、不正なユーザーへのアクセスを取り消すことができます。これは保存する必要はなく、www.
Web サイトに接続できないということは、ライセンスの状態が変わらないことを意味するだけです。ソフトウェアが Web サイトに直接接続できない場合は、ユーザーが IC と UI をブラウザーに入力し、ブラウザーがソフトウェアに手動で入力できる HASH を電子メールで送信する、Web 有効化ポイントから代替手順を利用できる可能性があります。これは少しだけ複雑ですが、ユーザーがメールで送信されるハッシュ コードを受け取りたい場合は、有効なメールを入力する必要があるという重要な要素を使用して、ユーザーが自分でこれを行うことができます。
ハッキング防止や無敵ではありませんが、フラストレーションにつながらない合理的な方法で、両者を保護するのに役立ちます. 関連する実際のメカニズムは、厳重に保護された企業秘密でなければなりません。
ノート:
このスキームでは、IC がコンピューターのハードウェア上のハッシュであるか、ランダムに生成されたキーであるかは問題ではありません。それが変更されたときに起こるのは、ソフトウェアが自分自身を再登録することだけです。これは、そのマシンがインターネットに接続されている場合は問題にならないかもしれませんが、ユーザーの操作が再び必要な場合は少し不便かもしれませんが、前述のとおり、この部分はサイトのセルフサービス機能として引き続き実装できます。アクティベーションの数を数えたり、他の情報を追跡したりするかどうかは、ソフトウェア会社次第です。