LinuxServer 電子メールについてもう一度… 送信ドメイン認証
送信ドメイン認証
前回、メールを送信するユーザを認証する事で、メールサーバを不正に
利用させない為の技術について、説明しました。
メールサーバはメールサーバ同士でも通信を行いますが中には悪意を持った
怪しいサーバもいます。
また、メールではFrom:アドレスが簡単に詐称出来る事により、
迷惑メールのほとんどが本来のメールアドレスから送られてきません。
全く無関係なアドレスや存在しないアドレスからのメールを排除して、
送信メールのアドレスとドメインと送信メールサーバが
正しい事を証明する技術が送信ドメイン認証事です。
送信ドメイン認証の技術は大きく二つあります。
一つは、送信メールサーバのIPアドレスを確認し、正当なサーバから
送られているかをチェックするもので、SPFとSenderIDと二つの物が有ります。
もう一つは、送信メールの内に電子署名を挿入し、署名の正当性を
チェックするものです。こちらはDomainKeysとDKIMという二つの技術が有ります。
SPFとSenderID
送信ドメイン認証(SPF/SenderID)とは、メールが、正しいメールサーバから
送信されたかを認証する技術です。
送信者は予め、送信メールサーバのIPアドレスをDNSで公開しておきます。
これをSPFレコードと呼びます。
メールを受信したサーバは送信元アドレスのドメインからDNSを使用して、
SPFレコードを参照し、送信元IPアドレスを照合します。
SPFではSMTP通信におけるMAIL FROMのアドレスからドメインを認識します。
一方、SenderIDでは、ヘッダーに記載された情報からこの送信に最終的に
責任があると読み取れるアドレス(*)からドメインを認識し、
そのドメインのDNSからSPFレコードを参照し、正当性を確認します。
*PRA「最終的に責任があると読み取れるアドレス」(Purported Responsible Address)と言います。
DomainKeysからDKIMへ
DomainKeysはヤフーが提案した送信ドメイン認証技術で、メールの本文と
ヘッダの一部を含めて電子署名を作成します。この電子署名を送信メールの
ヘッダに付与して送信します。
送信者側では予め、DNSにて送信ドメインの公開鍵を設定します。
受信側でメールを受け取ると、送信ドメインのDNSに公開鍵を問い合わせ、
受信メールについた署名の正当性をチェックします。
その後、ヤフー、シスコシステムズ、Sendmail、PGPが共同でDKIMという
送信ドメイン認証の技術を提案しました。
DomainKeysとDKIMの違いはDomainKeysはドメイン単位での認証に対し、
DKIMは送信者アドレス単位で認証を行うことも可能です。
また、DominaKeysでは認証に失敗したり、電子署名がない場合、何もせずに
受け取ってしまいますが、DKIMではSSP(Sender Signing Practice)という、
メールに、電子署名が付与されていない、または付与された電子署名に問題が
有った場合にどのように扱うか、手順を明確に定義した情報を設定します。
DKIMとDomainKeysの間に互換性は有りませんが、DomainKeysからDKIMへの移行は
スムーズにできるように考えられてます。
OP25B(Outbound Port 25 Blocking)とサブミッションポート
メールサーバの不正利用を防ぐ技術として、正当なユーザが利用している事を
認証する技術として、POP before SMTPやSMTP-AUTHが有りました。
また、送信ドメイン認証では、正当なドメインのメールサーバからの
送信である事を認証する受信するサーバで実行する技術でした。
最後に送信メールサーバの不正利用を防ぐため、Outbound Port 25 Blockingと
サブミッションポートについて紹介します。
ISPのメールサーバを利用しないで送信される、迷惑メールやウイルスメールの送信を
抑制するための手法です。
ISPで許可した特定サーバ以外へのSMTP(TCPポートの25番)送信をブロックします。
具体的には自宅でISPのA社を使用している場合、A社が指定したメールサーバへは
SMTP通信(TCPポートの25番)が行えますが、それ以外のSMTP通信(TCPポートの25番)は
出来なくなります。
これでは自宅でA社のメールサーバを利用している場合は問題ありませんが、
外出先でA社のメールサーバを利用して、メールを送信しようとしても、
外出先で利用するISPがB社の場合でB社もOP25Bを行っていると、
A社のメールサーバへのSMTP通信(TCPポートの25番)が行えなくなります。
各ISPはこの問題を解決するする為、サブミッションポートを使用するようになりました。
サブミッションポートとはB社のネットワークからA社のメールサーバにSMTP通信を
行う場合はTCPポートの25番ではなくクライアントからの送信専用のポートを
使用する事です。
サブミッションポートには、通常、TCPポートの587番を使用します。