Windowsのnslookupコマンドで SPF、DKIM、DMARC 情報を確認する

スポンサーリンク

メールの基本的な認証方法にはSPF、DKIM、DMARCの3つがあります。今回はメールの基本的な仕組みを知っていることを前提に、SPF、DKIM、DMARCの情報を確認する方法を説明します。

TEST

1.SPF情報を確認する

1.1. SPFとは

SPFとはSender Policy Frameworkの略で、受信したメールが正しい送信者から送られてきたかどうかを確認するための認証方式です。具体的にはSPFではメールの送信元のIPが、エンベロープFromのドメインのDNSレコードに許可したIPとして登録されているかどうかを確認します。

例えば so-net.ne.jp からメールを受信したとしましょう。受信したメールのヘッダーを確認すると以下の情報が確認できます。

1.2. 受信したメールのヘッダー情報

・spfドメイン:mailcentererr.so-net.ne.jp
・送信元IP: 202.238.84.176

SPFドメインに記載のドメインがエンベロープFromのドメインとなります。それでは実際にメールを送信してきたメール送信元 202.238.84.176 が正規のメール送信者として登録されているか確認してみましょう。
※spfレコードは v=spf で始まる txtレコードなので、正確にはtxtレコードです。従って nslookupで検索するレコードのタイプをテキストに指定して確認します。

C:\Users\administrator> nslookup
既定のサーバ:Unkown
Address: 10.0.0.1
> set type=txt
> mailcentererr.so-net.ne.jp

mailcentererr.so-net.ne.jp text =
“v=spf1 ip4:202.238.84.0/24 ~all”

<以下略>

spfドメインのテキストレコードに ip4:202.238.84.0/24 と記述されており、メールの送信元のIPアドレス 202.238.84.176 もこのレンジに含まれているので、 送信元IPが mailcentererr.so-net.ne.jp をエンベロープFromとして利用することを許可されていることがわかります。

2. DKIM情報を確認する

2.1. DKIMとは

DKIM(ディーキム)とはDomain Keys Identified Mail の略でメール受信サーバがメールを受信した際にメールが改ざんされていないかどうかを検証する仕組みです。公開鍵暗号方式が利用されており、送信側が秘密鍵で暗号化したメッセージのハッシュ値を元に、送信側が公開鍵を使って複合し、メッセージが改ざんされていないか確認します。ここでは nslookupコマンドを使って、公開鍵を入手する方法を説明します。

2.2. DKIM公開鍵書式

DKIMはSPFレコードと違って、以下のサブドメインに記録されています。

セレクタ._domainkey.エンベロープFromドメイン

※セレクタはメールヘッダのDKIMの箇所に、「s=XXXX」のような書式で記載されています。XXXの部分がセレクタです。

2.3. 受信したメールのヘッダー情報

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=so-net.ne.jp; s=sn2018; t=154 <以下略>

上記からセレクタは sn2018 であることがわかります。従って、公開鍵が登録されているドメインはsn2018._domainkey.so-net.ne.jp となります。
それでは公開鍵をnslookupコマンドで確認してみましょう。
※公開鍵は v=DKIM で始まるtxtレコードです。

> set type=txt
> sn2018._domainkey.so-net.ne.jp

sn2018._domainkey.so-net.ne.jp text =
“v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6sHzd3UsUizQcm82AW9fKfogPkZrQTBdSuOz6cZV4iLUwMHu5GBBK/nmqVBencErd2QT+xVzTR19Kdg5a2j/ADSNNpqV7XKwNtPmuUXA21eA7xo5/UCfdK46qWPIV2XSD7E6A8pMW6p4VbWmBu+oeaIkRgSO”

<以下略>

3. DMARC情報を確認する

3.1. DMARC とは

DMARC(ディーマーク)とはDomain-based Message Authentication, Reporting & Conformance の略で、SPFやDKIM認証に失敗した場合にその取扱をどうするかを決めたもので、なりすましを防ぐための仕組みです。ちなみDMARCの場合は、SPFと異なり、ヘッダFromに記載されたドメインに問い合わせが行われます。DMARCの詳細はググっていただくとして、ここでは nslookup コマンドで、DMARCを確認する方法を説明します

3.1. DMARC書式

DMARCもDKIMと同じようにサブドメインに記録されていますが、セレクタなどはなく _dmarc をヘッダFromドメインに付加したものとなります。

_dmarc.ヘッダFromドメイン

ヘッダFromドメインはメール送信元のドメインなので so-net.ne.jp となります。従って DMARCが登録されているドメインは _dmarc.so-net.ne.jp となります。それではDMARCを nslookup コマンドで確認してみましょう。

> set type=txt
> _dmarc.so-net.ne.jp

_dmarc.so-net.ne.jp text =
“v=DMARC1; p=none”

<以下略>

以上です。

コメント