0

2 つの Web サイト (サイト A とサイト B) 間で安全に通信したい。そこで、両方のサイトの SSL 証明書を購入することを考えました。

問題は、サイト B からサイト A に POST 要求を送信する必要があることです。

その後、サイト B はセキュア キーで応答する必要があります。

PHP で通常の投稿リクエストを使用して POST を送信すると、正しくて安全ですか? または、SSL を使用するときにリクエストとレスポンスを返す特別な方法はありますか。

前もって感謝します。

後で編集

実際には、サイト B を Web サービス サイトとして使用し、その後、通信用のセキュア キーを要求するためにサイト B に接続するサード パーティのサイト (A、C、D、E など) を追加する予定です。

その後の編集 2

サイト A がサイト B に POST 要求を送信する場合、サイト B に応答部分を実装する方法 (SSL を持つ)。応答でデータ (セキュアキーを含む) を送信する必要があります。

4

3 に答える 3

3

MITM 攻撃からリクエストを保護する場合、サーバーはクライアントに対して ID を証明する必要があります。ブラウザからサイト A への接続を安全にする場合、サイト A はその ID をブラウザに証明する必要があります。また、サイト A とサイト B の間の接続が安全である必要がある場合、サイト B は、サイト A で実行されている PHP スクリプトに対してその ID を証明する必要があります (どちらもかなり独立しています)。

HTTPS 接続で ID を証明することは、証明書の役割です。

ブラウザとサイト A の間の通信をセキュリティで保護したい場合は、サイト A のよく知られた CA (1 つのユーザーが直接使用する)が必要になります。

サイト B に接続しているクライアントの数が限られている場合 (たとえば、サイト A のみ)、これらすべての関係者を管理している場合は、サイト B で独自の CA を作成 (または自己署名証明書を使用) し、それを明示的にインポートできます。サイト A で実行されている PHP コードの信頼できる証明書として (PHP で Curl を使用して接続する場合は、 で設定できますCURLOPT_CAINFO)。

サイト B を、手動で証明書を渡すのが難しいサード パーティに使用してもらいたい場合は、よく知られている CA から証明書を取得する必要もあります。(また、より便利になる可能性があります。)

サイト A がサイト B に接続するときにサイト A を認証することを検討する必要があるかもしれません。これは、盗聴や MITM 攻撃を防止するだけでなく、サイト B が適切な関係者に情報を提供することを確認するためです。サイト B でさまざまな認証/承認手法を使用してこれを行うことができます。これには、サイト A のクライアント証明書を使用できますが、サイト A の証明書を使用しないことをお勧めします (ただし、この目的のために作成する別のクライアント証明書は、おそらくこれは、PHP スクリプトがそれとその秘密鍵への読み取りアクセス権を持っている必要があるためです (通常、スクリプトが侵害された場合に備えて、それを防止することをお勧めします)。コンテキストによっては、他の認証手法の方が適切な場合もあります。

于 2012-10-11T10:48:26.943 に答える
1

サイト A には SSL 証明書は必要ありません。

サイト B だけが、安全な通信のために SSL 証明書を持つことができます。の POSTとからのデータの受信では、安全なチャネルが通信に使用されます (通信が要求と応答の両方を意味することに注意してください!)。

同じ安全なサイト B は、任意の数のサイトから要求できます。

サイト B が他のサイトに POST を送信ている場合は、別のケースです。他のサイトにも SSL が必要です。

于 2012-10-11T10:14:48.063 に答える
1

このような URL で A から B に投稿https://site_b.comすると、通信部分がセキュアになります。

ただし、セキュリティははるかに多く、通信だけではありません。

注: 証明書を購入する代わりに、B から A への通信のみに SFTP プロトコルを検討できます。

于 2012-10-11T09:43:35.573 に答える