電子メールとセキュリティ技術(PGP/S-MIME/SMTP over TLS)とSPF
はじめに
2025年10月のプロジェクトマネージャ試験受験を終え、2026年春の情報処理安全確保支援士に向けて勉強中です。
本記事を含めた各知識のインデックスや学習の道のりについては、「情報処理安全確保支援士への道のり(随時更新中)」をご参照ください。
本記事は学習した内容を記載しています。
該当問題
情報セキュリティスペシャリスト平成22年春期 午前Ⅱ 問15
情報セキュリティスペシャリスト平成25年秋期 午前Ⅱ 問12
SMTP(Simple Mail Transfer Protocol)
電子メールの送受信のためのプロトコルです。
しかし、SMTPは次のような脆弱性があります。
- 送信処理と転送処理を同一の仕組みで扱っている
- 電子メールの投稿をするユーザーを認証する仕組みがない
- 暗号化機能が標準で実装されていないため、通信経路上を平文のメッセージが流れる
上記のような脆弱性に対応するためにSMTP-AUTHやSPFが存在します。
SMTP-AUTH
SMTPに電子メール送信時に、ユーザ認証を行うための機能を追加したものです。
使用するには、サーバとクライアント双方が対応している必要があります。
メール送信時に、ユーザ名とパスワードで送信者のユーザ認証を行い、認証されたユーザのみしかメールを送信できないようにするための機能です。
SPF(Sender Policy Framework)とは
SPF とは、メールの送信ドメインが利用を許可した送信元IPアドレスを DNS に登録し、受信側がそのIPが正当かどうかを検証する仕組みです。
SPF が必要となる背景
SMTP は次の弱点を持ちます。
- 送信元アドレス(MAIL FROM/Header From)が容易に偽装可能
- 中継サーバや踏み台によるスパム発信
- フィッシング/なりすまし/BEC(ビジネスメール詐欺)に悪用
SPF は 「そのドメインはどのIPからメールを送れるのか?」を DNS で管理し、偽装を検出するために設計されました。
SPF の仕組み(DNSを利用した認証)
SPF レコード(TXT形式)
DNS には次のような TXT レコードを登録します。
example.com. IN TXT "v=spf1 ip4:192.0.2.10 include:_spf.google.com -all"
含まれる要素:
-
v=spf1→ SPFバージョン -
ip4:192.0.2.10→ 許可する送信IP -
include:_spf.google.com→ 他ドメインのSPFを参照 -
-all→ 上記以外は拒否
SPF 認証フロー(RFC 7208)
- 受信サーバが SMTP セッションを開始
- 送信元IP を取得
-
MAIL FROMまたはHELOドメインを取得 - DNS から SPF レコードを取得
- 許可IPと比較し、Pass/Fail を判定
- 判定をスパムフィルタに連携
SPF の判定結果
| 結果 | 意味 |
|---|---|
| Pass | 正当な送信IPである |
| Fail | 不正IP(偽装の可能性) |
| SoftFail | 許可していないが強制拒否しない |
| Neutral | どちらとも言えない |
| None | SPFレコードなし |
| PermError | SPFレコードの形式異常 |
| TempError | DNSエラー等の一時的失敗 |
SPF の弱点(試験で重要)
転送メール(Forwarding)に弱い
転送サーバの IP は SPF レコードに含まれないため、正規メールでも SPF Fail が発生します。
解決策:
SRS (Sender Rewriting Scheme)
転送時に MAIL FROM を書き換えて SPF を維持します。
Header From は保護しない
SPF が検証するのは MAIL FROM(Envelope From)です。
ユーザが見る Header From は簡単に偽装できます。
→ SPF だけではフィッシング対策は不十分です。
SPF/DKIM/DMARC の比較(必須知識)
| 技術 | 目的 | 使用する情報 | 防げる攻撃 |
|---|---|---|---|
| SPF | 許可された送信IPの確認 | MAIL FROM のドメイン | IP なりすまし |
| DKIM | メールの改ざん検知 | 署名(ヘッダ+本文) | 内容改ざん |
| DMARC | Header From の整合/ポリシー | SPF/DKIM の結果 | なりすましメール全般 |
SPF レコードの主なメカニズム
| メカニズム | 説明 |
|---|---|
ip4:/ip6:
|
許可する送信IPを指定 |
a |
ドメインのAレコードIPを許可 |
mx |
MXレコードのIPを許可 |
include: |
他のドメインのSPFを参照 |
exists: |
条件付きホスト存在確認 |
all |
最終判定ルール |
修飾子(Qualifier):
| 記号 | 結果 |
|---|---|
+ |
Pass |
- |
Fail |
~ |
SoftFail |
? |
Neutral |
周辺知識(SC試験で頻出)
DNSSEC
SPF は DNS に依存するため、DNS が改ざんされれば不正を見抜けなくなります。
→ DNSSEC により DNS応答の信頼性を保証されています。
ARC(Authenticated Received Chain)
転送後の SPF/DKIM 判定を保持する技術です。
Google/Microsoft など大手で採用されています。
SMTP over TLS(RFC 3207)
メール通信経路の暗号化をします。
SPF とは役割が異なり、「経路保護」で使われます。
フィッシング対策
SPF だけでは不十分です。
SPF + DKIM + DMARC + TLS が実務での標準構成です。