応用情報・午後・セキュリティを解く(R01春)その 1

あしです。こんにちは。

今回は、応用情報処理技術者試験、2019 年度(令和元年度)、午後 問 1 を解いていこうと思います。「早速、設問 1 から」といきたいところですが、先に、電子メールに関する知識が問われている、空欄 b と c を片づけておこうと思います。

 

今回は、「送信ドメイン認証」、「S/MIMEPGP」、「OP25B」 について解説します。これらのタームについて、「知らんぞ」という方は、ハイライトの箇所だけでも、眺めていただけると、勉強になると思います。

 

電子メールに関するセキュリティについては、午前問題はもちろんのこと、「平成 27 年度 春期 午後」にも、がっつり出題されています。過去問をしっかりつぶしていた人は、ごっそり得点できたはずです。

 

|【おさらい】SMTP

 

まずは、メールに関するプロトコルのおさらいから。この絵は、左の人から、右の人までメールが届くまでのイメージを表したものです。

f:id:higher_tomorrow:20200219101727p:plain

 

まず、クライアントからメールサーバに SMTP で送信、次に、メールサーバから次のメールサーバまで SMTP で転送、最後に、メールを見るために、IMAP4 や POP3 を使いました。

 

さらに、SMTP がどんなプロトコルだったか、確認させてください。例えば、クライアントからメールサーバに、メールを送信するときの通信を見てみましょう。こんな感じになります。

f:id:higher_tomorrow:20200219101813p:plain

 

まずは、ポート番号 25 番に対して、TCP のコネクションを張ります(3 ウェイハンドシェイクと呼ばれる通信によって、コネクションを確立します)。

そのコネクションを用いて、メールサーバに対し、HELO、MAIL FROM、RCPT TO などのテキスト(SMTP のコマンド)を送信します。

DATA コマンドの後に、メールの From、To、タイトル、本文などを送信します。

QUIT コマンドを送信し、TCP のコネクションを切断します。

 

これを見ると、メール中の「送信元アドレス」は、簡単に書き換えられることがわかると思います。だから、送信ドメイン認証が必要になるんです。

 

| 送信ドメイン認証

 

空欄 b、c で問われているのは、送信ドメイン認証についてです。有名な方式に、SPF と DKIM(ディーキム)があります。

 

1. ポイント

もぅ細かいことはよいので、コレをおさえます。 

  • 送信ドメイン認証 = メールの送信元ドメインが詐称されていないことを検証する

  • SPF = IP アドレスによる検証(送信元の DNS サーバに IP アドレスを登録)
  • DKIM = デジタル署名による検証(送信元の DNS サーバに公開鍵を登録)

 

2. 過去問知識

送信ドメイン認証についての、過去問を見ていきます。

「平成 27 年度 春期 午後」の問 1 には、次のような記述がありました(ハイライト等は筆者にて加工)。

メールサーバでのメール受信時の送信元メールアドレス偽証されていないかのチェックは [    a    ] と呼ばれ、送信元 IP アドレスを基にチェックする技術(SPF、又は受信メールの中の電子署名を基にチェックする技術(DKIMを導入します。

《平成 27 年度 春期 午後 p.6 》

 

上記の空欄 a の解答が、まさに「送信ドメイン認証」でした。

 

SPF については、平成 28 年度 秋期の午前問題でも出題されています(ハイライト等は筆者にて加工)。

(問 43)

受信した電子メールの、送信元ドメイン詐称されていないことを検証する仕組みである SPF(Sender Policy Framework)の特徴はどれか。

(正 解)

受信側のメールサーバが、受信メールの送信元 IP アドレスと、送信元ドメインの DNS に登録されているメールサーバの IP アドレスとを照合する 。

 

この 問 43 にある通り、SPF の動作は、こんな雰囲気になります。だいたいのイメージがあれば十分です。

f:id:higher_tomorrow:20200219145658p:plain

 

DKIM では、デジタル署名により偽証を検知します。(1) DNS サーバに公開鍵を登録しておく、(2) メールを送信する側が、メールにデジタル署名を付与する、(3) 受信側は、DNS サーバに問い合わせ、デジタル署名を検証する、という流れになります。

 

3. 解答

ということで、空欄 b には、SPF が入ります。

さらに、上記には、送信ドメイン認証は、『メール受信時の送信元メールアドレスが偽証されていないかのチェック』をしてくれるとあります。

ということで、空欄 c には、「送信元メールアドレスの偽証」が入ります。

 

この問題は、以上です。一応、他の肢も見ておきましょう。

 

| S/MIME, PGP

 

選択肢 ウ の S/MIME と、選択肢 イの PGP は、ペアで出題されることが多いので、この機におさえておきましょう。

 

 1. ポイント

まずは、S/MIME から。

S/MIME(Secure/MIME)は、証明書を利用して電子メールに暗号化デジタル署名のセキュリティを提供します。

《 IPA PKI 関連技術情報7.2 S/MIME」》

MIME とは、メールにて、画像などのバイナリを送信する規格のことです。S/MIME は、MIME の拡張です。

S/MIME では、信頼性の高い通信を提供するため、公開鍵の交換には、証明書を利用します。

 

次に、PGP です(もともとは、メールの暗号化ツールの名称です)。

PGP(Pretty Good Privacy)は公開鍵の交換を事前に当事者間で行ない、その間で電子署名暗号化されたメールのやり取りを可能にする仕組みである。

《 IPA 電子署名・認証技術の適用分野と利用技術に関する調査PGP を利用した電子メールの例」》

 

公開鍵の交換は、手渡しや Web of Trust(信頼の輪)に基づいて行われます。Web of Trust とは、「友達の友達は、そこそこ信頼できる」という考え方です。

 

2. 過去問知識

S/MIME も PGP も、既出です。

S/MIME については、まず、平成 26 年度 秋期 の午前に出題されています。

平成 27 年度 春期 午後 問 1 には、次のような記述があります。

現在のメールシステムでは、営業部でのメールの暗号化には、S/MIME を利用することになっています。メール宛先の [    b    ] を利用して暗号化する方式で、安全性は高いのですが、先方が [    b    ] をもっていなければ使えない方法なので、利用している顧客はごく一部です。

《平成 27 年度 春期 午後 p.6 》

 

上記の空欄 b の解答は、「公開鍵」でした(ちなみに、公開鍵で暗号化するのは、メール本文ではなく、メール本文を暗号化・復号するための共通鍵です)。

さらには、同年度、秋期の午前問題にも出題されています。てか、基本情報技術者試験でも、出題されています。

 

| OP25B

 

最後に、肢 ア についてです。OP25B(Outbound Port 25 Blocking)は、午前問題でも、やや突っ込んできかれているので、ここでしっかりおさえます。

 

 OP25B とは、ISP(インターネット・サービス・プロバイダ)のメールサーバを経由しないで外へ向かう SMTP の通信を、ブロックする仕組みです。

下の絵のように、2 つの ISP、ISP-A と ISP-B があるとします。

f:id:higher_tomorrow:20200219161924p:plain

 

攻撃者は、右の人(青)に、スパムメールなどを送ろうとします。

しかし、OP25B により、ISP-A から外へ出ていく SMTP の通信がブロックされます。つまり、この経路では、ISP-A のメールサーバを通らずに、ISP-B のメールサーバに直接アクセスすることができません。

例えば、ISP-A のメールサーバに、送信元 IP アドレスによる制限がかかっていたりすると、レンジ外の攻撃者は、右の人に、標的型攻撃のメール、スパムメールなどを送ることができなくなります。

あ。仮に、攻撃者や攻撃者のボットが、 ISP-A と契約しているのであれば、普通にメールサーバ経由で、メールを送信することができますよ。当たり前ですが。

 

では、「ISP-A の管理下にいない人には、ISP-B のメールサーバへアクセスする方法はないのか」というと、あります。

f:id:higher_tomorrow:20200219162030p:plain


それは、ISP-B のメールサーバで認証をかける方法です。

「きちんと認証された人なら、メール送信してもいいよ」ということです。

認証をかけるには、SMTP-AUTH などの認証機能のついたプロトコルを用います。このとき使うポートを、「サブミッションポート」と呼びます。 

 

今回は、いったんこれで、終わりにします。次回は、残りの問題の解説をします。

最後まで読んでいただき、ありがとうございました。 

(次回へ続く)