2011-07-15 12 views
2

私はwcfサービスに基づいてライセンス管理を作成したいと思います。WCFサービスを検証

(エンド)ユーザー/「ハッカー」が当社のライセンス管理サービスを破損したサーバーに置き換えることができないようにするにはどうすればよいですか?

私たちのライセンスサーバーは、インターネット上の私たちのサーバー上でホストされています。サーバーが破損したデータをクライアントに送信すると、完全なライセンス管理の概念が破棄されます。

は、私はpublic-key cryptographyがここの答えかもしれないと思うあなた

答えて

3

あなたは解決できない問題を解決しようとしています。アプリケーションをクライアントに提供し、クライアントが自分のコンピュータにデプロイすると、もちろん、アプリケーションで必要なことを行うことができます。アプリケーションクライアントにセキュリティチェックをハードコードしても、コードをリバースエンジニアリングして変更することができます。あなたのライブラリの難読化を使用することで彼のチャンスを減らすことができますが、依然としてクライアントマシンに展開されているものは誰でも不正行為をする可能性があります。それがウェアーズが存在し、弾丸校正の解決策がない理由です。

クライアントに不正行為をさせたくない場合は、アプリケーションをWebベースで構築し、サーバーにホストします。クライアントはアクセス/アカウントの代金を支払うため、ライセンス戦略を回避することはできません。

あなたが自分のアカウントを作成する代わりに、既存のソリューションを購入しようとすると、不正行為が困難ないくつかの高品質なライセンス戦略が必要な場合。

0

に感謝します。私はセキュリティの専門家ではないので、本当に間違っているかもしれませんが、私が見る限り、サービスコンシューマに暗号化された復号化用の公開鍵と、ライセンスサーバー上の暗号化用の秘密鍵があります。次に、以下のようなワークフローは次のようになります。

  1. クライアントは、いくつかのランダムなメッセージを生成し、サーバに送信
  2. Serverは、このメッセージを暗号化し、バック暗号化された結果
  3. を返すクライアントが受信したメッセージを解読しようとすると、それはオリジナルと一致した場合1つはサーバーが正常に検証されます。

もちろん、サービスコンシューマーアプリがハッキングできないことを保証できると仮定すると、これが行われる可能性がありますが、そうでなければポイントハッキングサービスは表示されません。

+0

唯一の問題は、ハードコードされた変数をリフレクションで上書きすることもできます(構造を知っている場合)。だから私は別の公開鍵を注入することができます。あなたはこの問題を解決する方法を考えましたか? – Mimefilt

+1

IMO、あなたがクライアントをハックできるなら、何もあなたを助けません。あなたがアプリを変更することができ(そしてそれにコンパイルされた公開鍵を変更することができれば)、サーバ検証コードを単に削除するだけで何が止められるでしょうか? – Snowbear

+0

もちろん、彼は私たちのソースコードに基づいて新しいアプリケーションを作成することができます。しかし、それは非常に長い時間と多くのスキルを必要とします。値の反映は数分で完了します。しかし、あなたが正しいかもしれない。ビルザーズ「スタークラフト2」さえも「ハッキングされた」 – Mimefilt