2010-12-01 6 views
5

私はWP7アプリケーションで作業しています。このWP7アプリケーションは、私が作成したいくつかのWebサービスと対話します。私は他のアプリケーションがこれらのWebサービスとやりとりすることを望んでいません。なぜ私は彼らが私のデータを盗んで欲しくないからです。WP7アプリケーションからの安全な/認証された対話

  • を私のユーザーが最初にアプリケーション
  • は、各Webサービスとユーザーのユーザー名/パスワードを渡すにログイン作るHTTPS
  • を経由してWebサービスへの接続:このことを念頭に置いて、ここで私が現在やっているものですこの時点で、私は、ユーザー名/パスワードのコンボを作成し、私のWebサービスと対話するために彼らのアプリケーションでそのアカウントを使用してから、悪意のある開発を停止しているものの相互作用

が表示されません。この事を本当にどうやってロックするのですか?

ありがとうございます!

答えて

0

「承認済みアプリケーションID」機能を導入して、アプリケーションが各HTTP要求本文内で名前または識別子を送信することができます。サーバー側では、アプリケーションのIDを確認することができます(たとえば、許可されたアプリIDをテーブルに格納するなど)。アプリケーションIDは、HTTP(S)本体内で暗号化されます。

古いアプリケーションIDを取り除きたい場合は、WP7アプリケーションの更新版で新しいアプリケーションIDをプッシュすることもできます。また将来、異なるデバイスやプラットフォームで新しいアプリケーションをサポートすることもできます。

+0

問題は誰かが.xapファイルをダウンロードすることを決めた場合です。彼らはまだアプリケーションIDを見ることができます。難読化さえ完璧ではない。これに対処する方法がいくつかあります。 – user462166

+0

良い点。ありがとう。 – kindohm

1

より安全なシステムを目指して、(SSLを使用している場合でも)パスワードを保存して各リクエストでワイヤを介して送信することをやめてください。

各リクエストで渡す必要がある場合は、パスワードの塩漬けされたハッシュを格納し、その代わりに使用します。

1

を見てみたいことがあります。私は創造的に考え、さまざまな方法を使って、リクエストが来ると予想されるデバイスからリクエストが来ていることを検証することをお勧めします。

また、シナリオにメリットがある場合は、APIを開いてサードパーティの開発者に公開し、目的に合わせてこの作業を行います。

1

アプリでキーを保存することを決定しない場合は、RAWテキストを保存する代わりに、UTF8値のバイト配列を宣言していない、これは読みとして容易ではないだろう。

あなたはその後、アプリが実行されたキーは初めての塩漬けハッシュを使用して、サービスとハンドシェイクすることができますが、サービスは、デバイスが実際に日々を使用するための別のキーを渡します。

携帯電話の時刻はほぼ正確であるため、毎日または毎日キーを再計算できます。また、そのデバイスのサーバー側のキーを取り消すこともできます。

このAPIは、デバイスを完全にブラックリストに登録するのに役立ちます。

DeviceExtendedProperties.GetValue( "DeviceUniqueId")。ToByte();

私はあなたが秘密鍵として上記の一意のIDを使用することができるかもしれない対称暗号化を見ていない。

私は、成功への鍵は、最初の手振れであり、それが確実にスヌープされていないことを保証すると思います。それが本当に重要なシステムならば、あなた自身の暗号化を行うことは、真剣な意図を持った人にとっては常に難しいので、これらのアイデアを使用しないでください。よく知られている方法を使用して読んでください。

ルーク

関連する問題