本文へ移動
QKQuickKitEN
メールLOCALブラウザ内で処理

DKIM レコード パーサー

DKIM の公開鍵 DNS TXT レコードまたは DKIM-Signature ヘッダーを解析し、各タグを分解して構文と鍵素材の問題を指摘します。DNS 参照や署名検証は行いません。

入力と主要な処理をブラウザ内で行い、その入力内容をQuickKitサーバーへ送信しない設計です。

判別結果

解釈されたフィールド

タグ(記載順)

指摘事項

    仕組みと使い方

    入力が DKIM の公開鍵 TXT レコード(RFC 6376 3.6.1 節)か DKIM-Signature ヘッダー(RFC 6376 3.5 節)かを判別し、それに応じて解析します。検証するのはタグ構文と鍵素材のみです。署名の検証にはメッセージ全体と実時間の DNS 鍵参照が必要なため、このツールでは行えず、ネットワークアクセスも一切行いません。アルゴリズムは RFC 6376 単体ではなく現行仕様で分類します。rsa-sha256 は必須(RFC 8301)、ed25519-sha256 は現行の標準アルゴリズム(RFC 8463)、rsa-sha1 は historic で、RFC 8301 が署名・検証への使用を禁止しているため、タグとしては構文上正しくても準拠した検証側では恒久的失敗(PERMFAIL)として扱われます。構成要素の登録とアルゴリズムの定義は別々に確認します。IANA DKIM Key Type レジストリには rsa と ed25519 が、IANA DKIM Hash Algorithms レジストリには sha1(historic)と sha256(active)が登録されていますが、鍵種別とハッシュの組み合わせを登録するレジストリはありません。DKIM RFC が定義する組み合わせは rsa-sha256、ed25519-sha256、および historic な rsa-sha1 で、現在使用できるアルゴリズムは rsa-sha256 と ed25519-sha256 です。それ以外の構文上正しい a= は「未対応」として報告し、理由(未登録の鍵種別、未登録のハッシュ、または ed25519-sha1 のように RFC が定義していない組み合わせ)を個別に示します。RFC 8301 の 1 節は SHA-1 ハッシュアルゴリズム自体の使用を禁止し、3.1 節はそれとは別に rsa-sha1 を historic な DKIM アルゴリズムとしてその署名を恒久的失敗と規定しています。他の組み合わせに含まれる sha1 は前者の規定への違反として報告します。h= が空、またはリストに空要素がある場合は不正です。RFC 6376 では空のタグ値とタグの省略は同じではありません。RSA 公開鍵のモジュラスのビット長は、DER の SubjectPublicKeyInfo または RSAPublicKey 構造が解析できた場合のみ表示し、それ以外はデコード後のバイト数のみを表示します。RFC 8301 は RSA 鍵に最低 1024 ビットを要求し、2048 ビットを推奨しています。入力の空白は RFC 6376 に従います。タグと値の前後に置けるのはスペースとタブだけで、改行はスペースまたはタブが続く場合にのみ折り返し空白として扱い、1 つの折り返し空白に含められる改行は 1 つまでです。連続する 2 つの折り返し(空白だけの行。RFC 6376 2.8 節は RFC 5322 の obsolete syntax を除外しており、erratum 5070 も参照)を 1 つにまとめることはありません(単独の改行、単独の CR、NBSP などの非 ASCII 空白も同様に黙って削除せず報告します)。DNS のプレゼンテーション形式(引用符付き文字列)で貼り付けたレコードは、間の空白を入れずに連結します(RFC 6376 3.6.2.2 節)。p= の値(署名の b= / bh= も同様)は RFC 6376 2.10 節の base64string であり、RFC 2045 の base64 として扱います。標準アルファベットのみ(base64url は拒否)、折り返し空白のみ、正しく padding された完全な最終 quantum が必要です。ed25519 公開鍵はさらに、base64string 構文、デコード後がちょうど 32 バイト(RFC 8463 4.2 節、base64 で 44 オクテット)、RFC 8032 5.1.3 節の Ed25519 点エンコーディングとしてデコード可能(y が p 未満、曲線上の x が存在、x が 0 で符号ビットが立っていない)の 3 層を個別の finding で検証します。点の検証は構造のみで、エンコーディングが点にデコードできることを示すだけであり、暗号学的に安全な鍵であることは意味しません。点の位数や部分群への所属は確認せず、署名の検証も行いません。RFC 6376、RFC 2045、RFC 8301、RFC 8463、RFC 8032(errata を含む)および IANA DKIM Parameters レジストリに対して 2026-09-18 に確認しました。