戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2017年 春期 午前(科目A)44


問題文

電子メールの送信時に、送信者を送信側のメールサーバで認証するためのものはどれか。

選択肢

APOP
POP3S
S/MIME
SMTP-AUTH(正解)

🔒 解説は解答すると表示されます

SMTP認証方式【午前解説】

正解の理由

正解は (SMTP-AUTH)です。
SMTP-AUTH は SMTP プロトコルの拡張で、AUTH コマンドにより送信時にユーザ認証を行います。MUA が送信サーバに接続してメールを送る際に、送信側サーバが接続元のユーザを確認して送信を許可するための仕組みであり、不正中継(オープンリレー)防止の主要手段の一つです。送信(Submission)ではポート587(Submission)やポート465(smtps)を用い、STARTTLS 等で暗号化した上で AUTH による認証を行う運用が一般的です。

解法ステップ

  1. 問題文のキーワード「送信時」「送信側のメールサーバで認証」を確認する。
  2. 各選択肢のプロトコルの役割を思い出す(送信/受信/署名・暗号化)。
  3. 送信時にサーバ側でユーザを認証する用途に該当するのは SMTP の拡張である SMTP-AUTH と判断する。
  4. よって正解は SMTP-AUTH(エ)とする。

選択肢別の誤答解説

  • ア: APOP
    • 説明:POP3 の認証方式の一つで、チャレンジレスポンス(MD5)により受信時の認証を行います。
    • なぜ誤りか:受信(POP)に関する認証であり、送信サーバ側の送信時認証ではないため不適切です。
  • イ: POP3S
    • 説明:POP3 を TLS(SSL)で保護して安全にメールを受信するためのものです。
    • なぜ誤りか:暗号化された受信プロトコルであり、送信時のサーバ側認証には関係ありません。
  • ウ: S/MIME
    • 説明:メールの暗号化と電子署名を提供する仕組みで、送信者の署名で送信者性を保証できます。
    • なぜ誤りか:メッセージ単位での署名・暗号化技術であり、送信サーバへのログイン認証(送信時のサーバ側認証)ではありません。
  • エ: SMTP-AUTH
    • 説明:SMTP の拡張で、AUTH コマンドにより SMTP セッション中にユーザ認証を行う仕組みです。
    • なぜ正解か:送信時に送信側メールサーバが送り主(接続元ユーザ)を認証する目的に適合します。

よくある誤解

  • 「POP3S や APOP が送信時の認証になる」:どちらも POP(受信)プロトコルに関する認証であり、送信(SMTP)とは役割が異なります。
  • 「S/MIME が送信者認証と同じ」:S/MIME は電子署名で送信者の署名検証が可能ですが、サーバ側での送信時ログイン(SMTP セッションでの認証)とは目的と作用箇所が異なります。
  • 「STARTTLS によって認証が不要になる」:STARTTLS は通信の暗号化であり、ユーザ認証(誰が送っているかの確認)は別途 SMTP-AUTH 等で行う必要があります。

補足コラム

  • SMTP-AUTH と SPF/DKIM/DMARC の違い:SMTP-AUTH は「送信時にクライアントがサーバにログインする」仕組みでユーザ認証を行います。一方 SPF/DKIM/DMARC は送信元ドメインやメッセージの改ざん検出、ドメインレベルでのなりすまし対策に使われ、メール配送チェーンでの検証が目的です。両者は補完関係にあります。
  • 実運用のポイント:メールクライアントは通常ポート587(submission)を使い、まず STARTTLS で暗号化してから AUTH で認証する運用が推奨されます。古い APOP は既に推奨されないことが多く、POP3S(TLS化)や IMAPS が用いられます。
  • 学習メモ:送信=SMTP(SMTP-AUTH)、受信=POP/IMAP(POP3S, IMAPS 等)、署名=S/MIME(あるいは PGP)と覚えると選択で迷いにくいです。
コード例(Python smtplib による SMTP-AUTH の例)
import smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg["From"] = "sender@example.com"
msg["To"] = "recipient@example.com"
msg["Subject"] = "Test"
msg.set_content("This is a test email.")

# SMTP サーバへ接続して STARTTLS → 認証 → 送信
with smtplib.SMTP("smtp.example.com", 587) as s:
    s.starttls()
    s.login("username", "password")  # ここが SMTP-AUTH に相当
    s.send_message(msg)

FAQ

Q1. SMTP-AUTH と STARTTLS はどちらが認証ですか?
A1. STARTTLS は通信の暗号化(TLS による保護)であり、認証は行いません。SMTP-AUTH がユーザ認証を行います。暗号化と認証はそれぞれ役割が異なりますが、実運用では STARTTLS の後に SMTP-AUTH を行います。
Q2. SMTP-AUTH があればなりすましは完全に防げますか?
A2. SMTP-AUTH は送信サーバの不正中継を防ぎますが、送信元ドメインのなりすまし(他の送信経路を使う)やメールヘッダ改ざんに対しては SPF/DKIM/DMARC の併用が必要です。
Q3. ポート番号はどれを使えばよいですか?
A3. メール送信サブミッションの標準はポート587(STARTTLS を使うのが一般的)。ポート465 は SMTPS(暗号化された SMTP)で使われることがあります。
Q4. S/MIME の電子署名はサーバ側認証と同じですか?
A4. 署名はメッセージの作成者(署名鍵所有者)を検証できますが、送信サーバにログインして送信を許可する「サーバ側認証」とは別の仕組みです。

関連キーワード: 電子メール, SMTP-AUTH, SMTP, 認証, メール送信, APOP, POP3S, S/MIME, MTA, MUA, STARTTLS, SPF, DKIM, DMARC
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について