送信先から受信拒否されない信頼できるmail環境を構築する

技術情報

1. 背景

フィッシングやスパム対策としてメールのセキュリティを強化する技術にはSPF,DKIM,DMARCといった技術があります。しかしこれらの技術は充分に普及しているとは言えません。その理由はいくつかありますが、以下の点が主な要因として挙げられます。

  1. 認識不足: SPF, DKIM, DMARCについて十分に知られておらず、その重要性が理解されていない場合があります。特に、小規模な組織や個人事業主の場合、他の業務が優先されることが多く、メールセキュリティの向上が後回しになってしまうことがあります。
  2. 技術的な複雑さ: SPF, DKIM, DMARCの設定には技術的な知識が必要です。特に、DNSの管理や電子署名の生成、設定が難しく感じられることがあります。また、設定ミスがあるとメールが届かなくなるリスクもあり、慎重にならざるを得ない場合があります。
  3. リソース不足: 小規模な組織や個人事業主の場合、専門的な知識を持ったIT担当者がいないことがあります。そのため、SPF, DKIM, DMARCの導入や運用に必要なリソースが確保できない場合があります。
  4. 互換性の問題: SPF, DKIM, DMARCが普及していないメールサーバーや受信者側のシステムとの互換性が懸念されることがあります。特に、古いシステムや非標準的なメールクライアントを使用している場合、これらの技術が正しく機能しないことがあります。

これらの理由から、SPF, DKIM, DMARCの普及は徐々には進んでいますが、まだ全ての組織で適用されているわけではありません。しかし、これらの技術の重要性が認識されるにつれ、徐々に導入が進むと考えられます。

この記事では、メールセキュリティを向上させるためにSPF, DKIM, DMARCを使用する方法について説明します。まず、これらの技術の概要を紹介し、次に具体的な設定方法を説明します。

2. メールセキュリティ技術の概要

2.1 SPF (Sender Policy Framework)

SPFは、電子メールの送信元ドメインを検証するためのセキュリティプロトコルです。電子メールのヘッダーに記載されている送信元ドメインが、メールの実際の送信元IPアドレスと一致するかどうかを確認することで、不正な送信元からのメールを検出します。これにより、フィッシングやスパムなどの攻撃から受信者を守ることができます。

SPFの仕組みは以下の通りです:

  1. ドメイン管理者は、DNSにTXTレコードとしてSPFレコードを設定します。このレコードには、そのドメインからメールを送信できるIPアドレスやホスト名が記載されています。
  2. メールサーバーがメールを受信すると、送信元ドメインのDNSを参照してSPFレコードを取得します。
  3. SPFレコードに記載されているIPアドレスやホスト名と、メールの実際の送信元IPアドレスを比較します。
  4. 送信元IPアドレスがSPFレコードに一致する場合、メールは正当な送信元からのものと判断され、受信者に届けられます。一致しない場合は、不正な送信元からのメールと判断され、受信者に届けられないか、スパムフォルダに移動されることがあります。
2.1 spf

SPFの設定は、ドメイン管理者が行います。DNSに正しいSPFレコードを設定することで、他の人がそのドメイン名を使用してメールを送信することを防ぐことができます。ただし、SPFは送信元ドメインの検証のみを行い、メールの内容や署名については検証しません。そのため、SPFをDKIMやDMARCと組み合わせて使用することで、より強力なメールセキュリティを実現できます。

Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1

SPF(Sender Policy Framework) : 迷惑メール対策委員会

2.2 DKIM (DomainKeys Identified Mail)

DKIMは、電子メールの送信者がメールの内容を改ざんされないように、メールに署名を付けることでメールの真正性を確保するための認証プロトコルです。このプロトコルにより、送信者ドメインがメールの送信元であることが検証され、受信者はメールが信頼できる送信元から来たことを確認できます。これにより、フィッシングやスパムなどの攻撃から受信者を守ることができます。

DKIMの仕組みは以下の通りです:

  1. ドメイン管理者は、メールサーバーで秘密鍵と公開鍵のペアを生成します。秘密鍵はメールサーバーに保管され、公開鍵はDNSにTXTレコードとして設定されます。
  2. メールが送信される際、メールサーバーは秘密鍵を使用してメールに署名を付けます。この署名は、メールヘッダーに追加されます。
  3. メールサーバーがメールを受信すると、送信元ドメインのDNSを参照して公開鍵を取得します。
  4. 受信メールサーバーは、公開鍵を使用してメールの署名を検証します。署名が正しい場合、メールは正当な送信元からのものと判断され、受信者に届けられます。署名が正しくない場合は、メールが改ざんされた可能性があるため、受信者に届けられないか、スパムフォルダに移動されることがあります。
2.2 dkim

DKIMは、送信者ドメインの認証とメールの完全性を保証することで、受信者がメールが信頼できる送信元から来たことを確認できるようにします。ただし、DKIMは送信元IPアドレスの検証を行いません。そのため、DKIMをSPFやDMARCと組み合わせて使用することで、より強力なメールセキュリティを実現できます。

RFC 6376 – DomainKeys Identified Mail (DKIM) Signatures

RFC 6377 – DomainKeys Identified Mail (DKIM) and Mailing Lists

RFC 6377 – DomainKeys Identified Mail (DKIM) and Mailing Lists

2.3 DMARC (Domain-based Message Authentication, Reporting, and Conformance)

DMARCは、電子メールの送信者ドメイン認証とポリシー適用を統一的に行うためのプロトコルです。このプロトコルは、SPFとDKIMの結果に基づいてメールの送信元を検証し、その結果に基づいてドメイン所有者が定めたポリシーに従ってメールを処理します。これにより、フィッシングやスパムなどの攻撃から受信者を守ることができます。

DMARCの仕組みは以下の通りです:

  1. ドメイン管理者は、DNSにTXTレコードとしてDMARCレコードを設定します。このレコードには、SPFとDKIMの検証結果に基づくメールの取り扱い方(ポリシー)や、認証結果の報告先が記載されています。
  2. メールサーバーがメールを受信すると、送信元ドメインのDNSを参照してDMARCレコードを取得します。
  3. 受信メールサーバーは、SPFとDKIMの検証を行い、それぞれの結果を元にDMARCのポリシーに従ってメールを処理します。例えば、両方の検証が失敗した場合にメールを拒否するようなポリシーが設定されている場合、そのように処理されます。
  4. 指定された報告先に対して、認証結果やポリシー適用結果の報告が送信されます。これにより、ドメイン管理者はメールの送信状況やセキュリティ上の問題を把握し、適切な対策を講じることができます。

DMARCは、SPFとDKIMを補完する形でメールセキュリティを強化し、ドメイン所有者がメールの送信状況を監視しやすくすることができます。ただし、DMARCを有効にするためには、SPFとDKIMの設定が適切であることが前提となります。そのため、これらのプロトコルを適切に設定し、組み合わせて使用することで、より強力なメールセキュリティを実現できます。

3. SPF, DKIM, DMARCをDNSへ設定する

3.1 SPFの設定

  1. まず、どのメールサーバーがドメインからメールを送信する権限があるかを特定します。通常、ウェブサイトやメールホスティングプロバイダーが提供するメールサーバーのIPアドレスやホスト名が必要です。
  2. 次に、ドメインのDNS管理画面にアクセスします。DNS管理画面は、ドメインを登録したレジストラーやウェブホスティングプロバイダーが提供しています。
  3. DNS管理画面で、新しいTXTレコードを追加します。以下の要素を含めたSPFレコードを作成します。
    • v=spf1: SPFレコードのバージョンを示します。
    • +a: ドメインのAレコードに一致するIPアドレスからの送信を許可します。
    • +mx: ドメインのMXレコードに一致するIPアドレスからの送信を許可します。
    • +ip4:IPアドレス: 特定のIPv4アドレスからの送信を許可します。必要に応じて、複数のIPアドレスを追加できます。
    • ~all: これらの条件に一致しない送信元からのメールは、ソフトフェイルとしてマークされます。これは、受信者に対して、メールの受信を慎重に検討するよう求めるものです。
  4. 作成したSPFレコードをDNS管理画面のTXTレコードに設定します。例えば、次のような形式になります: v=spf1 +a +mx +ip4:203.0.113.1 ~all
  5. DNSの変更が完全に反映されるまでには、通常、数時間から最大48時間かかります。変更が反映されたら、SPFレコードが正しく設定されているか確認するために、SPF検証ツール(例: https://mxtoolbox.com/spf.aspx)を利用できます。

これらの手順に従って、SPFを正しく設定することができます。ただし、状況によっては、異なる設定が必要になる場合があります。必要に応じて、ウェブホスティングプロバイダーやメールサービスプロバイダーのドキュメントやサポートに参照してください。

3.2 DKIMの設定

  1. まず、メールサーバーでDKIMを有効にします。メールサーバーの種類やホスティングサービスによって、手順は異なります。メールサーバーのドキュメントやサポート情報を確認してください。
  2. DKIMを有効にしたら、ドメイン用の秘密鍵と公開鍵を生成します。これらの鍵は、メールの署名と検証に使用されます。メールサーバーが自動的に鍵を生成する場合もありますし、手動で生成する必要がある場合もあります。
  3. 次に、ドメインのDNS管理画面にアクセスします。DNS管理画面は、ドメインを登録したレジストラーやウェブホスティングプロバイダーが提供しています。
  4. DNS管理画面で、新しいTXTレコードを追加します。レコード名には、セレクタ(例: default)と._domainkeyを含めます。セレクタは、複数のDKIMキーを使用する際に区別するための名前です。例えば、レコード名はdefault._domainkey.example.comのようになります。
  5. TXTレコードの値には、次の要素を含めた公開鍵を設定します。
    • v=DKIM1: DKIMレコードのバージョンを示します。
    • k=rsa: 鍵の暗号アルゴリズムを指定します。RSAが一般的です。
    • p=公開鍵: 生成した公開鍵を入力します。
  6. 例えば、次のような形式になります: v=DKIM1; k=rsa; p=MIIBIjANB...(公開鍵)
  7. DNSの変更が完全に反映されるまでには、通常、数時間から最大48時間かかります。変更が反映されたら、DKIMレコードが正しく設定されているか確認するために、DKIM検証ツール(例: https://mxtoolbox.com/dkim.aspx)を利用できます。

これらの手順に従って、DKIMを正しく設定することができます。ただし、状況によっては、異なる設定が必要になる場合があります。必要に応じて、ウェブホスティングプロバイダーやメールサービスプロバイダーのドキュメントやサポートに参照してください。

また、DKIMを設定する際には、以下の注意点を考慮してください。

  • 鍵の長さ: 鍵の長さはセキュリティに影響を与えます。一般的には、2048ビットの鍵が推奨されていますが、1024ビットの鍵も利用されています。鍵の長さが短いほどセキュリティが低下するため、適切な鍵の長さを選択してください。
  • セレクタの管理: 複数のDKIMキーを使用する場合は、セレクタを適切に管理することが重要です。セレクタを定期的に変更し、古いキーを無効化することで、セキュリティを向上させることができます。
  • DKIM署名のテスト: DKIMが正しく設定されていることを確認するために、テストメールを送信し、受信者側で署名が検証されていることを確認してください。

これらの手順と注意点を踏まえて、DKIMを適切に設定し、メールセキュリティを向上させましょう。

3.3 DMARCの設定

  1. ドメインのDNS管理画面にアクセスし、新しいTXTレコードを追加します。
  2. レコード名に_dmarcとドメイン名を入力し、次の形式でDMARCレコードを設定します: v=DMARC1; p=none; rua=mailto:アドレス; ruf=mailto:アドレス; fo=1; adkim=r; aspf=r; pct=100
  3. アドレスの部分には、DMARCに関するレポートを受信したいメールアドレスを入力します。
  4. 必要に応じて、ポリシー(p=の部分)をquarantine(疑わしいメールを隔離)やreject(疑わしいメールを拒否)に変更できます。

4. まとめ

SPF, DKIM, DMARCの導入により、メールセキュリティを大幅に向上させることができます。これらの技術を適切に設定し、維持することで、フィッシング攻撃やスパムメールからあなたのビジネスを守ることができます。設定が終わったら、適切なテストツールを使って、SPF, DKIM, DMARCが正しく設定されていることを確認しましょう。メールセキュリティは、ビジネスにとって重要な部分ですので、定期的なレビューとメンテナンスを行うことをお勧めします。

ITクオリティ株式会社ではメールセキュリティの向上をお手伝いしています。お気軽にご相談ください。