2

オンラインアクティベーションを使用してソフトウェアを保護したいのですが。ユーザーはインターネット接続が必要であり、ソフトウェアを引き続き使用するには、アクティブなアカウント/ライセンスがあることを確認する必要があります。そのため、私のソフトウェアは私のWebサイトにいくつかのクレデンシャルを送信します。そこで、プログラムを実行できるかどうかを確認して、何かを送り返します。

ここに問題があります。自分の検証を完全にバイパスして、誰かが私が送り返す単純な何かを偽装するのを防ぐにはどうすればよいですか?

2つの例:

  1. インターネットトラフィックを監視し、トラフィックがソフトウェアに戻る前にそれを変更できるプログラムをどこかで見たのを覚えています。名前が思い出せない。事実上、アプリケーションがそれを認識する前に、コンピュータに出入りするものの中間者です。たとえば、ブラウザがHTTPリクエストを送信し、このプログラムがそれをインターセプトして送信パケットを変更したり、その逆の場合、一部のHTTP Webページがブラウザに返され、このプログラムが着信パケットをインターセプトして変更し、それをに渡すことができます。ブラウザ。

  2. HOSTSファイルは、トラフィックを任意のアドレスにリダイレクトするように変更できます。したがって、誰かが私の検証で「ok_to_use」または「not_ok_to_use」というテキストが返されることを知っていて、検証に使用するURLを知っている場合は、HOSTSファイルを使用して私のWebサイトのDNSルックアップをバイパスし、リダイレクトすることができます。自分のサイトで、常に文字列「ok_to_use」を返します

2番目の例は、問題を示しています。どういうわけか静的文字列以外のものを返す必要があると思います。明らかに文字列を暗号化することはできますが、「ok_to_use」が「7hgx3a」と等しいことを理解するのに時間はかかりません。これが常に返送される暗号化された文字列と同じである場合です。ですから、常に変化する何かを送り返す必要があります。

編集/

ライセンスが有効かどうかを示すフラグをアプリにチェックインする場合は、常に最終的なif / thenがあるというコメント/応答に対して:はい、それは本当です。元の投稿の最後の段落で、私はこのようなことをほのめかしていました。おそらく、Web phpにいくつかの重要な機能を返送させることで、if / thenをスキップしても、Webチェックが実行されなかった場合、一部の機能のアルゴリズムがダウンロードされず、アプリが機能しなくなります。正しく。誰もがこの無駄にアイデアを持っていますか?

4

3 に答える 3

3

私は基本的にGavinに同意しますが、これは、ソフトウェアがこれまでで最も愚かで初心者のハッカーにハッキングされやすいままにする理由ではありません。

さて、あなたはあなたのソフトウェアのライセンスメカニズムを脅かす人口からスクリプトキディとおそらく顧客の従業員の大部分を取り除くための多くのオプションがあります。

私はそれらのいくつかを私の頭に浮かぶ順序でリストします:

  1. クライアント/サーバー接続に双方向SSLを使用できます。コーディングのオーバーヘッドは少しありますが、ライセンスサーバーに接続しているそのバージョンのソフトウェアをすでに販売していることを確認できます。送信されたライセンスクエリを正しく復号化する公開鍵で識別できます。

  2. OK_TO_USEよりも複雑なトークンを送信できます。おそらく、質問されるたびにランダムに数値を返す数学関数の値です。次に、クライアントソフトウェアを記述して、その数値がその特定の関数によって生成されたかどうかを識別できます(これは、単一の整数よりも複雑になる可能性があります)。

  3. 少なくとも暗号化を使用してください!または、証明書を登録して、クライアントが正しいサーバーに接続したことを確認できるようにします。

  4. ソフトウェアをタイムリーに更新し、ライセンスメカニズムを時々変更してください!

最後に、ソフトウェアライセンスの防弾チョッキはありません!すぐにまたは遅くクラックされるでしょうが、もっと売って後でハッキングされるようにしてください。:D

于 2011-03-10T08:59:50.550 に答える
2

私は個人的には気にしません-プロのソフトウェア製品で使用されているさまざまなコピー防止システムがたくさんあり、それらのすべてがクラックされています。

コピー防止システムがどれほど複雑であっても、バイナリのある時点で、ライセンスが有効かどうかを確認する必要があります。必要なのは、バイナリのこの部分を変更して常にtrueを返すことです。

非常に単純なアクティベーションシステムを追加するだけで、人々がそれを友人に渡すのを阻止し、プロのハッカーがソフトウェアをコピーするのを防ぐために時間を無駄にするのではなく、より多くのコピーを販売するために新しい機能を追加することに時間を費やします。

彼らが望むなら-彼らはそうするでしょう!

于 2011-03-10T08:39:31.737 に答える
0

サーバーからクライアントにメッセージを送信するときに、公開鍵/秘密鍵の保護を使用できます。これらのメッセージは変更できません。サーバーからの応答であるため、安心してご利用いただけます。

あなたが探しているものをすでに提供しているLicenseSpotをチェックすることができます。それは持っています:

  • 無料ライセンスコンポーネント
  • 秘密/公開鍵暗号化
  • アプリとオンラインストアを統合するためのAPI
  • シリアル番号の生成
  • ライセンスを取り消す
于 2011-03-11T14:58:58.733 に答える