見出し画像

2024 年- Gmail のスパム対策強化について🤔 (+DKIM/SPF/DMARCチェック の方法 step by step)

この記事では Gmail がアナウンスしたメール送信者に対するガイドラインの解釈と、その要件を満たしているかCheckする方法について自分なりの考えを描きます。

長いので目次を。。


結論としては、Gmailなどにメール送れば、ほとんどのことはヘッダーに書かれています。なのでメルサバ担当者に声をかける前にまずはそのメールシステムから、お手持ちのGmailに対して実際にメールを送ってみようね。チェッカーツールでもいいよ。(重要!😳)

しかしながら、見るべき・対応するべきポイントや、解釈についてある程度知見がないと理解し難い部分もあるかと思いまして、ここにしたためます。

どういう要件になったの?
こちらをレビューしていきましょう。まず全員が守るべきなのは以下の7つ


[✅全員が守るべきもの]

1) ドメインに SPF または DKIM メール認証を設定します

解釈:SMTPコマンドのレベルでは、メールの送信元は送信者が自由に名乗れます。名乗るだけなら本当にタダです。有名企業の社長でも総理大臣でも大アリクイでも好きな送信元を名乗れます。そのためここに書かれている SPF/DKIM という送信元ドメインが本物かどうか見抜く技術が培われてきました。これにより、嘘のドメインを名乗っていることを見抜くことができます。

確認方法:お手持ちの Gmail に実際送ってみたらいいです。
受け取ったメールをメッセージのソースを表示するとこんな感じで出ます。
成功してると PASS となりますし、失敗していると FAIL ってなります。

実際に note さんから送られるメールで見てみます。ちゃんと PASS してるのがわかります。なお後で出てきますが、その下の DMARC も PASS ですね!
これがダメな状態だと "FAIL" と出ます。

結局、送ってみるのが最強やぞ。

なお、DNSという公の仕組みに登録されているのでそこを見に行ってもいいです。見るためには SPF の知識が必要なので、上の方法で確認する方が簡単でいいですが、どうしても生のデータが見たければDNSを見に行きます。この辺を確認するにはある程度の専門知識が必要です。初見だと難しいのでスキップしてもいいかもしれません。また、ご存じの方も以下をスキップして次へどうぞ。

・ちょっと SPF の話
SPFは「Mail From のドメインのTXTレコード」を見ます。Mail From?なにそれ?と思いかと思います。実はメールには二つの From アドレスがあって、エンベロープ From と ヘッダー From とに分かれています。我々がメーラーで見ている送信元は後者のヘッダー From の情報です。SPFに使うのはそれと別の エンベロープ From のドメインを使います。外部のメールサービス使ってると、これは別になることが珍しくないです。というかほぼ別だと思います🤔
 
分かりにくいと思いますが例えば

封筒には
「住所 - 鈴木一郎様 / 住所 - 山田太郎」

と書かれますが、

手紙の中には
「おう、イッチ元気か?じゃあの。 ドカベンより🤤」

って書くようなもんです。SPFは先頭の山田太郎の情報を使って認証します。山田太郎のIPアドレスとして正式に登録されているものかどうかを検証しにかかります。例えば note.com さんだと、こんな エンベロープ From を使っています。先ほどのメッセージのソースを表示するで取ってきたヘッダーの情報に以下のようなものがあります。

smtp.mailfrom="bounces+xxxxx-ワイのメアド=gmail.com@email.note.com";

ここだと email.note.com とある。なので、 dig ツールを使って TXT レコードを見てみましょう

https://toolbox.googleapps.com/apps/dig/#TXT/

こんな感じで

CNAME とあるが、これは丸投げのサインで、「このDNSサーバーに行け」と指示されています。んでそのDNSサーバーから帰ってきたのが ip4 ~ の部分。ここに該当するIP(もしくはIPレンジ)から送られていれば晴れてOKです。今回、かくしてますがOKでした😊。よってPASSと表記されます。

・DKIMは??

DKIMはメールヘッダーに入っている Signature (署名) が本当に送信者のものかどうかをチェックする機構が走ります。署名は送信者の秘密鍵で暗号化されますので、間違いなく秘密鍵を持った人しかその署名が書けません。

このとき、ヘッダーに書かれているドメインを確認して、そのドメイン(+セレクター)の txt レコードをチェックして公開鍵をゲットしてきます。
公開鍵を使って署名をチェックして、妥当だと判断したならば、DKIM がパスします。もし偽った秘密鍵で署名したならば、そのドメインの公開鍵では正しく認証できません。

分かりにくいのでまた例を。
先ほどの手紙の中だと例えば🤤が署名だとします。

「おう、イッチ元気か?じゃあの。 ドカベンより🤤」

この場合、ドカベンの DNS に行き、txt レコードから DKIM のレコードを取り寄せます。ここに公開鍵が入っているので 🤤を検証します。正しく検証できれば「あっ、これマジでドカベンさんからの手紙だ」ってわかります。

具体的に見るのはすごくトリッキーです
「"セレクター"."_domainkey.ドメイン.” のTXTレコード」を見ます。
同じく note さんだと、以下のようにあり、 d=note.com/s=s1 とあります。

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=note.com; ~省略~; s=s1

ここで重要なのが、dはドメイン、sはセレクターと言います。このセレクターが非常にトリッキー。というのもTXTを取り寄せる先のドメインが以下のフォーマットになっているからです

<セレクター>._domainkey.domain.com 

noteさんだと上の例に従うと

s1._domainkey.note.com 

いや普通にルートに置けよと思いつつ見に行く

となります
では取り寄せてみましょう。レコードがあります。
さすがに人間ではこのレコードであってるかどうかはわかりませんが、とりあえずレコードがあればOKです。Passしないなら、指定された公開鍵を正しく登録できていないでしょう。外部のメール送信ベンダーを使っている場合、DNSがベンダー管理なら彼らに見直しを依頼し、自社管理するタイプなら彼らから指示を受けた DKIM レコードが正しく入っているか?をチェックしましょう。


お試しですみません、有料記事をやってみたかったのでここから先、お小遣いいただけませんでしょうか😭
掛かれてないこともコメントいただければその内容を追記もします。

ここから先は

9,506字 / 7画像

¥ 100

この記事が気に入ったらサポートをしてみませんか?