2011年1月11日火曜日

Google AppsがDKIMに対応

Google AppsがDKIMに対応したとのことなので、早速設定を入れてみた。

DKIMとは公開鍵技術を使って、メール送信者(送信ドメイン)を偽造することを防ぐ技術。似たような技術にSPFがあるが、SPFはソースIPアドレスを用いて認証を行うのに対し、DKIMはヘッダやメッセージの電子署名を用いる点が異なる。

実施に当たって、実にありがたいことに面倒なことはほとんどGoogleのクラウドがやってくれるが、一点だけユーザーで行わなければならないことがある。

DKIMの仕組み上、受け取り側がメッセージを検証するために、送信元の公開鍵をグローバルに公開する必要があるが、これにはDNSのTXTレコードを使用することになっている。

DNSの管理はGoogle外なので、つまりユーザーは自らの管理するDNSにTXTレコードを作る作業は自分で行わなければならない。

公開鍵はGoogle Appsのコントロールパネルで生成できる。(Advanced Tools⇛Authenticate email)

あとはこれをコピー&ペーストでBINDのマスターファイルに転記すればよい。ootsuka.jpドメインの場合は、以下のようになった。

google._domainkey 86400 IN TXT ("v=DKIM1; k=rsa; t=y; 
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkQF6QQxwRDtOW7LlvAtY5PxYfWlW+
YkUSroBt6SZdlCIwxyP6jQBxvbEsaDeqVtBOApk25TRkeaVa2Dnr7CNAdlIPNY/07dudEO
/NQMSWxZ/y9pZsXKPeWhpjgRelkh9PES5Kdh3XrA+K0ncw4R1lZJYVhxsgF8VpQxhAoAa6
3QIDAQAB")

digで確認。

$ dig -t txt google._domainkey.ootsuka.jp @a.ns.ootsuka.jp

; <<>> DiG 9.5.1-P3 <<>> -t txt google._domainkey.ootsuka.jp @a.ns.ootsuka.jp
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59951
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1

;; QUESTION SECTION:
;google._domainkey.ootsuka.jp. IN TXT

;; ANSWER SECTION:
google._domainkey.ootsuka.jp. 86400 IN TXT "v=DKIM1\; k=rsa\; t=y\; 
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkQF6QQxwRDtOW7LlvAtY5PxYfWlW+Yk
USroBt6SZdlCIwxyP6jQBxvbEsaDeqVtBOApk25TRkeaVa2Dnr7CNAdlIPNY/07dudEO/NQM
SWxZ/y9pZsXKPeWhpjgRelkh9PES5Kdh3XrA+K0ncw4R1lZJYVhxsgF8VpQxhAoAa63QIDAQ
AB"

;; AUTHORITY SECTION:
ootsuka.jp.  259200 IN NS ns14.zoneedit.com.
ootsuka.jp.  259200 IN NS a.ns.ootsuka.jp.
ootsuka.jp.  259200 IN NS ns16.zoneedit.com.

;; ADDITIONAL SECTION:
a.ns.ootsuka.jp. 259200 IN A 219.99.179.189

;; Query time: 1 msec
;; SERVER: 219.99.179.189#53(219.99.179.189)
;; WHEN: Tue Jan 11 01:02:10 2011
;; MSG SIZE  rcvd: 383

ootsuka.jpというドメインから見ると、どの程度効果があるのかは不明だが、Google Appsという世界でも有数のホスティングサービスが対応した点で大きな意義があることだと言えるだろう。