- DKIMの流れ
- 補足
- 1. Exchange 管理センターから CNAME レコードを確認する手順
- 2. CNAME レコードの登録例
- 3. Exchange 管理センターにて、DKIM 設定を有効にします
- PowershellのコマンドレットでDKIM 設定を有効にします
- 既に別サーバーでDKIMを有効化しているドメインに対して、Office365でもDKIMを有効化できるか?
DKIM (ディーキム)は、秘密鍵によって生成した署名情報を送信メールのヘッダーに記述し、メール受信時に DNS サーバー上に公開されている公開鍵によって署名を照合し、詐称送信されたメールであるか判定を行う機能です。
DKIM のメリットとして、送信元 IP アドレスを利用した SPF 認証と比較し、メールの転送や別のサーバーを中継して送信した場合でも、影響を受けずに判定をおこなうことができます。
DKIMの流れ
- 送信元にて、秘密鍵を使って電子署名を作成します。
- 電子署名を付与して受信者にメールを送信します。
- 受信者は、送信元(DNSサーバー)から取得した公開鍵により電子署名の照合をおこないます。
- 照合により問題がなければ認証成功となります。
※電子署名を作る秘密鍵は該当の送信元しか持っていないため、それ以外の送信元から送信された場合は、秘密鍵を持っていないので電子署名を作ることができず認証に失敗します。
なお、独自ドメインについては、DKIM を有効にしなくても、既定では onmicrosoft.com のドメインの DKIM が有効になっており、独自ドメインでメールを送信しても、onmicrosoft.com のドメインが DKIM チェックを受けることで DKIM のチェックをパスしますので、設定はしなくても大丈夫です。
補足
yahoo メールの [発信元] や Gmail の [署名元] に DKIM のドメインが含まれる動作であるため、独自ドメインで送信した場合でも、[発信元]や[署名元]に、onmicrosoft.comのドメインが記録されてしまいます。
気になる場合は、独自ドメインにDKIMを設定することで独自ドメインを表示するようにすることもできます。
1. Exchange 管理センターから CNAME レコードを確認する手順
- https://outlook.office365.com/ecp/にアクセスし、管理者のユーザーでサインインします。
- 左側のメニューより[保護] > [DKIM] をクリックします。
- 有効化したい独自ドメインを一覧からクリックします。
- [有効にする]ボタンをクリックします。
- 画面上に表示される[この構成の CNAME レコードが存在しません。] 配下に記載されている記述が CNAME レコードです。
<記載例>
selector1-contoso-com._domainkey.contoso.onmicrosoft.com
selector2-contoso-com._domainkey.contoso.onmicrosoft.com
補足
Powershellで確認する場合は以下のコマンドレットで可能です。
Get-DkimSigningconfig <ドメイン> | select selector1CNAME,selector2CNAME
2. CNAME レコードの登録例
Selector1CNAME
ホスト名 : selector1._domainkey
値 : selector1-contoso-com._domainkey.contoso.onmicrosoft.com
TTL : 3600
Selector2CNAME
ホスト名 : selector2._domainkey
値 : selector2-contoso-com._domainkey.contoso.onmicrosoft.com
TTL : 3600
上記の値を該当のドメインの DNS ホスティング プロバイダー (ドメイン レジストラー) に登録してください。
補足
反映するまでは DKIM を有効にすることができませんのでご注意ください。
レコードの反映完了まで最大 72 時間程度かかる場合があります(そこまでかかることはあまりないですが)
3. Exchange 管理センターにて、DKIM 設定を有効にします
- https://outlook.office365.com/ecp/にアクセスし、管理者のユーザーでサインインします。
- 左側のメニューより[保護] > [DKIM] をクリックします。
- 有効化したい独自ドメインを一覧からクリックします。
- [有効にする]ボタンをクリックします。
補足
対象ドメインの [状態] が [このドメインの DKIM キーが保存されていません] または [このドメインに DKIM 署名をしません] と表示されている場合はコマンドレットでの有効化が必要となるため、以下のコマンドレットを実行ください。
PowershellのコマンドレットでDKIM 設定を有効にします
対象ドメインの DKIM の 状態が [このドメインの DKIM キーが保存されていません] の場合は 4-1. を実施します。
状態が [このドメインに DKIM 署名をしません] の場合は 4-2. を実施してください。
4-1. 対象ドメインの DKIM を構成します。
<構文>
New-DkimSigningConfig -DomainName "独自ドメイン" -Enabled $true
<実行例>
New-DkimSigningConfig -DomainName "contoso.com" -Enabled $true
なお、レコード反映後に [警告: 構成は作成されますが、CNAME レコードが公開されていないため、有効にできません。CNAME レコードを公開したら、Set-DkimSigningConfig を使用してこのポリシーを有効にしてください。] のメッセージが表示された場合には、時間をおいてから下記のコマンドレットをお試しください。
4-2. 対象ドメインに対して、DKIM を有効化します。
<構文>
Set-DkimSigningConfig -Identity "独自ドメイン" -Enabled $true
<実行例>
Set-DkimSigningConfig -Identity "contoso.com" -Enabled $true
DKIM が有効であるか確認する方法は、受信したメールヘッダーの[DKIM-Signature]の値から確認することができます。
以下にヘッダー情報を例を紹介します。
ヘッダー例
From: Example User <example@contoso.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
s=selector1; d=contoso.com; t=1429912795;
h=From:To:Message-ID:Subject:MIME-Version:Content-Type;
bh=<body hash>;
b=<signed field>;
※s=selector1 : ホスト名 ,d=contoso.com : ドメイン
※DKIM が有効の場合、d の値には From と同じドメインが含まれます。DKIMが有効でない場合は、初期ドメイン(onmicrosoft.com)が含まれます。
DKIM 署名での認証が失敗した場合の動作を Author Domain Signing Practices (ADSP) にて定めている記述があります。
Exchange Online にでは ADSP は実装されておらず、DKIM のみの判定を行う ADSP の代替として DKIM および SPF での判定を基に動作を指定する Domain-based Message Authentication, Reporting, and Conformance (DMARC) が採用されています。
既に別サーバーでDKIMを有効化しているドメインに対して、Office365でもDKIMを有効化できるか?
複数のサーバーで DKIM 登録を行ったドメイン使用し、それぞれのメールシステムにて使用 (送信) する動作は想定されていないため、DKIM認証に失敗するなどの問題が発生する可能性があります。
そのため、どちらかのサーバーのみで設定することを推奨します。
次回は、DMARC(ディーマーク)について、ご紹介していきたいと思いますので、ご覧ください
以下の記事でもまとめていますので参考としてくださいね。
広告
目の疲れを防止するにはPCメガネがオススメです!