DKIM 構文
DKIM の構文は RFC 6376 によって定義されており、DKIM-Signature ヘッダーフィールド、公開鍵 DNS レコード、および署名と検証アルゴリズムの形式とルールを指定しています。
DKIM-Signature ヘッダーフィールドは、DKIM 署名に関する情報を提供する一連のタグ-値ペアで構成されており、セミコロンで区切られています。タグは大文字と小文字を区別せず、以下の意味を持ちます:
タグ | 説明 |
---|---|
v | DKIM のバージョン。現在のバージョンは 1 です。 |
a | ハッシュと署名を生成するために使用されるアルゴリズム。サポートされているアルゴリズムは rsa-sha1 と rsa-sha256 です。 |
b | base64 でエンコードされた署名データ。 |
bh | base64 でエンコードされたメールコンテンツのハッシュ。 |
c | ハッシュ化の前にメールヘッダーと本文を正規化するために使用される正規化アルゴリズム。サポートされているアルゴリズムは simple と relaxed です。 |
d | 署名エンティティのドメイン。 |
h | 署名に含まれるヘッダーフィールドのリスト。コロンで区切られています。 |
i | 署名エージェントの識別子で、署名ドメイン内のサブドメインまたはユーザーである可能性があります。 |
l | 署名されたメール本文の長さ(バイト単位)。省略された場合、全体の本文が署名されます。 |
q | 公開鍵を取得するために使用されるクエリメソッド。サポートされているメソッドは dns/txt で、これは公開鍵が DNS の TXT レコードに格納されていることを意味します。 |
s | 検証に使用する公開鍵を識別するセレクター。 |
t | 署名が作成された時刻のタイムスタンプ。1970年1月1日00:00:00 UTCからの秒数で表されます。 |
x | 署名の有効期限。1970年1月1日00:00:00 UTCからの秒数で表されます。省略された場合、署名は期限切れになりません。 |
z | 署名された元のヘッダーフィールド。base64 でエンコードされています。このタグはオプションであり、デバッグ目的でのみ使用されます。 |
公開鍵 DNS レコードの例は次のとおりです:
セレクター:
dkimkey._domainkey.example.com.
値:
"v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfjgu4wJ4hm7T3cjhYfyX3WfZwLGNqJtU2Ol1i8sT1o3F1FbZI4P7FqQW7MkMfsHnY6f7loG+RwkZsKdowq+8Gg9G2xRF1YJynBKLpdX4eR4Q2m5F3LjMfQSSMmN1CRrSeyRGNVQqjxweG5lJfR0GZsT7hnrccllH+oL1HhQIDAQ"
関連トピック
- DKIM とは何ですか? - メール認証における DKIM の役割の紹介
- DKIM はどのように機能しますか? - DKIM の実装と運用に関する技術的詳細
- なぜ DKIM が重要なのですか? - DKIM の実装の利点と重要性
- DKIM の制限 - 現在の制約と課題