satakesatakeの日記

 | 

2015-07-24

続Thunderbird 38.1.0でSMTP + STARTTLSで接続エラー発生の件(解決)

| 17:14

はじめに

↓これだめ!

http://nextstageone.g.hatena.ne.jp/satakesatake/20150723

Thunderbird 38.1.0で、SMTP + STARTTLSでメール送信しようとすると接続エラーが発生するというやつ。結論からいうと、Thunderbirdは偉かった。

maillogには"sslv3 alert illegal parameter"が残されており、一見、どマイナーなThunderbirdしょべえwwwwwww m9(^Д^)プギャーwwwwww

なーんて誤解をするような記録が残されるが、実のところ、サーバセキュリティレベルがお粗末なクソ運用している奴らに喝を入れてくれていたのだ!

sendmail.mcにはconfDH_PARAMETERSがあり、SSLの鍵交換時のディフィー・ヘルマン鍵共有とかいうやつのパラメータを設定できるらしい。

で、デフォルトsendmail.mcにはconfDH_PARAMETERSなんていう設定は微塵も見当たらなくて、きっと設定されていないからセキュリティ甘々なものが使用されていたのであろう。とにかく、DHパラメータのサイズが768という数字の場合は、ちゃんちゃらおかしくて、Thunderbird的には危険すぎちゃって、もうやってられないっすわ、って感じ。

参考資料: http://blog.trendmicro.co.jp/archives/11482

脆弱性は、「ディフィー・ヘルマン鍵交換(DH鍵交換)」の実行方法に存在します。「Logjam」を利用することにより、許可されたアルゴリズムの強さを、輸出グレードの暗号で使用する 512ビットの素数を利用するアルゴリズムに降格することができます。「Logjam」を研究するリサーチャーが行った同様の研究では、768ビットおよび 1024ビットの素数を利用するシステムでも脆弱性が存在することが判明しました。国家レベルであれば、これらの脆弱性を攻撃するのに必要な計算能力を持つかもしれません。攻撃者は、受動的に収集した安全なトラフィックを復号することが可能です。

(中略)

特に DH鍵交換がよく利用されるプロトコルである HTTPSSSLTLS)を見た場合、リサーチャーによると、上位 100万ドメインWebサイトのうち、8.4% が脆弱であると推定しています。また、POP3S および IMAPS の安全なメールサーバも同様の割合で危険にさらされています。

解決方法

具体的にはDHパラメータと呼ばれるファイルを作って、sendmailに設定してやればいい。

$ sudo openssl dhparam -out /etc/pki/tls/certs/dh.param 2048

ここでは2048bitとしているが、4096とかいう例もあった。無事にDHパラメータが作成できたら、次はsendmail.mcの編集だ。

define(`confDH_PARAMETERS', `/etc/pki/tls/certs/dh.param')dnl

sendmail.mcのどっかに上記をぶっこんで、m4して、sendmail再起動すれば終わりです。まあ、うちのsendmailは起動スクリプトsendmail.mcをコンパイルしてくれるのが入ってるからservice sendmail restartだけでいいんだけどね。

  • 接続テスト(SMTPポート587の例)
$ openssl s_client -connect localhost:587 -starttls smtp

もろもろ終わったら、上記の一文でテストできる。どばーと長いテキストの中身はよくわからんが、ダメな場合は、dh なんたらってエラーがでてすぐ止まる。

要するに間違ってもThunderbirdオプションの設定エディタから、普段いじらねーようなパラメータを変更するようなことはするなってこった。セキュリティ甘々のクソサーバつかってて、サーバ管理者が何にもしやがらねークソ野郎であれば話は別なので、泣きながらabout:configすりゃいいんじゃねーのって話でした。

結論

というわけで、今回の件はThunderbird 38.1.0の仕様です!!!!

エラーが出ていてつながらねーぞコノヤローって場合はThunderbirdを恨むより、サーバ管理者を恨め。

以上

 |