送信ドメイン認証技術解説
電子署名を使うDomainKeysの設定方法
末政 延浩センドメール株式会社
テクニカルディレクター
2006/1/12
dk-milterを導入してみよう
ここからは実際にDomainKeysを導入する方法について説明する。dk-milterは、sendmail MTAと同様のライセンスでオープンソースとして公開されており、送信側での電子署名、受信側の認証の両方に利用できる。
dk-milterはsendmail MTAのプラグインとして動作するメールフィルタで、オープンソース版sendmail 8.13.0以降か商用版Sendmail 3.1.6以降で動作する。dk-milterのバージョンは原稿執筆時点(2005年12月14日)で0.3.2である。以下のURLからダウンロード可能である。同時にsendmail MTAの最新版もダウンロードしておこう。
| dk-milter http://sourceforge.net/projects/dk-milter/ sendmail MTA http://www.sendmail.org |
dk-milterのビルド
sendmail MTAのソースとdk-milterのソースをダウンロードして適当なディレクトリに展開する。site.config.m4.sampleをコピーしてdevtools/Site/site.config.m4を作成し、
| APPENDDEF(`confENVDEF', `-DMILTER') |
を追加する。そのほか必要に応じてオプションを追加/削除したうえで、ソースのTOPディレクトリで「./Build」を実行してから、さらにroot権限で「./Build install」を実施する。これでmilterに対応したsendmail MTAがインストールできる。
次にlibmilterをコンパイルおよびインストールする。まずlibmilterディレクトリに移動して「./Build」を実施し、コンパイルに成功したらroot権限で「./Build install」を実施する。
そしてdk-milterのソースディレクトリのTOPにおいて「./Build」を実行してから、さらにroot権限で「./Build install」を実施する。以上でdk-filterが利用可能になる。
なお、すでにOS付属のlibmilterなどが存在し、そのlibmilter.aを作成したコンパイラとdk-filterをコンパイルするgccのバージョンが異なるとコンパイルに失敗する場合がある。その場合はdk-filter/Makefile.m4を編集し、新たに作成したlibmilter.aファイルを直接指定すると回避できる。
DomainKeys用の鍵の作成と公開
鍵の作成はOpenSSLのツールを利用する。dk-milterのソースに含まれるINSTALLに手順の簡単な説明があるので一読しておくことをお勧めする。一連の作業を実施する「gentxt.csh」というコマンドが「(dk-milterのソースのTOPディレクトリ)/dk-filter」以下にあり、これを用いて、秘密鍵、公開鍵、およびDNSに登録するTXTレコードのサンプルを簡単に作成できる。
ここではセレクタを「k1」に、DomainKeysで認証可能にする送信ドメインを「sm-ex.co.jp」とする。
| # cd dk-filter # ./gentxt.csh k1 sm-ex.co.jp k1._domainkey IN TXT "g=; k=rsa; t=y; p=MFwwDQYJKoZIhvc NAQEBBQADSwAwSAJBANm1IZUEICVj7 N1KEQVxOgpGWDB2NkWxkvgVBEWZ9WYOB8VK9mntghacav OILo8KkshxGmCh6SOyLlQqmrMCzpkCAwEAAQ==" ; ----- DomainKey test for sm-ex.co.jp |
実行すると、秘密鍵をk1.privateに、公開鍵をk1.publicにそれぞれ出力する。また、コマンドの結果としてDNSのzoneファイルにそのまま記述可能なTXTレコードのサンプルが出力されるので、これをDNS上に公開する。
デフォルトでは鍵長512bitの鍵が作成される。必要に応じてgentxt.cshの32行あたりを編集し鍵長を調整するといいだろう。
サイトポリシーの公開
DomainKeysでは公開鍵のほかにドメインポリシーを公開できる。ドメインポリシーには、認証結果を受信者にどのように扱ってほしいかを記述する。ドメインポリシーは送信ドメインに「_domainkey」を追加したFQDNに対するTXTレコードとして公開する。例えば、
| _domainkey.sm-ex.co.jp.TXT "t=y; o=~" |
となる。「t=y」は試験的な運用であることを示している。「o=」は電子署名の実施について表示するもので、値が「-」の場合はすべてのメールに署名を実施する。また「~」の場合は署名してあるものもないものもあるという意味になる。
ドメインポリシーはDomainKeysの認証に失敗した場合にのみ参照すべきとされている。また、参照時に値が得られなかった場合はデフォルト値「~」と判断するように定義されている。ほかにもタグが存在するが詳しくはドラフトを参照してほしい。
3/4 |
| Index | |
| 電子署名を使うDomainKeysの設定方法 | |
| Page1 電子署名方式で最も普及しているDomainKeys DomainKeysのヘッダ DomainKeysレコード |
|
| Page2 DomainKeysはメールの転送に強い DomainKeysはメーリングリストが苦手 送信サーバと受信サーバにおける注意点 ほかのメール暗号化方式との関係 |
|
| Page3 dk-milterを導入してみよう dk-milterのビルド DomainKeys用の鍵の作成と公開 サイトポリシーの公開 |
|
| Page4 dk-milterの起動とsendmail MTAの設定 認証結果 送信ドメイン認証の今後 |
|
| ドメイン認証技術解説 | |
| Sender ID:送信者側の設定作業 | |
| Sender ID:受信者側の設定作業 | |
| 電子署名を使うDomainKeysの設定方法 |
TechTargetジャパン
- Facebook タイムライン利用時の「鉄則」 (2012/2/9)
ユーザーインターフェイスの変更措置に伴い浮上した、Facebookの「過剰な情報提供」のリスクと対策とは - 無料サービスなら通信内容を記録してもいいの? (2012/1/13)
無料の公衆無線LANサービスが、ユーザーに無断で通信履歴を記録していたことが判明し、話題に - 攻撃はまるでレーザービーム (2011/12/26)
2011年に話題となった標的型攻撃は「人」という弱点ををねらい打ちにしました。では、人に教育さえしておけば防げるものなのでしょうか? - 見せたくないなら「持たせない」が鉄則! (2011/12/15)
逆コンパイル対策で難読化したのに、大事なデータが解析されちゃった? Androidアプリのセキュリティの道は深い
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
