電子メールや電子メールの添付ファイルを暗号化する技術は、10年以上前からある古い技術であるにも関わらず、広く普及しておらず、少し前に改めて注目され始めてきたようにも感じます。
電子メールの暗号化について、その歴史や手法についてを今回はまとめて解説してみます。
どうして暗号化が必要なのか?
暗号化が必要な理由 と言えば、ズバリ!暗号化されていないからです。(^^;;
暗号化されていないため、受信時のパスワードや本文が、ネットワークを盗聴してしまうと盗み見されてしまうリスクがありました。
会社宛のメールを自宅から送受信することを、社内のポリシーとして禁止している例は少なくなく、この理由の一つとして、これらのプロトコルや送受信時に入力するパスワードが暗号化されていないという点も挙げられます。
こうしたメールの通信を、HTTPで一般的に利用されるSSLを使って、同じくサーバ証明書を用いた暗号化した通信には、”SMTP/IMAP/POP3 over SSL”と”STARTTLS”という2通りの方法があります。
クライアント/サーバー間で”SMTP/IMAP/POP3 over SSL”を使う場合の注意点
“SMTP/IMAP/POP3 over SSL”を使って、クライアントからのメール送受信を行う場合、クライアントで使っているメーラーが”SMTP/IMAP/POP3 over SSL”に対応している必要があります。
また、対応しているメーラーであっても、そのままで”SMTP/IMAP/POP3 over SSL”を使うことができるわけではなく、メーラー側で設定変更が必要になります。
SMTP over SSL対応メールソフト・スマートフォン例
Windows用メールソフト | Macintosh用メールソフト | スマートフォン |
Windows メール | Mail v1.2.3 | iPad |
Windows Live メール | Entourage | iPhone/iPod touch |
Outlook Express 6 | Outlook Express 5.02 | Xperia |
Outlook 2000以降 | Outlook for Mac | BlackBerry |
Thunderbird | Thunderbird | HTC Desire |
Becky! Internet Mail | ||
Shuriken Pro |
ブラウザでのSSL通信(https)と同様に、多くのメールクライアントソフトウェアでは、第三者証明機関が発行する証明書を使用しないと(自己発行の証明書を使うと)、接続時に信頼できる証明書であるかを確認する警告メッセージが表示されます。
スマートフォン標準のメーラーの場合、第三者証明機関が発行した証明書以外のものではSSL通信を使用できませんのでご注意ください。
OP25B (Outbound Port 25 Blocking)とSMTP認証
OP25Bというと、単純にSMTPポートを閉じるだけの意味にとられがちですが、これとセットで登場するのが、SMTP認証です。
SMTP認証とは、POPと同様、SMTP自体に認証機能をつけるというものです。
ただ、送信時に使われる25番ポートにはユーザー認証の機能がありません。
そこで、ユーザーがメール送信する際に使われるポートが587番ポートであり、これを利用するために(どちらも有効では意味がありませんから)25番ポートを閉じることになります。
これをOP25B (Outbound Port 25 Blocking)と呼びます。
OP25Bは単に25番ポートを閉じることを意味し、サブミッションポートと呼ばれる587番ポートを利用するとは、SMTP認証を利用するということを意味しています。
MDaemonの第三者中継対策のページに、SMTP認証について説明しています。あわせてご確認ください。
STARTTLSによるメール暗号化
STARTTLSは、送信者側のメールサーバーと、受信者側のメールサーバーとの通信で主に使用されます。
SMTP/IMAP/POP3 over SSLの場合、社外からのSMTP通信を暗号化するには、それぞれ専用のポートであるSMTPS(465/tcp)、IMAPS(993/tcp)、POP3S(995/tcp)をファイアウォールで解放しなければなりません。
同様に社外のメールサーバとの暗号化通信においても、SMTP/IMAP/POP3 over SSLの場合、ファイアウォール設定上のハードルが高いことが挙げられます。
STARTTLSでは、最初の接続は従来のSMTP(25/tcp)、IMAP(143/tcp)、POP(110/tcp)を使って行い、接続先のメールサーバがSTARTTLSに対応していれば、同じ接続の中で暗号化通信を行える仕組みとなっております。
そのため、SMTP、IMAP、POPを使った送受信メールの暗号化をシステム環境的に容易に行えます。
サーバー間でTLSを使う場合の問題点
ブラウザでのSSL通信(https)と同様に、多くのメールクライアントソフトウェアでは、第三者証明機関が発行する証明書を使用しないと(自己発行の証明書を使うと)、接続時に信頼できる証明書であるかを確認する警告メッセージが表示されます。
STARTTLSをサーバー側で実装する場合、送信先のサーバーがSTARTTLSに対応していないと、メールの暗号化は行われません。
多くの場合、取引先にメールサーバーの暗号化対応を強制することはできず、結果としてメールの送受信が行えなくなる場合もあります。
例えばMDaemonメールサーバーでは、送信先サーバーがSTARTTLS対応のサーバーかどうかを通信時に判定し、SATRTTLS対応であればメールを自動で暗号化し、STARTTLSに未対応のサーバーであれば、従来のSMTPでメールを送信するという機能がデフォルトで有効になっています。
取引先にメールサーバーの暗号化対応を強制することはできませんが、この方法であれば、最も安全な方法をサーバーで自動選択し、ユーザーや管理者へ負荷をかけることなく、メールが送受信できなくなるといった事態も避ける事ができます。
MDaemonのSTARTTLSによるメール通信の暗号化のページもあわせてご確認ください。