2

この質問の回答を参照すると、秘密キーがライセンス サーバーに保持され、公開キーがアプリケーションの実行可能ファイルに含まれている場合、ソフトウェア ライセンス スキームがどのように機能するのか理解できません。

次のソフトウェア ライセンス スキームを実行しようとしています。

  1. ユーザーは購入時に ( GUIDに基づく) 製品 ID を取得し、アプリケーション内でこれを使用してアクティブ化します。
  2. アプリケーションは、RSA 公開キーを使用して暗号化されたテキストを送り返すライセンス サーバーに接続します。このテキスト (ライセンス) は、ユーザーのハードディスクに保存されます。
  3. アプリケーションが起動するたびに、製品のエディション、製品の制限、登録されている会社などのさまざまなパラメータを抽出するために、RSA 秘密鍵を使用してこのライセンスを復号化する必要があります。

秘密鍵ではなく公開鍵がある場合、アプリケーションはこのライセンス テキストをどのように解読できますか?

ありがとう!

編集:

  1. ライセンスの暗号化に使用されるキーがサーバー側でのみ利用可能であり、公開されていない場合、これを秘密キーと呼ぶことができますか? この場合、片方が暗号化の鍵を持ち、もう一方(公開側)が復号化の鍵を持っていれば、復号化の鍵を持っている側は暗号化の鍵を手に入れることができるでしょうか?この懸念は、スタックオーバーフローに関するさまざまなトピックに基づいており、秘密鍵を指定して公開鍵を生成することはそれほど難しくありません。秘密鍵を持っている場合は、実質的に両方の鍵を持つことができます。
  2. ソフトウェアがアクティブ化されると、ライセンス サーバーに接続する必要がなくなるという考え方です。
4

2 に答える 2

5

アプリケーションは、その詳細をプレーンテキストで保存する必要があります。

登録時に、サーバーは秘密鍵を使用してそれらの詳細(マシンIDを含む)に署名する必要があります。

アプリケーションが起動するたびに、公開鍵を使用してその署名を検証する必要があります。

于 2013-02-11T14:39:22.277 に答える
3

私はこれらすべてのものの必要性を本当に見ていません。

検証時にサーバーへの接続を確立し、サーバーに必要なすべてのパラメーターを含むファイルを(プレーンテキストでも)生成させてから、サーバーにそのファイルに署名させてソフトウェアに返すようにしないのはなぜですか?

クライアントはファイルを読み取り、そこにある多くのデジタル署名アルゴリズムの1つを使用して署名を検証することができます。

于 2013-02-11T18:01:47.200 に答える