SMTP-AUTHは、メールを送るときに「その人が本当に送ってよい利用者か」を確かめるための認証です。スパム送信やオープンリレーの悪用を防ぐため、だれでも送れる状態を避ける必要があります。SMTP-AUTHを入れると、許可した利用者だけがメールを送れるようになります。
ただし、SMTP-AUTHは送る人やアカウントを確かめるものであり、受信側でなりすましを見分ける SPF、DKIM、DMARC とは受け持ちが違います。この記事では、SMTP-AUTHのやり取り、よく使う認証の型、サーバーとクライアントで見る点、入れるときの注意を見ます。
SMTP-AUTHとは、SMTP(Simple Mail Transfer Protocol)に追加された認証の機能です。SMTPはもともと、メールを転送することを主な目的に作られました。そのため、初期の設計では送信者を厳しく確かめる作りではありませんでした。SMTP-AUTHは、その弱い所を補うために使われます。
SMTP-AUTHは、メールを送るときにクライアントがSMTPサーバーへ認証に使う情報を出し、サーバーが利用者を確かめた後で送信を許可するものです。多くの場合、Outlook や Thunderbird などのメールソフト、または送信アプリが、ユーザー名とパスワードなどで認証します。
ここで大事なのは、SMTP-AUTHが主に「利用者がメールを送る入口」で使われる点です。多くの環境では、利用者の送信は 587 番ポートで受け、サーバー間の転送で使う 25 番ポートとは分けて考えます。環境によっては 465 番ポートを使うこともあります。
SMTP-AUTHが重く見られるのは、メールを送る経路を認証済みの利用者にしぼれるからです。主な意味は次の通りです。
なお、SMTP-AUTHは受信者が「そのドメインを信じてよいか」を決めるものではありません。受信側でのなりすまし対策は SPF、DKIM、DMARC が受け持ちます。ここを混同すると、対策に穴が開きます。
SMTP-AUTHのやり取りは、おおむね次の通りです。
ここで気を付けたいのは、認証に使う情報をどう守るかです。認証の型そのものは暗号化を行わないものもあるため、STARTTLS や暗黙TLSと組み合わせることが実質的に必要です。
SMTP-AUTHでは複数の型が使われます。実際に見ることが多い例は次の通りです。
| 認証の型 | 概要 |
|---|---|
| PLAIN | ユーザー名とパスワードに相当する情報を送ります。型そのものは暗号化しないため、通常はTLSと一緒に使います。 |
| LOGIN | PLAINと同様に、利用者を確かめるための情報を送ります。これもTLSと一緒に使う前提です。 |
| CRAM-MD5 | チャレンジレスポンスを使うため、パスワードをそのまま送りません。ただし MD5 は古く、今の方針では積極的に選ばれないことがあります。 |
ここは単純に「CRAM-MD5なら安全」「PLAINやLOGINは危険」と切ってしまわない方がよい所です。実際には、TLSを強制できているか、パスワードやトークンをどう守るか、漏えい時にどう止めるかといった条件で安全性が変わります。
SMTP-AUTHを使うには、サーバー側とクライアント側の両方で設定が要ります。ここでは、製品ごとの細かな手順ではなく、共通して見る点を挙げます。
サーバー側では、どの入口で認証を必須にするか、どこで利用者を確かめるか、TLSをどう扱うかを決めます。
SMTP-AUTHは、入れた瞬間に終わる対策ではありません。アカウントが盗まれた後に大量に送ることをどう早く止めるかまで考えて、送る通数の上限や警告も一緒に決める方が現実的です。
クライアント側では、主に次の項目を合わせます。
組織によっては、通常のパスワードではなく、アプリ用のパスワードやトークンを使うこともあります。ユーザー向けには、なぜ送信にも認証が要るのか、パスワードを使い回してはいけない理由、失敗したときの連絡先をまとめて知らせると、問い合わせを減らしやすくなります。
SMTP-AUTHまわりのエラーは、原因を順に切り分けると戻しやすくなります。よくある例は次の通りです。
| 現象や表示例 | 主な原因と見る点 |
|---|---|
| 認証に失敗しました | ユーザー名やパスワードの誤り、アカウント停止、認証元の不調などが候補です。まず資格とアカウントの状態を見ます。 |
| サーバーがAUTHをサポートしていません | 接続先が Submission ではなく 25 番になっている、またはサーバー側で AUTH が無効の可能性があります。 |
| 暗号化されていない接続は許可されていません | サーバー側で TLS を必須にしています。クライアント側の TLS 設定を合わせます。 |
同じ設定でも、一部の利用者だけ失敗することがあります。その場合は、パスワード変更の直後か、MFAの追加があったか、アクセス制限の方針が変わっていないかも見ます。
ただし、SMTP-AUTHを入れれば、受信側でのなりすましを防げるわけではありません。SMTP-AUTHは送る側の入口を締める技術です。
「使わない方がよい」と言い切れる場面はあまりありません。外部へメールを送るなら、SMTP-AUTHに相当する送信の制御が要ることが多いためです。入れにくい事情があるなら、クラウドのメールサービス側の認証に寄せる、送信元を限定するなどの代わりの手を考える方が現実的です。
導入の可否は、組織の大きさよりも、メールを送る経路が外へ開いているか、アカウント管理と監視を続けられるかで見る方が実態に合います。
メールの安全性は、複数の技術が分担して支えています。ここを分けて理解すると、抜けを減らせます。
SMTP-AUTHは認証、SSL/TLSは暗号化です。多くの環境では、SMTP-AUTHとTLSをセットで考えます。
POP before SMTP は仕組みが間接的で、NAT環境や複数の利用者で同じ回線を共有する環境では扱いにくいことがあります。今は SMTP-AUTH を基本にする設計が一般的です。
SMTP-AUTHが整っていても、SPF が整っていなければ、なりすましや到達率の問題が残ることがあります。
実際には、SMTP-AUTHで送信の入口を締め、DKIMや必要に応じてDMARCで受信側の判定を助ける形で使い分けます。
SMTP-AUTHは、メール送信時に利用者を認証し、許可した人だけに送信を認めるものです。オープンリレーや勝手な送信を抑えやすくなり、だれが送ったかも追いやすくなります。とくに社外から送信させる環境では、要る度合いが高くなります。
ただし、SMTP-AUTHだけでメールの安全性が十分になるわけではありません。TLS、SPF、DKIM、必要に応じてDMARCまで含めて考える必要があります。入れるときは、Submissionポートの分離、TLSの強制、アカウント流出を想定した通数の上限や監視までセットで決めることが大事です。
メール送信時に利用者を認証し、許可した人だけに送信を認めるものです。
行えません。受信側の判定は SPF、DKIM、DMARC が受け持ち、SMTP-AUTHは送信側の入口を締めます。
多くは 587 番ポートです。環境によっては 465 番ポートを使うこともあります。
ゼロにはなりませんが、オープンリレーや第三者の悪用を抑えやすくなります。
TLSを強制できるなら使えます。暗号化しないまま使うのは避けるべきです。
SMTP-AUTHは認証、STARTTLSは通信の暗号化です。
SMTP-AUTHはSMTP接続の中で認証し、POP before SMTPは POP3 認証の記録を使って、しばらくの間だけ送信を許します。
あります。正規のアカウントが盗まれると悪用されるため、通数の上限や監視が要ります。
接続先ポートの誤りや、サーバー側で AUTH が無効な可能性があります。
十分ではありません。TLS、SPF、DKIM、必要に応じてDMARCも組み合わせて考えます。