DKIMについて勉強しました!

2023.12.14.木
技術

こんにちは!
入社2年目の茶谷です。

今回は、DKIMとその他の送信ドメイン認証技術、それぞれの仕組みやメリット・デメリットを勉強してまとめてみました!

DKIM(DomainKeys Identified Mail)とは


なりすましメールを対策する送信ドメイン認証技術の1つです。

送信ドメイン認証技術には、送信元のIPアドレスを利用するものと、電子署名を利用するものに大きく分けられ、DKIMは電子署名を利用する方になります。

一方で、送信元のIPアドレスを利用するものはSPF(Send Policy Framework)になります。

なりすましメールとは?


そもそもなりすましメールとはなんでしょうか?
なりすましメールは、送信元のメールアドレスが大企業や有名サイトだったり、取引先などに見せかけたメールのことを言います。
悪意のある第三者がなりすましメールを使って、詐欺や個人情報の不正取得を狙ってきます。

どうやってなりすましてくるのか


なりすましメールは、「エンペロープFrom」「ヘッダFrom」という、2つの送信元メールアドレスの仕組みを悪用しています。

エンベロープFrom
メールサーバがメールを配送するのに使うメールアドレスで、
手紙を郵送するときに、封筒に書かれた送り主の情報のようなものです。

ヘッダFrom
GmailやThunderbirdなど、メールクライアントソフトでメールを読むときに差出人として表示されるメールアドレスです。
このメールアドレスは、封筒の中に入っている便せんに書かれた送り主の情報のようなものです。

実際の郵便でも、便せんと封筒に書く送り主の情報を別々にすることができますね。
メールの場合も、エンベロープFromとヘッダFromを必ず同じにしなければならないといったことはありません。

なりすましメールはこの仕組みを悪用して、届いたメールはあたかも大企業や有名サイト、取引先から送信されたメールであると見せかけます。
受信したメールをよくよく見ないと、なりすましであることに気が付かないため、受信者はメールの内容に従ってしまい被害にあってしまいます。

事例1:

メールに書かれていた偽サイトでクレジットカードの情報を入力してしまい、クレジットカードが不正利用された。

事例2:

日本航空が航空機をリース導入している金融会社から、支払い口座の変更連絡が来た。
メールアドレスや担当者名がいつもと同じだったことから、3億6000万円を送金。
翌日、金融会社から入金されていないと連絡があり、詐欺だと発覚。
JAL、約3億8,000万円の詐欺被害 不正メールで偽口座に振込み指定 | TRAICY Japan

なりすましメール対策の種類


なりすましメールの対策として、はじめに挙げた「DKIM」と「SPF」、それから「DMARC」があります。

SPF DKIM DMARC
概要 送信元メールサーバのIPアドレスで、なりすましかどうかを判断する 送信メールに電子署名を付与して、なり済ましでないことを証明する SPF・DKIMの検証結果をもとに、メールを処理するポリシーを設定する
設定の負担/
難易度
最も簡単で、手間がかからない SPFより設定の手間がかかり、専門知識も必要になる 最も専門知識が必要となり、設定の負担も大きい
対策の有効性 3つの内では最も有効性が低い SPFよりは有効 最も有効

SPFの仕組み


  • 送信元メールサーバの情報(IPアドレス)をもとに、なりすましメールかどうかを判断する
  • あらかじめDNSサーバにそのドメインでメールを送信する可能性がある、正当なメールサーバのIPアドレスを登録しておく → SPFレコード
  • 受信側は送信元ドメインとSPFレコードを照合して、なりすましかチェック


他の認証技術との比較

メリット

  • 送信元は、DNSサーバに必要なSPFレコードを登録するだけで対応できるので手間がかからない

デメリット

  • SPFレコードに登録した以外のメールサーバを経由すると、正しく判定できない(転送されたメール等)
  • エンベロープFromのなりすまししかチェックできない
  • メールの送信元は、送信したメールが受信先でどのように扱われたかわからない(メール削除したか、迷惑メールとして扱われたとか)
  • 送信メールが認証できないとき、それがなりすましメールなのか技術的な問題で認証できてないだけなのか、受信者は判断できない

DKIMの仕組み


    • 送信元メールアドレスの正当性を証明するために、電子的署名を使う
    • 送信者は、自分だけが知っている「秘密鍵」でメールから暗号データを生成(電子署名)して、もとのメールと一緒に送付
    • 受信者は、送信者が公開している「公開鍵」を使って電子署名を復号して、復号したメールデータと、暗号化されていないメールをチェックして、一致すれば正当なメールと判断できる


他の認証技術との比較

メリット

  • SPFと違い、転送メールなども正しく判定される
  • 送信元の正当性だけでなく、メールの本文やヘッダが改ざんされていないかもチェックできる

デメリット

  • DNSサーバの登録に加えて、電子署名の設定・管理が必要になるので、SPFより負担が大きく、専門知識も必要
  • メールの送信元は、送信したメールが受信先でどのように扱われたのか確認できない
  • 送信メールが認証できないとき、それがなりすましメールなのか技術的な問題で認証できてないだけなのか、受信者は判断できない

DMARCの仕組み


  • SPFとDKIMの認証結果をもとに、メールの処理方法を指示する技術
  • 送信メールが正当なメール判断されなかったときに、受信者がそのメールに対して取るべき処理方法をDNSサーバに指定しておく
  • たとえば、認証が失敗したときはメールを「拒否する」というポリシーが設定されていた場合、該当するメールは受信時ににメールサーバが削除する
  • メールの処理結果を受信側のメールサーバがから送信側メールサーバにレポートする機能もあるため、送信側は送信したメールがどのように処理されたか把握できる


他の認証技術との比較

メリット

  • SPF・DKIMの両方を使って認証するので、高い精度でなりすましメールを判別できる
  • 転送メールも正しく判別される
  • 送信元の正当性だけでなく、メールの本文やヘッダが改ざんされていないかもチェックできる

デメリット

  • DNSサーバの登録に加えて、電子署名の設定・管理が必要になるので、SPFより負担が大きく、専門知識も必要
  • 送信先のドメインごとにレポートの送受信が発生するため、他の方法に比べて負荷が高い
  • 日本でのDMARCの普及率が低いので、レポートが送信されるドメインが限られている

DMARC普及率

日本のDMARCの普及率は、プルーフポイントによる調査(2022年12月実施)によると、調査対象の18か国の中で最下位だそうです。

日経225企業におけるDMARC導入率 :31%
デンマーク (OMXC25):100%
アメリカ (Fortune1000):88%
フランス (CAC40):83%
イギリス (FTSE250):74%
オーストラリア (ASX200):77%

日本のDMARC導入率、調査対象18か国の中で最下位 | Proofpoint プルーフポイントによる調査

SPF / DKIM / DMARC の対応に必要なこと


送信側


送信ドメイン認証の種類 設定内容
SPF
  • DNSサーバに専用のSPFレコードを登録する
DKIM
  • DNSサーバに、電子署名で使う公開鍵のデータを登録する
  • 送信メールに電子署名を付与するシステムを準備する
DMARC
  • DNSサーバに専用のDMARCレコードを登録する
  • DMARC用のレポートを受信するためのシステムを準備する
  • DMARC用のレポートを可視化して見やすくするシステムを準備する

受信側


送信ドメイン認証の種類 設定内容
SPF / DKIM / DMARC共通
  • 認証を行うシステムの準備
  • 認証結果に基づいてメールの処理を行うシステムの準備
DMARC
  • DMARC用のレポートを受信側へ送信するシステムの準備

GrpMailはDKIM対応しているの?


弊社製品のGrpMailは、2022年11月11日にDKIMに対応しています。
(【GrpMail】DKIMに対応しました)

実は、DKIMの署名は2種類あり、メール送信者のドメインを利用する「作成者署名」と、メール送信者以外のドメインを利用する「第三者署名」があります。

■作成者署名
メール作成者のドメインで署名する方式

■第三者署名
メール作成者ドメイン(メールヘッダのFromアドレスのドメイン)とは異なるドメインで署名する方式

GrpMailは、第三者署名でのDKIM対応をしています。
(お客様からみて、お客様のメールドメインから送信されていないので、第三者になります)

グループの設定でメール送信時のサーバをGrpMailにしている場合、お客様がメールを送信したときに、メールヘッダのFromアドレスのドメインが「.grpmail」となり、DKIM対応されます。

一方、メール送信時のサーバをお客様が指定したサーバにしている場合、GrpMailの送信サーバではなくなるので、DKIMの対象外となります。
ではここで、お客様から「DKIM対応をしてほしい」と依頼があったときはどうするのでしょうか。

GrpMailサーバー以外のSMTPサーバーをDKIM対応する


  1. KP(キー・ポイント)側でDKIM用のSMTPサーバを用意
  2. お客様のSMTPサーバで送信するメールを、1. で用意したサーバを中継するようにする

上記の対応を行うことで、電子署名(DKIM対応)を付与します。

自分のドメインで署名するのではなく、別の人(ドメイン)に電子署名してもらうので、第三者署名となります。

少し分かりにくいですが、

  • 自分のメールドメインではなく、DKIM対応されたgrpmailドメインでメールを送信
  • 自分のメールアドレスだけど、DKIM対応された別のドメインを中継してメールを送信

どちらも第三者署名になります。
(左が、自分のメールアドレスだけど、DKIM対応された別のドメインを中継してメールを送信)
(右が、自分のメールドメインではなく、DKIM対応されたgrpmailドメインでメールを送信)

下図のように、自分で用意した公開鍵を自分のDNSサーバに、秘密鍵をSMTPサーバに配置したDKIMは、作成者署名となります。

おわりに


ここまでで、DKIMの仕組みや他の認証技術との違いなどを一通り勉強できたと思います。

DKIM対応してほしいとお客様からお問い合わせが来たときに、???となり、弊社代表の大西に「DKIMって2種類あるのは知ってる?」と聞かれ、知らないことにだいぶん焦ったのをきっかけに調べてみました。

茶谷渚

茶谷渚

2022年4月に新卒で入社したサーモン大好き社員です。 プログラムを書くのが好きです。学生時代はマイコンプログラミングも少ししていました。