DKIMとは
DKIM(DomainKeys Identified Mail)は、公開鍵暗号方式を使用してメールにデジタル署名を付与し、送信元とメール内容の完全性を検証する技術です。メールが改ざんされていないことを保証します。
DKIMの仕組み
- 送信サーバーが秘密鍵でメールに署名
- 署名をメールヘッダーに追加
- 公開鍵をDNSに登録
- 受信サーバーがDNSから公開鍵を取得
- 公開鍵で署名を検証
DKIM署名の例
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=example.com; s=default;
h=from:to:subject:date;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk4yAUoqOB...
DKIM署名の主要な要素
v=1: DKIMバージョンa=rsa-sha256: 署名アルゴリズムd=example.com: 署名ドメインs=default: セレクター(鍵の識別子)b=...: デジタル署名
DKIM鍵の生成と設定
# DKIM鍵ペアの生成
opendkim-genkey -t -s default -d example.com
# 公開鍵をDNSに登録
default._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG..."
自社メールサーバー運用への応用
OpenDKIMの実装
自社メールサーバーでDKIMを実装する際は、OpenDKIMを使用します。Postfixとの統合も容易です。
# OpenDKIMの基本設定
Domain example.com
KeyFile /etc/opendkim/keys/default.private
Selector default
Socket inet:8891@localhost
DKIM運用のポイント
- 鍵のローテーション: 定期的に鍵を更新(推奨:年1回)
- 鍵長: 2048ビット以上を推奨
- セレクター管理: 複数の鍵を管理する場合はセレクターを使い分け
- 秘密鍵の保護: 適切なファイルパーミッション設定
SPF、DKIM、DMARCの連携
DKIMはSPF、DMARCと組み合わせることで、最強のメール認証を実現します:
- SPF: 送信元IPアドレスの認証
- DKIM: デジタル署名による認証
- DMARC: 両者の結果に基づくポリシー制御
関連ブログ記事
まとめ
DKIMは、メールの送信元と内容の完全性を保証する重要な認証技術です。自社メールサーバーでは、OpenDKIMを使用して実装し、SPF、DMARCと組み合わせることで、強固なメールセキュリティを実現できます。
