最近、フィッシングメールやなりすましメールが増えています。これらの攻撃を防ぐためには、送信元のメールを正しく認証する仕組みが重要です。
そのために活用できるのが「SPF(Sender Policy Framework)」と「DKIM(DomainKeys Identified Mail)」です。これらを設定することで、なりすましメールのリスクを減らし、安全なメール運用が可能になります。
特に宛先がGmailへのメール送信は2024年2月以降に後述するSPFとDKIMのどちらかのメールセキュリティ対策を実施しないとメールが届かなくなっています。
さらに、Gmailアカウントへ1日5,000件以上メールを送信する企業は、SPF/DKIMだけでなく、追加でDMARCにも対応する必要があります。
この記事では、SPFとDKIMの基本的な仕組みや設定方法を初心者にも分かりやすく解説します。
1. SPF(Sender Policy Framework)とは?
1.1. SPFの概要
SPFは、メールの送信元が正しいサーバーであるかを確認する仕組みです。受信したサーバーは、送信元のドメインに設定されたSPFレコードをチェックし、信頼できるサーバーから送られたメールかどうかを判断します。
1.2. SPFの仕組み
- メールを受信したサーバーが、送信者の「Return-Path(エンベロープFrom)」アドレスを確認します。
- そのドメインのDNSにあるSPFレコードを取得します。
- 送信元のIPアドレスがSPFレコードに含まれているかをチェックします。
- 登録されていない場合は、メールが拒否されるか迷惑メール扱いになります。
1.3. SPFレコードの設定方法
SPFはDNSのTXTレコードとして設定します。送信元がGoogle Workspaceを利用している場合の例は以下の通りです。
@ IN TXT "v=spf1 include:_spf.google.com ~all"
- v=spf1 : SPFのバージョン
- include:_spf.google.com : GoogleのSPFポリシーを適用
- ~all : 許可されていないIPアドレスからのメールは「ソフトフェイル」扱い(?-all にするとハードフェイル)
また、個別で運用しているドメインに対しての設定は以下のようになります。〇〇.comで送付されたメールの送信元IPアドレスが172.16.0.1であればOKになります(〇〇.comのDNSサーバ上で設定します)
〇〇.com IN TXT v=spf1 ip4:172.16.0.1 -all

2. DKIM(DomainKeys Identified Mail)とは?
2.1. DKIMの概要
DKIMは、メールの改ざんを防ぐための技術です。送信時に電子署名を付け、受信側でその署名を確認することで、正当なメールかどうかを判断します。
2.2. DKIMの仕組み
- メール送信時に、送信サーバーが秘密鍵を使って電子署名を付けます。
- 受信サーバーは送信ドメインのDNSに登録された公開鍵を取得します。
- 受信したメールの署名を検証し、改ざんがないかを確認します。
2.3. DKIMレコードの設定方法
DNSに公開鍵を登録し、メールサーバーでDKIM署名を有効にする必要があります。Google Workspaceでの設定例を紹介します。
- Google Admin Consoleにログインします。
- [アプリ] → [Google Workspace] → [Gmail] を開きます。
- [認証] → [DKIM] の設定を開きます。
- 「新しいDKIMキーを生成」し、表示された公開鍵をDNSにTXTレコードとして追加します。
- 「認証を開始」をクリックして有効化します。
DNSレコードの例:
selector1._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9..."
また、個別で運用しているドメインに対しての設定ですが、これは結構面倒な作業が発生します。例としてLinuxサーバ(postfixなど)を利用している場合は以下の様に送信メールサーバ側とDNSサーバ側で鍵を設定する必要があります。
- 送信側にOpenDKIMをインストール
- opendkimで秘密鍵/公開鍵を作成
- DNSサーバに公開鍵を設定
3. SPF・DKIMの設定例(Google Workspace, Microsoft 365)
3.1. Google Workspaceの設定
- SPF: v=spf1 include:_spf.google.com ~all
- DKIM: Google Admin Consoleから設定
3.2. Microsoft 365の設定
- SPF: v=spf1 include:spf.protection.outlook.com ~all
- DKIM: Microsoft 365の管理センターで設定し、公開鍵をDNSに登録
4. DMARCの活用
SPFとDKIMを組み合わせることで、よりセキュリティを強化できるのが「DMARC(Domain-based Message Authentication, Reporting, and Conformance)」です。
DMARCを設定すると、SPFやDKIMの認証に失敗したメールの処理方法を指定できます。また、レポートを受け取ることも可能です。
DMARCレコードの例:
_dmarc.example.com IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com"
- p=reject : 認証に失敗したメールを拒否
- rua=mailto:dmarc-reports@example.com : レポート送信先
5. SPF・DKIMの動作確認
設定後は、正しく動作しているか確認することが大切です。
5.1. メールヘッダーの確認方法
Gmailでは、受信メールを開き「メッセージのソースを表示」からヘッダー情報を確認できます。
5.2. オンラインツールの活用
- Google Admin Toolbox (https://toolbox.googleapps.com/apps/checkmx/)
- DKIM Validator (https://www.dmarcanalyzer.com/dkim/dkim-checker/)
6. まとめ
SPFとDKIMを設定することで、なりすましや改ざんされたメールを防ぐことができます。さらに、DMARCを活用すれば、より強固なメールセキュリティを実現できます。
個人や企業でこれらの認証を導入し、安全なメール環境を構築しましょう!
今回は以上となります。
コメント