6

iPhone アプリケーションで使用される PHP の HTTP REST API があります。

この API の一部の Web サービスは、HTTP 要求資格情報のユーザー認証で保護されていますが、完全に暗号化された要求データを提供することで、「中間者」攻撃を回避したいと考えています。

私はセキュリティの問題にあまり熟練しておらず、私の質問に対する明確な答えがどこにも見つかりませんでした:

HTTPS は STATELESS REST API に関連していますか?

私が理解したことから、HTTPS は 2 つのことを行います。

  • セッションを暗号化する
  • 彼が話しているサーバーが安全であることをクライアントに証明する

したがって、API はセッションを使用しないため、サーバーとアプリケーションの間でデータを暗号化するという私のニーズには、一見したところ反応しません。しかし、私にはまだ疑問があります。

誰かが私にそれを明確にすることができますか?

私の他の解決策は、公開/秘密鍵システムでリクエストデータを暗号化することです。より適切でしょうか?

ありがとうございました !

4

4 に答える 4

4

はい、そうです。HTTPS はアプリケーションとは関係なく、トンネリング プロトコルです。TLS 自体はステートフル プロトコルですが、TLS を通過する HTTP 部分はそうではありません。

VPN を使用していた場合と同様に、REST ベースのアプリケーションを引き続き使用できます。TLS は、接続ごとにトンネルを自動的にセットアップおよび破棄するだけです。

とはいえ、HTTP および HTTPS のパイプライン処理の側面を活用して TLS 接続のスループットを向上させることには価値がありますが、それはアプリケーション自体とは関係のないパフォーマンス チューニングの側面です。

于 2012-04-24T18:00:38.963 に答える
2

HTTPSは非常に関連性があり、そうです、それはあなたが言及した2つのポイントによるものです。OAuth 2が実際にHTTPSを適用することをご存知ですか?

すべての暗号化を自分で行うこともオプションですが、APIが使いやすい部分が失われます。

「単純な」HTTPリクエストに対するほとんどの中間者攻撃には、資格情報の盗用とリクエストの偽造が含まれますが、送受信されたデータを読み取ることもできます。データが読み取れないことに問題がある場合は、HTTPSを使用してください。偽のリクエストが唯一の問題である場合は、 OAuth 1 (2ではない)などの認証プロトコルで十分です。

于 2012-04-24T17:41:29.973 に答える
0

データが機密性の高い場合は、必ず HTTPS を使用してください。探しているトランスポート層で暗号化します。すでに指摘したように、oAuth 2.0 では基本的にそれが義務付けられています。oAuth 1.0 のようにハッシュ/署名を使用して中間者を潜在的に回避し、SSL を使用する必要を回避できますが、本文は引き続き平文で送信されます (API 資格情報を平文で送信することは回避しましたが、本文は送信しませんでした)。

于 2012-04-25T06:30:18.040 に答える
0

SSL を実装したくない場合は、http://www.jcryption.org/を確認してください。ステートレス環境で機能するかどうかはわかりませんが、試してみる価値はあります。これは基本的に、送信されるデータのキー ペアの関連付けの作成を処理する jquery プラグインです。ただし、フォーム送信のみの場合があります。以前は、私の古い会社でログイン資格情報を暗号化するために使用していました。

于 2012-04-24T18:02:19.713 に答える