図 送信ドメイン認証の仕組み
図 送信ドメイン認証の仕組み
[画像のクリックで拡大表示]

 送信ドメイン認証とは、メールのやり取りにおいて、受信する側が届いたメールの正当性を確認することである。送信元を偽ったメール、つまりなりすましを防ぐために使う。

 未承諾の広告メールやフィッシングメールなどのスパムメールは、なりすましであることが多い。受信側のメールサーバーの担当者が送信ドメイン認証を使えば、正規のメールに混じって届くスパムメールを見つけやすくなる。担当者は、スパムメールの可能性が高いメールを「迷惑メールフォルダーに入れる」「削除する」といったセキュリティポリシーを決めて運用できるようになる。

 では、送信ドメイン認証の仕組みを見てみよう(図)。メールが届くと、受信側のメールサーバーは、送信側のDNSサーバーから送信元の検証に必要な情報を入手する。そして入手した情報を使い、届いたメールの正当性を判断する。

 送信ドメイン認証を行うには、送信側と受信側のそれぞれが、同じ送信ドメイン認証の技術に対応する必要がある。送信ドメイン認証を実現する技術には、「SPF」(Sender Policy Framework)や「SenderID」、「DKIM」(DomainKeys Identified Mail)などがある。このうち、SPFとSenderIDは認証にIPアドレスを使い、DKIMは認証に電子署名を使う。

 SPFとSenderIDでは、受信側のメールサーバーが、送信側のDNSサーバーから、差出人のメールアドレスにあるドメイン名でメールを送信することを許可したメールサーバーのIPアドレスを入手する。この情報をSPFレコードという。受信側のメールサーバーは、メールを転送してきた送信側のメールサーバーのIPアドレスとSPFレコードを照合して、一致していればなりすましではない、一致していなければなりすましの可能性が高い、と判断する。SPFとSenderIDの違いは、SPFが差出人のメールアドレスとして「From:」で指定されたものを参照するのに対して、SenderIDはヘッダーに記述されたメールアドレスを参照するところにある。

 一方、DKIMでは、送信側のメールサーバーが、メールの本文や件名などから生成したハッシュ値を暗号化し、電子署名としてヘッダーに埋め込んで転送する。受信側のメールサーバーは、送信側のDNSサーバーからこれを復号するための公開鍵を入手して検証を実施する。参照するDNSサーバーは、ヘッダーに記述されている。

 DKIMはこのような仕組みなので、受信側のメールサーバーにメールを転送したメールサーバーと、電子署名を行ったメールサーバーが同じでなくても認証が可能だ。例えばメール本文や件名などを変更せずにそのまま送り出す「自動転送」で届いたメールでも、対応できる。一方のSPFとSenderIDでは、自動転送メールだとIPアドレスが変わるため、認証できない。

 なお送信ドメイン認証を「送信者認証」と呼ぶことがある。しかし一般的に送信者認証は、「SMTP-AUTH」といった、送信側のメールサーバーでメールを送信しようとするユーザーを認証するときに用いる技術だけを指すケースが多い。