連載
» 2012年01月23日 00時00分 公開

Windows Insider用語解説:DKIM(DomainKeys Identified Mail)

スパム業者や脆弱性を狙う攻撃者がよく用いるメール送信元のなりすまし(偽装)。これをDKIMは検出できるという。その動作原理や限界、最新動向を解説。

[島田広道,デジタルアドバンテージ]
用語解説
Windows Server Insider


「用語解説」のインデックス

連載目次

 電子メールの送信元のドメインを検証する技術の1つ。DKIMを利用すると、送信者を騙ったなりすましのメールや、内容が改ざんされたメールが検証可能で、スパム・メール(迷惑メール)や攻撃メールの減少が期待されている。DKIMを実装するにはメール・サーバやDNSサーバでの作業が必要なので、これらの管理者は今後、対応を迫られる可能性がある。

DKIMのような送信元を認証する技術が必要とされる理由

 スパム・メール(迷惑メール)を大量送信する業者や、不正な添付ファイルを付けたメールを送信して脆弱性を突こうとする攻撃者は、存在しないメール・アドレスやまったく関係のない他人のメール・アドレスを送信元(メールの発信者)に設定して(つまりメールのFrom:を偽装して)、こうしたメールを送信することがよくある。これは、受信者に本当の送信元を突き止められて対策あるいは追及されるのを防いだり、あるいは受信者をだましてメールを開かせたりするためだ。逆にいえば、メールの送信元が「正しい(なりすましや詐称ではない)」かどうかが判定できれば、スパム・メールや攻撃メールへの対策はより簡単になり、ひいてはこうした不正なメールの流量を減らせる効果を期待できる。

 こうした背景から、メールの送信元を検証する技術が考案され、そのうちのいくつかは実際にインターネット上で利用されている。例えば「SPF(Sender Policy Framework)」「Sender ID」は、IPアドレスを使って送信元を検証(認証)できる技術で、対応が比較的簡単なことから普及が進んでいる。「DKIM(ディー・キム)」もこうした送信元の認証技術の一種で、規格としては、RFC4871で規定されている。

電子署名とDNSを活用するDKIMの仕組み

 DKIMの特徴は、送信ドメインの認証に電子署名を用いることにある。送信時には秘密鍵でメールに署名し、受信時には公開鍵で署名を確認することで、送信元のなりすましや配送中のメール内容の改ざんを検出する。公開鍵は、送信元ドメインのDNSサーバから受信側のメール・サーバに提供される。

DKIMの仕組み
これはDKIMの基本的な動作原理を表している。電子署名を利用して送信ドメインを認証している点がDKIMの特徴だ。
  (1)メール・クライアントが送信側メール・サーバにメールを送信する。ここはDKIMのないシステムと変わらない。
  (2)送信側メール・サーバは、メールの内容を基に、DKIMのための秘密鍵を用いてメールに電子署名を施し、メール・ヘッダに付加する。
  (3)電子署名を付けたメールを受信側メール・サーバに送信する。
  (4)署名付きメールを受け取った受信側メール・サーバは、署名に併記されている送信元ドメインのDNSサーバに問い合わせて、対応する公開鍵を取得する。
  (5)(4)の公開鍵で署名を確認する。
  (6)メール・クライアントがメールを受け取る。このとき、通常は(5)の認証結果がメール・ヘッダに記されており、それを元にメール・クライアントは振り分けなどの処理を決定できる。

 送信時に付加される電子署名は、次のようなメール・ヘッダに記録される。

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=yahoo.co.jp; s=yj20110701; t=1326717679;
  bh=ExtpJvohMIGobEeZDl6e0ow5wULgntlg4oUwMVz5GQA=;
  h=Message-ID:X-YMail-OSG:Received:X-Mailer:Sender:Date:
  From:Subject:To:MIME-Version:Content-Type;
  b=XOfmwZlpsJ3NFYwbpiGA4EtXInltL9nWtos6T3ung99ROcyjj4tUs
  jvH3yYptE6xJxAFOJseDHNmuMDER/xhAmyho4G6S3ylEfYAYdECXamD
  GBbJ//ScE/sdJzrs//AZseu4H1t8U0uFwM48KiOH7xHIz1qJV3UfgNF
  PaWr0IrU=

DKIMの電子署名の例
「b=」の後に続いているのが電子署名である。受信側のメール・サーバは、このヘッダから公開鍵を取得するためのDNSサーバを特定したりする。

 受信時の認証結果は通常、メール・ヘッダに記録される。

Authentication-Results: mx.google.com; spf=pass
  (google.com: domain of *******@yahoo.co.jp
  designates ***.***.***.*** as permitted sender)
  smtp.mail=*******@yahoo.co.jp;
  dkim=pass header.i=@yahoo.co.jp

DKIMの認証結果を含むメール・ヘッダの例
これは、GmailがYahoo!メールからDKIM署名付きメールを受信したときの認証結果が含まれるメール・ヘッダ。最下行に「dkim=pass」すなわち認証成功を表す文字列が含まれている。

 これにより、メール・クライアントなどではメール・ヘッダを調べて認証結果を確認し、それによってフォルダの振り分け先を変える、といった処理が可能になる。そのほか、DKIMのもっと詳しい挙動や対応方法などについては、関連記事を参照していただきたい。

DKIMの効果と限界

 もし攻撃者が、あるDKIM対応の送信元ドメインになりすましてメール送信を試みたとしよう。送信元ドメインが持つ秘密鍵は、その名の通り秘匿されており、攻撃者は盗み出せない。そのため送信時にDKIMの署名を作成するには、別の秘密鍵を利用せざるを得ない。すると、その署名は送信元ドメインの公開鍵では正しく復号できず、認証は失敗する。このようにDKIMは、なりすましメールを利用したスパムやフィッシング、あるいは標的型攻撃からの防御には、大きな効果が期待できる。

 一方、攻撃者がなりすましではなく、独自のドメインでDKIM対応のメール・サーバ/DNSサーバを構築した場合、そこから送信されたメールは受信側で正しく認証されてしまう(なりすましではないからDKIMとしては正しい動作だ)。それでも、受信側で送信元ドメインを特定できるため、例えばそのドメインをブラックリストに登録したり、そこから攻撃者を追跡したり、といった対処が容易になる。

 DKIMの弱点の1つは、配送途中でメールの内容が書き換えられると署名の照合に失敗することだ。これはDKIMが、メールの内容(本文とメール・ヘッダ)を基に電子署名を作成するからである。例えばメーリング・リストで元のメールの件名(Subject)に通し番号を加えて配信すると、DKIMの認証に失敗してしまう。もっとも厳密にいえば、こうした書き換えはメールの改ざんに相当するので、DKIMの動作としては正しい。

 また、メール・サーバにはDKIMのロジックを追加する必要があり、メール・サーバの運営者には負担となる。さらに、DKIMの処理が加わることでメール・サーバへの負荷が増大するため、状況によってはハードウェアの増強が必要になるかもしれない。

 その一方で、DKIMによる署名と検証はメール・サーバで行われるので、メール・クライアントがDKIMに対応している必要はない(認証結果のメール・ヘッダを確認する機能はあった方がよいが)。またメール内容を書き換えない限り、メールを複数の中継ノードを経由して配送してもよいし、配送途中のメール・サーバがDKIMに対応していなくても問題ない。

DKIMの普及は始まっている

 DKIMに限ったことではないが、多くのメール・サーバがDKIMに対応して初めてDKIMによるなりすましメールの検出が期待できる。執筆時点では、DKIM対応のメール・サーバは決してまだ多くないが、それでも普及は始まっている。

 DKIMの普及のために設立された国内の業界団体「dkim.jp」は、2011年7月に国内の主要なメール送信事業者11社がDKIMに対応したと発表している。

 また国内大手ISPの@niftyやBIGLOBE、So-net、IIJ(IIJ4U、IIJmio)などは、自社のメール・サービスでDKIMに対応している。

 フリーのメール・ボックス・サービス大手のGoogle(Gmail)やYahoo! Japan(Yahoo!メール)もDKIMに対応済みである。Googleについては、ビジネス向けクラウド・サービスであるGoogle Appsのメール・サービスもDKIMをサポートしており、企業が自社ドメインでGoogle Appsを運用できるのであれば、比較的容易に自社ドメインのメールをDKIM対応にできる。


 推測になるが、これから特に受信側のメール・サーバでDKIM対応が進むと、DKIMの署名のないメールは、DKIMの認証に成功するメールに比べてなりすましメールと判定されやすくなる可能性がある。つまり、DKIM未署名のメールはスパム・メールと判定されやすい、といった現象が生じるかもしれない(この場合、逆にいえば、DKIMに対応しているとスパム・メールと誤判定される確率が下がることになる)。

 そうなると、自社のメール・システムの管理者にはDKIM対応が求められるようになるだろう。同時にDNSサーバの管理者には、DKIMのための公開鍵をレコードとして登録する作業が求められるだろう。そのときになってあわてて対応せずに済むよう、システム管理者としてはDKIMの動向をチェックしつつ、DKIM対応にどのような作業が必要になるのか、あらかじめ確認しておきたい。

■関連リンク


「用語解説」のインデックス

用語解説

Copyright© Digital Advantage Corp. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。