DKIMとは何ですか?
DKIM ( DomainKeys Identified Mailの略)-ドメインキーによって文字を識別する方法。
DKIMは、送信メールにデジタル署名するためにメールサーバーで構成されます。 送信されたメッセージのヘッダーにこのような署名が存在すると、指定されたドメインから実際に送信されたことが受信側サーバーに通知されます。
多くの場合、迷惑メールの[ 差出人]フィールドには、送信者とはまったく関係のない電子メールが送信されることが知られています。 この場合、DKIMは実際のスパムメールを識別するのに役立ちます。 レターにデジタル署名する他の方法とは異なり、DKIMは既存の形式およびプロトコルと互換性があり、既存のメール配信および受信システムにシームレスに統合できます。
メッセージは秘密鍵を使用してSMTPサーバーで署名され、署名は公開鍵を使用して受信者サーバーまたはクライアントプログラムで復号化されます。 興味深いことに、公開鍵はDNSに保存されているため、1石で2羽の鳥を殺すことができます。 まず、各文字に公開鍵を添付して解読する必要はありません。 次に、この場合、DKIMを使用すると、受信者サーバーに、デジタル署名はないが、おそらくあなたから送信された手紙をどうするかを伝えることができます。 このテクノロジーは、ADSP(Author Domain Signing Practices)と呼ばれます。 ADSPはSMTPサーバーのDNSにも保存され、誰でもどこからでもアクセスできます。
EximでDKIMを構成する
まず、秘密鍵と公開鍵のペアを作成する必要があります。
暗号化方式とキーの長さは、Wikipediaで入手できます。
DKIMは、確立された暗号化ツールを使用します。 現時点では、DKIMの作成者はデジタル署名用にRSA-SHA256とRSA-SHA1の2つのアルゴリズムを提供していますが、将来、他のアルゴリズムをサポートするために技術が拡張される可能性があります。 長いキーはUDP UDPパケットの最大サイズ(512バイト)に収まらないため、キーの長さは4096ビットに制限されています。 推奨されるキーの長さは1024〜2048ビットです。 長すぎると、各メッセージを処理するためにサーバーに計算負荷がかかり、PCまたはクラウドコンピューティングサービスを使用して現在の時間にバスティングすることにより、小さすぎる(384または512ビット)がクラックされます。
調査結果によると、1024ビットのキー長でRSAで暗号化されたデータを解読できるようになりました。 したがって、今日最適なのは、2048ビットの長さのRSAキーです。
キーペアを生成するには、オンラインサービスwww.port25.com/support/domainkeysdkim-wizardを使用するか、コンソールでopensslを使用できます。
opensslを介して秘密鍵を生成します
root@server# openssl genrsa -out /usr/local/etc/exim/example.com.key 2048
出力には、次の形式のキーがあります。
-----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDT1tSzyG2Zch4LTgGPbn/8H535Vd+friNn/gBsV7rFNVZdxapD dOUzeATUTbAG/3Ux7vJxYd6i982IajVz0b2dsmkdDzctC4EdJsLcpCpyf3x21nYZ oJO2GjaFW65MNj7dU7BXDerLTE+zTu/Q4vs4ZqCA39CtbmetjBS9l/NsMQIDAQAB AoGBAM2ZyVFAatkQSBaivLwlWknapSPgv4g7h5FSTXeI9i5frx+V1UnRDki+FTx nbH9CErRZh8jZQj4x1Pp+T0SyRtb62ydJooPYIpNlTt71cgZNwH174uFt4HevKmC MJIhzaufEZYhamS4NQOR+4FakdZX2T8yzuvwDwkplJP2tO/tAkEA7RDltCTOShdd sJYs0wjs1mDXUiSz0giFAYvMBvOelpyjJl9Pi1A0CNcD4WdvAl0Xo5aRMVrTXRzf .... -----END RSA PRIVATE KEY-----
秘密に基づいて公開鍵を生成します
root@server# openssl rsa -in /usr/local/etc/exim/example.com.key -pubout
出力は次のようになります。
-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA3GNADCBiQKBgQDT1tSzyG1Zch4LTgGPbn/8H535 Vd+friNn/gBsV7rFNVZdxapDd0UzeATUTbAG/3Ux7vJxYd6i982IajVz0b2dsmkd DzctC4EdJsLcpCpyf3x21nYZoJO2GjaFW65MNj7dU7BXDerLTE+zTu/Q4vs4ZqCA ... -----END PUBLIC KEY-----
DNSを修正します
DKIMセレクターを追加する
次の値を使用して、DNSにmail1._domainkey.example.com TXTレコードを作成します。
k=rsa\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDT1tSzyG1Zch4LTgGPbn/8H535Vd+friNn/gBsV7rFNVZdxapDdOUzeATUTb...
(この場合、これはBIND上のDNSサーバーの構文であり、他のDNSサーバーは「;」をエスケープするために「\」記号を必要としない場合があります。
mail1の代わりに、 dkim 、 server 、 publicなどの別のセレクターを使用できます。 DKIMには、いくつかの同様の公開キーエントリがあります。
DNSレコードが他のサーバーで更新されるまで待つ必要があります。 これには数時間かかる場合があります。
たとえば、 DNSWatchサービスを使用して、DKIMレコードを確認できます。
ADSPレコードを追加
値dkim = unknownを使用して、タイプTXTのDNSレコード_adsp._domainkey.example.comに作成します。
不明に加えて、dkimパラメーターにはさらに2つの値-allおよびdiscardableを指定できます。
- 不明 -ドメインは一部またはすべての文字に署名する場合があります。
- all-ドメインからのすべての手紙が署名されます。
- 破棄可能 -ドメインからのすべての手紙は署名されています。 さらに、パスの変更、署名キーへのアクセスなしでパスを通過すること、またはその他の理由により、有効な署名なしで手紙が到着した場合、ドメインは受信者に拒否を勧めます。
Eximの設定を編集
ファイル/ usr / local / etc / exim / configureで 、先頭に追加します :
## DKIM: DKIM_DOMAIN = ${lc:${domain:$h_from:}} DKIM_FILE = /usr/local/etc/exim/${lc:${domain:$h_from:}}.key DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
この設計により、ドメインごとに異なる秘密鍵を使用できます。
トランスポートremote_smtpを修正します。
remote_smtp: driver = smtp dkim_domain = DKIM_DOMAIN dkim_selector = mail1 dkim_private_key = DKIM_PRIVATE_KEY
ここで、 mail1はセレクターです。
設定を保存して再読み込みします。
root@server# service exim reload
DKIMチェック
DKIMを確認するには多くの方法があります。 それらのうち2つについて説明します。
1)GmailがメールのDKIMレコードをチェックすることが知られています。 Gmailメールボックスにメールを送信し、ヘッダーを確認します。
フォームの記録を見つける
Authentication-Results: mx.google.com; spf=pass (google.com: domain of info@example.com designates 100.12.94.241 as permitted sender) smtp.mail=info@example.com; dkim=pass header.i=@example.com
dkim = passは、DKIMが構成され、成功したチェックに合格したことを意味します。
2)サービスwww.port25.comの DKIMチェッカーを使用します。
check-auth2@verifier.port25.comにテストレターを送信し、それからの検証結果を待ちます。
参照:
DKIM wiki en.wikipedia.org/wiki/DomainKeys_Identified_Mail
DKIM ADSP www.dkim.org/specs/draft-ietf-dkim-ssp-04.html
DKIMウィザードwww.port25.com/support/domainkeysdkim-wizard
HOWTO:EximおよびDKIM forum.lissyara.su/viewtopic.php?f=20&t=22162
男openssl
DNSWatch www.dnswatch.info