created: 2022-06-11T14:08:52.951Z

DKIMとは何かとAWSのSESで使う場合の作業をメモ

  • メール署名の方法の 1 つ
  • amazon-ses でサポートされている方式
  • 設定すると送信者を検証できる

DKIM の大まかな流れ

こちらがわかりやすかった。

image

  1. メールを署名付きで送信
    • DKIM-Signature というヘッダに署名と公開鍵の所在の 2 つを入れる
  2. 受け取った側は公開鍵で署名がデコードできることを確認する

ses で使う場合

ユーザは自分のドメインにいくつか DNS レコードを設定をするだけでよい

  • 公開鍵を DNS の TXT レコードで取得できるようにする
    • aws が管理するドメイン(dkim.amazonses.com)に TXT レコードが払い出される
    • foobar.dkim.amazonses.com というような
  • ユーザはその TXT レコードを指す CNAME レコードを追加する
    • たとえば foobar._domainkey.mydomain.jp

設定するとこんな流れになる

  1. ses のサーバから署名付きメール送信
  • DKIM-Signature ヘッダ
    • ses 側で設定した署名がメールに自動的にくっつく
    • 「公開鍵は foobar._domainkey.mydomain.jp に在る」となっている
  1. 受け取った側は署名を検証しようとして foobar._domainkey.mydomain.jp にアクセス
  2. CNAME になっているので foobar.dkim.amazonses.com にリダイレクト
  3. foobar.dkim.amazonses.com は TXT レコードで、そこで公開鍵を得られる
  4. 公開鍵を使って署名を検証

良い点

  • ユーザ側は DNS レコードの設定をするだけで済む
  • 秘密鍵、公開鍵、署名の管理を自分でしないで済む