メールが迷惑メールフォルダに振り分けられたりそもそも届かない原因
先日のホワイトラビットのインタビュー記事のコメント欄でメールの話が出ましたが、ちょうど良い機会なのでメールのお話を少ししたいと思います。
ドールとほとんど関係ないことなので興味ない方はスルーしてください。ただ、最近「〇〇というショップに問い合わせたのに返答がありません」という話をよく聞くようになったので、たまたまこの記事を見た販売店の人が設定を確認してくれればなぁ~という程度の気持ちで書いています。
先に書いておくとSPFレコードの話なので、そんなんもう知ってるわ、という方も読む必要ありません。
Webメールしか使ってないよ~という人もたぶん読む必要ありません。
メールのFrom欄は手書き封筒並みに信用できない
さて、まず極々当たり前のことですが、たまにご存じない方もいるので一応書いておきます。メールのFrom欄(差出人名)は自由に記入できるので何の信頼性もありません。
現実の封筒を思い浮かべてほしいのですが、ある日ポストに茶封筒が入っていて、裏面の差出人に「内閣総理大臣より」とかテプラで貼ってあったら、それ信用します?
……………例として微妙ですねw ぼくだったら面白そうだから開封しちゃうかも知れないw
一般的なメールソフト、例えばスマホのGmailアプリでも良いですし、Windows標準のメールアプリでも良いですけど、簡単な操作では差出人名を変更することは出来ないため、なんとなくメールのFrom欄はメールアカウントと紐づいているもの、と勘違いされている方がいます。…恐ろしいことにIT技術者でもWeb系に疎い方はあまりわかってなかったりします。
しかし実際のところ、メールソフトの種類によっては送信時に差出人名を手軽に編集できるものも実在しますし、そういうソフトがなかったとしてもインターネットのメールの仕組み上、ほんの簡単なスクリプトレベルでFrom欄の偽装は可能。
自分が使っているメールアドレスから、自分宛にメール届いたことありませんか?
「あなたのパソコンをハッキングしました」「ほら差出人名を見てください。あなたのメールアドレスが書かれているでしょう?」「これは私が管理者権限であなたのパソコンを使えるということを意味します」「あなたの恥ずかしい写真をバラまかれたくなければこちらのビットコインに云々」
そんなメール、受け取ったことありませんか? ぼくはしょっちゅう受け取り、いろんな文面考えるなぁとゲラゲラ笑いながらゴミ箱に捨てています。
このように、メールのFrom欄(差出人名)が偽装される例は多いのですが、Gmail等のWebメールをお使いの方なら、それらがほとんど迷惑メールフォルダに振り分けられていることを実際に体験されているかと思います。
差出人と送信元を突き合わせる仕組み、それがSPF
Windows 95が登場してインターネットが爆発的に普及した直後、メールによる詐欺被害もとんでもない数になりました。
インターネット自体、途中の通信経路が分断されても、なんとか迂回路を見つけて宛先になんとしてでもデータを届けるぞ、というバケツリレー的なコンセプトからはじまっているのもあり、信頼性よりも到達性を優先している部分が多くあります。
メールの送信サーバー(いわゆるSMTPサーバー)に至ってはそもそもアカウント認証の仕組みすらありませんでした。これはつまり、自分が契約しているプロバイダーやレンタルサーバーを使わず、他人のテキトーなSMTPサーバー経由で、簡単になりすましメールが送信できた、という意味です。
ネットショップが登場し、インターネット上での金銭のやりとりも増えると共に詐欺被害も急増し、こりゃマズいってことで、SMTP認証の仕組みも急速に普及しました。
プロバイダー契約をするとメールアドレスとパスワードが通知されますが、メールの受信時だけじゃなく送信時にもパスワードを入力(=メールソフトで設定)するのが今では当たり前ですよね? ………いや、今だと逆にSMTPやPOP、IMAPも使わずWebメールしか知らん、という人も多そうですけど。
まぁともかく、メールの送信/受信両方にパスワード認証がある、と考えてください。よしこれで大丈夫!と思いきやそんな話ではありません。
先ほどバケツリレーの話を出しましたが、メールも同じ。どのメールサーバーからでもメールは送信できるんです。
攻撃したい相手のプロバイダーのメールサーバーのパスワード認証をかいくぐってわざわざ侵入する必要はありません。自分のパソコンにメールサーバーをインストールし、自前のサーバーからメール送信すれば良いだけ。最初に書いたとおりFrom欄は偽装し放題だし。
これでは一向に詐欺メールが減りません。そこで考えられたのがSPF=Sender Policy Framework。
もともとインターネットにはドメイン名とIPアドレスを紐づけるネームサーバーという仕組みがあります。
例えば、ぼくが運営する edolls.net はIPアドレス 183.90.183.163 ですが、この紐づけ(対応表)を持っているのがネームサーバー。これはインターネット上に無数に存在し、相互に通信して対応表を共有しています。こいつの改ざんはかなり難しい。
このドメイン名とIPアドレスの対応表は「Aレコード」と呼ばれます。
じゃあ、ネームサーバーにSPFレコードというのを追加して、差出人名に edolls.net が含まれる場合、どこのメールサーバーを使うか、というのを書いておけば良いんじゃね?と考えたんですね。
雑な説明をすると消印みたいなものです。
「ぼくは必ずAという郵便局からしか封筒を出さないから、消印がA郵便局じゃなかったら偽物と判断して!」というのを宣言しておくような仕組み。
SPFレコードチェッカーを作ってみた
概念的な話をするより、具体例を見たほうがわかりやすいと思うのでSPFレコードチェッカーを作ってみました。
下記のテキストボックスに調べたいドメイン名を入れてボタンを押すと、ネームサーバーへ問い合わせてSPFレコードの確認を行います。
edolls.netの場合は「v=spf1 ip4:183.90.183.163 ~all」というのが返されるハズ。
v=spf1はSPFレコードだよー、というただの定型句。
ip4:183.90.183.163 は、差出人が「ほにゃらら@edolls.net」の場合、必ず183.90.183.163から送信されるよ、という意味。
~all はこの条件に合わない場合、「SOFTFAIL」にしてね、という意味。
~(チルダ)ではなく-(ハイフン)を書き、「-all」という書き方にすると、指定したIPアドレス以外だった場合は「FAIL」にして、という、より強固な指定になります。
他にもincludeとかオプションは色々ありますが、書ききれないので詳しく知りたい方は RFC 7208 の仕様をご確認ください。
GmailでSPFを確認する方法
Web版のGmailであれば下記のとおり、メニューの中に「メッセージのソースを表示」という項目があるはずです。
そして、メッセージのソースを表示すると下記のとおり、件名の下あたりにSPFという項目が表示されます。
ここに「PASS」と表示されていれば、差出人のドメインのSPFレコードは正常に設定されているということ。
「NEUTRAL」の場合はSPFレコードが見当たらないよ、設定されてないから判断つかないよー、ということ。
SOFTFAILやFAILはSPFレコードは設定されているけど、認証されていないメールサーバーから送られているから気を付けて!という意味になります。
Gmailだと、SPFチェックが「FAIL」だった場合、高確率で迷惑メールフォルダ行きです。SOFTFAILやNEUTRALでもメール本文の内容にURLが含まれていたり、過去のスパム例と照合し、スパムメールでよく使われる文言が検出されたら迷惑メールと判断されるみたい。場合によってはそもそもメールが届かないことも。
まとめ
なんか書き始めたら長くなってしまいましたが、要するに、
独自ドメイン使っているお店はドメインのレジストラでSPFレコードの設定もしてね、と言いたいだけの記事でした。
たぶんこのへんあまり詳しくない人も多いだろうし、正直面倒なわりに恩恵は低いというか…ぶっちゃけイタチゴッコだよなぁ…とも思ってるんですよねぇ。
だってさー、消印が正しかったとしても、封筒の中身を本当に信頼できる? パスワードがゆるゆるで送信サーバーに侵入される可能性だってあるし、そもそも最終的には人間が見るものだから、見間違えするようなドメイン名使ったらいいじゃん? レイバンサングラスがロイバンサングラスで売られていたように、ルイビトンがルイボトンなように、ほんの一文字違うドメイン名とか取ってさ、なりすますことだって出来ちゃうじゃないですか。
そんなわけでSPFレコードがあるから大丈夫、だなんて全然言えないし、これ設定してないだけで迷惑メール判定されたり、そもそもメールが届かなかったりする、という、運営者泣かせの仕組みではあるのですが………それでも、まぁ、世界中に蔓延する迷惑メールの何%かでも削減できるのなら、きっと良いことなのでしょうね。
ひと昔前はショップサイトがフリーメールアドレス使うなんて!と怒られたものですが、今となってはお店のドメインがあるのに、gmailやyahooメールを使っているお店の気持ちもちょっとわかるってものです。Webメール使っておけば迷惑メール判定される確率も格段に減りますからねぇ。
以上、ドールとはほとんど関係ない話でしたが、このところ複数の知り合いから「販売店からの返事がこない!」という相談を受けたので、唐突に書きたくなりました。












