POP3にはユーザーを認証するしくみがあるが,SMTPにはそのしくみがない──。このことを悪用して大量のメールを送りつける「迷惑メール」の被害が広がっている。認証のしくみがないと,誰でもメール・サーバーを利用してメールを送信できてしまうのだ。

 これを防ぐには,送信するときにも認証するようにすればよい。Lesson4では,現在普及が進んでいる送信時の認証機能を見ていく。ここで紹介する認証技術がどのような工夫を凝らしているのかを知っておこう。

ユーザー名とパスワードをチェック

 まずはPOP3と同様にユーザー名とパスワードでユーザーを認証する方法だ。この方法には「POP before SMTP」と「SMTP AUTH」がある(図4-1)。

図4-1●メール送信時にユーザーを認証する方法
図4-1●メール送信時にユーザーを認証する方法
メールを送信する前に受信に使うプロトコル(POP3)で認証する方法をPOP before SMTP,SMTPに認証のしくみを取り入れたプロトコルを使う方法をSMTP AUTHという。  [画像のクリックで拡大表示]

 「POP before SMTP」は,メールを送信する前に,受信で使うPOP3でユーザーを認証するというもの。POP3の認証を通ると,メール・サーバーはそのマシンのIPアドレスを一定時間保存する。その時間内に同じIPアドレスを持つマシンからSMTPの接続要求があったときだけ,メール・サーバーは接続を許可する。

 「SMTP AUTH」はSMTPに認証のしくみを入れたものだ。POP before SMTPはメール・サーバーに追加設定をするだけだが,SMTP AUTHはメール・サーバーとメーラーの両方が対応していなければならない。

 「これらの認証方法は2~3年前に導入が盛んだった方法で,最近では結構普及している。プロバイダは当初,POP before SMTPを採用したが,IPアドレスを保存している時間内に別ユーザーが偽ってメールを送れる可能性があるため,最近は使わないようにする方針になりつつある。企業では,SMTP AUTHを使うところが多い」(センドメールの末政 延浩シニアコンサルタント)という状況である。

ドメインが正しいかをチェックする

 ただ,SMTPはメール・サーバー間での転送にも使われる。こうした場面でいきなり認証のしくみを入れると,メールが届かなくなるという現象が起こってしまう。また,送信元アドレスを詐称されてしまったら見分けられないという弱点もある。

 メール・サーバーに実装されている対策技術はたくさんあるが,中でも最近注目を浴びているのが「送信ドメイン認証」だ。送信ドメイン認証とは,送信元のドメイン名が正しいかどうかをチェックする方法のこと。技術的には大きく分けて2種類ある。ドメインをIPアドレスを基にチェックする方法と電子署名を基にチェックする方法だ

 このうち,国内のプロバイダで採用されつつあるのはIPアドレスを使う方法で,「SPF」(sender policy framework)というしくみである(図4-2)。SPFを利用するには,メール・サーバーを運用している企業などが,ドメイン名とメール・サーバーのIPアドレスを対応付けた「SPFレコード」という情報をDNSサーバー上に公開しておく必要がある

図4-2●SPFで送信ドメインのIPアドレスをチェックする
図4-2●SPFで送信ドメインのIPアドレスをチェックする
SPF(sender policy framework)はメールの送信元アドレスが詐称されていないかどうかを,IPアドレスを基にして確かめるしくみ。メールの送信者はDNSサーバーにドメイン名とIPアドレスを対応付けたSPFレコードを登録しておく必要がある。  [画像のクリックで拡大表示]

 SPFに対応しているメール・サーバーは,送信元アドレスのドメイン名の正当性を調べるために,送信元のDNSサーバーにアクセスしてSPFレコードを参照する。SPFレコードに書かれているメール・サーバーのIPアドレスと,送られてきたメールの送信元IPアドレスが一致すれば,正しいアドレスから送られたメールだと判断する。こうして,送信元のドメインをチェックしたメールがあて先のユーザーに届く。

 近頃は悪意のあるユーザーにマシンを乗っ取られて操作されるボットが横行するなど,いつ自分が意図せずに迷惑メールの送信側にまわるかわからない。このためにも送信時の認証技術についてはきちんと確認しておこう。