0

私は 2 つの Web サイト間の通信およびデータ交換システムを準備しており、Stackoverflow コミュニティ メンバーから投稿された提案を使用して強化したいと考えています。

次の例を使用して、現在どのように行っているかを説明しましょう。

2つのウェブサイトがあります

  • server-example.com (現在は SE.com と呼ばれます)
  • client-example.com (現在は CE.com と呼ばれます)

サイト間のデータ交換を実行する前に、次の手順を実行します。

  • openssl_* 関数を使用して、非同期キー ペアが SE.com で生成されます。
  • 秘密鍵は SE.com に保管されます
  • 公開鍵は、通常の HTTP 要求を介して CE.com に送信されます (詳細なプロセスは以下を参照)。
  • 公開鍵は json_encode 関数を使用してエンコードされます
  • エンコードされたデータは CE.com にプッシュされます

さらに遠く、

  • CE.com がエンコードされたデータを受信すると、json_decode 関数を使用して PublicKey を取得します。
  • CE.com は、カスタム関数を使用してランダムな文字列 (rkey と呼ばれる) を生成します
  • rkey は openssl_public_encrypt 関数を使用して暗号化されます
  • 暗号化されたデータは SE.com にプッシュされます

さらに遠く、

  • 暗号化されたデータを受信すると、SE.com は openssl_private_decrypt を使用して復号化します
  • 現在、SE.com には同じ rkey があります (CE.com と同じ)

ここで、SE.com が次の文字列「Hello World」を CE.com に送信する必要があるとします。

どちらのサイトにも、AES 暗号化/復号化用のカスタム ライブラリがあります。

  • SE.com は、AES 暗号化機能を備えた rkey を使用して、暗号化されたテキストを生成します
  • 生成された暗号化テキストは、json_encode 関数を使用してエンコードされ、CE.com にプッシュされます

今、CE.com は暗号化されたテキストを取得します

  • 暗号化されたテキストを受信すると、json_decode を使用してデコードし、'Hello World' 文字列を取得します

質問

  • 通信は Web セーフですか? Web セーフという意味では、SE.com と CE.com の間で送信されるデータは、GET 要求と同様の方法で転送できますか?
  • 誰かが送信されたデータを送信途中で読み取ろうとした場合、それを解読して内容を確認できるかどうか?

    また、セキュリティとコミュニケーションを改善するための提案を提供します。

    助けていただければ幸いです。

4

2 に答える 2

1

クライアント側の証明書を実装します。サーバー側の証明書を使用すると、メッセージの傍受を防止/抑止できますが、SE をスプーフィングする誰かがそもそも CE と通信することを防止することはできません。

于 2012-04-25T17:22:14.480 に答える
0

双方向 SSL 認証を使用する必要があります。

于 2012-04-30T09:54:26.280 に答える