web-dev-qa-db-ja.com

最も安全なSMTP認証タイプは何ですか?

自分のSMTPサーバーに対して、次の認証タイプから1つだけを選択する必要があるとします。

  • ログイン、プレーン
  • CRAM-MD5
  • DIGEST-MD5
  • NTLM/SPA/MSN

最適なセキュリティのためにどちらをお勧めしますか?

PS:リストはman swaksで指定された認証タイプです

17
user123456

SSL/TLSでは、LOGIN/PLAINを使用しても問題ありません。

SSL暗号化接続の上にSMTPを提供する必要があります。リストの一部のスキーム(例:DIGEST-MD5)は、信頼できないチャネルを介してもパスワードを安全に保つことができますが、中間者攻撃によるセッションの改ざんからユーザーを保護することはできません。 (通常、電子メールサーバーは、ダイレクトTLS経由のSMTPまたは [〜#〜] starttls [〜#〜] を使用した接続アップグレードをポート465/587でラップします。)

PLAINまたは高度な方法を使用しているかどうかに関係なく、任意のSMTP認証タイプは、アプリケーションレベルの認証を提供するだけです。しかし、必要なのはtransportレベルのセキュリティ。ユーザーがSMTP経由で認証された後は、自動的に暗号化された接続はありません。 SMTPプロトコルに従って、コマンドと電子メールはプレーンテキストでサーバーと交換され、中間者攻撃者が通信を読み取って変更し、新しいコマンドを挿入できるようにします。 HTTPSがSSLの上にHTTPを提供するのと同じように、SSL暗号化の上にそれを提供する必要があるのはそのためです。

HTTPの例え:HTTPSでWebサイトを保護する場合、ログインフォームが実際にパスワードをPOST HTTPリクエストの本文のプレーンストリングとして送信することは問題ではありません。データ転送はSSL暗号化されます。SMTPでCRAM-MD5を有効にすることは、ログイン資格情報をWebサイトに送信する前にJavascriptで challenge-response スキームを実装することに似ています(この手法は、 HTTPSを提供しないルーターインターフェイスですが、あまり一般的ではありません。)

実際の例として、GMailは安全なSSL接続を確立した後、LOGIN/PLAIN認証(資格情報は計画テキストで送信されます)を提供して問題ありません:

 $ openssl s_client -starttls smtp -connect smtp.gmail.com:587 
 ... 
 250 SMTPUTF8 
 EHLO foo 
 250-smtp .gmail.com at your service、[127.0.0.1] 
 250-SIZE 35882577 
 250-8BITMIME 
250-AUTHログインプレーンXOAUTH2プレーンクライアントトークンOAUTHBEARER XOAUTH
 250-ENHANCEDSTATUSCODES 
 250-PIPELINING 
 ... 

(ご覧のとおり、これらはリストにないいくつかのメソッドも提供します。たとえば、OAuth2トークンの場合はXOAUTH2で、パスワードなしの認証が必要な場合は興味深いかもしれません。)

45
Arminius

私がニース認証と呼ぶのは、次の特性を持つ認証です。

  • サーバーは実際のパスワードを知る必要はなく、ハッシュを保持するだけです

    これにより、パスワードデータベースが危険にさらされたとしても、攻撃者はハッシュを逆転するのが難しくなるだけであり、ユーザーはパスワードを変更するのに十分な時間を持つことができます。

  • パスワードが平文で交換されることはありません

    交換されるものは簡単に盗まれる可能性があり、暗号化されていないチャネルを介してクリアテキストで渡されるパスワードは侵害されたと見なされます

SMTPサーバーがTLSを許可する場合、PLAINは次のシナリオの両方で尊重します:HELO、STARTTLS、LOGIN

3
Serge Ballesta

SMTPの推奨事項とは別に、利用可能なリストは次のとおりです。

  • LOGIN、PLAIN:パスワードはクリアテキストで転送されます。
  • CRAM-MD5:選択された平文に弱く、パスワードの保存に問題があります。
  • DIGEST-MD5:選択された平文攻撃に強く、サードパーティ認証の使用を許可するため、CRAM-MD5より優れていますサーバー
  • NTLM/SPA/MSN:選択された平文に対しても脆弱なNTLM認証。
3
Opaida