4

WPF で Windows デスクトップ アプリケーションを作成しています。有効化プロセスを追加する必要があり、正しい考えがあるかどうか疑問に思っていました

これは私が実装しようと考えていたプロセスです。これが最善の解決策でしょうか

  • ユーザーがアプリケーションをロードすると、アクティベーション コードが含まれているレジストリ キーがチェックされます。

アクティベーションが必要です

  • レジストリにアクティベーション キーがない場合は、アクティベーション ページが表示されます。
  • ここで、彼らは私たちから受け取るアクティベーションキーをそこに入力します
  • ユーザーがアクティブ化をクリックすると、HDDのシリアル番号を取得してハッシュします
  • 次に、チェックするために書いたWebサービスに接続します-キーは存在しますか-割り当てられたHDDシリアルハッシュがありますか-アクティブですか
  • これらすべての基準に合格した場合、Webサービスを介してHDDシリアルを使用してDBを更新し、アクティブとしてマークします

すでにアクティブ (アクティベーション キーが存在するレジストリ キー)

  • HDD のシリアル番号を取得してハッシュ化する
  • レジストリからキーを取得する
  • Web サービスに接続して、キーが存在するかどうか、まだアクティブであるかどうか、正しい HDD ハッシュに割り当てられているかどうかを確認します
  • そうであれば、ユーザーが続行できるようにします
  • そうでない場合は、レジストリ キーを完全に削除し、ソフトウェアを再アクティブ化してからアクティブ化ページを読み込む必要があることを伝えます。

これがこれを行う正しい方法であるかどうか疑問に思うことは別として、いくつかの追加の懸念があります。

Web サービスを保護する必要があります。ユーザーは、プログラムを起動するたびにインターネットにアクセスして、Web サービスを確認できるようにする必要があります。

誰でもできるアドバイスは大歓迎です。私はそこに答えを見つけることができませんでした。

4

2 に答える 2

1

良さそうに聞こえますが、次の点に注意する必要があります。

  • Web サービスへの接続は、SSL で保護する必要があります。
  • Web サービス間のメッセージ交換は、なんらかの形式の秘密/公開キーで署名する必要があります。これにより、クライアントはメッセージが実際にサーバーから送信されたことを認識し、ユーザーは独自のアクティベーション サーバーを作成しません。
  • Web サービスは、高可用性を備えたサーバー上にある必要があります (作業を完了できないために怒っているユーザーが電話をかけてくるのは望ましくありません)。
  • HDDのシリアルナンバーを変更できます。それを他のものと組み合わせたいと思うかもしれません。
于 2013-10-18T01:13:13.283 に答える
0

あなたが思いついたコンセプトはこれまでのところ良いですが、ユーザーが常にオンラインである必要があるため、RSAでデータをさらに暗号化します.

製品はハードコードされた公開鍵を取得し、サーバーに送信するデータは RSA 秘密鍵で暗号化されて返送されます。こうすることで、彼らが自作のアクティベーション サーバーを使用するのを防ぐことができます。

于 2013-10-17T14:44:55.833 に答える