HTTPのアップロードを確保するために、どのように本物の実行ファイルから来ました

StackOverflow https://stackoverflow.com/questions/1964444

  •  21-09-2019
  •  | 
  •  

質問

私たちは、WebアプリケーションにいくつかのデータをアップロードしますネイティブのWindowsアプリ(MFC)を書き込むプロセスです。 Windowsのアプリケーションは、ログインにユーザーを可能にし、その後、それは、定期的に当社のWebアプリケーションにいくつかのデータをアップロードします。アップロードは、弊社のWebアプリに簡単なHTTP POSTを介して行われます。私がいる懸念は、どのように我々はアップロードが実際に我々のアプリからではなく、カールまたはそのような何かから来ていることを確認することができます。私たちはここに公開鍵/秘密鍵暗号化のいくつかの種類を見ていると思います。我々は何とか私たちの勝利のアプリ実行中に公開鍵を埋め込むことができますし、それを行うことがあればしかし、私はよく分かりません。またはその公開鍵は我々のアプリの抽出物および使用の外にあまりにも簡単だろう?

とにかく、私たちはかなりの両側(クライアントおよびサーバー)何かを構築していることはオプションですが、それは、HTTP(S)を介して仕事を持っています。しかし、我々は勝利(クライアント)アプリの実行環境に加え、システムゲーミングによって何かを得るために立っているだけである彼/彼女のシステム上でアプリケーションを実行しているユーザーを制御しません。

役に立ちましたか?

解決

最終的には、それはそれはあなたが所有していないマシン上で実行しているこのようアプリケーションの身元を証明することはできません。あなたは、キー、ハッシュとチェックサムとのプレーを埋め込むことができますが、一日の終わりに、誰かが他の人のマシン上で実行されているコードに依存しているものは偽造することができます。キーを抽出することができ、コードはそれがあいまいを通じてすべてのセキュリティだ逆engineered-することができます。

検証とデータのクリーンアップに取り組んであなたの時間を過ごし、そしてあなたが本当に何かを確保したい場合は、クライアント証明書を使用して、エンドユーザーを確保します。それ以外は単に時間の無駄と誤った安心感である。

他のヒント

あなたができる最善について

は、クライアント証明書を使用してHTTPSを使用することです。おそらくのWinHTTPするのインターフェースを持ちます。

  

しかし、私たちは何とか私たちの勝利のアプリ実行可能ファイルに公開鍵を埋め込むことができますし、それを行うことがあれば、私はよく分からない。

クライアントはサーバーに自分自身を識別する場合、それが埋め込まれた秘密鍵でなければならないであろう。

  それともそれは我々のアプリの抽出物および使用の外にあまりにも簡単だろう?

あなたは、クライアントアプリケーションの実行環境を制御しない場合は、

、あなたのアプリが何かできることは、解析し、自動化と環境という制御を行い、攻撃者によって再現することができます。

あなたがする必要がある場合は、通信手順の周りにあいまいなレイヤーを置くことができますが、問題を解決することは決してないだろう。マルチプレイヤーゲームは戦闘不正行為への年のためにこれをやろうとしてきたが、最終的には優勝することはできませんだけで難読化軍拡競争です。ブリザードあなたより方法より多くのリソースを持っている、と彼らはどちらかそれを管理することができません。

アプリが配布されたら、

あなたはバイナリを制御することはできません。あなたの実行可能ファイル内のすべての署名および暗号化ロジックに存在する場合、それを抽出することができます。賢いコーダは、コードを把握し、それを行うのに十分な動機があるとき、相互運用可能なシステムを構築します。 DRMは仕事をしない理由です。

インスタンスのためのPCのMACアドレスへの鍵を結ぶ複雑なシステムは失敗することを確認されます。

は、特定の実行可能ファイルまたはシステムを信頼していますが、ユーザーを信用していません。エントラストは、プライベートキーファイルとそれらのそれぞれは、パスフレーズで保護され、そのキーがあなたのサービス上のコンテンツの提出者としてそれらを識別する方法を彼らに説明します。

あなたがクライアントを制御しているので、

は、あなたにもアプリケーションにキーを埋め込み、必ずユーザーがアプリケーション・イメージへの読み取りアクセス権を持っていないになるかもしれない - あなたは2つの階層にロジックを分離する必要があります - 1ユーザーが実行つまり、他のそのHTTP経由でサービスに接続(S) - ユーザーは常に彼が実行しているアプリケーションへの読み取りアクセスを持つことになりますので、

私が正しく理解していれば、データはユーザーがログオン後に自動的に送信されます - 唯一のサービスの一部のようなこの音は必要とされている。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top