はじめに
近年、メール送信の信頼性とセキュリティの確保が重要視されています。Questetra では Ver. 16.0 にて、利用者が指定する任意のドメインで DKIM 署名を行う機能が追加されました。本記事では、システム管理者が DKIM 設定を行うための手順を説明します。
DKIMとは?
DKIM (DomainKeys Identified Mail) は、メールが送信元のドメインによって正式に認証されたものであることを証明するための技術です。送信側がメールにデジタル署名を付加することで実現されており、受信側は署名をチェックしてメールの改ざんがないことを確認します。
Questetra での DKIM 署名
Questetra から送信されるメールには、デフォルトでは questetra.net ドメインでの DKIM 署名が付与されています。送信元(From アドレス)に応じて、「作成者署名」あるいは「第三者署名」となります。
- 送信元(From アドレス)がデフォルトの場合:作成者署名
- 送信元(From アドレス)が任意のメールアドレスに変更されている場合:第三者署名
利用者が自身が管理するドメイン用の設定を行うことで、送信元(From アドレス)が変更された場合に指定されたドメインにて DKIM 署名が付与されたメールが送信されるようになります(Advanced 以上)。これにより、送信元(From アドレス)が変更された場合にも「作成者署名」が可能となります。
カスタムドメインでの DKIM 署名設定
Questetra では、システム管理者がカスタムドメインの秘密鍵をワークフロー基盤に登録することで、メール送信時に送信者ドメインでの DKIM 署名を行うことができるようになります。以下に設定手順を説明します。
1. キーペアの作成
まず、DKIM 用の秘密鍵と公開鍵のペアを生成します。これは、OpenSSL などのツールを使用して行うことができます。生成する鍵の形式は、「PKCS#8 の PEM 形式(暗号化なし)」です。
例えば、下記コマンドにより、秘密鍵(system.pem) と公開鍵(system.pub) が生成されます。
## PKCS#1 形式の秘密鍵 p1.key を鍵長 2048 bit で生成
$ openssl genrsa -out p1.key 2048
## p1.key を PKCS#8 の暗号化なし形式に変換して system.pem を生成
$ openssl pkcs8 -in p1.key -topk8 -nocrypt -out system.pem
## 秘密鍵から公開鍵の BASE64 形式の文字列を生成(DNS 登録用)
$ openssl rsa -in p1.key -pubout -outform der 2>/dev/null | openssl base64 -A > system.pub2. 公開鍵の DNS への登録
次に、生成した公開鍵を指定ドメインを管理する DNS の TXT レコードとして登録します。
- ドメイン: メール送信時の From アドレスに使用するドメイン
- 名前: {セレクタ}._domainkey
- セレクタ: DKIM の署名に使用する公開鍵を特定するための名前
- TXT レコードの値: “v=DKIM1; p={公開鍵}“

DNS への登録が正しくできると、例えば host コマンドなどで TXT レコードの内容を確認できます。
## DNS レコード確認:{セレクタ}._domainkey.{ドメイン}
## (ドメイン: questetra.com、セレクタ: questetra)
$ host -t TXT questetra._domainkey.questetra.com
questetra._domainkey.questetra.com descriptive text "v=DKIM1; p=MIIBI...(略)...IDAQAB"3. 秘密鍵のワークフロー基盤への登録
最後に、ワークフロー基盤(Questetra BPM Suite)に秘密鍵を登録します。
[システム設定]>[DKIM]メニューから[秘密鍵追加]を行い、次の情報を入力します。
- ドメイン: メール送信時のFromアドレスに使用するドメイン
- セレクタ: DNS で使用したセレクタ
- 秘密鍵: 秘密鍵の全文(”—–BEGIN PRIVATE KEY—–“で始まる文字列)

注意)
秘密鍵は厳重に管理してください。秘密鍵が漏洩すると、なりすましメールの送信に利用される可能性があります。Questetra の DKIM 設定画面では、秘密鍵を追加した後に秘密鍵自体を参照(表示)することはできない仕様となっております。
DKIM 署名の確認
Questetra から送信されたメールには、DKIM-Signature ヘッダが含まれています。受信側では、DKIM-Signature ヘッダから値を取り出し、対象ドメインの DNS から公開鍵を取得し、この公開鍵を利用して署名の照合を行います。
すべての設定が正しく完了していれば、送信元(From アドレス)が対象ドメインのメールアドレスに変更されている場合に、受信メールにて対象ドメインでの DKIM の認証に PASS した旨を確認することができます(利用メールサービスによる)。


まとめ
Questetra でカスタムドメインの DKIM 署名を設定することにより、メール送信の信頼性が向上し、受信者に対して正当なメールであることを証明することができるようになります。
DKIM に加え SPF(Sender Policy Framework)の設定が正しく行われていれば、DMARC(Domain-based Message Authentication, Reporting, and Conformance)ポリシーにも適切に対応することができます。これにより、なりすましメールやフィッシング詐欺などを効果的に防ぎ、メールの信頼性を向上させることができます。
