メールのARCとは?SPF/DKIM/DMARCの認証失敗を防ぐ最新技術を解説
フィッシングやスパムメールの増加に伴い、SPF(Sender Policy Framework)、DKIM(DomainKeys Identified Mail)、DMARC(Domain-based Message Authentication, Reporting, and Conformance)といったメール認証プロトコルが広く採用されるようになりました。
これらの技術はメールの信頼性を高めるために非常に重要です。しかし、いくつかの課題も存在します。
例えば、メールが転送される場合、SPF認証が失敗することがあります。これは、転送されたメールの送信元IPアドレスがオリジナルの送信元とは異なるためです。DKIMやDMARCにおいても同様の問題があり、このような問題はメールがスパムとして分類されるリスクがあります。
このような背景から、ARC(Authenticated Received Chain)という新しいメール認証技術が登場しました。ARCは、メールが転送される際に認証情報を保持し、転送後も一貫して認証を行うことができるように設計されています。
これにより、SPF、DKIM、およびDMARCの認証失敗のリスクを低減し、メールの到達率を向上させることが期待されています。また、ARCはメールの信頼性を高め、フィッシング攻撃やスパムメールのリスクを減少させることで、全体的なセキュリティの強化にも寄与します。
本記事では、そんなARCについて詳しく解説していますので最後までご覧ください。
ARCとは
ARC(Authenticated Received Chain)は、メールの信頼性と認証を維持するためのプロトコルのひとつです。ARCを利用すると、メールが転送される過程において、各経路での送信ドメイン認証結果を保持することができます。
ARCは2019年7月にRFC8617の「Experimental」で公表され、文書化されました。比較的新しい規格で、SPFやDKIMが途中のサーバーで無効化されても、受信サーバーでメールの検証ができます。
ARCは主に転送をおこなうサーバーやメーリングリストを扱うサーバーが対応しておくべき技術です。
なぜARCが必要なのか
SPF・DKIM・DMARCによるメールドメイン認証は、なりすましメール対策に効果的です。しかし、これらのプロトコルは、主に送信者から受信者への直接メール送信を想定して設計されています。そのためメールの「転送」を行った場合に、これらの認証に失敗してしまう場合があります。
ARCは、このようなメールの転送やメーリングリストの利用など複数のサーバーを経由する場合に起こる、従来の認証システムでは検知できない問題を解決するために開発されました。ARCを導入することで、メール転送時の認証失敗リスクを軽減し、正当なメールの到着率を向上させることができます。
転送時にSPFの認証に失敗する要因
SPF(Sender Policy Framework)は、送信者のドメインが指定したIPアドレスからメールが送信されたかを確認するプロトコルです。受信したメールの送信元IPアドレスがSPFレコードに記載されていれば、偽装されたものではないと判断され、メールは問題なく受信されます。
しかし、メールが転送されると、転送サーバーのIPアドレスが送信元として認識され、SPF認証が失敗することがあります。これに対処するためにSRS(Sender Rewriting Scheme)が提供されていますが、SRSの実装には既存のMTAの大幅な機能変更が必要であり、普及が進んでいないのが現状です。
転送時にDKIMの認証に失敗する要因
DKIM(DomainKeys Identified Mail)は、メールに電子署名を付与し、その署名を受信側で検証することで、送信者の正当性とメールの内容が改ざんされていないことを確認するプロトコルです。
しかしメール転送の場合、ヘッダー情報の変更や本文などの変更によりDKIMの電子署名が無効になってしまう場合があります。これにより、受信側で署名の検証が失敗し、認証が失敗するリスクがあります。
転送時にDMARCの認証に失敗する要因
DMARC(Domain-based Message Authentication-Reporting and Conformance)は、メールにおける送信ドメイン認証で、既存の標準技術であるSPFおよびDKIMの結果を統合して、メールの認証を行うプロトコルです。ドメインの所有者はDMARCをあらかじめ設定することで、送信されたメールの認証ができるようになります。
DMARCは認証の際に、Return-Path(メール配信エラー時の連絡先)の情報や、DKIM認証の電子署名の内容などを参照します。しかし、転送が行われたメールではこれらの情報が転送元の情報と一致しなくなるケースがあり、認証に失敗する場合があるのです。
ARCのメリット
ARCの導入には、以下の3つの主要なメリットがあります。それぞれ詳しく解説します。
SPF・DKIM・DMARC認証失敗のリスクを抑える
ARCは、上述したように正当なメールが転送される際に発生するSPF、DKIM、およびDMARCの認証失敗を防ぐ効果があります。
通常、メールが転送されると、送信元のIPアドレスやメールヘッダが変更されることが多く、これが認証失敗の原因となります。ARCは、メールの転送経路全体で各サーバーが行った認証結果を保持することで、この問題を解決します。
具体的には、ARCは各転送サーバーでの認証情報を新たなARCヘッダに記録し、最終的な受信者がメールの完全な認証チェーンを確認できるようにします。これにより、転送メールの認証が失敗するリスクが大幅に減少し、正当なメールがスパムとして扱われることを防ぎます。
メール到達率の向上
ARCは転送時の認証失敗リスクを低減するため、メールの到着率の改善が見込まれます。
なお、2024年2月1日から開始された「Googleの新しい送信者ガイドライン」の要件には、ARCの使用が含まれています。同ガイドラインにてメールを定期転送する環境では、ARCヘッダの追加が推奨されています。
今後は、Google以外のプロバイダもこの基準に基づくことが想定されるため、対象とみなされる場合はGoogle のガイドラインに対応するべきでしょう。
参考:Google Workspace管理者ヘルプ「メール送信者のガイドライン」
セキュリティの強化
ARCは、メールが複数のサーバーを経由する際に、メール認証情報を保護し、追加の保護層として機能します。例えば、ARCは転送中にメールが悪意ある者によって改ざんされた場合、それを検出することができます。
ARCを利用することで、メールの受信者は転送経路全体の認証情報を検証でき、メールの信頼性を確認することができます。これにより、フィッシング攻撃やスパムメールのリスクが大幅に低減され、全体的なメールセキュリティが強化されます。ARCは、SPF、DKIM、DMARCと併用することで、広範囲にわたるメールセキュリティの確保が可能となります。
ARCの仕組み
基本となる転送メール認証にARCを組み込むと、メール転送と認証のプロセスが変化します。
ここからは、転送メールの基本的な仕組みと、ARCを組み込んだ場合の転送メールの認証の仕組みについて、それぞれ解説します。
転送メール認証の基本の仕組み
転送メール認証とは、メールアドレスを利用した認証方法で、認証画面にメールアドレスを入力すると、そのメールアドレスに一時URLが送られてきます。記載されたURLに接続すると、認証が完了します。
転送メールアドレス認証は、以下の4ステップで行われています。
- メールを送信する
送信元のメールサーバーは、DNSに保存されているSPFレコードとメールヘッダに含まれるDKIM署名を使ってメールの認証を行います。SPFレコードは、そのドメインからメールを送信することが許可されているかを確認します。DKIM署名は、メールの内容が改ざんされていないことを証明します。 - メールの転送
メールが転送されると、転送元のメールサーバーは通常、メールのReturn-Pathを変更します。また、必要に応じてメールの内容やヘッダを変更することがあります。これにより、元の送信元とは異なる情報がメールに追加されることがあります。 - メールの受信
転送されたメールが受信側のメールサーバーに届くと、そのサーバーはメールのSPFとDKIMの認証を行います。このとき、受信側のサーバーはメールのReturn-PathとDKIM署名に基づいて、関連するDNSレコードを確認します。しかし、転送の過程で変更された情報により、SPFまたはDKIMの認証が失敗することがあります。 - DMARCの確認
DMARCポリシーの確認では、メールの「From」ドメインに対するDMARCレコードをDNSから取得します。そして、SPFとDKIMの結果に基づいて、そのメールがDMARCポリシーに適合しているかを評価します。転送中にSPFまたはDKIMが失敗すると、DMARCポリシーに適合しないと判断されることがあります。
ARCを組み込んだ転送メール認証の仕組み
次に、ARCを組み込むことで、転送メールの認証プロセスがどのように変わるかを以下で説明します。
- 送信と認証
送信元のメールサーバーは、SPFレコードとDKIM署名を使ってメールの認証を行います。まず、DNS問い合わせを通じて送信ドメインのSPFレコードを確認します。ARCはここではまだ介入しません。 - 転送とARC適用
転送元のメールサーバーは、メールを転送する際にARCヘッダを追加します。このARCヘッダには、メールの認証情報が含まれており、各転送サーバーが認証結果を追加することができます。ARCヘッダは、メールの転送経路全体で認証情報を保持するための重要な役割を果たします。 - 受信とARC評価
受信側のメールサーバーは、通常のSPFとDKIMの認証に加えて、ARCヘッダの検証を行います。ARCヘッダに含まれる認証情報を基に、メールが各転送サーバーを通過する際に行われた認証結果を確認します。これにより、転送中にSPFやDKIMの認証が失敗しても、ARCの認証結果を基にメールの信頼性を評価することができます。 - DMARC確認
DMARCレコードからDMARCポリシーを取得し、SPF・DKIM結果に基づいて評価します。ARCが適用されている場合、DMARCはARCによって保存された認証情報も考慮に入れます。
ARCヘッダとは
続いて、ARCで使われる技術について詳しく見ていきましょう。
ここでは、従来使われていた手法である「Receivedヘッダ」の問題点と、「ARCヘッダ」について解説します。
Receivedヘッダの問題点
ARCヘッダについて解説する前に、ARCとは別のメール配信経路の追跡手段であるReceivedヘッダについて紹介します。
Receivedヘッダにはメールが転送されるたびに、IPアドレスやホスト名などのメールが通過した各サーバー情報が追加されます。
従来、Receivedヘッダは、デバッグやスパム検出、メールの経路追跡の手掛かりとして使用されていましたが、Receivedヘッダの情報が正しいかどうか検証するシステムがないため、信頼性が低いという問題点がありました。
ARCが使用する3つのヘッダ
前述のReceivedヘッダに対して、ARCではメールを配信した経路の記録を保証するため、3つの新しいメールヘッダをサーバーを経由する際に追加します。ARCヘッダは3つあり、どれもAuthentication-Resultsヘッダを保存する役割があります。
ARCヘッダの名称は以下のとおりです。
- AAR(ARC-Authentication-Results)
- AS(ARC-Seal)
- AMS(ARC-Message-Signature)
AAR(ARC-Authentication-Results)
各中継サーバーがメールを受信した際のSPF・DKIM・DMARCなどの認証結果の記録に使用されます。ARCのシステムでは、AARが最初の認証結果を保存します。
これにより、メールが複数のサーバーを通過する際に、各サーバーで行われた認証結果を追跡することができます。これにより、以下のことが可能になります。
- 認証結果の記録
AARは、各中継サーバーで行われたSPF、DKIM、DMARCなどの認証結果を記録します。これにより、メールが通過するすべてのサーバーでの認証結果を追跡できます。 - 信頼性の評価
最終受信者は、メールが複数のサーバーを通過する際に、各サーバーで行われた認証結果を確認することができます。これにより、メールの信頼性を評価しやすくなります。
AS(ARC-Seal)
ASとは、メールに対するARCヘッダの信頼性を保証するための電子署名です。メールがそれぞれの中継ポイントを通過する際に、認証状態が「封印」となり、認証情報の安全性と信頼性を保証します。すべてのARC関連ヘッダに署名し、改ざんを防止します。これにより、メールが転送される過程で認証情報が改ざんされていないことを確認できます。
AS(ARC-Seal)の具体的な役割は以下の通りです。
- 電子署名
ASヘッダは、メールとその関連ARCヘッダに電子署名を追加します。これにより、認証情報が転送中に改ざんされていないことを保証します。 - 信頼性の保証
各中継サーバーは、前のサーバーでの認証結果を含むARCヘッダに対して署名を行い、その信頼性を保証します。 - 改ざん防止
署名されたARCヘッダは改ざんされていないことが確認できるため、メールの転送経路全体で認証情報の一貫性が保たれます。
AMS(ARC-Message-Signature)
AMSとは、SPFやDKIMの結果など、メールの認証情報と共に、メールの具体的な内容が変更されていないことを保証するための電子署名です。なお、送信者と受信者の間にいる、転送などに関わる中間者が本文やヘッダを改変することが前提であり、直近の署名のみ検証できます。
メールが中継されるステップにおいて、メッセージの信頼性を保証する役割があります。具体的には、AMSは以下のように機能します。
- 認証情報の署名
AMSは、SPFやDKIMの結果など、メールの認証情報に対して電子署名を行います。これにより、認証情報が改ざんされていないことを確認できます。 - メッセージ内容の保証
AMSは、メールの本文やヘッダが改ざんされていないことを保証します。メールが中継される際に、AMSがその都度追加され、メッセージの信頼性が維持されます。 - 検証可能性
AMSは、送信者と受信者の間にいる中継サーバーがメールの本文やヘッダを改変することを前提としており、各中継ポイントで署名を検証できます。最も直近のAMS署名を検証することで、そのメッセージの信頼性を確認します。
ARCチェーンの検証
ARCの検証結果は、ASヘッダのcv(Chain Validation)のフィールドに表示されます。cvのフィールドはARCチェーンの検証状態を示し、以下の値で表示されます。
- none:前のARCセットがない、または検証がまだ行われていない
- fail:検証失敗
- pass:検証成功
なおARCチェーンの認証結果における、cvの値は以下のとおり対応しています。
- i=1であればnone
- i=2以降であれば、failもしくはpass
もし検証結果が「fail」となった場合は、その時点でARCチェーンの検証は失敗し、ARCは終了します。
まとめ
SPFやDKIM、DMARCの使用でサイバー攻撃を防げます。しかし、それぞれに問題点がありメールの認証が失敗する可能性があるため注意が必要です。
ARCの利用により認証失敗のリスクを軽減でき、メールの到達率向上、セキュリティの強化が見込めます。ARCを組み込んだメール認証の仕組みを理解し、効果的に活用しましょう。