メールを正しく送信するために必要な「SPF」「DKIM」「DMARC」とは一体どんなものなのか?
2024年度神奈川県公立高校入試の出願システムにおいて、1月9日よりメール受信障害が発生しています。神奈川県は「主に@gmail.comにおいて出願システムからのメールが受信できないという事象が発生」と説明していますが、送信元のアドレスにおいて適切な設定が行われていないとさまざまなサイトで指摘されています。
県入試 2024 出願システムからのメール、なぜ届かない? | カナガク
https://kanagaku.com/archives/69286
ちょっと調べたが超酷い。汎用JPはどうよとか、ドメイン認証ちゃんとできてないとか以前の問題で、基本的なメール設定が間違っている。MXにIPアドレスいきなり書くなよ。しかもIPアドレスとしても正しくないという。 / “高校入試の出願システム、Gmailにメール届かず……神…” https://t.co/4sxyz2wAiw
— 上原 哲太郎/Tetsu. Uehara (@tetsutalow) 2024年1月16日
Googleのメール送信者のガイドラインによると、正しくメールを送信するためには「SPF」「DKIM」「DMARC」という3つの認証を設定する必要があると述べられています。
◆SPF
SPFはSender Policy Frameworkの略称で、正当なサーバーからメールが送信されているかどうかを検証する仕組みです。
メールには「送信元」として表示される「Header-From」と、実際の送信元を示す「Envelope-From」という2種類のヘッダーが存在しています。SPFはこのうち実際の送信元であるEnvelope-Fromを検証します。
DNSにSPFレコードを設定し、送信元として適切なIPアドレスを記載することで、メールの受信者は「実際の送信元」とされているドメインのSPFレコードの内容と送信元のIPアドレスが一致しているかを確認可能です。SPFレコードに記載されていないIPアドレスからメールが送信されていた場合、送信元を偽ったメールだと分かるというわけ。
SPFレコードにはIPアドレスを直接記入するほか、AレコードやMXレコードへの参照を記入したり、外部のドメインへの参照を記入したりすることも可能です。ただし、別のレコードをDNSから取得する「ルックアップ」が10回を超えるとSPFの認証に失敗するとのこと。
◆DKIM
DKIMはDomainKeys Identified Mailの略称で、送信メールに電子署名を行って「メールが本来の送信者から送られていること」「メールの内容が改ざんされていないこと」を確かめるための仕組みです。DNSのTXTレコードにDKIMの公開鍵を登録することで、メールの受信者はメールの送信元ドメインのDKIMレコードを参照して公開鍵を入手し、メールの電子署名を検証することができます。
個人のGmailにメールを送信するためにはDKIMの鍵の長さを1024ビット以上にする必要があるとのこと。なお、セキュリティを向上させるため鍵の長さを2048ビットにすることが推奨されています。
多くの場合送信者は意図的に電子署名を付ける必要はなく、送信時にメールサーバーで自動的に電子署名が行われるように設定されています。
◆DMARC
DMARCはDomain-based Message Authentication Reporting and Conformanceの略称で、ユーザーに表示される送信元ドメインを偽っている「なりすまし」メールを見つけるための仕組みです。メールの送信においては「送信元アドレス」を送信者が自由に設定できるため、勝手に銀行など権威あるサイトのドメインを使用してユーザーを誤認させ、フィッシングサイトへ誘導するなどの行為ができてしまいます。
DMARCはSPFやDKIMと同時に使用する必要があり、SPF・DKIMの認証に加えて「Header-FromがEnvelope-Fromと一致しているかどうか」を検証します。つまり、ユーザーに表示される送信元である「Header-From」が実際の送信元と異なるメールは検証に失敗し、DMARCの設定に応じて迷惑メールフォルダに配信されたり、受け取りを拒否されたりします。
神奈川県公立高校入試の出願システムの送信元メールアドレスである「mail.shutsugankanagawa.jp」をDMARC Domain Checkerで確認してみると、記事作成時点では下図の通りDMARC・SPF・DKIM全て適切に設定されているようでした。
2024年2月に神奈川県立高校の受験を予定している家族を持つエンジニアのsuzuki.ryoさんが実際に神奈川県公立高校入試の出願システムから2024年1月15日に受信したメールを解析し、「今回、Yahooメールに届いたメールを確認した限りでは、出願システムからのメール送信に利用されていたAmazon SESは適切に設定されている模様」と結論付けています。
問題が発生した1月9日には設定が不適切であったことから認証に失敗していたとみられていますが、設定の修正後にもまだGmailへの配信が失敗する理由は外部からはうかがい知ることはできなさそうです。なお、神奈川県公立高等学校入学者選抜インターネット出願システムの稼動状況については神奈川県のページに掲載されているとのことです。
◆フォーラム開設中
本記事に関連するフォーラムをGIGAZINE公式Discordサーバーに設置しました。誰でも自由に書き込めるので、どしどしコメントしてください!Discordアカウントを持っていない場合は、アカウント作成手順解説記事を参考にアカウントを作成してみてください!
• Discord | "メールが送信できない・受信できないトラブルに遭遇したことある?なおせた?" | GIGAZINE(ギガジン)
https://discord.com/channels/1037961069903216680/1197113218468937888
・関連記事
Gmailがメールを1日5000件以上送信するユーザーに「購読解除ボタンの設置」「メールの認証」などのスパム対策要件を設ける - GIGAZINE
詐欺師はスパムメールにわざと誤字脱字を入れることでカモを選別している - GIGAZINE
Googleの「gmail.com」と間違えられやすい「gail.com」には週120万通もの間違いメールが届き続けている - GIGAZINE
メールサーバーへの接続をPOPやIMAPではなく現代風に改善しSMTPも設定不要になるプロトコル「JMAP」、高速に同期可能でスマホの通信量も減らせて効率的 - GIGAZINE
Gmailが企業やブランドのメールが本物かどうかわかる青色チェックマークを導入 - GIGAZINE
・関連コンテンツ