メール送信プロトコルであるSMTPは、初期設定ではユーザー認証機能しか備わっていません。また、メール受信プロトコル(POP3やIMAP4)についても、基本的にユーザー名とパスワードでのユーザー認証しか行いません。
しかし、これだけITへの重要度が高まり、かつ、インターネット利用者が増えた現在、世界中の人がメールをやり取りするようになっており、それだけの認証で足りるのでしょうか。
特に迷惑メールは大量に出回っており、インターネット上にメールアドレスを公開しようものなら、絶え間なく迷惑メールが送られてきます。(最近ではだいぶましになった方です。)
そのような背景のもと、正当なメールかどうかを認証するための仕組みがいろいろと考えられています。
迷惑メール対策や暗号化などによるセキュリティ対策を行うことは、メール送信を行う上でのマナーとも言えます。
今回は、そのメール認証とセキュリティの仕組みについて考えていきます。
電子メールのプロトコル
電子メールを送受信するためのプロトコルについて、まずどのようなものがあるか簡単に確認していきましょう。
SMTP(Simple Mail Transfer Protocol)
「Simple Mail Transer Protocol」、名前のとおり、シンプルにメールを転送するプロトコルです。このプロトコルですが、認証をしません。
ん?メーラーの設定をするとき、ユーザー名とパスワードを入力した記憶があります。
それはPOPサーバーの認証です。SMTPにはそれ自体に認証機能が備わっていないんです。
しかしそれでは、関係ない人間が誰でもメールを送れてしまいます。
POP3(Post Office Protocol version 3)
POP3はメールを受信するときに使用するプロトコルです。届いたメールはメールサーバー上のメールボックスに格納され、POP3によって、自身のパソコンにメールボックスから取得します。ポストオフィスが郵便局という意味であることから、メールをやり取りするための用語として馴染みやすいのではないかと思います。
上司からPOP3は使うなと言われました。そのときは言われるままにしましたが、何でなんですか?
POP3の問題点として以下が挙げられます。
- 複数のPCで同じメールアカウントを使いたいといった場合、複数のPCから同じメールを読むことができない。
- POP3のパスワードはネットワーク上に平文で流れるため盗聴されると、アカウントが乗っ取られてしまう。
それでは困ります。メールはPCでもスマホでも確認したいです。それにパスワードが平文で流れるなんて不用心すぎないですか?
そのとおりです。パスワードが平文で流れる点については、その後、「APOP(Authentication Post Office Protocol)」というパスワードを暗号化するプロトコルができました。ただ、主要なメールソフトがAPOPに対応していなかったことや、パスワードは暗号化されるけど、メール本文は暗号化されないという中途半端なものだったので普及はしませんでした。
IMAP4(Internet Message Access Protocol ver4)
IMAP4もメール受信時に使用するプロトコルです。
IMAP4でもメールソフト(メーラー)を利用するのが一般的ですが、POP3との大きな違いは、メールをPCにダウンロードしたり保存したりしないということです。
メールをサーバーからダウンロードするのではなく、サーバー上に保管して管理します。これにより、未読管理やメールの削除、フォルダの振り分け状態など会社や自宅のPCそれぞれで同じに見えます。
POP3と比較した場合の主なメリットを以下に挙げます。
- サーバー上にメールデータが保存されるため、複数の端末で利用する際、未読メールや振り分けフォルダなども自動で同期される
- サーバー上にメールデータがあるため、PCが故障してもメールは消失しない
- PCのハードディスク容量を気にしなくてすむ
- メールデータの移行が簡単にできる
IMAP4を使えばPCでもスマホでもメールを確認できますか?
もちろんできるよ。だから、そういう風に複数の端末でメールを確認したい場合はIMAP4が断然おすすめだよ。
メールに関するセキュリティ対策
SMTPs/POP3s/IMAP4s/
さて、ここまで出てきたSMTP、POP3、IMAP4はすべて平文でネットワーク上を流れます。メール本文はもちろん、POP3、IMAP4については認証用のユーザー名、パスワードもです。
え?メール本文もですか?それは困ります!
そこで、SSL/TLSを組み合わせ、メール本文と添付ファイルに加え、ユーザー名とパスワードを暗号化し、安全性を高める方法が、「〇〇 over SSL/TLS」です。
それぞれ「SMTP over SSL/TLS」「POP3 over SSL/TLS」「IMAP4 over SSL/TLS」と言います。また略称として「SMTPs」「POP3s」「IMAP4s」とも言います。
ポート番号はSMTPは25番、POP3は110番、IMAP4は143番を使用しますが、SMTPs、POP3s、IMAP4sはそれぞれ以下に変わります。
名称 | ポート番号 |
---|---|
SMTP over SSL/TLS | 465 |
POP3 over SSL/TLS | 995 |
IMAP4 over SSL/TLS | 993 |
STARTTLS
STARTTLSは、SMTPやPOP3、IMAP4などで利用できるSSL/TLSと組み合わせての暗号化技術です。
SMTPsとかPOP3sとかもSSL/TLSで暗号化する仕組みだった思うんですが、それらとはまた違うんですか?
どちらもSSL/TLSによる暗号化です。ただ、STARTTLSは、SMTPsやPOP3sと違い、ボート番号を従来のSMTP(25)、POP3(110)のまま利用できます。
まず通常どおり通信を開始し、クライアントとサーバの双方がSTARTTLSに対応していることが確認できたら、SSL/TLSで暗号化し、通信を再開します。
まわりくどいように思えるのですが、それで何か良いことがあるんですか?
例えば既存システムでは、従来のポート番号で使用しており、暗号化通信に変えるためにメールのポート番号を変えようとしたとする。この作業、簡単そうに見えるけど、クライアントからメールサーバーまでの間に配置されるFWなどのセキュリティ装置の設定をもれなく変えてやる必要があり、これが結構難しく、コストもかかって、なかなか踏み出せないものなんだ。
このようにSTARTTLSは導入が比較的容易というメリットがあります。
STARTTLSのデメリットとしては、暗号化接続する前までは、無防備の状態での通信がはじまるので、そこに悪質な妨害や盗聴が入ってきた場合、簡単に情報を盗まれてしまう点です。
また、STARTTLS設定は送信サーバーと受信サーバーの双方が対応して初めて、暗号化されたメールが送信されます。送信側だけがSTARTTLSに対応し暗号化通信できても、受信側が対応していなければ、平文でメールが送信されてしまうため、その点は注意が必要です。
「〇〇 over SSL/TLS」を使えない場合の代替手段となるのがSTARTTLSと言えます。
メールに関する認証技術
メール認証や迷惑メール対策に関する技術はたくさんあります。どのようなものがあるのか見てきましょう。
POP before SMTP
メールを送信する際のユーザー認証のひとつです。
SMTPは認証機能を持ちませんが、POPはユーザー名とパスワードで認証を行う機能が備わっています。
そこで、SMTPの前にPOPを通してクライアントの認証を行い、認証に成功したらその後一定期間だけ、同じIPアドレスからのSMTP通信を許可します。
なるほど、別の機能(POP)によって認証された後、一定時間メールの送信(SMTP)ができるわけですね。でも何か少し無理やり感があります。
そのとおりです。送信を許可したIPアドレスを使って一定時間内に悪意のある第三者がなりすまして迷惑メールを送信することができるリスクも存在するため、今では使用を禁止しているメールサービスも増えていきます。
SMTP-AUTH
SMTPにユーザー認証機能が備わっていないのであれば、拡張してユーザー認証機能を持たせてあげれば良いのでは?
上記考えのもと、生み出されたのが「SMTP-AUTH」です。
SMTPでメールを送信する際、クライアントとメールサーバーとの間でユーザー名とパスワードなどによって認証を行います。
SMTPを拡張した方式であり、クライアントとメールサーバーの双方でSMTP-AUTHに対応している必要があります。
OP25B
迷惑メールの送信に自社のネットワークを使わせないようにするためのプロバイダの対策が「OP25B」です。
プロバイダのメールサーバーを経由せずに直接25番ポートでSMTP通信を行うことを禁止します。これにより、契約しているプロバイダから会社のメールサーバー経由でメールを送りたいといった場合などにはSMTPが使えません。
うーん、それって会社のドメイン名を使ったメールアドレスを持てないということになりませんか?
自社のメールサーバーを立てる場合は、サブミッションポートと呼ばれる587番を使ってメールを送信します。サブミッションポート宛てであれば、自社のメールサーバー(プロバイダのメールサーバー以外)にもメールを送信することができます。
ん?それなら、587番宛てに迷惑メールを送れば良いだけで、一緒なのでは?
サブミッションポートではSMTP-AUTHが必須になります。25番ポートでは認証機能がありませんが、587番ポートでは必ず「認証をする」というのがポイントです。
SPF(Sender Policy Framework)
メールにおける送信ドメイン認証のひとつで、差出人のメールアドレスが他のドメインになりすましていないかを検証する仕組みです。
具体的には、DNSサーバーにSPFレコードを追記します。SPFレコードには、ドメイン名に対応するIPアドレスの範囲を記述しておき、それ以外のIPアドレスからの通信は信頼しないように設定します。
例えば、次のような記述を追加します。
IN TXT “v=spf1 +ip:116.100.122.11 -all”
このようにすることで、「116.100.122.11」のIPアドレス以外からのメールはドメインを詐称しているということがわかります。
DKIM(DomainKeys Identified Mail)
ディジタル署名を用いて送信ドメイン認証を行う方法です。ディジタル署名検証の公開鍵は、あらかじめDNSで公開しておきます。そして、メールサーバーで送信メールにディジタル署名を付加し、相手先のメールサーバーに送ります。相手先のメールサーバーは、そのディジタル署名を検証することで、正しい送信元のメールサーバーからメールが送られてきたことを確認します。
SPFとDKIMは送信ドメイン認証の仕組みで、SPFはIPアドレスで、DKIMはディジタル署名で送信元のメールサーバーの正当性を確認するわけですね!
メールに関するセキュリティ対策まとめ
ここまで、メールのセキュリティ対策についていろいろ見てきましたが、たくさんあって混乱するところもあるかと思います。ただ、それは裏を返せば、それほど、メールを安全に送受信することが重要視されているということです。
最後に、メールに関するセキュリティ対策について以下にまとめます。
対象 | セキュリティリスク | 対策例 |
---|---|---|
メール全体 | メール本文が暗号化されていない | S/SMIME、SMTPsなど |
メール送信 | 認証なしでメールを送信できる | POP before SMTP、SMTP- AUTH |
送信元が詐称される可能性がある | SPF、DKIM | |
大量の迷惑(SPAN)メールが送信される | OP25B | |
メール受信 | 認証パスワードが暗号化されていない | APOP、POP3s、IMAP4s |
下表は迷惑メール対策についてです。
対策箇所 | 内容 | 対策例 |
---|---|---|
送信メールサーバー | ユーザー認証することで不正なメールを送信させない | SMTP-AUTH、POP before SMTPなど |
プロバイダ | プロバイダ側で、不正なメール送信を拒否する | OP25Bなど |
迷惑メール受信拒否システム | メールのヘッダや本文を解析して迷惑メールをブロックする | ブラックリストなど |
受信メールサーバー | 送信者認証により、迷惑メールを受け取らない | SPF、DKIMなど |
メール送信側、プロバイダ、メール受信側、それぞれで対策をすることで迷惑メールを減らしています。ただそれでも迷惑メールはなくならないのが現状です。