セキュリティを整える
中級メール認証(SPF/DKIM/DMARC)を整える。
= なりすましメールがどの検査で弾かれるかを受信サーバー視点で体験
「SPF・DKIM・DMARCを設定しましょう」とはよく言われますが、3つがそれぞれ何を検査しているのかは意外と知られていません。このページでは、受信サーバーの気持ちになって1通のメールを判定します。攻撃側の条件を変えると、どの検査で・なぜ弾かれるかが順に見えます。すべてブラウザ内で完結、送信ゼロ。
🔰 かんたんに言うと
「銀行を名乗る偽メール」がなぜ届いたり弾かれたりするのか。メールの世界の本人確認3点セット(SPF・DKIM・DMARC)を、受信サーバーになったつもりで動かして学ぶページです。
TLDR — 30秒で分かる
SPF=どのサーバーから? DKIM=中身は本物? DMARC=名乗りと一致?不合格ならどうする? 3つの検査を受信サーバーの気持ちで体験。SPFがpassでもなりすましは弾けない理由(アライメント)が分かります。
主な機能
- なりすまし判定シミュレーター(5つの攻撃・配送シナリオ)
- SPF→DKIM→DMARCの判定が順に点灯し受信箱/迷惑/拒否へ振り分け
- アライメント(名乗りとの一致)の可視化——SPF pass でも弾かれる理由
- DMARC未設定だと素通りになる体験
- SPF/DMARCレコードの読み方辞書(a・mx・include・~all/p・rua・pct等)
- p=none→quarantine→reject の安全な育て方
- 送信ゼロ(すべてブラウザ内)
シナリオを選ぶ
受信者に見えている名乗り: From: [email protected]
※ この「名乗り(ヘッダFrom)」は固定です。名乗りは自由に書ける——これこそがなりすまし問題の出発点です。
手動で条件を変える(プリセット選択後も個別に変更可)
envelopeDomain — SPFの検査対象ドメイン
hasSpfRecord — SPFレコードの有無
senderIpAllowed — 送信元IPは許可リスト内か
dkim — DKIM署名の状態
dkimDomain — DKIM署名ドメイン(d=)
※ 署名なしのときは判定対象外(disabled)
hasDmarcRecord — DMARCレコードの有無
policy — DMARCポリシー(p=)
※ DMARCレコードが無いときは判定対象外(disabled)
判定の流れ(SPF → DKIM → DMARC の順に点灯)
① SPF
② DKIM
③ DMARC
SPF
「そのサーバーから送っていいの?」
見るもの: エンベロープFromのドメインのDNSに書かれた送信サーバー許可リスト(IP)
弱点: 転送で切れる。攻撃者も自分のドメインならpassにできる
DKIM
「中身は本物のまま?」
見るもの: メールに付いた電子署名を署名ドメイン(d=)の公開鍵で検証
弱点: 署名が無いメールは判定できない。d=は名乗りと別ドメインでもよい
DMARC
「その合格、画面に見える名乗り(ヘッダFrom)と一致してる?不合格ならどうする?」
見るもの: SPF/DKIMの結果×アライメント、そして p= ポリシー
これが要: SPF・DKIM単体では名乗りを守れない。束ねて初めてなりすまし対策になる
覚え方: SPF=差出局の確認 / DKIM=封蝋(改ざん検知) / DMARC=名乗りの照合と処分の指示
SPFレコード(Xserver系の実例形)
- v=spf1
- = これはSPFレコード宣言
- a:
- = このホスト名のAレコードのIPを許可
- mx
- = MXレコードのサーバーを許可
- include:
- = 別ドメインのSPFを取り込む(メールサービス利用時の定番)
- ~all
- = リスト外はソフトフェイル(怪しい扱い。-all=明確に拒否、?all=中立)
DMARCレコード
- p=
- = 不合格メールの処分(none=監視のみ/quarantine=迷惑行き/reject=拒否)
- rua=
- = 集計レポートの送り先(まずこれを眺めるのが運用の第一歩)
- adkim= / aspf=
- = アライメントの厳しさ(r=relaxed 組織ドメイン一致でOK / s=strict 完全一致)
- pct=
- = ポリシー適用率(段階導入用)
④ ポリシーの育て方
none → quarantine → reject。段階を踏んで育てる。
p=none
処分はせず、ruaレポートを数週間観察。まずは実態把握。
p=quarantine
正規メールが全部passしているのを確認してから移行。
p=reject
最後に拒否へ。pct=で段階適用もできる。
いきなり reject にすると、転送や設定漏れで正規メールまで落ちることがあります。定石は ①p=none で rua レポートを数週間観察 → ②正規メールが全部 pass しているのを確認して quarantine → ③最後に reject。pct= で段階適用もできます。
⚠ このシミュレーターについて
- 実際のDNS照会・暗号検証は行わない教育用モデルです。判定の考え方(組み合わせ論)を忠実に再現していますが、実際の受信サーバーは独自のスパム判定も併用するため、挙動は環境で異なります。
- アライメントの「組織ドメイン」判定は簡易版です(実際は Public Suffix List を使用)。
- 迷惑メールの送信に使える情報は含みません。ここで学べるのは「なぜ弾かれるか」=防御側の知識です。
- すべてブラウザの中だけで動きます(送信ゼロ)。
よくある質問
Q. SPF・DKIM・DMARCは何が違うのですか?
A. 答えている質問が違います。**SPF**は「そのサーバー(IP)から送っていいか」を送信ドメインのDNSにある許可リストで確認します。**DKIM**は「中身が改ざんされていないか」を電子署名で検証します。**DMARC**は両者の結果を束ね、「その合格は画面に見える名乗り(ヘッダFrom)と一致しているか(アライメント)」を照合したうえで、不合格メールの処分(none/quarantine/reject)を受信サーバーに指示します。
Q. SPFを設定していれば、なりすましは防げますか?
A. 防げません。SPFが検査するのは**エンベロープFrom**(配送用の差出人)であって、受信者の画面に見える**ヘッダFrom**ではないからです。攻撃者は自分のドメインのSPFを正しく設定して合格させつつ、画面の名乗りだけあなたのドメインを書けます。この抜け道を塞ぐのが、名乗りとの一致(アライメント)を検査するDMARCです。
Q. DMARCの p=none には意味がありますか?
A. あります。p=none は「処分はしないが、認証結果のレポート(rua)を送信ドメインの管理者に送る」モードです。まず自分のドメインを名乗るメールがどこから送られているか(正規のメールサービス、想定外のシステム、攻撃)を観測し、正規メールがすべて合格するよう整えてから quarantine → reject に上げるのが安全な定石です。ただし p=none のままでは受信者は守られないので、通過点と考えてください。
Q. 転送すると認証はどうなりますか?
A. SPFは切れがちです。転送サーバーのIPは元ドメインの許可リストに無いからです。一方DKIMの署名は本文が書き換えられない限り転送後も検証できるため、DMARCは「DKIM×アライメント」の側で合格できます。SPFとDKIMの両方を設定すべき理由のひとつがこの転送耐性です(メーリングリストなど本文を書き換える転送では DKIM も切れることがあります)。
Q. 自分のドメインにDMARCを設定するには何をすればいいですか?
A. DNSに `_dmarc.あなたのドメイン` という名前のTXTレコードを1本追加します(例: `v=DMARC1; p=none; rua=mailto:[email protected]`)。前提としてSPF(TXTレコード)と、可能ならDKIM(メールサービス側で発行される公開鍵)を設定しておきます。メールを一切送らないドメインでも、なりすまし防止のため `v=spf1 -all` と `p=reject` を置くのが推奨です。
Q. このシミュレーターは実際のメールを送受信しますか?
A. いいえ。DNS照会も暗号検証も行わない、判定の考え方だけを再現した教育用モデルで、すべてブラウザ内で完結します(送信ゼロ)。また、なりすましメールの送信に使える具体的な手順・情報は含んでいません。学べるのは防御側の知識です。
入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。
RELATED TOOLS
続けて整える