初めての質問なのでお手柔らかにお願いします...
ある種のライセンス スキームを使用して保護したいソフトウェアに取り組んでいます。基本的なスキームは、ユーザーに対して「一意の」キーを生成することです。ユーザーは、ソフトウェアを登録したいときにこのキーと登録コードを送信し、アクティベーション コードを受け取ります。
アプリケーションが実行されると、「一意の」キーとアクティベーション コードを復号化して受信したデータブロブを比較することで、アクティベーション コードを検証します。
これは公平で実装が非常に簡単で、さまざまな暗号アルゴリズムなどを選択できますが、このスキームには次の 2 つのプロパティがありません。
- ユーザーがハードウェア署名などを偽装して、別のコンピューターで同じ「一意の」キーを生成した場合、同じライセンス データを使用できます。
- ユーザーがアプリケーションをアンインストールして別のコンピューターに移動したい場合、古いコンピューターで古いライセンス データを再度使用し、新しいインストール用の新しいライセンス データを取得することを妨げるものは何もありません。
これらの問題を解決する方法について何か提案はありますか?
私が持っていた1つのアイデアは、「一意の」キーにランダムデータを追加することでした。このランダムデータは、ユーザーがアプリケーションを削除すると、このランダムデータが削除され、以前のランダムとのある種のハッシュが削除される場合、あいまいな方法で保存されます。データとライセンス データが生成され、それを送信して、彼が本当にアプリケーションをアンインストールしたことを確認し、ランダム データが変更されたため、以前のライセンス データを再び使用できないことを確認しました。
とりあえず…
編集:私は現在、機能するスキームを持っています。最も一般的な製品は、ハードウェアの変更が非常にまれな組み込み環境にインストールされ、ハードウェアの障害が発生した場合、マシンが壊れていることが最も確実であることに言及する必要があります. しかし、ハードウェア キー スキームを変更して考慮し、いくつかの変更を許可することはできます。
また、このため、ソフトウェアは VM 内で実行されない可能性が高いですが、良い点ですが、私はそれについて考えていません。
アプリケーションは定期的に呼び出しません。ネットワーク接続が利用可能な場合、ユーザーはより自動登録を行うオプションを取得します。それ以外の場合、ユーザーは登録キーを取得し、それをソフトウェアに入力して、提供されたインストール ID を取得します。 、登録コード + インストール ID により、ユーザーが私から取得したアクティベーション キーが生成され、ソフトウェアのロックが解除されます。
私が探しているのは、2 つの点に対する優れた/実行可能なソリューションです。ハードウェアのスプーフィング、ライセンス キーの取り消し、つまりユーザーが同じ regcode+activationcode を使用できないようにする。
フィードバックをお寄せいただきありがとうございます
する必要はありません