DKIMタグ: 必須と任意のタグ
DKIMタグについて学ぶ
2024年4月3日
著者: Ahona Rudra
翻訳: 永 香奈子
この記事はPowerDMARCのブログ記事 DKIM Tags: Required & Optional Tags の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。
DKIMは「DomainKeys Identified Mail」の略で、暗号化されたデジタル署名を使用するメール認証プロトコルです。
また、DMARCポリシーと組み合わせて使用できる補完的なプロトコルでもあります。
DKIMプロトコルは、DNSにDKIMタグとそれに対応する値の組み合わせからなるレコードを設定することで実装できます。
本記事では、必須、任意、推奨、および非推奨のDKIM署名タグについて詳細に解説し、例を交えて説明します。
DKIMタグとは?
DKIMタグとは、デジタル署名の検証のために、送信者に関する詳細を指定するDKIMレコード内の指示です。
適切に構成されたDKIM署名タグは、メールサービスプロバイダがメールメッセージを認証することを可能にします。
GoogleやYahooのような大手企業は、このプロトコルをメール送信者に義務付けており、スパム、フィッシング、およびなりすましを防止しています。
DKIM署名タグの仕組み
受信者のサーバは、メールヘッダー内のデータと送信ドメインの公式DKIMレコードを使用して、メールメッセージの信頼性を検証します。
送信されるメールには、DKIM署名ヘッダーが追加されます。
複数のDKIM署名タグは、送信者に関する情報を含んでおり、受信者のサーバがどこを参照してメールを検証すべきかを示します。
これらのDKIM署名タグは、特定の値を表示する情報コンポーネントであり、それぞれがメール本文の詳細を表します。
すべてのDomainKeysには、デジタルDKIM署名を暗号化するための秘密鍵が含まれています。
さらに、公開鍵がドメインのDNSに公開されています。
そのため、ドメインからメールが送信される際、メール内の秘密鍵が公開鍵と一致していなければ、メッセージは受信者のメールボックスに届きません。
このプロセスは非常に迅速で、数秒以内に完了します。
ただし、これが機能するためには、DKIMレコードを生成し、そのDKIMエントリをDNSに追加する必要があります。
DKIMレコードタグの説明
DKIMレコードは、コマンドとして使用される1組の文字列で構成され、その後に等号が続きます。
各文字は、送信者に関する特定の情報を表す値を指定するDKIMタグを持っています。
各DKIM署名タグには、メッセージを暗号化するために使用される公開鍵の場所に関する詳細が含まれています。
DKIMタグの種類
DKIM署名タグは、「必須タグ」と「任意タグ」に分類され、それぞれの値はDKIMレコードを生成する上で重要です。
また、「非必須」または「非推奨」と分類される他のDKIM署名タグも存在します。
これらは、それぞれのドメインの要件や使用状況に応じて設定できます。
DNSにDKIMレコードを追加する際には、適切なDKIM認証タグが必要です。 以下で、これらのタグについて詳しく説明します。
必須DKIMタグ
必須DKIMタグは、DKIM署名ヘッダーにとって非常に重要であり、これらのタグがない場合、メッセージは検証テストに合格しません。
受信者のメールボックスは、これらのタグが含まれていないメールを破棄します。
- v=タグ
-
これは、使用されているDKIM規格を示すDKIMバージョンタグです。
その値は常に「1」に設定されます。 - a=タグ
-
このDKIMタグは、署名を作成するために使用される暗号化アルゴリズムを示します。
使用される値は「rsa-sha256」です。
コンピュータのCPU性能が低い場合は「rsa-sha1」を使用することもできますが、セキュリティ上の理由から推奨されていません。 - s=タグ
-
これは、ドメインのDNS内で公開鍵を見つけるために使用されるDKIMセレクタタグを示します。
このフィールドには名前または番号を入力します。 - d=タグ
-
DKIMドメインタグは、セレクタレコードとともに公開鍵を特定するために使用されるドメインを表示します。
その値は送信者が使用するドメイン名と同じです。 - b=タグ
-
DKIMボディタグは、ヘッダーのハッシュデータに使用されます。
通常、h=タグと組み合わせてDKIM署名を作成します。
その値は常にBase64でエンコードされます。 - bh=タグ
-
DKIMボディハッシュタグには、メールの計算されたハッシュが含まれます。
その値は、アルゴリズムによって決定されたハッシュを表す文字列です。 - h=タグ
-
このタグは、b=タグで使用されるハッシュを生成するために署名アルゴリズムが参照するヘッダーを列挙します。
その値は削除も変更もできません。
任意のDKIMタグ
DKIM署名タグのほかに、いくつかの任意タグも存在します。
これらのタグがDKIM署名に含まれていなくても、検証時にエラーは発生しません。
しかし、メールのなりすましを防ぐために、それらを使用することが推奨されています。
なりすましの送信者は、本物の企業メールとは異なり、時間の値を設定しないことが一般的です。
そのため、受信ボックスが送信者に不正な時間値を検出した場合、メールを完全に拒否する可能性が高まります。
推奨される任意のDKIMタグ
これらのDKIMレコードタグを使用することが推奨されています。
これにより、受信者のサーバが検証プロセスを円滑に進めることができます。
- g=タグ
-
公開鍵の細分化を示します。
その値はi=タグのローカル部分と同じになります。
また、ワイルドカードとしてアスタリスク(*)を入力することもできます。
このタグは署名アドレスがセレクタレコードを使用するのをブロックします。
署名アドレスがこのタグと一致しないメールは検証に失敗します。 - h=タグ
-
使用可能なハッシュアルゴリズムを示します。
その値は「sha1」と「sha256」に設定されています。
署名者と検証者にとって必要です。 - k=タグ
-
鍵の種類を示します。
デフォルト値は「rsa」に設定されており、署名者と検証者がサポートすべき値です。 - n=タグ
- 管理者が人間が読みやすい形式でメモを追加するために使用します。
- t=タグ
-
メール送信時のタイムスタンプを示す重要なタグです。
このタグの形式は、1970年1月1日00:00:00(UTC)からの秒数で表されます。 - x=タグ
-
署名の有効期限を示します。
t=タグを補完し、配信期限を割り当てます。 - t=yタグ
-
ドメインのテスト署名を指定するために使用されます。
DKIMを初めて設定する際に送信者が使用するタグです。
一部のメールボックスプロバイダーがテストモード中のDKIM署名を無視するため、推奨されています。
完全な展開前にこのタグを削除する必要があります。 - t=sタグ
-
t=yタグの代替として使用されます。
このタグは、i=タグを使用するすべてのDKIM署名が、プライマリドメインと同じドメイン値を持つ必要があることを示します。
不要なタグ
初めてDKIMヘッダーを作成する場合、これらのDKIM署名タグは必要ありません。
これらはDKIM署名を技術的かつ複雑にする傾向があります。
- c=タグ
- c=はDKIMレコードタグで、正規化アルゴリズムとして機能し、メールが別のメールボックスプロバイダーに転送される途中での変更レベルを記述します。 これは、転送中のメールにおける軽微な変更が原因で検証が失敗することを回避するために使用されます。 これらの変更には、空白や改行の調整が含まれます。
この値は、value1またはvalue2に設定されます。
value1はヘッダー用、value2はメッセージ本文用を意味します。
これらは「simple」または「relaxed」に設定でき、メールの変更に対する許容度を指定します。
- i=タグ
-
i=はユーザまたはエージェントの識別情報を表します。
その値は、d=タグと同じドメインおよびサブドメインを持つメールアドレスです。
非推奨のタグ
これらのDKIM DNSタグは、いかなるDKIMヘッダーにも必要ありません。
これらは、以下に記載されている仕様のいずれかを制御する必要がある場合にのみ使用されます。
- l=タグ
-
DKIMの長さのタグは、署名されるビット数で示されるメッセージ本文の部分署名を可能にします。
このタグは、メッセージが改竄されやすくなるため推奨されません。 - z=タグ
- z=は、メッセージの元のヘッダーを列挙し、メールボックスプロバイダーが診断検証エラーを処理するために使用されます。
最終的なポイント
DKIMプロトコルの実装と管理には、専門知識、時間、および労力が必要であり、多くの場合、対応可能な範囲を超えることがあります。
そのため、多くの組織は当社のホステッドDKIMソリューションを選択しています。
当社では、DKIMレコードの生成、DKIM署名タグの設定、およびDKIMセレクタやキーの管理を1つのプラットフォーム上でサポートします。
さらに、DMARCやSPFなどの補完プロトコルの設定における専門的なサポートを提供し、メールベースの攻撃に対する防御を強化します。
詳細を知りたい方や、配信率向上が実証された組織向けカスタマイズドメインセキュリティ戦略をご希望の方は、ぜひお問い合わせください!