メールを使っていると、迷惑メールを受信することが多々ある。なかなかなくならないが、プロバイダー側も迷惑メールの撲滅には力を入れている。ここではプロバイダーが導入している迷惑メール対策技術について解説しよう。

 メールの仕組みで解説したように、SMTPではユーザーを認証する仕組みがない。このため送信者を詐称して迷惑メールなどを送ることが可能になってしまうのだ。これを防ぐために使われている技術が「POP before SMTP」だ。読んで字のごとく、SMTP(メール送信)の前に、必ずPOP3(メール受信)を使うというもの。POP3には認証する仕組みがあるので、認証を受けないと(すなわち正しいユーザーでないと)、SMTPを使った送信を利用できなくするのだ。

 POP before SMTPは、メール送信前に、必ずPOP3でメール受信サーバーにアクセスする必要があるため、メール送信のみをしようとするとエラーが発生することになる。メールソフトによっては、必ず受信と送信を同時に行うことで、ユーザーが意識する必要がないこともある。そうでない場合はメール送信前には必ずメールを受信する作業が必要になる。

【メール送信前にPOP3で認証する】
拡大表示

 プロバイダーのメール送信サーバーが使えないのなら、自分たちでメール送信サーバーを立てればよい、と考える迷惑メール業者もいる。こうされると、POP before SMTPでは迷惑メールを防げない。勝手に立ち上げたメール送信サーバーからのメール送信を防ぐ仕組みとして使われているのが、「ポート25番ブロック」だ。@niftyなどで採用されて話題になった仕組みである。

メールサーバーを制限

 ポート25番とは、メールの仕組みで説明したように、メール送信プロトコルであるSMTPが使うポート番号だ。プロバイダーのメール送信サーバーであろうが、迷惑メール業者のメール送信サーバーであろうが、受信者のメール受信サーバーにアクセスするときには、必ずそのメール受信サーバーのポート25番に対してアクセスすることになる。プロバイダーは自社のネットワークを監視しており、自分たちのメール送信サーバー以外のメール送信サーバーやパソコンが、ポート25番を指定したアクセスをしようとしたときに、そのアクセスをしゃ断する。これがポート25番ブロックだ。これにより、勝手にメール送信サーバーを立てても、そこからメールを送信できなくなるというわけだ。

【「ポート25番通信」をシャットアウト】
拡大表示

送信メールの確認もする

 ここまでは、プロバイダーの内部から迷惑メールが送られるのを防ぐための技術だ。逆に送られてきたメールが正しいものか判断するための技術も使われてきている。

 この送信メールを認証するための技術として、現在主に使われているのは「Sender ID」と「DomainKeys」だ。順に説明しよう。

【送信者認証技術は大きく分けて2つある】
拡大表示

 Sender IDは、送信元のメール送信サーバーのIPアドレスをDNSに登録しておき、それを認証の際に利用する技術。

 Sender IDを使うメール受信サーバーは、メールを受け取ると、そのメールの送信元の名前をDNSに確認する。DNSに登録されているIPアドレスと、実際に送信してきたメールサーバーのIPアドレスが一致するかどうかをチェックするのだ。一致しない場合は、名前を詐称したメールサーバーからのメールと判断して、そのメールを破棄する。

 もう少し具体的に説明すると、メール受信サーバーが、IPアドレスが「A」というサーバーからメール受け取る。そのメールの送信者のアドレスが「abc@nikkeibp.co.jp」だったとしよう。このメール受信サーバーは、DNSに対してnikkeibp.co.jpというメール送信サーバーのIPアドレスを確認する。DNSが教えてくれたIPアドレスが「A」だったら、正しい送信元からきたメールと判断するが、「B」だったら詐称メールと判断してそのメールを破棄するのだ。

 DomainKeysは、電子署名を使って認証する。メール送信サーバーは、秘密鍵と公開鍵を作って、DNSに公開鍵を登録しておく。秘密鍵と公開鍵には、「秘密鍵で暗号化したものは公開鍵でないと復号できない」「公開鍵で暗号化したものは秘密鍵でないと復号できない」という特徴がある。

 メールを送信するときには、メール送信サーバーは、メールと一緒に電子署名を付加しておく。この電子署名とはメールのヘッダーや本文から計算された数値(ハッシュ値と呼ばれる)を、秘密鍵で暗号化したもの。メールやヘッダーが少しでも改ざんされると、ハッシュ値も大きく変わってしまうという特徴がある。受信メールサーバーはDNSから、メール送信サーバーの公開鍵を取得し、電子署名を復号する。復号したハッシュ値と、受け取ったメールのヘッダーや本文から計算されるハッシュ値が一致すれば、メールの詐称などがないと判断できるというわけだ。DomainKeysは送信サーバーが1通ごとに電子署名を添付するため、サーバーへの負荷が大きくなるというデメリットがある。