📫

メール送信にはポート587ではなく、ポート465を使おう

に公開

TL;DR

SMTPを使う際、メール送信にポート465を使うのは非推奨という記事が目立つがこれは古いRFCを元にした情報である。
暗黙的にTLSを使うポート465の方が、中間者攻撃のリスクがあるSTARTTLSを使うポート587より安全なので、現在ではポート465を使うことが推奨される。

長い説明

元々Eメールはインターネットに悪人がいないような時代に設計されたプロトコルなので、セキュリティなど全く考えられていないに近い。現代に至るまで様々な拡張で安全性を担保してきた。
SMTPには最初、ポート25が割り当てられていた。
1990年代に、一部のメールサービスプロバイダーがSMTP(S)にSSLを使用し始めた。この目的のためにポート465が使われていたが、仕様としては定義されていなかった。
2011年に、RFC 6409がSMTPSのためにポート587を指定した。しかしこの仕様では、STARTTLSという最初は平文で通信し、可能であればTLSを用いるという方法が採用されたため、一部の実装に中間者攻撃が可能になるセキュリティ上の問題が発見されたこともあった。
ポート465が非推奨という記事が多いのはおそらくこのRFC 6409のせい。

時代は変わり、HTTP接続でもTLSを用いることが当たり前になった。2018年のRFC 8314では、ポート465で暗黙のTLSを介したSMTPSを実装することが推奨されている。このため、2025年現在ではSMTPの接続にはポート465を使用することが推奨されていると言える。
セキュリティ的な面からも、暗号化が任意のポート587ではなく、TLSを使用することがデフォルトとなっているポート465を使うことが好ましいと考えられる。

参考文献

Discussion