2

Monodroid / MonoTouchでクロスプラットフォームアプリケーションを作成しています。アプリケーションはサーバー側の部分と接続して、そこからデータを取得する必要があります。データは機密性が高く、アプリケーションのベースです。

他の人/アプリケーションからサーバー側の使用を制限するためにそれをどのように防御しますか?人々が正しい要求構文を取得できると仮定するか、秘密鍵を使用してクエリをエンコードすると、デバッグによってその鍵を取得できると仮定します。

4

1 に答える 1

3

HTTPSなどのSSL/TLSを使用するなど、データ転送には機密性が必要ですが、それだけでは十分ではありません。デフォルトでは、サーバーがクライアントを信頼できるということではなく、クライアントがサーバーを信頼できることを保証できます(これはデバッグの場合をカバーしていません)。

したがって、認証も必要になります。これは、アプリケーション自体にハードコードされていない(信頼できない)ユーザー(または信頼できるエンティティ)ベースである必要があることを除いて、秘密鍵を持つこととほぼ同じです。

ユーザーにパスワードを登録して取得させる(またはユーザートークンをデバイスストレージに保存する)ことは、これを開始する1つの方法です。それはあなたのデータを使用する他の人々からあなたを保護します。

ある種のユーザー/デバイスの関連付けを作成して、ユーザーシークレットを複数のデバイス間で共有できないようにすることで、これを強化できます。これにより、同じ(信頼できる)ユーザーが代替の(信頼できない)アプリケーションを使用する可能性を制限できます。たとえば、別のデバイスで。

于 2012-07-25T11:54:34.660 に答える