1

ウェブからメールへのフォームを備えたウェブサイトを運営しています。ブラウザから Web サーバーへの送信を保護するために https を強制します。Web サーバーから PHP を使用して、受信した情報を含む電子メール メッセージを生成します。送信先の電子メール サーバーが別の場所にあります。Web サーバーから送信先の電子メール サーバーへの電子メールの送信が安全かどうか疑問に思っています。

だから私はいくつかの関連する質問があります:

A) 送信側サーバーから受信側サーバーへの電子メールの送信は、デフォルトで保護されていますか? (明確にするために、これは電子メール クライアントから SMTP サーバーへの接続に関する質問ではありません)

B) 送信がデフォルトで保護されていない場合、メッセージが安全に送信されているかどうかを確認するにはどうすればよいですか?

C) 送信が現在保護されていない場合、安全な接続を要求/強制するにはどうすればよいですか?

デフォルトの PHP メール機能を使用しています (Joomla 拡張機能を使用)

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

4

3 に答える 3

2

A)最初は、サーバー間の smtp 接続は常にポート 25 のプレーン テキストです。ソース サーバーとターゲット サーバーの両方がTLS 拡張をサポートしている場合、通常、プレーン接続はSTARTTLSコマンドで暗号化された接続に変換されます。

B)メールが暗号化された接続を介して送信されたかどうかを確認するには、"Received"送信後に生成されたメッセージの -Headers を読み取ります。

それらは次のようになります。

Received: from X.example.com (X.example.com [y.y.y.y])
    by z.example.net (Postfix) with ESMTPS id ......

重要な部分はESMTPSビットです。ラストSは「安全」を意味します。「ESMTPS」ではなく「ESMTP」または「SMTP」とだけ表示されている場合、送信は暗号化されていません。

C)ターゲット サーバーが TLS をサポートしていない場合、PGP のようなある種のエンド ツー エンド暗号化以外にできることはありません (Álvaro G. Vicario によって提案されているように)。一部のサーバー ( postfixなど) は、ターゲットが TLS を実行できない場合にメッセージがまったく送信されないようにする構成オプションを提供します。

サーバーが STARTTLS をサポートしている場合は、telnet で手動でテストできます。

telnet gmail-smtp-in.l.google.com 25
Trying 173.194.70.27...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP 4si1878861eee.197 - gsmtp
EHLO mail.example.com              <--- you have to type that
250-mx.google.com at your service
250-SIZE 35882577
250-8BITMIME
250-STARTTLS                       <----- GMAIL supports TLS
250 ENHANCEDSTATUSCODES  

        
于 2013-04-02T11:50:54.220 に答える
0

結局、メールクライアントからSMTPサーバーへの接続についての質問だ思います。送信元サーバーが宛先サーバーに接続してメッセージを配信すると、クライアントになります。デスクトップの電子メール プログラムと同じように、SMTP プロトコルを使用します。ただし、非常に重要な違いがあります。

  • 通常の電子メール クライアントを使用する場合は、通常、認証や暗号化などの特定のセキュリティ対策を提供できる (そして提供する必要がある) 同じ信頼できるプロバイダーを使用します。

  • メール サーバーがサード パーティのサーバーに接続する場合、匿名で接続し、ポート 25 への暗号化されていない接続を確立する必要があります。

チャネルがクリアであることを考えると、メッセージ自体が暗号化されていない限り (PGP など)、サーバー間の通信は安全ではありません。電子メール メッセージは、郵便はがきのようなものと考えることができます。

(このため、サインアップ時にパスワードを平文で電子メールで送信するサイトは間違っています。)

于 2013-04-02T10:55:48.183 に答える
0

これまでの非常に良い回答に敬意を表して、Joomla! SMTP メール機能は、クラスJMailから拡張されたによって処理されます。PHPMailerJoomla! をセットアップするとき 次の 3 つのオプションがあります。

  1. PHP メール -経由でPHP mail()設定を使用しますPHPMailer
  2. Sendmail -sendmail 経由で使用PHPMailer...
  3. SMTP -PHPMailerクラスを使用

PHPMailerクラスは、SMTP 接続ネゴシエーションで と の両方tlsをサポートします。ssl

もちろん、これはGlobal Configuration->Serverでの設定に依存します。というタイトルのペインで、 SMTP セキュリティMail Settings(SSL|TLS)をオンにして、ユーザー名とパスワードを指定できます。これらの詳細は、SMTP サーバーで認証するために必要です。

于 2013-04-03T01:16:14.913 に答える