古い木の机の上に、同じ赤い封蝋の白い封筒が2通並び、あいだに小さな虫めがねが置いてある

10月27日の昼前、AI(Claude)にこう聞いた。

なんかメールが届いたんだけど、これ本物だと思う?クリックしていいかな?

届いていたのは、Google広告から「アカウントのご利用が停止されました」という知らせだった。本文の中に「アカウントを再開」のボタンがある。

その2日後、温泉ブログ(温泉ランド.com)の問い合わせ窓口に、受け取った商品が壊れていたので返品か返金をしてほしい、というメールが来た。これもAIに見てもらった。

1通目は本物で、2通目は偽物だった。そして2通目は、1通目のときにAIが勧めた見分け方だけでは見抜けない形をしていた。

文面では決められない

AIの最初の答えはこうだった。

この文面だけでは本物かどうか決められません。ボタンは押さず、メールを使わずに直接確かめるのが安全です。

偽物は本物の文面を写して作るので、文章の自然さでは見分けがつかない、という理由だった。AIは、ボタンを押さずにGoogle広告の画面を自分で開くこと、送り主のアドレスを見ることを勧めた。

僕が送り主の表示を見せると、AIは「Googleが広告の案内に本当に使っているアドレス」だと答えた。ただし、送り主の表示は偽装できることがある、とも言った。そこで、メールの元の文字列を見ることになった。

ヘッダは、メールの封筒

メールには、本文の上に「ヘッダ」という部分がある。手紙でいえば封筒だ。途中で通った郵便局の消印のようなものが、行ごとに積み重なっている。僕が使っているメールソフトのThunderbirdでは、メールを開いて Ctrl+U を押すと出てくる。

AIが見たのは、主に次の3つの検査の結果だった。

  • DKIM:送った会社の印鑑のようなもの。中身が途中で書き換えられていないことと、どの会社の印かが分かる
  • SPF:会社が「うちのメールはこの機械からしか出さない」と届け出た名簿と、実際に送った機械が合っているか
  • DMARC:差出人のアドレスの「@」より後ろ(会社の部分)と、印や機械の会社が一致しているかを見る決まり。合わないものをどう扱うかは、名前を使われた会社が決めておく

この3つの結果は、受け取った側のサーバーが「Authentication-Results」という行に書き足す。受付の係が、封筒に検査済みの付箋を貼るようなものだ。1通目はGmailに届いたので、Gmailがこの行を付けていた。

形だけ書くと、こうなっていた(値は伏せた)。pass は合格という意味だ。

Authentication-Results: mx.google.com;

dkim=pass header.i=@google.com …

spf=pass …

dmarc=pass (p=REJECT …) header.from=google.com

AIの判定は「本物」と、1つの言い切り

AIは「本物です。」と答えた。根拠に挙げたのは4つだった。

  1. DKIMが合格で、印はGoogleのもの
  2. SPFが合格で、送った機械はGoogle自身のもの
  3. DMARCが合格。Googleは名前をまねた偽物を受け付けない設定にしていて、それを通っている
  4. 本文のリンクは、どれもGoogleが通知メールで使う自前の短縮アドレス

そのうえで、AIはこう書いた。

偽物だと、この4つのどれかが必ず崩れます。

次に似たメールが来たときのことも、こう書いていた。

見分け方は今回と同じで、Ctrl+U で dkim と spf の行を見れば済みます。

僕は「たぶん何かサイトを作ろうと思って、検索ボリューム調べるために登録した気がする」と返した。AIも、検索の回数を調べる道具を使うために作ったものだろう、と言った。使わないなら何もしなくてよい、という話で終わった。

10月31日、Google広告の画面を自分で開いて見ると、アカウントは本当に「停止」になっていた。

2通目は、物を売っていないのに商品の苦情

10月29日、温泉ブログの問い合わせ窓口に、件名「受け取った商品の内部破損と返金についてのご相談」というメールが来た。中身はこうだ。

  • 受け取った商品の内部に大きな破損があり、使えなかった
  • 開封したときの動画と写真は大きいので、リンク先に上げた
  • 返品・交換か返金の手続きを案内してほしい

差出人は個人の名前で、アドレスはGoogleの業務アプリの道具「AppSheet」の通知用のものだった。本文の最後には「Sent from AppSheet」とあった。

転送の形のメールをAIに貼って、「このメールはどう思う?」と聞いた。

偽物です。開かずに消して大丈夫です。

AIは理由を3つ挙げた。1つ目は、温泉ランド.comが物を売っていないことだった。温泉の紹介と楽天への案内だけで、商品を送ったことは一度もない。注文番号も商品名も書かれていない。

AIは、AppSheetについてこう説明した。

これを使うとGoogleの本物の送信経路を通るので、前回のGoogle広告のときに見た dkim や spf の検査は全部「pass」になります。

2日前の「dkim と spf の行を見れば済みます」とは、合わない話だ。AIは前の言葉には触れずに、今回は検査が通っていても偽物だ、と書いた。そしてこう続けた。

検査は「どこの機械から出たか」しか教えてくれません。

見るべきは、送り主の会社と話の中身が合っているかだ、ということだった。Google広告の話がGoogleから来るのは自然で、商品の破損の話がAppSheetの通知から来るのは不自然だ。

AppSheetは、仕事用の小さなアプリを作るためのふつうの道具で、作ったアプリから通知メールを出せる。今回は、その通知の仕組みを使って偽の苦情が送られてきた。

偽物のヘッダを見たら、確かめられたのは半分

10月29日にAIへ貼ったのは、転送の形の数行と本文だけだった。Received などのヘッダの全体は、AIは見ていなかった。そこで10月31日に、偽物のヘッダを貼ってAIと見直した。形だけ書くと、こうだった。

Received: from mail-….google.com (…) by (温泉ブログのサーバー)

DKIM-Signature: v=1; a=rsa-sha256; d=appsheet.com; …

Received の行は、どの機械から受け取ったかの記録だ。いちばん上の行は、温泉ブログのメールを受けているサーバー自身が書いたもので、そこに「Googleの機械から受け取った」とあった。Googleの送信経路を通って来た、というAIの説明は、ここで裏付けられた。

DKIM-Signature には d=appsheet.com とあった。d= は、だれの名前で印を押したかを表す。ただ、これは送った側が自分で書く名乗りだ。だれかが検査して初めて、本物の印だと分かる。

一方で、Authentication-Results の行は無かった。このメールはGmailを通らず、温泉ブログのメールを受けているサーバー(XREA)に直接届いていた。そのサーバーは、検査の結果の行を付けていなかった。

だから、検査が全部合格になる、というところは、このヘッダでは確かめられない。AIの見立てのままだ。

偽物のリンクも、Googleの名前が入った共有用の短縮アドレスだった。リンクのアドレスだけで判断すると、これも通ってしまいそうだ。リンクの先は、だれも開いていない。

本物と偽物を見分けるときに見た所

見た所10月27日 Google広告の停止10月29日 商品の破損と返金の相談
届いた先僕のGmail温泉ブログの問い合わせ窓口(XREA)
送り主のアドレスGoogle広告の案内用AppSheetの通知用
送った機械(Received)Googleの機械Googleの機械
印の名前(DKIMの d=)google.comappsheet.com
検査の結果の行(Authentication-Results)あり。DKIM・SPF・DMARCとも合格無し。受けたサーバーが付けていない
リンクGoogleの通知用の短縮アドレスGoogleの名前が入った短縮アドレス(開いていない)
話の中身僕が昔作った広告アカウントの話物を売っていないブログへの商品の苦情。注文番号も商品名も無い
判定本物(画面でも停止を確認)偽物

どちらもGoogleの機械から届いていた。そこだけ見れば区別がつかない。はっきり分かれたのは、話の中身だった。

同じようなメールが来たら

  1. メールの中のボタンやリンクは押さない。本物なら、たいていはその会社の画面を自分で開けば同じ知らせが出ている
  2. ヘッダを見る。Thunderbirdなら、メールを開いて Ctrl+U を押す。見る行は Authentication-Results で、dkim・spf・dmarc が pass かどうか。fail や none なら、名前だけまねた偽物を疑う。ただし、この行の頭に、自分のメールを受けるサーバーの名前(Gmailなら mx.google.com)があるものだけを信じる。送る側が、偽の「pass」の行を書き込んでおくこともできるからだ
  3. 受け取るサーバーによっては、Authentication-Results の行が無い。そのときは Received の行のうち、上のほうで、自分のメールを受けるサーバーが書いた行を見る。どこの機械から受け取ったかが分かる。下のほうの行は送る側が書き込めるので、当てにしない。DKIM-Signature の d= は送った側の名乗りなので、検査の結果が無ければ目安にとどめる
  4. 最後に、話の中身と送り主が合っているかを見る。全部合格でも、ここが合わなければ偽物だ。物を売っていないのに商品の苦情が来たら、それだけで偽物と分かる
  5. 偽物なら、返信しない。リンクも開かない。AIは、Thunderbirdの「迷惑マークを付ける」を押して消せばよいと勧めた

分かったこと

ヘッダの検査は、差出人のアドレスの会社の仕組みから本当に出たかを教えてくれる。でも、その仕組みをだれが使ったかまでは教えてくれない。AppSheetは、Gmailと同じで、だれでも使えるGoogleの道具だからだ。

10月27日の「dkim と spf の行を見れば済みます」は、本物の仕組みを借りて送ってくる偽物には足りなかった、と僕は思う。

1通目は、検査が合格していたうえに、話の中身も送り主と合っていた。最後は、自分で開いた画面で停止を確かめた。2通目が偽物だと分かった決め手は、検査ではなく、このブログが物を売っていないことだった。

おすすめ商品

PR
【1時間で10000個突破】N organic Basic 福袋2027 60%…

【1時間で10000個突破】N organic Basic 福袋2027 60%…

11月6日に楽天市場 ジャンル別ランキングから選んだ商品