このガイドは何のためのものか?
- メールを送信するアプリケーションを開発、サポート、保守する人にとって必須のガイドです。
- メールがスパムフォルダではなく、受信者の受信トレイに届くことを保証します。
- サイバー犯罪者やスパム送信者からドメインを保護する方法を説明します。
なぜこのガイドを選ぶべきか?
- シンプルで明確な説明と例で、SPF、DKIM、DMARCをわかりやすく解説します。
- GitHub でホストされており、開発環境と統合してすばやく情報にアクセスできます。
- コミュニティが継続的に更新・保守できるドキュメントです。
このガイドが対象としていないもの
- メールサーバー設定や暗号化、セキュアメールゲートウェイのような高度なトピックは扱いません。
SPF、DKIM、DMARCを簡単に説明する
SPF (Sender Policy Framework)
- SPF: メールを送れる友だちリストのようなものです。
- SPF レコード: この友だちリストを DNS TXT レコードに保存します。
- 例:
v=spf1 ip4:123.123.123.123 ~all
DKIM (DomainKeys Identified Mail)
- DKIM: メールの中に秘密のメモを入れるようなものです。
- DKIM レコード: 公開鍵を DNS TXT レコードに保存し、受信者がメールの真正性を確認できるようにします。
- 例:
v=DKIM1; k=rsa; p=NICfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBolTXCqbxwoRBffyg2efs+Dtlc+CjxKz9grZGBaISRvN7EOZNoGDTyjbDIG8CnEK479niIL4rPAVriT54MhUZfC5UU4OFXTvOW8FWzk6++a0JzYu+FAwYnOQE9R8npKNOl2iDK/kheneVcD4IKCK7IhuWf8w4lnR6QEW3hpTsawIDAQ0B
DMARC (Domain-based Message Authentication, Reporting & Conformance)
- DMARC: SPF と DKIM のルールをまとめて、大きなルールブックを作るようなものです。
- DMARC レコード: このルールブックを DNS TXT レコードに保存し、受信者がメールをどう処理するかを決めます。
- 例:
v=DMARC1; p=none; rua=mailto:postmaster@example.com
SPF、DKIM、DMARCの実際の利用例
- モバイルアプリ: フィットネスアプリや銀行アプリがメールを送るとき、SPF、DKIM、DMARCを使って、メールがスパムフォルダではなく受信トレイに届くことを保証します。
- メールサービスプロバイダー: Gmail、Yahoo、Outlook などは SPF、DKIM、DMARC を使って受信メールを認証します。
- ソーシャルメディアプラットフォーム: LinkedIn、Facebook、Twitter などは通知メールを送る際に SPF、DKIM、DMARC を使用します。
- 企業: プロモーションメールを送る際に SPF、DKIM、DMARC を使い、メールがスパムと判定されないようにし、ドメインがメールのなりすましに使われないようにします。
- 政府機関: 市民への通知を送る際に SPF、DKIM、DMARC を使ってフィッシング攻撃を防ぎます。
次に何をすべきか?
- メールアドレスとドメインの特定: アプリで使っているメールアドレスとドメインを把握します。
- 現在の状態を確認: すでに SPF、DKIM、DMARC レコードがあるか確認し、正しく設定されているかを確認します。
- ドメインへのアクセス権: DNS レコードを変更できる権限があるか確認します。
- DMARC の監視: DMARC レポートを監視して問題がないか確認し、必要に応じて修正します。
SPF、DKIM、DMARCの状態確認
SPF、DKIM、DMARCに関するFAQ
- DMARC レポート用メールアドレス: 複数人が確認できる共有メールボックスを使うのが望ましいです。
- SPF レコードの ~all、-all、?all、+all の違い:
- ~all (SoftFail): リストにないサーバーからのメールも許可するが、疑わしい可能性があります。
- -all (Fail): リストにないサーバーからのメールは拒否します。
- ?all (Neutral): 特別な指示なしでメールを処理します。
- +all (Pass): すべてのサーバーからのメールを許可します。
- SPF なしで DMARC を設定できるか: 可能ですが非効率です。SPF と DKIM を一緒に使うのが望ましいです。
- メールヘッダーで複数の SPF 失敗と一部の SPF 通過が見える場合: 自分のドメインに関連する SPF チェックを信頼すべきです。
まとめ
- SPF、DKIM、DMARC はメールセキュリティの陰の立役者です。
- この3つは、メールの信頼性を維持するうえで重要な役割を果たします。
GN⁺の意見
- メールセキュリティの重要性: メールは重要なコミュニケーション手段であり、セキュリティは非常に重要です。
- SPF、DKIM、DMARC の必要性: この3つの技術は、メールのなりすましやフィッシング攻撃を防ぐために不可欠です。
- 導入時の考慮事項: 設定と監視が必要であり、誤った設定はメール配信の問題を引き起こす可能性があります。
- 関連ツール: MXToolbox や DMARCTester のようなツールを使えば、設定状態を簡単に確認できます。
- 業界標準: メールセキュリティを強化するために、SPF、DKIM、DMARC は業界標準として定着しています。
3件のコメント
SPF、DKIM、DMARC は今やとても重要になったようです
Google Workspace や SES などを使うようになると、MX レコード以外にも SPF や DKIM など設定するものが一つずつ増えてきますが、いざ調べようとはせず、どこかで何かうまく動いているんだろうくらいにしか思っていなかったので、ありがとうございます! :D
Hacker Newsのコメント
IT管理者の経験: 中小企業でITを管理しており、誤ったSPFレコードが原因で隔離されたメールの解除を頻繁に依頼される。ホワイトリストに追加する代わりに、SPFレコードを修正するよう支援している。これを自動化するために、Racket言語でスクリプトを書いた。
書籍の推薦: Michael W. Lucasが"Run Your Own Mail Server"という本を準備中で、SPF/DKIM/DMARCの設定について詳しく扱っている。BSDCanで彼のチュートリアルと講演を聞き、その本を勧めている。
SPF/DKIM/DMARCガイドの必要性: 別ドメインにメールを送るアプリを開発する人向けに、SPF/DKIM/DMARCのガイドが必要だ。多くのチケットシステムやマーケティングプラットフォームは、この概念を理解していない。
自動化の重要性: SPF/DKIM/DMARC設定を自動化するスタートアップを運営しており、このガイドの品質を高く評価している。ただし、ユーザーは問題を一度しか経験しないため、長期的な理解が難しい。自動化が重要だ。
デバッグツールの推薦: DMARCの問題をデバッグするための良いツールへのリンクを共有している。
テストツールの推薦: mail-tester.comとeu.dmarcian.comの無料版をテストツールとして勧めている。また、DKIMを理解するためのブログリンクも共有している。
スパムの問題: メール設定を完璧にしても、Gmailでスパムに分類されることがある。何百時間も費やしたが解決せず、iCloudのようなサードパーティのホスティングサービスを使うようになった。
メールの多様性の必要性: Apple、Google、Microsoftのような大企業のメールサービスに依存せず、可能な限り自前のメールサーバーを使うべきだ。
無料のDMARC監視サービス: Postmarkというサービスが無料のDMARC監視サービスを提供している。
SPF/DKIM/DMARC設定の結果: 例示されたドメインで、SPF、DKIM、DMARCの設定がすべて通過した結果を共有している。