SMTPの仕組みと弱点を図解で解説します。
OP25BやSMTP-AUTH、STARTTLS、さらにSPF・DKIM・DMARCの違いと設定ポイントまで初心者向けにわかりやすく紹介します。
電子メールの基礎
セキュリティの話に入る前に電子メールの基礎を説明します。
電子メールのシステム構成
- クライアント
- MUA・・・ユーザーが使うメールソフト(例:Outlook、Thunderbird、Gmail(Web))
- メールサーバ
- MSA・・・メール送信の受付窓口
- MTA・・・メールを他サーバへ配送する中継役で、送信側と受信側のメールサーバの両方で使用
- MDA・・・メールを最終的にメールボックスへ配達
- MRA・・・メールボックスからメールを取り出す

SMTPとは
SMTP(Simple Mail Transfer Protocol)はメールを送信するプロトコルで、メール送信(MUA → MSA)とメール転送(MTA → MTA)の際に使用されます。
SMTPで使用されるポート番号は25です。
電子メール送信の流れ
- メールソフト(MUA)は設定されている送信側メールサーバへメールを送信
- 送信側メールサーバは宛先(Tフィールド)のドメインを取得して、DNSサーバへ受信側メールアドれるの問合せをする(名前解決するための問合せ)
- DNSサーバはMXレコード、AレコードをもとにIPアドレスを返す
※DNSサーバはMXレコードで配送先メールサーバのホスト名を返し、その後AレコードによりIPアドレスが解決される - 送信側は受信側メールサーバへメールを送信

SMTPが使用されるのは①と④(図の青い矢印)の部分です。
SMTPの弱点
SMTP(Simple Mail Transfer Protocol)は、メールを送信・転送するための基本的なプロトコルですが、もともとセキュリティを考慮して設計されていません。
そのため、現在のメールシステムでは以下のような問題が発生します。
なりすましが可能(送信元詐称)
SMTPでは、メール送信時に指定する送信元アドレス(MAIL FROM)は、技術的に自由に設定することが可能です。
そのため、攻撃者は「なりすましメール」を簡単に送信でき、フィッシングサイトへ誘導するメールを作ることが可能になっています。

平文通信による盗聴リスク
SMTPは通信内容を暗号化しない平文(プレーンテキスト)なので、通信経路上でパケットが盗聴されて情報が漏洩する可能性があります。
メールがインターネット上を中継する際、複数のサーバを経由するためリスクが高まります。

スパムメールの温床になる
SMTPはもともと「誰でもメールを送れる」ことを前提に設計されているため、悪用されやすい仕組みでもあります。

OP25Bとは
通常、メールサーバは迷惑メール対策として、メール送信数を制限しています。
攻撃者は大量にメールを送るために、自身のISP(インターネットサービスプロバイダ)のメールサーバだけではなく、他のISPのメールサーバを使ってメールを送信します。

この対策としてOP25B(Outbound Port 25 Blocking)は、外部からのメール送信を制限します。
OP25Bの仕組み
OP25Bはポート番号:25の外部通信を制限することで、他のISPにあるメールサーバを使った迷惑メール送信を防ぎます。
これによってメール送信の際は必ずISP内のメールサーバを経由する必要があるようになります。

しかし、OP25Bは正規の利用者が会社や学校のメールサーバでの送信もできなくなるデメリットもあります。

これを解決するのが次のサブスクリプションポートを使ったメール送信です。
サブミッションポート
OP25Bとセットで重要なのが、Submissionポート(587番)です。
Submissionポート(587番)は、ID・パスワードを使った認証が必要なプロトコルなので、ポート番号:587番は外部への通信を許可します。
これにより、正規の利用者が外部のメールサーバを使ってメール送信可能となります。

メール送信時の認証と暗号化
SMTP-AUTHとは
SMTPはもともと誰でもメールを送れてしまう(認証なし)でしたが、そこで導入されたのが SMTP-AUTH(SMTP Authentication) です。

STARTTLSとは
STARTTLSは、平文で始まった通信を途中から暗号化(TLS)に切り替える仕組みです。
- 最初は平文で接続(暗号化なし)
- クライアントが「STARTTLS使える?」とサーバに確認
- サーバが「使える」と応答
- TLSハンドシェイク開始(ここから暗号化)
- 以降は安全な通信
なりすまし対策(ドメイン認証技術)
SPFとは(送信元IPアドレスの検証)
受信側のメールサーバがメールを受信したときに、正規のメールサーバからのメールなのかを確認する技術です。
SPFの仕組み
- 受信ドメイン側のメールサーバーは、送信元アドレスのドメイン部分(example.com)をDNSサーバーに問い合わせる
- DNSサーバーは問い合わせられたドメインに対し、許可されたメールサーバーのIPアドレスを返す
- 受信側メールサーバーは、メールを送信してきたメールサーバーのIPアドレスがDNSサーバーから返されたIPアドレスと一致するか確認し、一致すればメールを受信する

SPFレコードの書き方
DNSサーバへメールサーバが正しいかどうかを確認する際、SPFレコードというのを使って検証します。
先ほどの例の場合、SPFレコードは以下のようになります。

DKIMとは(電子署名による改ざん防止)
DKIM はメールに電子署名(ディジタル署名)を付けて、「本当にそのドメインが送ったか」「途中で改ざんされていないか」を確認する仕組みです。
電子署名(ディジタル署名)の基本的な仕組みはこちらを参照してください。
DKIMの流れは次の通りです。
- 送信側のメールサーバは、送信メールの対し、秘密鍵を使ってディジタル署名を生成して付与
- 受信側のメールサーバは、DNSサーバにある公開鍵使ってディジタル署名を検証

DMARCとは(ポリシー制御)
DMARCは、SPFやDKIMの補強をする役割で、認証に失敗した場合の挙動を指定するものです。
下の絵のようにDMARCが SPF/DKIMの結果を使って判定します。
- None(何もしない)・・・受信メールに対し、何もしない。
- Quarantine(隔離)・・・受信メールを迷惑メールフォルダに仕分けやフラグ設定する。
- Reject(拒否)・・・受信しない。

腕試し(理解テスト)
腕試し(理解テスト)に挑戦する場合はこちらをクリック。


コメント