web-dev-qa-db-ja.com

Thunderbird:SSL / TLSとSTARTTLS

ServerFaultの質問 " STARTTLSはTLS/SSLより安全ですか? "質問は、実際のプロトコルではなく、実際にはThunderbirdに関するものであることがわかりました。また、このトピックについてグーグルで検索すると、互いに矛盾する多くの異なる答えが見つかります。

Thunderbird(現在のバージョン17について話しますが、バージョン3以降はこのようになっています)は、構成ダイアログで転送を暗号化する3つの方法を提供します。

  • None
  • SSL/TLS
  • STARTTLS

そして、Thunderbirdbeforeバージョン3には、次のオプションがありました。

  • None
  • SSL
  • TLS
  • TLS(利用可能な場合)

Thunderbirdバージョン3では、「SSL」オプションの名前が「SSL/TLS」に変更され、最後の2つのオプションがマージされて「STARTTLS」に名前が変更されました。 STARTTLSがデフォルトの設定オプションになりました。

ただし、 この質問と回答 によると、STARTTLSを使用すると、Thunderbirdは通知なしにプレーンテキスト転送にフォールバックする可能性があります。

私の質問は:

  1. Thunderbirdは本当に私に言わずに平文の転送にフォールバックし、とにかく接続を確立できますか(これはセキュリティリスクになります)?
  2. ThunderbirdがサポートしているSSL、TLS、STARTTLSのバージョンはどれですか?
  3. Thunderbirdには、実際に使用されている暗号化方式(プロトコルとバージョン)を示すインジケーターがありますか?
  4. ThunderbirdにTLSの使用を強制し、サーバーでサポートされていない場合はまったく接続しないようにする方法はありますか?(「SSL/TLS」オプションはTLSを処理できないようです(試してみました)、TLSを実行できるSTARTTLSには、「サイレントフォールバック」セキュリティリスクがある可能性があります。)
5
Foo Bar

1)それは可能です。 仕様 によると:

2.3。クリアテキストのパスワード要件

STARTTLSを実装するクライアントとサーバーは、十分な強度の暗号化レイヤーがアクティブでない限り、すべてのクリアテキストログインコマンドまたはメカニズム(標準化過程と非標準化メカニズムの両方を含む)を拒否するように構成可能でなければなりません。

したがって、プレーンテキストログインを具体的に制限するチェックボックスが必要です。しかし、ありません。これはThunderbirdのデフォルトの動作だと思いますが、よくわかりませんので、期待できます。

2)使用されているすべてのメジャーバージョンをサポートしていると思います。 SSLは廃止され、徐々にTLSに置き換えられています。ただし、STARTTLSはSSLを暗号化プロトコルとして使用できますが、その名前とは異なり、すべてサーバーがサポートするプロトコルに依存します。

3)そのような可能性については知りません。

4)私は1)それにも答えると思います(つまり、強制することはできませんが、おそらくそれがデフォルトの動作です)。注:「SSL/TLS」と「STARTTLS」は相互運用可能なプロトコルではありません(そのため、異なるポートを使用します)。

2
Petr Abdulin

SMTPS + STARTTLS(明示的なSSL/TLS)とSMTPS(暗黙的なSSL/TLS)は、電子メールクライアントが正しく実装されていて、SSL/TLSが利用できない場合に自動的にダウングレードできない限り、同等に安全です。

基本的に、STARTTLSを使用するように構成された適切に実装された電子メールクライアントは、STARTTLSを使用してこのSSL/TLS接続を確立できない場合は単に失敗するはずです(失敗した場合と同じように) SMTPSのSSL/TLS接続を最初に確立することはできません)。特に、該当する場合は、ユーザー資格情報を送信する前に失敗する必要があります

  1. Thunderbirdには、接続をダウングレードさせるオプションがありました(HTTP/HTTPSでのsslstripを介した攻撃に似ています)。ありがたいことに、これは2010年に削除されました( この問題 を参照)。
  2. ThunderbirdはSSLv3、TLSv1.0、1.1、1.2をサポートしています。 (SSL、TLS、およびSTARTTLSを同じバッグに入れることは実際には意味がないことに注意してください。 サーバー障害に関するこの質問 を参照してください。) security.ssl.version.* options(詳細オプション) 特定のバージョンを選択します。 (一般的に、security.ssl*オプションも興味深いかもしれません。
  3. Wiresharkのようなものを使用して実際の接続を確認する以外に、それを確認する方法を知りません。
  4. はい、これは以前にすでに当てはまりました これは修正されました 「利用可能な場合」オプションを使用しなかった場合に限ります。
2
Bruno

ただし、RFC仕様では、starttlsが失敗した場合、暗号化せずに送信する必要があると指定されています。したがって、暗号化されていないメールを送信したくない場合は、強制されたtlsを使用することをお勧めします。ダウングレード攻撃が不可能であるか、starttlsがnot暗号化されていない状態で送信するように指定されている場合は、問題ありません。上記のssl/tlsと同じです。それまでは、強制してください!

0
Nima