認証サイトの設計と対応ソフトの実際企業責任としてのフィッシング対策(2/4 ページ)

» 2006年03月27日 11時00分 公開
[末政延浩,ITmedia]

●dk-milter

 DomainKeysをサポートするMilter。sid-milter同様、SENDMAIL.NETからソースコードを入手できる。0.3.2が最新バージョンで、sid-milterと同じく、sendmail MTA 8.13.0以降(商用版Switch 3.1.6以降)で動作する。dk-milterの起動パラメータを表8に示す。

表8 表8●dk-milterの起動パラメータ一覧

 dk-milterを使って、DomainKey-Signatureの追加(メールへの署名)とチェックが行える。

sid-milterとdk-milterのコンパイル

 sendmail 8.13.0以降のバージョンを、Milterを利用できるようにコンパイル、インストールした後で、ダウンロードしたファイルを展開して、トップディレクトリで「sh./Build」を実施する。詳しくは、それぞれのソースに付属しているREADMEなどを参考にしてほしい。

メールのサブミッションポートとSTARTTLSのサポート

 モバイルユーザーが会社のメールサーバを利用してメールを送信できるように、メールサブミッションポートを用意する。従来、メールの送信にはTCPの25番ポートを利用していたが、これは本来、MTA-MTA間のメール配送に利用するポートで、MUAから最初にMTAにメールを送信する(サブミッションする)際は587番ポートを使うべきである。だが、25番ポートと同じ設定のままで587番を外部に向けてオープンするだけでは、そこにスパムを送信されてしまうので、587番ではSMTP AUTHを必須とする。つまり、587番ポートは、自社のユーザーしかメールを送信できないポートに設定しておく。

 また、インターネットを経由してメールを送信すると、メールの内容をのぞき見られてしまう可能性があるので、TLSによって暗号化通信ができるようにする。まだ多くのMUAではチャレンジ&レスポンス式のSMTP AUTHをサポートしていないので、SMTP AUTHをインターネット経由で行うと解読可能なテキストのパスワードがインターネットに流れることになる。これをのぞき見られることを防ぐ意味でも、STARTTLSのサポートは必須である。

SPFレコードを公開する

 次に、SPFレコードを公開してみる。ここでは、ゲートウェイサーバでのみ外部にメールを送信するとする。レコードは次のようになる。ポイントは末尾の「~all」だ。

example.com. IN TXT "v=spf1 +ip4:xxx.xxx.xxx.xxx ~all"

 ip4:xxx.xxx.xxx.xxxの条件にマッチしなかった場合、この「~all」のディレクティブが適用されるが、これは「SoftFail」を示している。「~all」によって、もしxxx.xxx.xxx.xxx以外からメールが届いた場合でも、即座に受信拒否しないように、「若干厳格にスパムかどうかを検査するべきだ」というポリシーを受信側に伝えることができる。

DomainKeysの公開鍵を公開する

 DomainKeysに利用する鍵は、「openssl」コマンドで作成できる。まず、秘密鍵を次のように作成する。

$ openssl genrsa -out dkeys.priv 768

 次に、公開鍵をPEM(*17)フォーマットで取り出す。

$ openssl rsa -in dkeys.priv -out dkeys.pub -pubout -outform PEM

 このdkeys.pubのPEMラッピング(ファイルの先頭行と末尾の行)と改行も削除して1行にしたのち、TXTレコードに登録する。

june._domainkeys IN TXT "g=; k=rsa; p=XXXXXXXXXXXXXXXX" (※XXXXXXXXXXXXXXが公開鍵)

 DomainKeysは本来、公的なCA(認証局)により署名された証明書などは利用しなくてもよいようにデザインされている。公的なCAの署名の利用については、まだ検討中だ。現時点では、CAによって署名された証明書に含まれている公開鍵を利用する場合は、CAによる署名を取り除く必要があるため、利用する意味がない。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ