iPhone アプリだけがデータの送受信にアプリ エンジン アプリケーションを使用できるようにするにはどうすればよいですか? おそらく秘密鍵を使用する必要がありますが、方法がわかりません。post/get を使用して静的キーを https 経由で送信できますか? または、動的な秘密鍵アルゴリズムを使用する必要がありますか?
どんな助けでも大歓迎です!ビョルン
iPhone アプリだけがデータの送受信にアプリ エンジン アプリケーションを使用できるようにするにはどうすればよいですか? おそらく秘密鍵を使用する必要がありますが、方法がわかりません。post/get を使用して静的キーを https 経由で送信できますか? または、動的な秘密鍵アルゴリズムを使用する必要がありますか?
どんな助けでも大歓迎です!ビョルン
iPhone アプリの秘密が発見されないようにできると仮定すると、必要なのはHMACです。リクエストごとに、秘密鍵をキーとしてリクエストのテキストを HMAC-SHA1 などの関数に渡し、その結果をリクエストに追加します。サーバーがリクエストを受信したら、同じ操作を実行し、HMAC が一致することを確認します。
これに渡されるデータはすべて暗号化されるため、Web サービスで SSL 証明書を使用します。
暗号化された SSL 接続では、クライアントとサーバー間で送信されるすべての情報が、送信側ソフトウェアによって暗号化され、受信側ソフトウェアによって復号化される必要があり、インターネット上での傍受から個人情報を保護します。
また、サービスを呼び出すたびに、データとともに定義した 1 つの GUID を送信します。Web サービスがアクションを実行する前に、この GUID を検証する必要があります。さらにロックダウンするには、後続の呼び出しサービスに戻す必要がある GUID を生成するサービスを作成できます。
また、サーバー上の wsdl を誰にも見られないようにしてください。そうしないと、パラメーターを推測できます。
RapidSSLの SSL 証明書は年間 17 ドルかかるため、心配する必要はありません。
何を達成しようとしているのか完全にはわかりません。
ただし、iPhone アプリ内でシークレットや API キーを共有することは、一般的にはお勧めできません。
独自の AppEngine アプリケーションについて話している。アプリが対話する AppEngine 側で単純な (JSON ベースの) Web サービスを作成してみませんか? iPhone アプリから AppEngine 資格情報を直接使用する必要があるとは思えません。
これで質問の答えが得られない場合は、詳細をお知らせください。