SSL,STARTTLSによるメール通信経路の暗号化

メールの送受信は、従来 SMTP、POP、IMAP にて行われていましたが、これらのプロトコルは暗号化されていないため、受信時のパスワードや本文が盗み見されてしまうリスクがありました。 そのため、会社宛のメールを、自宅から送受信することを、社内のポリシーとして禁止している例は少なくありません。 ここでは、"SMTP/IMAP/POP3 over SSL""STARTTLS"によるメール暗号化について紹介します。


SMTP/IMAP/POP3 over SSLによるメール暗号化


SMTPS(smtp over SSL)、IMAPS(imap over SSL)、POP3S(pop3 over SSL)は、SSL対応のそれぞれのポートSMTPS(465/tcp)、IMAPS(993/tcp)、POP3S(995/tcp)を新たに専用のポートを持つことで、SSL対応したメールクライアントソフトウェアとそうでないソフトウェアの混在が行えるため、段階的な暗号化通信を行っていき、最後に通常のSMTP、IMAP、POPポートを閉じることで、完全な暗号化通信環境を作られる環境で用いられます。

Cyren AntiVirus

クライアント/サーバー間で"SMTP/IMAP/POP3 over SSL"を使う場合の注意点


"SMTP/IMAP/POP3 over SSL"を使って、クライアントからのメール送受信を行う場合、クライアントで使っているメーラーが"SMTP/IMAP/POP3 over SSL"に対応している必要があります。また、対応しているメーラーであっても、そのままで"SMTP/IMAP/POP3 over SSL"を使うことができるわけではなく、メーラー側で設定変更が必要になります。


ブラウザでのSSL通信(https)と同様に、多くのメールクライアントソフトウェアでは、第三者証明機関が発行する証明書を使用しないと(自己発行の証明書を使うと)、接続時に信頼できる証明書であるかを確認する警告メッセージが表示されます。

STARTTLSによるメール暗号化

STARTTLSを使ったサーバー間のメール経路暗号化



STARTTLSは、送信者側のメールサーバーと、受信者側のメールサーバーとの通信で主に使用されます。 これは、先の"SMTP/IMAP/POP3 over SSL"において、社員の社外からのSMTP通信の暗号化において、それぞれ専用のポートSMTPS(465/tcp)、IMAPS(993/tcp)、POP3S(995/tcp)をファイアウォールで解放しなければならず、 かつ、同様に社外のメールサーバとの暗号化通信においては、ファイアウォール設定上のハードルが高いことが挙げられます。


そこで、STARTTLSでは、接続先のメールサーバがSTARTTLSに対応していれば、従来のSMTP(25/tcp)、IMAP(143/tcp)、POP(110/tcp)のポート番号はそのままに、暗号化通信を行える仕組みとなっております。


そのため、SMTP、IMAP、POPを使った送受信メールの暗号化をシステム環境的に容易に行える方法となります。MDaemonはメールサーバー間でのSMTP通信でのSTARTTLSにも標準対応しているため、すぐに安全なSMTP通信が行えます。 更に、MDaemon Ver.13.5.x からは指定したホストやネットワークとの通信において、STARTTLSの使用を強制できるようになり、機密性の高いメールの送受信を行う必要のある取引先や社内のクライアントでSTARTTLSの設定を行っていない端末の非暗号となる通信もブロックすることができるようになりました。


サーバー間でSTARTTLSを使う場合の問題点


STARTTLSをサーバー側で実装する場合、送信先のサーバーがSTARTTLSに対応していないと、メールの暗号化は行われません。MDaemonは、送信先サーバーがSTARTTLS対応のサーバーかどうかを通信時に判定し、SATRTTLS対応であればメールを自動で暗号化し、STARTTLSに未対応のサーバーであれば、従来のSMTPでメールを送信します(STARTTLSの要求リストに載せたホストやネットワークは除く)。


多くの場合、取引先にメールサーバーの暗号化対応を強制することはできませんが、この方法であれば、最も安全な方法をサーバーで自動選択し、ユーザーや管理者へ負荷をかけることなく、メールの送受信が行えます。


ブラウザでのSSL通信(https)と同様に、多くのメールクライアントソフトウェアでは、第三者証明機関が発行する証明書を使用しないと(自己発行の証明書を使うと)、接続時に信頼できる証明書であるかを確認する警告メッセージが表示されます。

サーバー間でSTARTTLSを使う場合の問題点