オンラインアクティベーションを使用してソフトウェアを保護したいのですが。ユーザーはインターネット接続が必要であり、ソフトウェアを引き続き使用するには、アクティブなアカウント/ライセンスがあることを確認する必要があります。そのため、私のソフトウェアは私のWebサイトにいくつかのクレデンシャルを送信します。そこで、プログラムを実行できるかどうかを確認して、何かを送り返します。
ここに問題があります。自分の検証を完全にバイパスして、誰かが私が送り返す単純な何かを偽装するのを防ぐにはどうすればよいですか?
2つの例:
インターネットトラフィックを監視し、トラフィックがソフトウェアに戻る前にそれを変更できるプログラムをどこかで見たのを覚えています。名前が思い出せない。事実上、アプリケーションがそれを認識する前に、コンピュータに出入りするものの中間者です。たとえば、ブラウザがHTTPリクエストを送信し、このプログラムがそれをインターセプトして送信パケットを変更したり、その逆の場合、一部のHTTP Webページがブラウザに返され、このプログラムが着信パケットをインターセプトして変更し、それをに渡すことができます。ブラウザ。
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チェックが実行されなかった場合、一部の機能のアルゴリズムがダウンロードされず、アプリが機能しなくなります。正しく。誰もがこの無駄にアイデアを持っていますか?