この質問の回答を参照すると、秘密キーがライセンス サーバーに保持され、公開キーがアプリケーションの実行可能ファイルに含まれている場合、ソフトウェア ライセンス スキームがどのように機能するのか理解できません。
次のソフトウェア ライセンス スキームを実行しようとしています。
- ユーザーは購入時に ( GUIDに基づく) 製品 ID を取得し、アプリケーション内でこれを使用してアクティブ化します。
- アプリケーションは、RSA 公開キーを使用して暗号化されたテキストを送り返すライセンス サーバーに接続します。このテキスト (ライセンス) は、ユーザーのハードディスクに保存されます。
- アプリケーションが起動するたびに、製品のエディション、製品の制限、登録されている会社などのさまざまなパラメータを抽出するために、RSA 秘密鍵を使用してこのライセンスを復号化する必要があります。
秘密鍵ではなく公開鍵がある場合、アプリケーションはこのライセンス テキストをどのように解読できますか?
ありがとう!
編集:
- ライセンスの暗号化に使用されるキーがサーバー側でのみ利用可能であり、公開されていない場合、これを秘密キーと呼ぶことができますか? この場合、片方が暗号化の鍵を持ち、もう一方(公開側)が復号化の鍵を持っていれば、復号化の鍵を持っている側は暗号化の鍵を手に入れることができるでしょうか?この懸念は、スタックオーバーフローに関するさまざまなトピックに基づいており、秘密鍵を指定して公開鍵を生成することはそれほど難しくありません。秘密鍵を持っている場合は、実質的に両方の鍵を持つことができます。
- ソフトウェアがアクティブ化されると、ライセンス サーバーに接続する必要がなくなるという考え方です。