SPF、DKIM、およびDMARCの理解:完全ガイド
SPF・DKIM・DMARC完全攻略
2024年6月5日
著者: Ahona Rudra
翻訳: 岩瀨 彩江
この記事はPowerDMARCのブログ記事 Understanding SPF, DKIM, and DMARC: A Complete Guide の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。
SPF、DKIM、およびDMARCとは何ですか?
SPF、DKIM、およびDMARCは、3つの主要なメール認証プロトコルです。
SPF、DMARC、そしてDKIMを組み合わせることで、あなたのドメインが不正な送信元によって利用され、見込み客、顧客、従業員、外部ベンダー、利害関係者などに詐欺メールを送信されることを防ぎます。
SPFとDKIMはメールの正当性を証明し、DMARCは受信側のメールサーバに対して、認証チェックに失敗したメールをどのように処理すべきかを指示します。
- Sender Policy Framework(SPF)
- 送信者のIPアドレスを確認し、そのアドレスがあなたのドメインの代わりにメールを送信する権限を持っているかどうかを検証します。
- DomainKeys Identified Mail(DKIM)
- メールに電子署名を追加し、送信者の身元を検証するとともに、メッセージの改竄を防止します。
- Domain-based Message Authentication, Reporting, and Conformance(DMARC)
- SPFとDKIMのチェックを適用するためのポリシーフレームワークを提供し、メール認証結果に関するレポートを生成します。
重要なポイント
- SPF、DKIM、およびDMARCは、メールのセキュリティを強化し、あなたのドメインが不正に使用されるのを防ぐために連携して機能する重要なプロトコルです。
- メール認証は、サイバー攻撃の多くを占めるフィッシングやなりすましから保護するために極めて重要です。
- これらのプロトコルを導入することで、なりすましの試みを大幅に減少させ、ドメイン全体のセキュリティ体制を向上させることができます。
- SPF、DKIM、DMARCの設定を維持し、定期的に更新することで、メール通信を保護する上での有効性を確保できます。
- MTA-STSやBIMIといった高度な技術を活用することで、セキュリティとブランドの認知度をさらに高め、メール認証戦略を一層強化することができます。
メール認証の理解
メール認証とは、メールの送信元の正当性を検証するプロセスのことです。
これは、組織が自社のドメインを使用してメールを送信できるのは正当な送信者だけであることを保証するために実施する重要なセキュリティ対策です。
SPF、DKIM、およびDMARCは、送信元やメール内容の検証、そして認証に失敗したメッセージへの対応方法の定義を通じて、メール認証の柱を形成しています。
VerizonのDBIR(データ漏えい調査報告書)によると、すべてのサイバー攻撃のうち94%はメールから始まるとされています!
これは、なりすましの脅威がますます高まり、その蔓延が深刻化していることをさらに浮き彫りにしています。
メール認証が重要である理由
メール認証は、メールのなりすまし攻撃に対する第一の防衛線です。
メールのなりすましとは、悪意のある目的でドメイン名やメールアドレスを偽装する行為のことです。
攻撃者は、正規の企業になりすました偽装メールを送信し、疑うことのない被害者をだまそうとします。
送信元の正当性を検証することで、認証は偽造されたメールが配信されるのを防ぎます。
メール認証プロトコルを導入した後、自社ドメインからのなりすまし試みが90%以上減少したと報告している顧客もいます。
SPF、DKIM、およびDMARCの役割
メール認証は、フィッシングやなりすましなどの手法を用いたメールベースのサイバー攻撃からブランドを保護するために重要です。
メール認証は主にSPF、DKIM、DMARCといったプロトコルに依存していますが、MTA-STS、BIMI、ARCなどの追加プロトコルを組み合わせることで、さらに高いセキュリティを実現できます。
これらを導入すべき理由は次のとおりです。
- あなたのドメイン名が偽装・悪用されるのを防ぎます。
- フィッシング、スパム、ランサムウェア攻撃など、あなたの企業名を使って計画・実行される攻撃を防止します。
- ドメインのメール配信率を向上させます。メール配信率が低いと、社内コミュニケーション、マーケティング活動、広報キャンペーン、顧客維持率などに悪影響を与える可能性があります。
SPF、DKIM、およびDMARCのチェックはどこで行えますか?
SPF、DKIM、およびDMARCのチェックは、これらのレコードがドメインネームシステム(DNS)に保存されているかを確認することで実施できます。
DNSは、ドメイン名を対応するIPアドレスに変換する「インターネットの電話帳」として広く知られています。
DNSは、あなたのドメイン情報をDNSレコードの形式で保存するためのデータベースとして機能します。
SPF、DKIM、およびDMARCのチェックは、DNSに公開・保存されている既存のレコードを確認するために使用されます。
メール認証チェックの際、受信側のMTA(メール転送エージェント)はあなたのDNSを参照し、これらのレコードを照会して、その中に定義された指示や情報に基づいて処理を行います。
PowerDMARCの無料ツールであるSPFレコードチェッカー、DKIMレコードチェッカー、DMARCレコードチェッカーを使用すると、DNSにこれらのレコードが含まれているかを即座に確認することができます。
SPF、DKIM、およびDMARCの設定方法
ドメインとメールを保護するために、以下の手順に従ってSPF、DKIM、およびDMARCを設定します。
- SPFのDNSレコードを作成します。
- DKIMの公開鍵を作成します。
- DMARCポリシーレコードを作成し、DMARCレポートを有効にします。
- DMARCレポートを受信する専用のメールボックスを設定するか、DMARCレポート分析プラットフォームを利用します。
- SPF、DKIM、およびDMARCの各レコードをDNSに公開します。
SPF:メール送信者の検証
Sender Policy Framework(SPF)は、ドメイン所有者が自分のドメインを使用してメールを送信することを許可するサーバを一覧化するメール認証プロトコルです。
これは、DNS上にTXT形式のSPFレコードを作成・公開することで行われます。
送信元のIPアドレスがこの一覧に含まれていない場合、認証は失敗し、そのメールはスパムまたは不審なメールとしてマークされる可能性があります。
ただし、SPFにはいくつかの制限があります。
メールが転送された場合や、DNSルックアップの上限(10回)を超えた場合にSPFが機能しなくなることがあります。
すでにSPFレコードをお持ちの場合は、SPFレコードチェッカーを使用してエラーがないかを確認することができます。
SPFの設定方法
- すべてのメール送信元を特定します。
自社のサーバだけでなく、外部のメール送信ベンダー(第三者サービス)も含めて確認します。 - 無料のSPFレコード生成ツールを使用してSPFレコードを作成します。
このレコードには、すべての送信元が認可されていることを明記します。 - レコードの構文をコピーします。
- DNS管理コンソールにログインします。
- 「TXT」リソースタイプのDNSレコードセクションにレコードを貼り付けます。
数時間待ち、変更が反映されるのを確認します。 設定が完了したら、SPFレコードルックアップツールを使用してエラーがないかを確認できます。
SPFの一般的な課題
SPF、DKIM、およびDMARCの課題を学ぶ際、特にSPFの実装においてドメイン所有者が直面しやすい共通の問題がいくつかあります。主なものは以下のとおりです。
- DNSルックアップの上限である10回を超えると、SPFが機能しなくなる
- Voidルックアップ(結果が空のルックアップ)の上限である2回を超えると、SPFが機能しなくなる
- SPFレコードには255文字の長さ制限がある
- メールが転送されるとSPF認証が失敗する
これらのエラーを解決するためには、SPFレコードをマクロを使って最適化し、定義された制限内に収める必要があります。
また、SPFをDKIMやDMARCと組み合わせることで、よりスムーズな認証と高いメール配信率を確保できます。
DKIM:メール内容の保護
DomainKeys Identified Mail(DKIM)は、ドメイン所有者が自分のドメインから送信するメールに自動的に署名できるようにする仕組みです。
DKIMの仕組みは、銀行の小切手に署名してその正当性を確認する方法に似ています。
DKIM署名によって、メールの配信過程で内容が安全に保たれ、改竄されていないことを保証します。
この仕組みは、まずDNS上に公開鍵を含むDKIMレコードを保存することから始まります。
受信側のメールサーバは、このレコードにアクセスして公開鍵を取得します。
一方、送信者側には秘密鍵が安全に保管されており、この秘密鍵でメールヘッダーに署名します。
受信側のメールサーバは、送信者の秘密鍵で署名された内容を、公開されている公開鍵と照合することで送信者の正当性を検証します。
DKIMの設定方法
- PowerDMARCの無料DKIMレコード生成ツールを使用して、DKIMレコードを作成します。
- ツールボックスに自分のドメイン名を入力し、「Generate DKIM record(DKIMレコードを生成)」ボタンをクリックします。
- 秘密鍵と公開鍵のペアが生成されます。
- 公開鍵をドメインのDNSに公開します。
- メールサーバを構成し、DKIMの秘密鍵を使用してすべての送信メールのヘッダーに署名できるようにします。
この署名プロセスによって、各メールにDKIM署名が追加され、受信者のメールサーバはDNSに公開された対応する公開鍵を使用してその署名を検証します。
秘密鍵は安全に保管し、公開したり他者に漏らしたりしないようにしてください。
最後に、DKIMルックアップツールを使用して公開鍵が正しく設定されているかを確認します。
DKIMの利点
SPF、DKIM、DMARCによるメール認証を導入する際、特にDKIMには次のような利点があります。
- DKIMは、多くの場合、転送されたメールでも正しく認証を行うことができます。
- DKIMは、サイバー攻撃者がメール内容を改竄するのを防ぎます。
- DKIMでは、各ドメインが独自に公開鍵と秘密鍵のペアを管理できるため、組織はメールセキュリティをより細かく制御することができます。
DMARC:フィッシングやなりすましの防止
Domain-based Message Authentication, Reporting and Conformance(DMARC)は、SPF、DKIM、またはその両方の認証に失敗したメールをどのように処理するかを受信側サーバに指示する仕組みです。
受信側が取るアクションは、送信者が設定したDMARCポリシーに基づいて決まります。ポリシーには「none(何もしない)」「quarantine(隔離)」「reject(拒否)」の3種類があります。
DMARCポリシーはDMARCレコード内に設定されており、このレコードには認証チェックを通過または失敗したすべてのメールに関するレポートをドメイン管理者に送信する指示も含まれています。
すでにDMARCポリシーを導入している場合は、無料のDMARCレコードルックアップツールを使用して設定が正しいかを確認することができます。
DMARCの設定方法
- 無料のDMARCレコード生成ツールを使用して、DMARCレコードを作成します。
- DMARCポリシー(例:p=quarantine)を選択し、「rua」タグにメールアドレスを指定してDMARCレポートを有効にします。
例)rua=mailto:rua@domain.com
- 「Generate(生成)」ボタンをクリックします。
- 生成されたTXTレコードをコピーし、DNSに貼り付けてプロトコルを有効化します。
DMARCチェッカーを使用して設定内容を確認し、正しく構成されているかを検証します。
DMARCの適用ポリシーとアクション
ドメイン所有者は、認証されていないメールに対してどのような処理を行うかを指定するために、3種類のDMARCポリシーを設定できます。内容は以下のとおりです。
- None(ポリシー:
p=none) -
「none」ポリシーは、認証されていないメールに対して何の処理も行わず、そのまま配信する設定です。
DMARCの導入を始めたばかりの初心者に最適です。 - Quarantine(ポリシー:
p=quarantine) - 「quarantine」ポリシーは、DMARCを強制的に適用する設定で、認証されていないメールを隔離(迷惑メールフォルダなどに振り分け)します。
- Reject(ポリシー:
p=reject) - 「reject」ポリシーは、DMARCにおける最も強力な適用設定で、認証されていないメールを受信段階で拒否します。
DMARCポリシーの設定内容は、メールを悪用した脅威を防ぐ上で非常に重要です。
ポリシーを適切に適用することで、ドメイン所有者はなりすましやフィッシング攻撃からより強固に保護されます。
高度なメール認証技術
メール認証は、SPF、DKIM、DMARCで終わりではありません。
ドメインとメールのセキュリティをさらに強化するために、より高度な認証技術を導入することができます。
ここでは、そのいくつかについて説明します。
MTA-STS、BIMI、およびARC
- MTA-STS(Mail Transfer Agent Strict Transport Security)
-
メールメッセージをTLSで暗号化して安全に受信トレイへ届けるための認証技術です。
このプロトコルは、通信するメールサーバ間で暗号化されたSMTP接続を確立することで、中間者攻撃(Man-in-the-Middle)やDNSスプーフィング攻撃を防止します。 - BIMI(Brand Indicators for Message Identification)
-
企業が自社のブランドロゴをメールに添付できるようにする仕組みです。
これにより、視覚的な確認と認証が可能になり、ブランド認知度と信頼性の向上につながります。 - ARC(Authenticated Received Chain)
-
メール転送時にSPFおよびDKIMの認証ヘッダーを保持することで、認証が失敗しないようにするフォールバック(代替)メカニズムを提供します。
これにより、転送されたメールの不必要な認証エラーを防ぐことができます。
これらの技術を導入すべきタイミング
DMARCの設定に十分な自信がついた段階で、メール認証の「第2フェーズ」としてこれらの技術を導入することができます。
これらの高度な設定は、ブランドの信頼性を確立し、メールの評判をさらに向上させたいすべての組織に最適です。
これらを導入することで、基本的な認証設定に加えて追加のセキュリティ層を提供し、より高度で巧妙なサイバー攻撃に対抗できる体制を整えることができます。
メール認証設定の実装と維持
SPF、DKIM、DMARCの各プロトコルを実装したら、次はそれらが正しく機能しているかを監視・維持する段階です。
以下は、メール認証設定を適切に維持するためのいくつかの方法です。
- 監視ツールの活用
- DMARC監視ツールは、クラウドベースのAI搭載プラットフォームであり、単一のインターフェースからメール認証の実装状況を即座かつ容易に監視することができます。
- DMARCレポートの分析
-
DMARCレポートを分析することで、メール認証の結果やドメインの送信元に関する豊富な情報を得ることができます。
これにより、不一致の検出やなりすましの試みの防止に役立ちます。 - 定期的な更新とメンテナンス
-
SPF、DKIM、DMARC、そして高度な認証技術が正しく機能しているかを定期的に確認することが重要です。
SPFは、新しい送信元を追加するために定期的な更新が必要になる場合があります。
DKIMキーは、セキュリティを強化するために頻繁にローテーション(更新)する必要があります。また、DMARCポリシーは、サイバー攻撃を防止するために適切に適用・強化しなければなりません。
これらの更新やメンテナンスを怠ると、設定が効果を失う可能性があります。
まとめ
これらのセキュリティプロトコルをドメインに設定した後は、レポートを継続的に監視し、不審な活動を早期に発見することが重要です。
これらのプロトコルを適切に構成・管理することで、ドメインのセキュリティとメール配信率を大幅に向上させることができます。
ただし、これらの認証プロトコルを組み合わせることでフィッシングのリスクを軽減することはできますが、すべてのメールを悪用したサイバー犯罪を完全に防ぐことはできません。
そのため、従業員への教育と意識向上を併せて実施することが非常に重要です。
SPF、DKIM、およびDMARCに関する一般的な質問
- SPFやDKIMなしでDMARCを作成できますか?
-
いいえ。DMARCを設定するには、SPFまたはDKIMのいずれかを先に実装しておく必要があります。
SPFやDKIMがない状態では、DMARCの設定は機能しません。 - DMARCにはSPFとDKIMの両方が必要ですか?
-
DMARCは、SPFとDKIMの両方を必須としているわけではありません。
どちらか一方を設定してからDMARCを導入することができます。
ただし、セキュリティを強化するためには、両方を実装することを強く推奨します。 - GmailはSPFまたはDKIMを使用していますか?
- はい。Gmailの最新の送信者ガイドラインでは、Gmailの受信トレイにメールを正常に配信するために、送信者がSPFまたはDKIMのいずれかを実装している必要があります。
- 1つのドメインに2つのDKIMレコードを設定できますか?
-
はい。ドメインには異なるセレクタを持つ2つ以上のDKIMレコードを設定することができます。
これにより、受信サーバは認証時に正しいDKIMレコードを容易に特定できます。 - プロトコルが有効になっているかどうかを確認する方法は?
- ドメインで認証プロトコルが有効になっているかを確認するには、PowertoolboxのDNSレコードチェッカーツールを使用するか、メールヘッダーを分析することで確認できます。