Microsoft 365 ドメインからのメールに署名するように DKIM を設定する

ヒント

Microsoft Defender XDR for Office 365 プラン 2 の機能を無料で試すことができることをご存知でしたか? Microsoft Defender ポータル試用版ハブで、90 日間の Defender for Office 365 試用版を使用します。 「Microsoft Defender for Office 365を試す」で、誰がサインアップして試用版の条件を利用できるかについて説明します。

DomainKeys Identified Mail (DKIM) は、Microsoft 365 organizationから送信されたメールを検証して、ビジネス メールの侵害 (BEC)、ランサムウェア、その他のフィッシング攻撃で使用されるなりすまし送信者を防ぐのに役立つ電子メール認証の方法です。

DKIM の主な目的は、メッセージが転送中に変更されていないことを確認することです。 特に次のような場合です。

  1. ドメインに対して 1 つ以上の秘密キーが生成され、送信元メール システムによって送信メッセージの重要な部分にデジタル署名するために使用されます。 これらのメッセージ部分には、次のものが含まれます。
    • From、To、Subject、MIME-Version、Content-Type、Date、およびその他のメッセージ ヘッダー フィールド (ソース メール システムに応じて)。
    • メッセージ本文。
  2. デジタル署名は、メッセージ ヘッダーの DKIM-Signature ヘッダー フィールドに格納され、中間電子メール システムがメッセージの署名された部分を変更しない限り有効なままになります。 署名ドメインは、DKIM-Signature ヘッダー フィールドの d= 値によって識別されます。
  3. 対応する公開キーは、署名ドメインの DNS レコードに格納されます (Microsoft 365 の CNAME レコード。他の電子メール システムでは TXT レコードを使用する場合があります)。
  4. 宛先電子メール システムでは、DKIM-Signature ヘッダー フィールドの d= 値を使用して、次の目的で次を行います。
    • 署名ドメインを特定します。
    • ドメインの DKIM DNS レコードで公開キーを検索します。
    • ドメインの DKIM DNS レコードの公開キーを使用して、メッセージ署名を確認します。

DKIM に関する重要な事実:

  • DKIM がメッセージに署名するために使用するドメインは、メッセージ内の MAIL FROM アドレスまたは From アドレスのドメインと一致する必要はありません。 これらのアドレスの詳細については、「 インターネット メールで認証が必要な理由」を参照してください。
  • メッセージには、異なるドメインによって複数の DKIM 署名を含めることができます。 実際、多くのホストされた電子メール サービスは、サービス ドメインを使用してメッセージに署名し、顧客がドメインの DKIM 署名を構成した後、顧客ドメインを使用してメッセージに再度署名します。

作業を開始する前に、メール ドメインに基づいて Microsoft 365 の DKIM について知る必要がある内容を次に示します。

  • メールに Microsoft Online Email ルーティング アドレス (MOERA) ドメイン (たとえば、contoso.onmicrosoft.com) のみを使用する場合: 何もする必要はありません。 Microsoft は、最初の *.onmicrosoft.com ドメインから 2048 ビットの公開秘密キー ペアを自動的に作成します。 送信メッセージは、秘密キーを使用して自動的に DKIM 署名されます。 公開キーは DNS レコードに発行されるため、宛先メール システムはメッセージの DKIM 署名を確認できます。

    ただし、*.onmicrosoft.com ドメインを使用して DKIM 署名を手動で構成することもできます。 手順については、この記事の後半の 「Defender ポータルを使用して、*.onmicrosoft.com ドメインを使用して送信メッセージの DKIM 署名をカスタマイズ する」セクションを参照してください。

    送信メッセージが自動的に DKIM 署名されていることを確認するには、この記事の後半 の「Microsoft 365 からの送信メールの DKIM 署名の検証 」セクションを参照してください。

    *.onmicrosoft.com ドメインの詳細については、「 "onmicrosoft.com" ドメインがある理由」を参照してください。

  • メールに 1 つ以上のカスタム ドメイン (たとえば、contoso.com) を使用する場合: Microsoft 365 のすべての送信メールが MOERA ドメインによって自動的に署名されていても、電子メール保護を最大限に活用するためにさらに多くの作業が必要になります。

    • カスタム ドメインまたはサブドメインを使用して DKIM 署名を構成する: メッセージは、From アドレス内のドメインによって署名された DKIM である必要があります。 また、DMARC を構成することをお勧めします。DKIM が DMARC 検証に合格するのは、DKIM がメッセージに署名したドメインと From アドレスのドメインが一致する場合のみです。

    • サブドメインに関する考慮事項:

      • 直接制御下にないメール サービス (一括メール サービスなど) の場合は、メインメール ドメイン (contoso.com など) ではなくサブドメイン (marketing.contoso.com など) を使用することをお勧めします。 これらのメール サービスから送信されたメールに関する問題が、メインメール ドメイン内の従業員から送信されたメールの評判に影響を与える必要はありません。 サブドメインの追加の詳細については、「 カスタム サブドメインまたは複数のドメインを Microsoft 365 に追加できますか?」を参照してください。

      • Microsoft 365 からメールを送信するために使用する各サブドメインには、独自の DKIM 構成が必要です。

        ヒント

        未定義のサブドメインのEmail認証保護は、DMARC によってカバーされます。 サブドメイン (定義されているかどうか) は、親ドメインの DMARC 設定を継承します (サブドメインごとにオーバーライドできます)。 詳細については、「 DMARC を設定して Microsoft 365 の送信者の差出人アドレス ドメインを検証する」を参照してください。

    • 登録済みで未使用のドメインを所有している場合: 電子メールや何か (パークされたドメインとも呼ばれます) に使用されていない登録済み ドメインを所有している場合は、それらのドメインの DKIM レコードを発行しないでください。 DKIM レコードが存在しないため (そのため、メッセージ署名を検証するための DNS に公開キーがないため)、偽造ドメインの DKIM 検証が妨げられます。

  • DKIM だけでは十分ではありません。 カスタム ドメインに最適なレベルの電子メール保護を行うには、 全体的な電子メール認証 戦略の一部として SPF と DMARC を構成する必要もあります。 詳細については、この記事の最後にある 「次の手順 」セクションを参照してください。

この記事の残りの部分では、Microsoft 365 のカスタム ドメイン用に作成する必要がある DKIM CNAME レコードと、カスタム ドメインを使用した DKIM の構成手順について説明します。

ヒント

カスタム ドメインを使用した DKIM 署名の構成は、Microsoft 365 の手順と、カスタム ドメインのドメイン レジストラーでの手順の組み合わせです。

さまざまな Microsoft 365 サービスの CNAME レコードを多くのドメイン レジストラーで作成する手順について説明します。 これらの手順を出発点として、DKIM CNAME レコードの作成を作成できます。 詳細については、「DNS レコードを追加してドメインに接続する」を参照してください。

DNS 構成に慣れていない場合は、ドメイン レジストラーに問い合わせてヘルプを依頼してください。

DKIM CNAME レコードの構文

ヒント

Defender ポータルまたは PowerShell Exchange Onlineを使用して、カスタム ドメインを使用して送信メッセージの DKIM 署名に必要な CNAME 値を表示します。 ここで示す値は、図専用です。 カスタム ドメインまたはサブドメインに必要な値を取得するには、この記事の後半の手順を使用します。

DKIM は RFC 6376 で完全に説明されています。

Microsoft 365 からメールを送信するカスタム ドメインの DKIM CNAME レコードの基本的な構文は次のとおりです。

Hostname: selector1._domainkey
Points to address or value: selector1-<CustomDomain>._domainkey.<InitialDomain>

Hostname: selector2._domainkey
Points to address or value: selector2-<CustomDomain>._domainkey.<InitialDomain>
  • Microsoft 365 では、カスタム ドメインまたはサブドメインを使用した DKIM 署名が有効になっている場合、2 つの公開秘密キー ペアが生成されます。 メッセージの署名に使用される秘密キーにアクセスできません。 CNAME レコードは、DKIM 署名の検証に使用される対応する公開キーを指します。 これらのレコードは セレクターと呼ばれます。

    • アクティブなセレクターは 1 つだけであり、カスタム ドメインを使用した DKIM 署名が有効になっている場合に使用されます。
    • 2 番目のセレクターは非アクティブです。 これは、今後 DKIM キーをローテーションした後にのみアクティブ化され、元のセレクターが非アクティブ化された後にのみ使用されます。

    DKIM 署名の検証に使用されるセレクター (メッセージの署名に使用された秘密キーを推論する) は、DKIM-Signature ヘッダー フィールド (たとえば、s=selector1-contoso-com) の s= 値に格納されます。

  • ホスト名: 値は、すべての Microsoft 365 組織 ( selector1._domainkeyselector2._domainkey) で同じです。

  • <CustomDomain>: ピリオドをダッシュで置き換えたカスタム ドメインまたはサブドメイン。 たとえば、 contoso.comcontoso-comになるか、 marketing.contoso.commarketing-contoso-comになります。

  • <InitialDomain>: Microsoft 365 に登録したときに使用した *.onmicrosoft.com (たとえば、contoso.onmicrosoft.com)。

たとえば、organizationには Microsoft 365 に次のドメインがあります。

  • 初期ドメイン: cohovineyardandwinery.onmicrosoft.com
  • カスタム ドメイン: cohovineyard.com と cohowinery.com

各カスタム ドメインに 2 つの CNAME レコードを作成し、合計で 4 つの CNAME レコードを作成する必要があります。

  • cohovineyard.com ドメイン内の CNAME レコード:

    ホスト名: selector1._domainkey
    Points to address or value: selector1-cohovineyard-com._domainkey.cohovineyardandwinery.onmicrosoft.com

    ホスト名: selector2._domainkey
    Points to address or value: selector2-cohovineyard-com._domainkey.cohovineyardandwinery.onmicrosoft.com

  • cohowinery.com ドメイン内の CNAME レコード:

    ホスト名: selector1._domainkey
    Points to address or value: selector1-cohowinery-com._domainkey.cohovineyardandwinery.onmicrosoft.com

    ホスト名: selector2._domainkey
    Points to address or value: selector2-cohowinery-com._domainkey.cohovineyardandwinery.onmicrosoft.com

Microsoft 365 で送信メッセージの DKIM 署名を構成する

Defender ポータルを使用して、カスタム ドメインを使用して送信メッセージの DKIM 署名を有効にする

ヒント

カスタム ドメインを使用して送信メッセージの DKIM 署名を有効にすると、DKIM 署名が初期 *.onmicrosoft.com ドメインの使用からカスタム ドメインの使用に効果的に切り替えます。

カスタム ドメインまたはサブドメインを使用して、ドメインが Microsoft 365 に正常に追加された後にのみ、DKIM の送信メールに署名できます。 手順については、「 ドメインの追加」を参照してください。

カスタム ドメインが DKIM 署名送信メールを開始するタイミングを決定するメイン要因は、DNS での CNAME レコード検出です。

このセクションの手順を使用するには、https://security.microsoft.com/authentication?viewid=DKIM[Email認証設定] ページの [DKIM] タブにカスタム ドメインまたはサブドメインを表示する必要があります。 詳細ポップアップ内のドメインのプロパティには、次の値が含まれている必要があります。

DKIM 署名が無効になっており、ドメインに対して DKIM 署名が構成されていないことを示す [ドメインの詳細] タブ。

  • [ DKIM 署名を使用してこのドメインのメッセージに署名する ] トグルが [無効 に設定されています。
  • [状態] の値は、ドメインの DKIM 署名に署名していません
  • DKIM キーの作成 が存在しません。 回転 DKIM キー は表示されますが、灰色で表示されます。

ドメインがこれらの要件を満たしている場合は続行します。

  1. https://security.microsoft.comの Defender ポータルで、[Email &コラボレーション>ポリシー & ルール>Threat ポリシー>Email認証設定] ページに移動します。 または、Email認証設定ページに直接移動するには、https://security.microsoft.com/authenticationを使用します。

  2. [Email認証設定] ページで、[DKIM] タブを選択します。

  3. [DKIM] タブで、名前の横にある [チェック] ボックス以外の行内の任意の場所をクリックして、構成するカスタム ドメインを選択します。

    Defender ポータルのEmail認証ページの [DKIM] タブ。

  4. 開いたドメインの詳細ポップアップで、現在 [無効] に設定されている [DKIM 署名を使用してこのドメインのメッセージに署名する] トグルを選択します。

    [最後にチェックされた日付] の値をメモします。

  5. [クライアント エラー] ダイアログが開きます。 このエラーには、ドメインのドメイン レジストラーで作成した 2 つの CNAME レコードで使用する値が含まれています。

    この例では、カスタム ドメインが contoso.com され、Microsoft 365 organizationの初期ドメインが contoso.onmicrosoft.com されています。 エラー メッセージは次のようになります。

    |Microsoft.Exchange.ManagementTasks.ValidationException|CNAME record does not
    exist for this config. Please publish the following two CNAME records first. Domain Name
    : contoso.com Host Name : selector1._domainkey Points to address or value: selector1-
    contoso-com._domainkey.contoso.onmicrosoft.com Host Name : selector2._domainkey
    Points to address or value: selector2-contoso-com._domainkey.contoso.onmicrosoft.com .
    If you have already published the CNAME records, sync will take a few minutes to as
    many as 4 days based on your specific DNS. Return and retry this step later.
    

    そのため、contoso.com ドメインの DNS で作成する必要がある CNAME レコードは次のとおりです。

    ホスト名: selector1._domainkey
    Points to address or value: selector1-contoso-com._domainkey.contoso.onmicrosoft.com

    ホスト名: selector2._domainkey
    Points to address or value: selector2-contoso-com._domainkey.contoso.onmicrosoft.com

    エラー ダイアログから情報をコピーし (テキストを選択し、Ctrl + C キーを押します)、[ OK] を選択します

    ドメインの詳細ポップアップは開いたままにします。

  6. 別のブラウザー タブまたはウィンドウで、ドメインのドメイン レジストラーに移動し、前の手順の情報を使用して 2 つの CNAME レコードを作成します。

    さまざまな Microsoft 365 サービスの CNAME レコードを多くのドメイン レジストラーで作成する手順について説明します。 DKIM CNAME レコードを作成するための出発点として、次の手順を使用できます。 詳細については、「DNS レコードを追加してドメインに接続する」を参照してください。

    Microsoft 365 が作成した新しい CNAME レコードを検出するには、数分 (または場合によってはそれ以上) かかります。

  7. しばらくしてから、手順 5 で開いたままにしたドメイン プロパティに戻り、[ DKIM 署名を使用してこのドメインのメッセージに署名 する] トグルを選択します。

    数秒後、次のダイアログが開きます。

    ドメインの DKIM 署名を有効にしようとしたときに開くダイアログ。

    [OK] を選択してダイアログを閉じると、詳細ポップアップで次の設定を確認します。

    • [DKIM 署名を使用してこのドメインのメッセージに署名する] トグルが [有効 に設定されています。
    • [状態] の値は、このドメインの DKIM 署名の署名です
    • 回転 DKIM キー を使用できます。
    • 最後にチェックされた日付: 日付と時刻は、手順 4 の元の値より新しい日付にする必要があります。

    ドメインに対して DKIM が有効になった後のドメインの詳細ポップアップ。

Defender ポータルを使用して、*.onmicrosoft.com ドメインを使用して送信メッセージの DKIM 署名をカスタマイズする

この記事で前述したように、最初の *.onmicrosoft.com ドメインは、Microsoft 365 organizationからのすべての送信メールに署名するように自動的に構成され、送信メッセージの DKIM 署名にカスタム ドメインを構成する必要があります。

ただし、このセクションの手順を使用して、*.onmicrosoft.com ドメインを使用した DKIM 署名に影響を与えることもできます。

  • 新しいキーを生成します。 新しいキーは自動的に追加され、Microsoft 365 データセンターで使用されます。
  • *.onmicrosoft.com ドメインのプロパティが、https://security.microsoft.com/authentication?viewid=DKIMまたは PowerShell の [Email認証設定] ページの [DKIM] タブにあるドメインの詳細ポップアップに正しく表示されるようにします。 この結果により、ドメインの DKIM 構成に対する今後の操作 ( 手動キーローテーションなど) が可能になります。

このセクションの手順を使用するには、https://security.microsoft.com/authentication?viewid=DKIMの [Email認証設定] ページの [DKIM] タブに *.onmicrosoft.com ドメインを表示する必要があります。 詳細ポップアップの *.onmicrosoft.com ドメインのプロパティには、次の値が含まれている必要があります。

[DKIM キーの作成] ボタンを使用したドメインの詳細ポップアップ。

  • [ DKIM 署名を使用してこのドメインのメッセージに署名する ] トグルは使用できません。
  • [状態] の値は、このドメインに対して保存された DKIM キーがありません
  • DKIM キーの作成 が存在します。

ドメインがこれらの要件を満たしている場合は続行します。

  1. https://security.microsoft.comの Defender ポータルで、[Email &コラボレーション>ポリシー & ルール>Threat ポリシー>Email認証設定] ページに移動します。 または、Email認証設定ページに直接移動するには、https://security.microsoft.com/authenticationを使用します。

  2. [Email認証設定] ページで、[DKIM] タブを選択します。

  3. [DKIM] タブで、構成する *.onmicrosoft.com ドメインを選択し、名前の横にある [チェック] ボックス以外の行をクリックします。

    Defender ポータルのEmail認証ページの [DKIM] タブ。

  4. 開いたドメインの詳細ポップアップで、[ Create DKIM keys]\(DKIM キーの作成\) を選択します。

    [DKIM キーの作成] ボタンを使用したドメインの詳細ポップアップ。

  5. DKIM キーの作成が完了すると、[ CNAMEs の発行] ダイアログ が開きます。 [閉じる] を選択します。

    *.onmicrosoft.com ドメインの CNAME レコードを作成できないため、値をコピーする必要はありません。 Microsoft は、必要な DNS 構成を処理します。

  6. [閉じる] を選択すると、ドメインの詳細ポップアップに戻り、[DKIM 署名を使用してこのドメインのメッセージに署名する] トグルが無効

    DKIM 署名が無効になっている [ドメインの詳細] タブ。

    [DKIM 署名を使用してこのドメインのメッセージに署名する] トグルを [有効] にスライドし、開いた確認ダイアログで [OK] を選択します

    DKIM 署名が有効で、ドメインに対して DKIM 署名が構成されている [ドメインの詳細] タブ。

    ドメインの詳細ポップアップが完了したら、[ 閉じる] を選択します。

Exchange Online PowerShell を使用して送信メッセージの DKIM 署名を構成する

PowerShell を使用してカスタム ドメインを使用して送信メッセージの DKIM 署名を有効にする場合、または *.onmicrosoft.com ドメインの DKIM 署名をカスタマイズする場合は、PowerShell Exchange Onlineに接続して次のコマンドを実行します。

ヒント

カスタム ドメインを使用して DKIM 署名を構成する前に、ドメインを Microsoft 365 に追加する必要があります。 手順については、「 ドメインの追加」を参照してください。 DKIM 構成でカスタム ドメインを使用できるかどうかを確認するには、次のコマンドを実行します: Get-AcceptedDomain

この記事で前述したように、*.onmicrosoft.com ドメインは既定で既に送信メールに署名しています。 通常、Defender ポータルまたは PowerShell で *.onmicrosoft.com ドメインの DKIM 署名を手動で構成していない限り、 Get-DkimSigningConfig の出力に *.onmicrosoft.com は表示されません。

  1. 次のコマンドを実行して、organization内のすべてのドメインの可用性と DKIM 状態を確認します。

    Get-DkimSigningConfig | Format-List Name,Enabled,Status,Selector1CNAME,Selector2CNAME
    
  2. DKIM 署名を構成するドメインの場合、手順 1 のコマンドの出力によって、次に何を行う必要があるかが決まります。

    • ドメインは、次の値で一覧表示されます。

      • 有効: False
      • 状態: CnameMissing

      手順 3 に進み、セレクター値をコピーします。

    または

    • ドメインは一覧に表示されません。

      1. <Domain> をドメイン値に置き換え、次のコマンドを実行します。

        New-DkimSigningConfig -DomainName <Domain> -Enabled $false [-BodyCanonicalization <Relaxed | Simple>] [-HeaderCanonicalization <Relaxed | Simple>] [-KeySize <1024 | 2048>]
        
        • BodyCanonicalization パラメーターは、メッセージ本文の変更に対する感度レベルを指定します。
          • Relaxed: スペースの変更とメッセージ本文の末尾の空行の変更のみが許容されます。 これは既定の値です。
          • Simple: メッセージ本文の末尾の空行の変更のみが許容されます。
        • HeaderCanonicalization パラメーターは、メッセージ ヘッダーの変更に対する秘密度レベルを指定します。
          • 緩和: メッセージ ヘッダーに対する一般的な変更は許容されます。 たとえば、ヘッダー フィールド行の再ラップ、不要な空白または空行の変更、ヘッダー フィールドの場合の変更などです。 これは既定の値です。
          • Simple: ヘッダー フィールドに対する変更は許容されません。
        • KeySize パラメーターは、DKIM レコード内の公開キーのビット サイズを指定します。
            1. これは既定の値です。

        以下に例を示します。

        New-DkimSigningConfig -DomainName contoso.com -Enabled $false
        
      2. 手順 1 のコマンドをもう一度実行して、ドメインが次のプロパティ値で一覧表示されていることを確認します。

        • 有効: False
        • 状態: CnameMissing
      3. 手順 3 に進み、セレクター値をコピーします。

  3. 手順 1 のコマンドの出力から、ドメインの Selector1CNAME 値と Selector2CNAME 値をコピーします。

    ドメインのドメイン レジストラーで作成する必要がある CNAME レコードは次のようになります。

    ホスト名: selector1._domainkey
    Points to address or value: <Selector1CNAME value>

    ホスト名: selector2._domainkey
    Points to address or value: <Selector2CNAME value>

    以下に例を示します。

    ホスト名: selector1._domainkey
    Points to address or value: selector1-contoso-com._domainkey.contoso.onmicrosoft.com

    ホスト名: selector2._domainkey
    Points to address or value: selector2-contoso-com._domainkey.contoso.onmicrosoft.com

  4. 次のいずれかの手順を実行します。

    • カスタム ドメイン: ドメインのドメイン レジストラーで、前の手順の情報を使用して 2 つの CNAME レコードを作成します。

      さまざまな Microsoft 365 サービスの CNAME レコードを多くのドメイン レジストラーで作成する手順について説明します。 DKIM CNAME レコードを作成するための出発点として、次の手順を使用できます。 詳細については、「DNS レコードを追加してドメインに接続する」を参照してください。

      Microsoft 365 が作成した新しい CNAME レコードを検出するには、数分 (または場合によってはそれ以上) かかります。

    • *.onmicrosoft.com ドメイン: 手順 5 に進みます。

  5. しばらくしてから PowerShell Exchange Onlineに戻り、<Domain> を構成したドメインに置き換えて、次のコマンドを実行します。

    Set-DkimSigningConfig -Identity \<Domain\> -Enabled $true [-BodyCanonicalization <Relaxed | Simple>] [-HeaderCanonicalization <Relaxed | Simple>]
    
    • BodyCanonicalization パラメーターは、メッセージ本文の変更に対する感度レベルを指定します。
      • Relaxed: スペースの変更とメッセージ本文の末尾の空行の変更のみが許容されます。 これは既定の値です。
      • Simple: メッセージ本文の末尾の空行の変更のみが許容されます。
    • HeaderCanonicalization パラメーターは、メッセージ ヘッダーの変更に対する秘密度レベルを指定します。
      • 緩和: メッセージ ヘッダーに対する一般的な変更は許容されます。 たとえば、ヘッダー フィールド行の再ラップ、不要な空白または空行の変更、ヘッダー フィールドの場合の変更などです。 これは既定の値です。
      • Simple: ヘッダー フィールドに対する変更は許容されません。

    次に例を示します。

    Set-DkimSigningConfig -Identity contoso.com -Enabled $true
    

    または

    Set-DkimSigningConfig -Identity contoso.onmicrosoft.com -Enabled $true
    
    • カスタム ドメインの場合、Microsoft 365 がドメイン レジストラーで CNAME レコードを検出できる場合、コマンドはエラーなしで実行され、ドメインはドメインからの送信メッセージの署名に使用されるようになりました。

      CNAME レコードが検出されない場合は、CNAME レコードで使用する値を含むエラーが発生します。 ドメイン レジストラーの値に入力ミスがないか確認します (ダッシュ、ピリオド、下線で簡単に実行できます)。しばらく待ってから、コマンドをもう一度実行します。

    • 以前にリストされていなかった *.onmicrosoft.com ドメインの場合、コマンドはエラーなしで実行されます。

  6. ドメインが DKIM 署名メッセージに構成されていることを確認するには、手順 1 のコマンドを実行します。

    ドメインには、次のプロパティ値が必要です。

    • 有効: True
    • 状態: Valid

構文とパラメーターの詳細については、次の記事を参照してください。

DKIM キーを回転させる

パスワードを定期的に変更する必要があるのと同じ理由で、DKIM 署名に使用される DKIM キーを定期的に変更する必要があります。 ドメインの DKIM キーを置き換えることは、 DKIM キーローテーションと呼ばれます。

ドメイン Microsoft 365 の DKIM キーローテーションに関する関連情報は、Exchange Online PowerShell の次のコマンドの出力に示されています。

Get-DkimSigningConfig -Identity <CustomDomain> | Format-List
  • KeyCreationTime: DKIM 公開秘密キー ペアが作成された UTC 日付/時刻。
  • RotateOnDate: 前または次の DKIM キーの回転の日付/時刻。
  • SelectorBeforeRotateOnDate: Microsoft 365 のカスタム ドメインを使用した DKIM 署名には、ドメインに 2 つの CNAME レコードが必要です。 このプロパティは、 RotateOnDate 日時 (セレクターとも呼ばれます) の前に DKIM が使用する CNAME レコードを示 します。 値は selector1 または selector2 であり、 SelectorAfterRotateOnDate 値とは異なります。
  • SelectorAfterRotateOnDate: RotateOnDate 日時の後に DKIM が使用する CNAME レコードを表示します。 値は selector1 または selector2 であり、 SelectorBeforeRotateOnDate 値とは異なります。

このセクションの説明に従ってドメインで DKIM キーのローテーションを行う場合、変更はすぐには行われません。 新しい秘密キーがメッセージの署名を開始するまでに 4 日間 (96 時間) かかります ( RotateOnDate の日付/時刻と、対応する SelectorAfterRotateOnDate 値)。 それまでは、既存の秘密キー (対応する SelectorBeforeRotateOnDate 値) が使用されます。

ヒント

カスタム ドメインが DKIM 署名送信メールを開始するタイミングを決定するメイン要因は、DNS での CNAME レコード検出です。

DKIM 署名の検証に使用される対応する公開キー (メッセージの署名に使用された秘密キーを推論する) を確認するには、DKIM-Signature ヘッダー フィールド (セレクターなど、s=selector1-contoso-com) で s= 値をチェックします。

ヒント

カスタム ドメインの場合は、DKIM 署名が有効になっているドメインでのみ DKIM キーをローテーションできます ( [状態] の値は [有効] です)。

現在、*.onmicrosoft.com ドメインの DKIM キーの自動ローテーションはありません。 このセクションの説明に従って、DKIM キーを手動でローテーションできます。 *.onmicrosoft.com ドメインのプロパティで DKIM キーをローテーション できない場合は、この記事の「 Defender ポータルを使用して、*.onmicrosoft.com ドメイン を使用して送信メッセージの DKIM 署名をカスタマイズ する」セクションの手順を使用します。

Defender ポータルを使用してカスタム ドメインの DKIM キーをローテーションする

  1. https://security.microsoft.comの Defender ポータルで、[Email &コラボレーション>ポリシー & ルール>Threat ポリシー>Email認証設定] ページに移動します。 または、Email認証設定ページに直接移動するには、https://security.microsoft.com/authenticationを使用します。

  2. [Email認証設定] ページで、[DKIM] タブを選択します。

  3. [DKIM] タブで、名前の横にある [チェック] ボックス以外の行内の任意の場所をクリックして、構成するドメインを選択します。

    Defender ポータルのEmail認証ページの [DKIM] タブ。

  4. 開いたドメインの詳細ポップアップで、[ DKIM キーのローテーション] を選択します。

    [DKIM キーのローテーション] ボタンを使用したドメインの詳細ポップアップ。

  5. 詳細ポップアップの設定は、次の値に変更されます。

    • 状態: このドメインのキーをローテーションし、DKIM 署名に署名します。
    • DKIM キーの回転 が淡色表示されます。
  6. 4 日後 (96 時間後) に、新しい DKIM キーがカスタム ドメインの送信メッセージの署名を開始します。 それまでは、現在の DKIM キーが使用されます。

    [状態] の値が [このドメインのキーのローテーション] から [DKIM 署名の署名] から [このドメインの署名 DKIM 署名] に変更されたときに、新しい DKIM キーが使用されているタイミングを確認できます。

DKIM 署名の検証に使用される対応する公開キー (メッセージの署名に使用された秘密キーを推論する) を確認するには、DKIM-Signature ヘッダー フィールド (セレクターなど、s=selector1-contoso-com) で s= 値をチェックします。

Exchange Online PowerShell を使用してドメインの DKIM キーをローテーションし、ビット深度を変更する

PowerShell を使用してドメインの DKIM キーをローテーションする場合は、Exchange Online PowerShell に接続して次のコマンドを実行します。

  1. 次のコマンドを実行して、organization内のすべてのドメインの可用性と DKIM 状態を確認します。

    Get-DkimSigningConfig | Format-List Name,Enabled,Status,Selector1CNAME,Selector1KeySize,Selector2CNAME,Selector2KeySize,KeyCreationTime,RotateOnDate,SelectorBeforeRotateOnDate,SelectorAfterRotateOnDate
    
  2. DKIM キーをローテーションするドメインの場合は、次の構文を使用します。

    Rotate-DkimSigningConfig -Identity <CustomDomain> [-KeySize <1024 | 2048>]
    

    新しい DKIM キーのビット深度を変更しない場合は、 KeySize パラメーターを使用しないでください。

    次の使用例は、contoso.com ドメインの DKIM キーをローテーションし、2048 ビット キーに変更します。

    Rotate-DkimSigningConfig -Identity contoso.com -KeySize 2048
    

    次の使用例は、キー ビット深度を変更せずに、contoso.com ドメインの DKIM キーをローテーションします。

    Rotate-DkimSigningConfig -Identity contoso.com
    
  3. 手順 1 のコマンドをもう一度実行して、次のプロパティ値を確認します。

    • KeyCreationTime
    • RotateOnDate
    • SelectorBeforeRotateOnDate
    • SelectorAfterRotateOnDate:

    宛先メール システムは、 SelectorBeforeRotateOnDate プロパティによって識別される CNAME レコードの公開キーを使用して、メッセージ内の DKIM 署名を確認します (DKIM がメッセージに署名するために使用された秘密キーを推論します)。

    RotateOnDate の日付/時刻の後、DKIM は新しい秘密キーを使用してメッセージに署名し、宛先電子メール システムは、SelectorAfterRotateOnDate プロパティによって識別される CNAME レコード内の対応する公開キーを使用して、メッセージ内の DKIM 署名を確認します。

    DKIM 署名の検証に使用される対応する公開キー (メッセージの署名に使用された秘密キーを推論する) を確認するには、DKIM-Signature ヘッダー フィールド (セレクターなど、s=selector1-contoso-com) で s= 値をチェックします。

構文とパラメーターの詳細については、次の記事を参照してください。

カスタム ドメインを使用して送信メッセージの DKIM 署名を無効にする

この記事で前述したように、カスタム ドメインを使用して送信メッセージの DKIM 署名を有効にすると、DKIM 署名が *.onmicrosoft.com ドメインの使用からカスタム ドメインの使用に効果的に切り替えます。

カスタム ドメインを使用して DKIM 署名を無効にしても、送信メールの DKIM 署名を完全に無効にすることはできません。 DKIM 署名は、最終的に *.onmicrosoft ドメインを使用してに切り替わる。

Defender ポータルを使用して、カスタム ドメインを使用して送信メッセージの DKIM 署名を無効にする

  1. https://security.microsoft.comの Defender ポータルで、[Email &コラボレーション>ポリシー & ルール>Threat ポリシー>Email認証設定] ページに移動します。 または、Email認証設定ページに直接移動するには、https://security.microsoft.com/authenticationを使用します。

  2. [Email認証設定] ページで、[DKIM] タブを選択します。

  3. [DKIM] タブで、名前の横にある [チェック] ボックス以外の行内の任意の場所をクリックして、構成するドメインを選択します。

  4. 開いたドメインの詳細ポップアップで、[ DKIM 署名を使用してこのドメインのメッセージに署名 する] トグルを [無効 にスライドします。

    [DKIM キーのローテーション] ボタンを使用したドメインの詳細ポップアップ。

Exchange Online PowerShell を使用して、カスタム ドメインを使用して送信メッセージの DKIM 署名を無効にする

PowerShell を使用してカスタム ドメインを使用して送信メッセージの DKIM 署名を無効にする場合は、Exchange Online PowerShell に接続して次のコマンドを実行します。

  1. 次のコマンドを実行して、organization内のすべてのドメインの可用性と DKIM 状態を確認します。

    Get-DkimSigningConfig | Format-List Name,Enabled,Status
    

    DKIM 署名を無効にできるカスタム ドメインには、次のプロパティ値があります。

    • 有効: True
    • 状態: Valid
  2. DKIM 署名を無効にするドメインの場合は、次の構文を使用します。

    Set-DkimSigningConfig -Identity <CustomDomain> -Enabled $false
    

    この例では、カスタム ドメイン contoso.com を使用して DKIM 署名を無効にします。

    Set-DkimSigningConfig -Identity contoso.com -Enabled $false
    

Microsoft 365 からの送信メールの DKIM 署名を確認する

ヒント

このセクションのメソッドを使用して送信メールの DKIM 署名をテストする前に、DKIM 構成の変更が反映されるまで数分待ちます。

次のいずれかの方法を使用して、Microsoft 365 からの送信メールの DKIM 署名を確認します。

  • テスト メッセージを送信し、宛先メール システムのメッセージ ヘッダーから関連するヘッダー フィールドを表示します。

    1. Microsoft 365 DKIM 対応ドメイン内のアカウントから別のメール システムの受信者 (outlook.com や gmail.com など) にメッセージを送信します。

      ヒント

      DKIM テストのために AOL にメールを送信しないでください。 SPF チェックが渡された場合、AOL は DKIM チェックをスキップする可能性があります。

    2. 宛先メールボックスで、メッセージ ヘッダーを表示します。 以下に例を示します。

    3. メッセージ ヘッダーで DKIM-Signature ヘッダー フィールドを見つけます。 ヘッダー フィールドは次の例のようになります。

      DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=contoso.com;
       s=selector1;
       h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
       bh=UErATeHehIIPIXPeUAfZWiKo0w2cSsOhb9XM9ulqTX0=;
      
      • d=: DKIM がメッセージに署名するために使用したドメイン。
      • s=: メッセージの DKIM 署名の暗号化解除と検証に使用されたセレクター (ドメイン内の DNS レコードの公開キー)。
    4. メッセージ ヘッダーの [Authentication-Results ヘッダー] フィールドを見つけます。 宛先メール システムでは受信メールにスタンプを設定するために若干異なる形式を使用する場合がありますが、ヘッダー フィールドには DKIM=pass または DKIM=OK を含める必要があります。 以下に例を示します。

      Authentication-Results: mx.google.com;
        dkim=pass header.i=@contoso.com header.s=selector1 header.b=NaHRSJOb;
        arc=pass (i=1 spf=pass spfdomain=contoso.com dkim=pass dkdomain=contoso.com dmarc=pass fromdomain=contoso.com);
        spf=pass (google.com: domain of michelle@contoso.com designates 0000:000:0000:0000::000 as permitted sender) smtp.mailfrom=michelle@contoso.com
      

      ヒント

      DKIM 署名は、次のいずれかの条件で省略されます。

      • 送信者と受信者のメール アドレスが同じドメイン内にあります。
      • 送信者と受信者のメール アドレスは、同じorganizationによって制御される異なるドメインにあります。

      どちらの場合も、 DKIM-Signature ヘッダー フィールドはメッセージ ヘッダーに存在せず、 Authentication-Results ヘッダー フィールドは次の例のようになります。

      authentication-results: dkim=none (message not signed)
       header.d=none;dmarc=none action=none header.from=contoso.com;
      
  • Microsoft 365 ヘルプのテストを使用する: この機能にはグローバル管理者*アカウントが必要であり、Microsoft 365 Government Community Cloud (GCC)、GCC High、DoD、または 21Vianet が運営するOffice 365では使用できません。

    重要

    * Microsoft では、アクセス許可が最も少ないロールを使用することをお勧めします。 アクセス許可の低いアカウントを使用すると、組織のセキュリティが向上します。 グローバル管理者は高い特権を持つロールであり、既存のロールを使用できない場合の緊急時に限定する必要があります。

    Microsoft 365 での DKIM 診断 テストのヘルプ。

他のメール サービスでのカスタム ドメインからのメールの DKIM 署名

一部のメール サービス プロバイダーまたはサービスとしてのソフトウェア プロバイダーでは、サービスから送信されたメールに対して DKIM 署名を有効にすることができます。 ただし、メソッドは電子メール サービスに完全に依存します。

ヒント

この記事で前述したように、直接制御しないメール システムまたはサービスにサブドメインを使用することをお勧めします。

たとえば、Microsoft 365 のメール ドメインが contoso.com され、マーケティングメールには Adatum 一括メーリング サービスを使用します。 Adatum がサービスでドメイン内の送信者からのメッセージの DKIM 署名をサポートしている場合、メッセージには次の要素が含まれている可能性があります。

Return-Path: <communication@adatum.com>
 From: <sender@marketing.contoso.com>
 DKIM-Signature: s=s1024; d=marketing.contoso.com
 Subject: This a message from the Adatum infrastructure, but with a DKIM signature authorized by marketing.contoso.com

この例では、次の手順が必要です。

  1. Adatum は、Contoso にサービスからの送信 Contoso メールの DKIM 署名に使用する公開キーを提供します。

  2. Contoso は、MARKETING.CONTOSO.COM サブドメイン (TXT レコードまたは CNAME レコード) のドメイン レジストラーで DNS のパブリック DKIM キーを発行します。

  3. Adatum が marketing.contoso.com ドメインの送信者からメールを送信すると、メッセージは、最初の手順で Contoso に渡した公開キーに対応する秘密キーを使用して DKIM 署名されます。

  4. 宛先メール システムが受信メッセージで DKIM をチェックする場合、メッセージは DKIM 署名済みであるため、DKIM を渡します。

  5. 宛先メール システムが受信メッセージで DMARC をチェックする場合、DKIM 署名のドメイン (DKIM-Signature ヘッダー フィールドの d= 値) は、電子メール クライアントに表示される From アドレスのドメインと一致するため、メッセージは DMARC を渡すこともできます。

    From: sender@marketing.contoso.com
    d=: marketing.contoso.com

次の手順

「SPF、DKIM、DMARC が連携してメール メッセージの送信者を認証する方法」で説明されているように、DKIM だけでは Microsoft 365 ドメインのなりすましを防ぐには不十分です。 また、可能な限り保護を最大限に高めるために SPF と DMARC を構成する必要もあります。 手順については、以下を参照してください。

Microsoft 365 に届くメールの場合、organizationへの配信前に転送中のメッセージを変更するサービスを使用する場合は、信頼できる ARC シーラーを構成する必要がある場合もあります。 詳細については、「 信頼できる ARC シーラーを構成する」を参照してください。

ヒント

Exchange 2016 と Exchange 2019 は、それらを流れるメッセージを変更することが知られており、DKIM に影響を与える可能性があります。