基本情報技術者 2014年 秋期 午後 問01
ネットワークセキュリティに関する次の記述を読んで、設問1~4に答えよ。
A社は、社内に設置したWebサーバ上に、自社の製品を紹介するWebサイトを構築し、運営している。A社は、このWebサイトで会員登録を受け付け、登録された会員に対してメールマガジンを発行している。
A社のネットワーク構成を、図1に示す。

会員登録処理の流れは次のとおりである。
(1) 登録希望者は、インターネットを介し、Webサーバが管理する入会申込用WebページにHTTP over SSL/TLS(以下、HTTPSという)でアクセスし、メールアドレスを入力する。
(2) Webサーバは、登録希望者ごとに、登録希望者専用の会員情報入力用Webページを生成し、そのURLを記載した電子メール(以下、メールという)を、入力されたメールアドレス宛てに送信する。
(3) 登録希望者は、(2)で送信されたメールに記載されたURLが示すWebページにHTTPSでアクセスして、氏名や職業などの会員情報(メールアドレスは含まない)を入力する。
(4) Webサーバは、(1)のメールアドレスと(3)の会員情報を、会員管理サーバ上で稼働しているデータベース(以下、会員情報DBという)に登録する。
(5) Webサーバは、会員登録完了を知らせるメールを、(1)のメールアドレス宛てに送信する。
メールマガジン発行の流れは次のとおりである。
(1) メールマガジン担当者は、業務用PCのWebブラウザから、メールマガジン送信サーバのメールマガジン入力用WebページにHTTPでアクセスし、メールマガジンの本文を入力する。
(2) メールマガジン送信サーバは、会員情報DBから全ての会員のメールアドレスを取得し、取得したメールアドレス宛てにメールでメールマガジンを送信する。
なお、メールは、メールサーバで稼働しているメール転送サービスを介して送信する。また、本問では、URLやメールアドレスなどの名前解決については、考慮しなくてよいこととする。
設問1:
問題文を見る 会員登録の際、登録希望者が最初にアクセスする入会申込用Webページでは、登録希望者のメールアドレスだけを入力させ、会員情報の入力は別途行わせる方式を採っている。このように2段階の手順を踏む主な目的として適切な答えを、解答群の中から選べ。
解答群
ア:他人のメールアドレスや間違ったメールアドレスが登録されないようにする。
イ:通信を暗号化し、登録希望者の会員情報が第三者に漏れないようにする。
ウ:登録希望者が会員情報DBにアクセスできないようにする。
エ:間違った会員情報(メールアドレスは含まない)が登録されないようにする。
模範解答
ア
解説
解答の導き方
この設問は、会員登録を2段階に分けることで、何を確かめようとしているのかを問うています。
- 最初の手順では、登録希望者はメールアドレスだけを入力します。
- 次に、Webサーバはそのメールアドレス宛てに、会員情報入力用WebページのURLを記載したメールを送ります。URL(Uniform Resource Locator:Webページなどの場所を示す文字列)は、ここでは入力ページの場所を示します。
- 登録希望者がメールを受け取り、記載されたURLからページを開いて会員情報を入力すると、入力されたメールアドレスと会員情報が登録されます。
この流れでは、入力したメールアドレス宛てのメールを受け取って、記載されたURLにアクセスできることが確かめられます。そのため、他人のメールアドレスや、入力を間違えたメールアドレスがそのまま登録されるのを防ぐことが主な目的です。したがって、適切なのはアです。
ほかの選択肢も確認します。HTTPS(Hypertext Transfer Protocol Secure:Web通信を暗号化して送受信する方式)は、通信内容を第三者に読み取られにくくするためのものです。しかし、入力されたメールアドレスを本人が使えるかどうかは、HTTPSだけでは確認できません。よって、イはこの2段階の手順の主な目的ではありません。
また、会員情報DB(Database:データを整理して保存する仕組み)への登録はWebサーバが行います。登録希望者が直接DBにアクセスしないようにすることは、2段階に分ける主な目的ではありません。これがウを選ばない理由です。
氏名や職業などの情報が正しいかどうかも、この手順だけでは確かめられません。確認できるのは、主にメールアドレス宛てのメールを受け取ってURLにアクセスできることです。したがって、エも適切ではありません。
誤りやすいポイント
- HTTPSで通信を暗号化することと、メールアドレスを本人が使えると確認することは別です。
- URLを開けたことで分かるのは、メールを受け取ってそのURLにアクセスできることです。入力した人の氏名や職業まで正しいとは限りません。
- 登録希望者がDBに直接アクセスしないことは、Webサーバを使う仕組み上のことです。会員登録を2段階にする目的とは区別しましょう。
FAQ
Q: メールアドレスを入力させるだけでは、なぜ不十分なのですか?
A: 入力間違いや、他人のメールアドレスを入力した可能性が残るためです。メールに記載されたURLにアクセスしてもらうことで、そのアドレス宛てのメールを受け取れることを確かめます。
A: 入力間違いや、他人のメールアドレスを入力した可能性が残るためです。メールに記載されたURLにアクセスしてもらうことで、そのアドレス宛てのメールを受け取れることを確かめます。
Q: URLにアクセスできれば、登録した人の身元も確認できるのですか?
A: いいえ。確認できるのは、そのメールアドレス宛てのメールを受け取ってURLにアクセスできることです。登録した人の身元や、氏名などの会員情報が正しいことまでは確認できません。
A: いいえ。確認できるのは、そのメールアドレス宛てのメールを受け取ってURLにアクセスできることです。登録した人の身元や、氏名などの会員情報が正しいことまでは確認できません。
Q: HTTPSを使っていれば、メールアドレスの確認は不要ですか?
A: 不要にはなりません。HTTPSはWeb通信を暗号化するためのもので、入力されたメールアドレスを使える人かどうかを確かめる仕組みではありません。
A: 不要にはなりません。HTTPSはWeb通信を暗号化するためのもので、入力されたメールアドレスを使える人かどうかを確かめる仕組みではありません。
関連キーワード: メールアドレス確認、確認メール、確認用URL、HTTPS、暗号化通信
設問2:
問題文を見る 次の記述中のに入れる正しい答えを、解答群の中から選べ。
ルータは、動的なパケットフィルタ型のファイアウォール機能を搭載していて、設定で許可したパケットだけを通過させる。
設定は、送信元、送信先、通信ポートの順に“,”で区切って記述する。これは、送信元から送信先の通信ポート宛てのパケットの通過を許可することを意味する。許可されたパケットに対する応答パケットの通過も許可される。
送信元及び送信先には、IPアドレス又はネットワークインタフェースを指定する。IPアドレスを指定したときに許可の対象となるパケットは、送信元又は送信先のIPアドレスが、指定されたIPアドレスであるパケットである。ネットワークインタフェースを指定したときに許可の対象となるパケットは、そのネットワークインタフェースから入ってくるパケット(送信元として指定したとき)、又は出ていくパケット(送信先として指定したとき)である。
通信ポートには、各サービスがパケットを待ち受けるポート番号を指定する。A社の各サーバ上で稼働している各サービスが使用するプロトコルと待受けポート番号を、表1に示す。

現在のルータの設定を、図2に示す。
1行目の設定で、インターネットからWebサーバにHTTPでアクセスすることを許可し、2行目の設定で、インターネットから入ってくるメールを、メールサーバに転送することを許可している。

解答群
ア:192.168.0.2,443
イ:192.168.0.2,4194
ウ:192.168.0.3,4194
エ:203.0.113.2,443
オ:203.0.113.2,4194
カ:if0,443
模範解答
a:エ、b:ウ
解説
解答の導き方
この問題では、ルータの設定に入れる通信の送信元、送信先、ポート番号を考えます。ルータは、設定で許可された通信だけを通します。ファイアウォールとは、ネットワークを通る通信を許可したり遮断したりする仕組みです。
設定は「送信元、送信先、通信ポート」の順です。送信元や送信先には、機器のIPアドレス(Internet Protocol address:ネットワーク上の機器を識別する番号)か、ルータのネットワークインタフェース(ネットワークへの接続口)を指定します。ポート番号は、サーバ上で通信を受け付けるサービスを識別する番号です。
aについて
図2の「if0,a」では、送信元がif0です。if0はインターネット側の接続口なので、インターネットから入ってくる通信を表します。
会員登録の流れでは、登録希望者が入会申込用WebページにHTTPSでアクセスします。HTTPS(HTTP over SSL/TLS:Web通信を暗号化して保護する方式)では、WebサーバのHTTPS用ポートに通信します。表1によると、そのポート番号は443です。
図1によると、WebサーバのIPアドレスは203.0.113.2です。したがって、許可する通信の送信先は203.0.113.2、ポート番号は443です。解答群ではエが該当します。
bについて
図2の「203.0.113.2,b」では、送信元がWebサーバです。会員登録の流れでは、Webサーバが会員情報を会員情報DBに登録します。そのため、Webサーバから会員情報DBへ向かう通信を許可する必要があります。
図1によると、会員管理サーバのIPアドレスは192.168.0.3です。表1によると、会員情報DBの待受けポート番号は4194です。したがって、送信先は192.168.0.3、ポート番号は4194です。解答群ではウが該当します。
誤りやすいポイント
-
aにメールサーバのIPアドレスを指定する
aで許可するのは、インターネットからWebサーバへのHTTPS通信です。メールサーバではなく、WebサーバのIPアドレスを指定します。 -
HTTPSのポート番号に80を使う
表1では、HTTPのポート番号は80、HTTPSのポート番号は443です。会員登録ではHTTPSを使うため、443を選びます。 -
bの送信元と送信先を逆にする
bの設定では、送信元が203.0.113.2、つまりWebサーバです。会員管理サーバは送信先です。 -
会員情報DBのポート番号に443を使う
443はWebのHTTPS用です。会員情報DBの待受けポート番号は、表1にある4194です。
FAQ
Q: 許可した通信への応答にも、別の設定が必要ですか。
A: 必要ありません。問題文には、許可されたパケットに対する応答パケットの通過も許可されるとあります。
A: 必要ありません。問題文には、許可されたパケットに対する応答パケットの通過も許可されるとあります。
Q: なぜWebサーバから会員管理サーバへの通信を許可するのですか。
A: 会員登録の流れでは、Webサーバが会員情報を会員情報DBに登録するためです。その処理に必要な通信を、ルータで許可します。
A: 会員登録の流れでは、Webサーバが会員情報を会員情報DBに登録するためです。その処理に必要な通信を、ルータで許可します。
Q: HTTPとHTTPSでは何が違いますか。
A: どちらもWebページの通信に使われますが、HTTPSは通信を暗号化して保護します。この問題では、会員登録のページへのアクセスにHTTPSを使うため、HTTPS用のポート番号を選びます。
A: どちらもWebページの通信に使われますが、HTTPSは通信を暗号化して保護します。この問題では、会員登録のページへのアクセスにHTTPSを使うため、HTTPS用のポート番号を選びます。
関連キーワード: ファイアウォール、パケットフィルタリング、IPアドレス、ポート番号、HTTPS
設問3:
問題文を見る 次の記述中のに入れる正しい答えを、解答群の中から選べ。
A社は、Webサーバのメンテナンスを外部委託し、委託先内の特定のPCから、インターネットを介して、Webサーバを操作できるようにした。そのために、Webサーバ上に待受けポート番号22でSSHサービスを稼働させ、ルータの設定に“c”の行を追加した。
なお、このPCから送信されたパケットがルータに到着したとき、このパケットの送信元IPアドレスは、198.51.100.2となっている。
解答群
ア:198.51.100.2,203.0.113.2,22
イ:198.51.100.2,if0,22
ウ:203.0.113.2,198.51.100.2,22
エ:if0,198.51.100.2,22
模範解答
c:ア
解説
解答の導き方
この設問では、外部の特定のPCからWebサーバへSSHで接続できるようにするため、ルータに加える設定を考えます。
-
通信元を確認します。
問題文には、PCから送信されたパケット(ネットワークを流れる通信データ)がルータに届いたとき、「送信元IPアドレスは、198.51.100.2」とあります。つまり、通信元のIPアドレス(Internet Protocol address:ネットワーク上の機器を識別する番号)は198.51.100.2です。 -
通信先を確認します。
図1では、WebサーバのIPアドレスは203.0.113.2です。したがって、パケットの宛先は203.0.113.2になります。 -
宛先のポート番号を確認します。
問題文では、WebサーバでSSH(Secure Shell:ネットワーク越しにサーバを安全に操作するための通信方式)サービスを待受けポート番号22で稼働させています。ポート番号は、サーバ上でどのサービスに通信を届けるかを示す番号です。そのため、宛先ポート番号は22です。 -
この3つをルータの設定に当てはめます。
図2の設定には、送信元側、宛先側、ポート番号を組み合わせた記述があります。例えば「if0,203.0.113.2,80」は、インターネット側のインタフェースif0からWebサーバ(203.0.113.2)の80番ポートへ向かう通信に対応します。インタフェースとは、ルータがネットワークに接続する口のことです。今回は特定のPCからWebサーバへの通信なので、必要な情報は、送信元が198.51.100.2、宛先が203.0.113.2、ポート番号が22です。この並びに当てはまるのは、選択肢アです。
誤りやすいポイント
-
送信元と宛先を逆にしないようにします。
PCからWebサーバへ接続するので、198.51.100.2が送信元、203.0.113.2が宛先です。逆に並べた選択肢ウは、通信の向きが反対です。 -
通信元を示す情報と、通信先を示す情報を混同しないようにします。
if0はルータのインタフェースです。特定のPCを示すものではありません。この設問では「特定のPCから」という条件があるため、送信元として198.51.100.2を指定します。 -
ポート番号は、利用するサービスに合わせます。
Webサーバで稼働させるSSHサービスの待受けポート番号は22です。ほかのサービスで使うポート番号と取り違えないようにします。
FAQ
Q: SSHサービスをWebサーバで動かすだけでは、接続できないのですか?
A: サーバが通信を受け付ける準備をしていても、ルータの設定で通信が許可されていなければ、パケットがサーバまで届かないことがあります。そのため、通信元・宛先・ポート番号に合った設定が必要です。
A: サーバが通信を受け付ける準備をしていても、ルータの設定で通信が許可されていなければ、パケットがサーバまで届かないことがあります。そのため、通信元・宛先・ポート番号に合った設定が必要です。
Q: なぜ送信元のIPアドレスまで設定するのですか?
A: 今回は「特定のPCから」接続させるためです。送信元のIPアドレスを指定すれば、接続を許可するPCを限定できます。
A: 今回は「特定のPCから」接続させるためです。送信元のIPアドレスを指定すれば、接続を許可するPCを限定できます。
Q: 22はPC側のポート番号ではないのですか?
A: この設問では、WebサーバでSSHサービスが待ち受けているポート番号を示しています。したがって、接続先であるWebサーバ側のポート番号として考えます。
A: この設問では、WebサーバでSSHサービスが待ち受けているポート番号を示しています。したがって、接続先であるWebサーバ側のポート番号として考えます。
関連キーワード: IPアドレス、ポート番号、SSH、ルータ、パケットフィルタリング
設問4:
問題文を見る 次の記述中のに入れる正しい答えを、解答群の中から選べ。
SSHサービスがクライアントを認証する方式には、パスワード認証方式と公開鍵認証方式がある。A社は公開鍵認証方式を採用した。
公開鍵認証方式では、秘密鍵で作成した署名が、対応する公開鍵で検証できることを利用して、次のようにクライアントを認証する。
(1) クライアントは、秘密鍵を使って作成した署名と、その秘密鍵に対応する公開鍵をサーバに送る。
(2) サーバは、(1)の公開鍵がサーバに登録されていることを確認し、公開鍵で(1)の署名を検証する。
(3) 検証に成功すれば、クライアントがサーバに登録されている公開鍵に対応する秘密鍵をもっていることが証明されるので、サーバは、クライアントを認証する。
このように、公開鍵認証方式では、クライアントがサーバのSSHサービスを利用する際に、パスワードやdをネットワーク上に流す必要がない。
解答群
ア:公開鍵
イ:秘密鍵
ウ:秘密鍵及び公開鍵
模範解答
d:イ
解説
解答の導き方
この問題は、SSH(Secure Shell:ネットワークを通じて別のコンピュータを安全に利用するための仕組み)の公開鍵認証で、ネットワーク上に送る必要がないものを問うています。認証とは、相手が誰であるかを確かめることです。
まず、公開鍵認証では「秘密鍵」と「公開鍵」を使います。秘密鍵は本人だけが持つ鍵で、公開鍵は相手に渡してよい鍵です。問題文には、クライアントが「秘密鍵を使って作成した署名」と「その秘密鍵に対応する公開鍵」をサーバに送る、とあります。
ここで注意したいのは、送るのは秘密鍵そのものではなく、秘密鍵を使って作った署名だという点です。サーバは公開鍵で署名を検証します。検証に成功すれば、クライアントが対応する秘密鍵を持っていると確かめられます。
したがって、公開鍵は送りますが、秘密鍵はクライアントの手元に置いたままです。パスワードも、この公開鍵認証ではネットワーク上に送る必要がありません。空欄には、選択肢の中で秘密鍵を表すイが入ります。
誤りやすいポイント
- 署名と秘密鍵を混同しないようにしましょう。署名は秘密鍵を使って作成したデータであり、秘密鍵そのものではありません。
- 公開鍵は送信されるので、「公開鍵もネットワーク上に流さない」と考えるのは誤りです。問題文の手順(1)で、公開鍵をサーバに送ると示されています。
- 秘密鍵と公開鍵の両方を送るわけではありません。公開鍵は送りますが、秘密鍵は本人だけが保管します。
FAQ
Q: サーバは、秘密鍵を受け取らずにどうやって本人確認をするのですか?
A: クライアントから受け取った署名を公開鍵で検証します。検証に成功すれば、対応する秘密鍵を持つクライアントが署名を作ったと確かめられます。
A: クライアントから受け取った署名を公開鍵で検証します。検証に成功すれば、対応する秘密鍵を持つクライアントが署名を作ったと確かめられます。
Q: 公開鍵を送っても、秘密鍵が知られることはありませんか?
A: 公開鍵は相手に渡すための鍵です。公開鍵から秘密鍵を簡単に割り出せない仕組みを使うため、公開鍵を送っても秘密鍵を送ったことにはなりません。
A: 公開鍵は相手に渡すための鍵です。公開鍵から秘密鍵を簡単に割り出せない仕組みを使うため、公開鍵を送っても秘密鍵を送ったことにはなりません。
Q: パスワード認証と公開鍵認証の違いは何ですか?
A: パスワード認証ではパスワードを使って本人確認します。公開鍵認証では、秘密鍵で作った署名を公開鍵で検証して本人確認します。
A: パスワード認証ではパスワードを使って本人確認します。公開鍵認証では、秘密鍵で作った署名を公開鍵で検証して本人確認します。
関連キーワード: SSH、公開鍵認証、秘密鍵、公開鍵、電子署名



