👉 メールに対して付ける電子署名(デジタル署名)
簡単に言うと:
「このメールは本当に example.com が送ったよ。改ざんもされてないよ」
と証明する仕組み。
DKIMは主に:
ヘッダ(From, To, Subject など)
本文(Body)
をまとめてハッシュ化して署名する。
一致すれば:
✅ 改ざんされていない
✅ 正しいドメインが署名している
| 項目 | 意味 |
|---|---|
| v | バージョン |
| a | 署名アルゴリズム |
| d | 署名ドメイン |
| s | セレクタ |
| bh | 本文のハッシュ |
| b | 実際の署名 |
秘密鍵を持っている
それで署名する
DNSから公開鍵を取得
DNSにはこうある:
👉 受信側が自由に取得できるから
改ざんされていたらハッシュが変わる → 検証失敗。
署名が正しい
メール内容が改ざんされていない
DNSの公開鍵が一致
Header From と d= が整合(DMARC的に)
| SPF | DKIM | |
|---|---|---|
| 何を守る? | 送信IP | メール内容 |
| 改ざん検知 | ❌ | ✅ |
| 転送に弱い? | 弱い | 強い |
| 署名使う? | ❌ | ✅ |
SESは:
Easy DKIMを有効にすると
自動で署名
CNAMEをDNSに設定するだけ
実質:
になる。
DKIMは:
「誰が送ったか」より
「このドメインが責任を持って署名したか」を証明する
つまり:
From: は偽装できる
でも DKIM署名は偽装できない(秘密鍵がないと無理)