9

私は、ユーザーがサーバーと対話するときに、サーバーに小さな情報(一度に128文字未満の2つの文字列、これはあまり頻繁には発生しません)を送信する必要があるiPhoneアプリケーションを作成しています。この情報は秘密にしておきたいので、なんらかの暗号化や安全な接続が必要だと思います。

私の質問は、物事のサーバー側についてです。iPhoneアプリが通信する必要のあるサーバーはdjangoで記述されており、lighttpdで実行されています。これを行うための最も適切な方法(または標準的な方法)は何ですか。私はhttpsを考えていました。これはiPhoneでASIHTTPRequestを使用してPOSTリクエストを実行できることを知っていますが、サーバー側で何が必要かわかりません。証明書が必要ですか?データはどのように暗号化/保護されますか?これを支援するdjangoモジュールはありますか?lighttpdを設定するために何かする必要がありますか?

xml-rpcやjson-rpcのようなものはもっと簡単でしょうか?そのような通信を確保することは可能ですか?それはどのレベルで起こりますか?

どんな助けでも大歓迎です。

4

3 に答える 3

4

xml-rpc または json-rpc を使用することは、データを転送しやすい形式にカプセル化する手段にすぎません。iPhone アプリはこれらの形式のいずれかを使用して Objective C データを変換でき、Django サーバー アプリはデータを Python オブジェクトに戻すことができます。

これらはどちらもセキュリティとは何の関係もありません。

HTTPS (SSL) 接続を作成すると、クライアント (iPhone) とサーバー (Django) 間のすべての通信が暗号化されます。サーバー側の証明書を取得する必要があります。これは、サーバーが主張している人物であることをクライアントに示します。このパスをたどる次の調査は、SSL トラフィックを処理するように lighttpd を構成する方法に関するものです。lighttpd が SSL 通信をネゴシエートすると、Django アプリは、保護されていないトラフィックの場合と同様に動作します。

これが最良の選択です。

何らかの理由で SSL を使用したくない場合は、通信の両端で強力な暗号化ライブラリを見つけることができます。iPhone アプリはデータを暗号化し、HTTP 接続を介して送信し、Django アプリはそれを復号化できます。たとえば、pycrypto Python ライブラリは、 AESBlowfishなどの強力な暗号化暗号を実装しています。Objective C で記述されたこれらの暗号の 1 つの実装を見つけることができるかもしれません。

これがますます複雑になっていることに気付きましたか?

SSL を使用します。これは、HTTP ベースの通信でセキュリティが行われる方法です。

于 2009-10-19T21:18:42.093 に答える
1

うーん、これはあなたが求めているものかもしれません。見ましたか?

Lighttpd/Django の SSL の設定

私がその権利を読んだ場合、そのセットアップにより、サーバーはhttpsおよびhttpリクエストに応答できます(?)次に、アプリ全体がhttpsにならない場合は、このSSLミドルウェアがあり、一部のパスをsslとして構成し、一部をそうではありません.

于 2009-10-13T05:50:49.470 に答える