連載
» 2006年02月16日 10時00分 UPDATE

送信ドメイン認証技術解説:電子署名方式の最新技術「DKIM」とは (3/4)

[末政延浩,@IT]

受信側での処理と認証結果の処理

 受信側では、メッセージに付与された「DKIM-Signature:」ヘッダを取り出し、次の手順で署名の照合を行う。

  1. 「DKIM-Signature:」ヘッダのdタグ、sタグの値から、公開鍵を取得するFQDNを作成する
  2. 鍵を取得する。このとき、iタグに設定してあるメールアドレスのローカルパートがDKKリソースレコードにあるgタグの条件パターンに合わない場合は、署名の照合を行わない
  3. hタグに記述してあるヘッダと、メール本文(lタグで署名に有効な本文の長さが指定されている場合は、先頭からその長さだけ切り出したもの)、および電子署名データ以外の「DKIM-Signature:」ヘッダの値をつなげてハッシュを作成し、電子署名を作成する
  4. 公開鍵を利用して、電子署名からハッシュを取り出す
  5. 電子署名から取り出したハッシュと、受信したメールから作成したハッシュを比較して同じであれば認証成功

 電子署名の検証の結果は「Authentication-Results:」ヘッダに記録し、該当のメールに追加する。

 DKIMでは認証する対象の送信ドメインはメールの「From:」ヘッダから取り出すのではなく、あくまでも「DKIM-Signature:」というヘッダに指定されているドメインや送信アドレスで認証する。つまりヘッダ上の送信者である「From:」行の値と公開鍵の取り出しに利用したドメイン名が異なる場合が存在する。

 このような場合を「Third Party Signature(仮に「第三者署名」と呼ぶ)」と呼び、署名したドメインと「From:」行のドメインが同じである「First Party Signature(仮に「送信者署名」と呼ぶ)」と区別して考えている。

 「送信者署名」でかつ認証に成功した場合は、「non Suspicious(疑わしくない)」と判断する。それ以外の場合、例えば正当な署名でない場合や「DKIM-Signature:」ヘッダが存在しない場合、あるいは署名の照合に成功していても「第三者署名」の場合は、「From:」ヘッダにある送信者アドレスのドメイン部分に対応するSSPを読み出して最終的な判断を行う。

 例えば、SSPに「-」が指定してある場合、第三者署名で「Sender:」ヘッダの送信ドメインと署名を行ったドメインが等しい場合には「non Suspicious」として扱う。また、受信側が信頼できる第三者であると判断できる場合も「non Suspicious」となる。

 SSPを基にした判定は、最終的に「Suspicious(疑わしい)」か「non Suspicious」になる。ただし、その判定結果を基にメールに対してどのようなアクションを取るか(認証OKとして受信する、受信拒否する、廃棄する、ほかのフィルタで再度チェックするなど)は受信者の判断に委ねられている。

Site Signing Policy(SSP)

 SSPは、受信側において送信者署名による認証が成功しなかった場合、送信側がどのように扱ってほしいかを示すポリシーであり、送信側で公開するものである。なお、ドラフトには、メールが送信者署名により認証に成功した場合は、受信側でSSPを参照すべきではないと記述されている。

 DomainKeysにもSSPは定義されていたが、DKIMになってより詳細に定義されている。SSPもDNS上にTXTレコードか「DKSSPリソースレコード」で公開する。現時点ではTXTレコードを利用する。

 公開に利用するFQDNは、

_policy._domainkey.<ドメイン名>

となる。ユーザー別にSSPを設定する場合は、

<ユーザー名>._policy._domainky.<ドメイン名>

となる。

 「<ユーザー名>」は「From:」ヘッダに記されたメールアドレスのローカル部分となり、「<ドメイン名>」はドメイン名部分となる。電子署名の照合に使う公開鍵は「DKIM-Signature:」ヘッダのdタグやiタグを基に問い合わせるのに対して、SSPはヘッダ部分に記された送信ドメインに問い合わせる点に注意が必要である。

 SSPは「タグ=値」を「;」で区切って列挙する形式で記述する。SSPで利用できるタグの一覧を表3にまとめた。

タグ 説明 省略
n 説明文 可読なテキストでポリシーの説明などを記述するタグ。省略時は指定なし(長さ0の文字列)となる。 省略可
o アウトバウンド署名ポリシー

署名ポリシーを指定する。省略時は「~」。値はそれぞれ次の意味を持つ。

意味
~
署名されるメールもされないメールも存在する。
-
該当ドメインからのメールはすべて署名される。署名されていないものは受信しないべきである。ただし、信頼する第三者が署名している場合は受信する。
!
該当ドメインからのメールはすべて署名される。署名されていないものは受信しないべきである。また、第三者が署名しているものも受信しないようにするべきである。
.
該当ドメインからのメールはいっさい送信されない。
^
ユーザーレベルのSSP「<ユーザー>._policy.<ドメイン名>」を取得する。この値はドメインでのSSPに利用するもので、ユーザーレベルのSSPには利用しない。
省略可
r コンタクトアドレス ポリシーについて問い合わせる場合のメールアドレス。省略時は指定なしとなる。 省略可
t フラグ フラグを指定する。「,」で区切って複数指定できる。指定できるフラグは「y」のみで、これはDKIMの運用が試験モードであることを示す。「y」フラグがある場合、受信側ではこのSSPを基にメールの認証の正当性を判断してはいけない。省略時はフラグなしとなる。 省略可
u URI ポリシーのより詳細な情報を提供するURI。将来の拡張のために予約されている。  
表3 SSPで利用できるタグ一覧


Index

電子署名方式の最新技術「DKIM」とは

Page1

DKIMの両親となったDomainKeysとIIM

DomainKeysとDKIMの違い

DKIMの仕組み


Page2

公開鍵の提供

送信側における電子署名の作成


Page3

受信側での処理と認証結果の処理

Site Signing Policy(SSP)


Page4

DKIMもメーリングリストが苦手

DKIM(dkim-milter)の実装


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

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

メールマガジン登録

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