STARTTLS

メールサーバー | IT用語集

この用語をシェア

STARTTLSとは

STARTTLSは、平文(暗号化されていない)接続をTLS暗号化接続にアップグレードするコマンドです。RFC 3207(SMTP用)およびRFC 2595(IMAP/POP3用)で標準化されており、既存のポート番号(25、587、143など)で暗号化通信を実現します。

STARTTLSの動作

通信フロー

1. クライアント: 平文で接続
   → EHLO client.example.com

2. サーバー: STARTTLS対応を通知
   ← 250-mail.example.com
   ← 250-STARTTLS
   ← 250 8BITMIME

3. クライアント: 暗号化を要求
   → STARTTLS

4. サーバー: TLS開始を承認
   ← 220 Ready to start TLS

5. TLSハンドシェイク実施
   [暗号化通信開始]

6. 以降の通信はすべて暗号化

Implicit TLSとの違い

項目 STARTTLS Implicit TLS
接続開始 平文 最初から暗号化
ポート(SMTP) 25, 587 465
ポート(IMAP) 143 993
推奨度 ✅ 推奨(現代標準) ⚠️ 一部で使用

自社メールサーバー運用への応用

Postfixでの設定例

# main.cf - STARTTLS設定
smtpd_tls_security_level = may  # STARTTLSを提供(強制はしない)
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

# Submission(ポート587)ではSTARTTLS強制
# master.cf
submission inet n       -       y       -       -       smtpd
  -o smtpd_tls_security_level=encrypt

Dovecot(IMAP/POP3)での設定

# /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = 

セキュリティベストプラクティス

  • Submission(ポート587)ではSTARTTLS必須にする
  • TLS 1.2以上のみを許可(TLS 1.0/1.1は脆弱性あり)
  • 有効な証明書を使用(Let's Encryptなど)
  • 強固な暗号スイートを設定

関連ブログ記事

まとめ

STARTTLSは、既存ポートで暗号化通信を実現する標準的な方法です。自社メールサーバーでは、Submission(ポート587)でSTARTTLSを必須化し、ポート25ではオプション提供することで、セキュアなメール送信環境を構築できます。TLS 1.2以上の使用有効な証明書の導入が重要です。

この用語についてもっと詳しく

STARTTLSに関するご質問や、メールサーバー構築のご相談など、お気軽にお問い合わせください。